AI 智能體長期記憶系統(tǒng)架構(gòu)設(shè)計(jì) 原創(chuàng)
大語言模型(LLM)在理解和生成連貫對(duì)話方面取得了顯著成就。但是,它們存在一個(gè)內(nèi)在的“記憶缺陷”,即它們擁有的上下文窗口是有限的,這嚴(yán)重限制了它們?cè)诙噍喆?、多?huì)話的長期交互中維持一致性的能力。當(dāng)對(duì)話內(nèi)容超出了上下文長度時(shí),LLM 可能會(huì)像一個(gè)“健忘”的伙伴一樣,忘記用戶的喜好、重復(fù)提問,甚至與之前確認(rèn)的事實(shí)相沖突。
設(shè)想這樣一個(gè)場景:你告訴一個(gè) AI 助手你是一個(gè)素食者,不食用乳制品。然而,幾天后當(dāng)你向它詢問晚餐建議時(shí),它卻推薦了烤肉。這種體驗(yàn)無疑會(huì)減少用戶對(duì) AI 的信任和依賴。
缺少記憶能力的 AI(圖左)會(huì)忘記用戶的關(guān)鍵信息,而擁有有效記憶能力的 AI (圖右)則能夠在不同會(huì)話間保持上下文連貫性,提供精確、定制化的服務(wù)。
為了解決這一根本性問題,業(yè)界開發(fā)和開源了 Mem0 長期記憶系統(tǒng)(Github 地址:https://github.com/mem0ai/mem0),這是一個(gè)以記憶為核心的可擴(kuò)展架構(gòu)。它通過動(dòng)態(tài)地提取、整合和檢索對(duì)話中的關(guān)鍵信息,賦予了 AI 智能體可靠的長期記憶能力。
本文將詳細(xì)探討 Mem0(基于向量數(shù)據(jù)庫)和 Mem0-g(基于知識(shí)圖譜)的架構(gòu)設(shè)計(jì)、技術(shù)原理、性能表現(xiàn)及其實(shí)際應(yīng)用價(jià)值。
下文詳細(xì)剖析之。
1、為什么擴(kuò)大上下文窗口無法根本解決記憶問題?
最近,各個(gè)大模型開發(fā)商不斷發(fā)布具有更大上下文窗口的模型,上下文長度從128K 擴(kuò)展到甚至達(dá)到千萬級(jí)別的 Token。但是,這些做法僅僅是“延遲”了問題的發(fā)生,并沒有真正解決問題。在企業(yè)業(yè)務(wù)場景實(shí)際使用中,增加上下文窗口的大小會(huì)面臨兩大障礙:
- 信息丟失和噪聲干擾:在跨越數(shù)周或數(shù)月的交流中,對(duì)話歷史最終會(huì)超出任何大小的上下文窗口。更關(guān)鍵的是,對(duì)話內(nèi)容通常天馬行空。比如:用戶可能在討論飲食偏好后,又進(jìn)行了數(shù)小時(shí)關(guān)于編程的對(duì)話。當(dāng)話題再次回到食物時(shí),重要的“素食”信息可能已經(jīng)被大量無關(guān)的編程討論所淹沒,這即是所謂的“大海撈針”難題。
- 性能和成本的挑戰(zhàn):處理極長的上下文不僅顯著增加了打模型的推理延遲,還帶來了高昂的 Token 成本。此外,研究顯示,LLM 的注意力機(jī)制在處理極長序列時(shí)會(huì)出現(xiàn)性能退化,大模型難以有效利用那些距離當(dāng)前上下文很遠(yuǎn)的信息。
因此,我們需要一種更智能的記憶機(jī)制,它應(yīng)該能夠模擬人類的認(rèn)知過程:有選擇性地保存關(guān)鍵信息,整合相關(guān)概念,并在需要時(shí)精確地檢索信息。
2、Mem0 長期記憶系統(tǒng)架構(gòu)設(shè)計(jì)
Mem0 架構(gòu)設(shè)計(jì)采用“增量處理”范式,在持續(xù)對(duì)話中無縫運(yùn)行。其核心架構(gòu)設(shè)計(jì)由兩個(gè)主要階段構(gòu)成:提?。‥xtraction) 和 更新(Update)。
第一、提取階段:動(dòng)態(tài)捕捉關(guān)鍵信息
當(dāng) Mem0 系統(tǒng)接收到新的對(duì)話內(nèi)容(比如:用戶的提問和 AI 的回答)時(shí),提取階段開始工作。為了準(zhǔn)確理解當(dāng)前對(duì)話的上下文,Mem0 系統(tǒng)結(jié)合以下兩種信息:
- 全局上下文:從數(shù)據(jù)庫中檢索整個(gè)對(duì)話的摘要,提供對(duì)話的宏觀主題。
- 局部上下文:最近的幾條消息,提供細(xì)粒度的即時(shí)背景。
這兩種上下文與新消息共同構(gòu)成一個(gè)完整的提示詞(Prompt),輸入到一個(gè)大語言模型(比如:DeepSeek R1)中,以執(zhí)行提取功能。該大模型從最新的交流中提煉出關(guān)鍵事實(shí)(比如:“用戶是素食主義者”),形成一組候選記憶。
第二、更新階段:智能管理記憶庫
提取出的候選記憶并不會(huì)直接存入數(shù)據(jù)庫,而是進(jìn)入更新階段,以確保記憶庫的一致性和無冗余。這個(gè)過程通過一個(gè)智能的“工具調(diào)用(Tool Call)”機(jī)制實(shí)現(xiàn),具體流程如下:
- 對(duì)于每一個(gè)候選記憶,系統(tǒng)會(huì)在向量數(shù)據(jù)庫中檢索出語義最相似的已有記憶。
- 將候選記憶與這些相似記憶一同提交給大語言模型。
- 大模型會(huì)自主決策執(zhí)行以下四種操作之一:
- ADD:如果候選記憶是全新的信息,則添加。
- UPDATE:如果候選記憶是對(duì)現(xiàn)有信息的補(bǔ)充或更新,則進(jìn)行修改。
- DELETE:如果候選記憶與現(xiàn)有信息相矛盾,則刪除舊信息。
- NOOP:如果候選記憶是重復(fù)或無關(guān)的,則不執(zhí)行任何操作。
通過這種方式,Mem0 能夠動(dòng)態(tài)維護(hù)一個(gè)精煉、準(zhǔn)確且與時(shí)俱進(jìn)的長期記憶庫。
3、Mem0-g 長期記憶系統(tǒng)架構(gòu)設(shè)計(jì)
為了更好地理解信息之間的復(fù)雜關(guān)系,推出了 Mem0 的升級(jí)版:Mem0-g(g代表 Graph,也就是圖)。它把記憶信息保存成知識(shí)圖譜的樣子,圖譜里的點(diǎn)代表不同的實(shí)體(比如:人、地方),點(diǎn)與點(diǎn)之間的連線代表它們之間的關(guān)系(比如“住在”、“喜歡”)。
和 Mem0 向量數(shù)據(jù)庫相比,知識(shí)圖譜能夠記錄更復(fù)雜的關(guān)系和高級(jí)概念。當(dāng)它和主要存儲(chǔ)事實(shí)片段的 Mem0 向量數(shù)據(jù)庫一起使用時(shí),兩者可以互相補(bǔ)充,讓整個(gè)記憶系統(tǒng)更加全面。
Mem0-g 的架構(gòu)設(shè)計(jì)也分為兩個(gè)階段:提取和更新:
- 圖提取:通過一個(gè)兩階段的大語言模型(LLM)流程,首先從文本中找出關(guān)鍵的實(shí)體和它們的類型(比如:“Alice - 人”),然后創(chuàng)建連接這些實(shí)體的關(guān)系三元組(比如: (Alice, 住在, 舊金山))。
- 圖更新與沖突解決:在加入新信息時(shí),Mem0-g 會(huì)檢查新關(guān)系是否和圖里已有的關(guān)系有沖突。如果有沖突,一個(gè)基于 LLM 的“更新解析器”會(huì)決定是否將舊關(guān)系標(biāo)記為“過時(shí)”,而不是直接刪除。這樣的設(shè)計(jì)保留了信息的時(shí)間順序,為進(jìn)行更復(fù)雜的時(shí)間推理提供了可能。
通過結(jié)合結(jié)構(gòu)化的圖表示和語義的靈活性,Mem0-g 能夠支持更高級(jí)的推理,特別是在需要跨越多個(gè)相關(guān)事實(shí)進(jìn)行推斷的情況下。
4、Mem0 與主流方案對(duì)比
通過在長對(duì)話評(píng)測基準(zhǔn) LOCOMO 上,對(duì) Mem0 和 Mem0-g 進(jìn)行了全面的比較測試,對(duì)比的對(duì)象包括六種不同類型的基線方法,比如:現(xiàn)有的記憶增強(qiáng)系統(tǒng)、不同設(shè)置的 RAG、處理整個(gè)對(duì)話歷史的全上下文方法、開源的記憶解決方案以及商業(yè)平臺(tái)。
核心發(fā)現(xiàn)一:Mem0 實(shí)現(xiàn)了效率與效果的最佳平衡
測試結(jié)果(如下表和圖展示的)清楚地顯示,與那些簡單直接的 RAG 和全上下文方法相比,Mem0 的性能優(yōu)勢非常明顯。
第一、Mem0 vs. RAG
- 質(zhì)量評(píng)分(J score):Mem0 的質(zhì)量評(píng)分比最佳配置的 RAG 高出近10%。
- 效率:這證明了提取精煉事實(shí)遠(yuǎn)比檢索包含大量噪聲的原始文本塊更有效。
第二、Mem0 vs. 全上下文方法
- 質(zhì)量評(píng)分:雖然全上下文方法憑借完整信息獲得了最高的質(zhì)量評(píng)分。
- 延遲:但其延遲是 Mem0 的近12倍。
- Token 成本:Token 成本也極高,完全不適用于生產(chǎn)環(huán)境。
- 性能與成本:Mem0 以極小的性能犧牲換來了91%的延遲降低和超過90%的 Token 成本節(jié)省,展現(xiàn)了卓越的實(shí)用性。
第三、圖表分析
上圖展示了不同方案的端到端延遲(線圖,越低越好)和響應(yīng)質(zhì)量(柱狀圖,越高越好):
- Mem0 和 Mem0-g:在保持高質(zhì)量的同時(shí),延遲遠(yuǎn)低于全上下文方法。
核心發(fā)現(xiàn)二:Mem0 與 Mem0-g 各有所長
第一、Mem0:簡單高效的自然語言記憶
- 表現(xiàn)最佳:在處理單跳問題(只需一個(gè)事實(shí))和多跳問題(需要整合多個(gè)分散的事實(shí))時(shí)表現(xiàn)出色。
- 快速響應(yīng):搜索延遲極低,非常適合需要快速反應(yīng)的互動(dòng)應(yīng)用。
第二、Mem0-g:圖結(jié)構(gòu)記憶的威力
- 時(shí)間推理和開放域問題:在處理需要理解事件順序和關(guān)系的問題時(shí)表現(xiàn)出色。
- 提升判斷力:結(jié)構(gòu)化的關(guān)系表示顯著提高了大模型在這些復(fù)雜任務(wù)上的表現(xiàn)力。
第三、圖表分析:搜索/檢索延遲對(duì)比
上圖展示了各方案的搜索/檢索延遲。Mem0 的搜索延遲(0.148秒)是所有方法中最低的,顯示了其高效的檢索能力。
核心發(fā)現(xiàn)三:Mem0 在系統(tǒng)開銷上的優(yōu)勢
第一、系統(tǒng)開銷對(duì)比
- Mem0 vs. 商業(yè)記憶平臺(tái) Zep:
Token 消耗:Zep 構(gòu)建記憶圖譜每段對(duì)話平均消耗超過 600k Token,而 Mem0 僅需約 7k Token。
異步處理:Zep 的記憶構(gòu)建過程涉及大量異步處理,新添加的記憶需要數(shù)小時(shí)才能被有效檢索,這對(duì)實(shí)時(shí)應(yīng)用來說是不可接受的。
快速構(gòu)建:相比之下,Mem0 的記憶構(gòu)建在幾分鐘內(nèi)即可完成。
5、總結(jié):邁向擁有持久記憶的 AI 智能體未來
Mem0 和 Mem0-g 通過動(dòng)態(tài)提取信息、智能更新和高效檢索,為解決大語言模型(LLM)的長期記憶問題提供了一個(gè)強(qiáng)大且實(shí)用的解決方案。它們成功地在推理精度、響應(yīng)速度和部署成本之間取得了理想的平衡。
Mem0:快速、直接的事實(shí)檢索
Mem0 以其極致的效率和簡潔性,為需要快速、直接事實(shí)檢索的應(yīng)用場景提供了理想選擇。
Mem0-g:深度關(guān)系理解和復(fù)雜時(shí)序推理
Mem0-g 則通過結(jié)構(gòu)化的圖記憶,為需要深度關(guān)系理解和復(fù)雜時(shí)序推理的任務(wù)解鎖了新的可能性。
這項(xiàng)工作為構(gòu)建更可靠、更高效、更具“人性”的 AI 智能體鋪平了道路,使它們能夠像人類一樣,在長時(shí)間的互動(dòng)中建立連貫、有深度的關(guān)系。未來將繼續(xù)優(yōu)化圖操作的效率,并探索更復(fù)雜的 AI 智能體混合記憶架構(gòu),推動(dòng) AI 智能體向著能夠進(jìn)行真正長期合作的智能伙伴不斷邁進(jìn)!
本文轉(zhuǎn)載自???玄姐聊AGI?? 作者:玄姐
