別再手工調Prompt!Memory-R1把60條噪音記憶壓縮成3條,準確率飆升
大型語言模型(LLM)目前在聊天機器人、編碼助手、問題解答、創意寫作等等應用方面取得了巨大的成功。
但是,每個查詢到達LLM之前沒有記憶的,固定上下文窗口(context windows),意味著他們無法在長時間的對話或多會話任務中積累持久的知識,并且很難推理復雜的歷史。
最近的解決方案,如檢索增強生成(RAG),將過去的信息附加到提示中,但這通常會導致嘈雜的,未經過濾的上下文,用太多無關的細節或缺失的關鍵事實淹沒模型
Memory-R1框架,通過LLM代理學習主動管理和利用外部內存,決定在回答問題時添加、更新、刪除或忽略什么,并過濾掉噪音。
為什么學習記憶
在RAG系統檢索信息過程中,不相關的條目會污染推理,模型被噪音分散注意力。
相比之下,人類廣泛檢索,隨后有選擇地過濾重要的東西,才是我們需要的信息。
然而大多數人工智能記憶系統是靜態的,是依靠手工制作的啟發式來記住什么,而不是從反饋中學習,這帶來了巨大的局限性。

Memory-R1 框架

Memory-R1 圍繞兩個專門的 RL 微調代理構建:
- 內存管理器:決定每次對話轉動后要執行哪些內存操作(ADD、UPDATE、DELETE、NOOP) , 動態更新外部內存庫。
- 答案代理:對于每個用戶問題,檢索多達60個候選記憶,distills將它們提煉成最相關的子集,然后通過此過濾上下文來生成答案。
這兩個組件都使用強化學習RL(使用近端策略優化(PPO)或組相對策略優化(GRPO))進行訓練,僅以問題回答正確性為獎勵信號。這意味著:代理不需要手動標記的內存操作,而是通過試錯來學習,優化最終任務性能。
內存管理器:學習編輯知識
每次對話后,LLM都會提取關鍵事實。然后內存管理器從內存庫中檢索相關條目,并選擇操作:
- 添加: 插入尚未存在的新信息。
- 更新:在現有記憶中合并新細節,當它們詳細闡述或提煉以前的事實時。
- 刪除:刪除過時或矛盾的信息。
- NOOP:如果添加任何相關內容,則保持內存不變。
內存管理器根據答案代理從新編輯的內存庫生成的答題質量進行更新。如果內存操作使 Answer Agent 能夠準確響應,則內存管理器將獲得正值獎勵。outcome-driven reward這種結果驅動的獎勵消除了對內存操作進行昂貴的手動注釋的需求。
示例 :當用戶第一次提到收養一只名叫Buddy的狗時,然后補充說他們收養了另一只名為Scout的狗,系統可能會刪除“Buddy”并添加“Scout”,將其視為矛盾。然而,updates RL訓練的內存管理器更新了內存:“收養了兩只狗,Buddy和Scout”,保持了一個連貫的,不斷發展的知識庫。
答案代理:選擇性推理
對于每個問題,系統使用RAG檢索多達60個候選記憶。但是,答案代理并沒有將所有這些內容都輸入到LLM。 首先蒸餾了該集合,只保留最相關的條目。只有這樣,它才能產生答案。
訓練 : 答案代理也使用RL進行訓練exact match,使用其答案和標準答案之間的精確匹配作為獎勵。filtering out noise這鼓勵它專注于過濾噪音和推理在高質量的上下文。
示例 : 詢問“約翰住在海灘或山脈附近嗎 ? ” , 香草LLM可能會輸出“山 ” , 受到不相關記憶的影響。然而,Memory-R1的Answer Agent在回答之前只顯示與海灘相關的條目,從而得出正確的“海灘”響應。
本文轉載自??CourseAI??,作者:CourseAI

















