突破長上下文瓶頸!MemoRAG:用全局記憶重構(gòu)RAG,讓 RAG 像人一樣 “讀長文檔” 的核心秘訣

在大模型處理長文本的場景中,你是否曾遇到過這些難題?直接用長上下文LLM成本高昂,128K tokens的推理不僅耗時長,還會占用大量GPU內(nèi)存;傳統(tǒng)RAG面對模糊查詢(比如“總結(jié)這本書的核心人物關(guān)系”)時束手無策,更無法處理非結(jié)構(gòu)化的超長文檔(如100頁的法律合同、多年度財務(wù)報告)。
今天要介紹的MemoRAG,或許能解決這些痛點。這是由北京智源人工智能研究院、中國人民大學高瓴人工智能學院等團隊聯(lián)合研發(fā)的新型RAG框架,發(fā)表于2025年WWW會議,核心思路是模仿人類“先建立全局記憶,再定位細節(jié)”的認知過程,讓RAG技術(shù)首次突破“僅能處理簡單QA”的局限,能應對摘要、跨文檔分析等復雜任務(wù)。
論文地址:https://arxiv.org/pdf/2409.05591
項目地址:https://github.com/qhjqhj00/MemoRAG
01、為什么需要MemoRAG?長上下文處理的三大痛點
在MemoRAG出現(xiàn)前,長文本處理主要有兩種思路,但都存在明顯短板:
長上下文LLM:能力有限,成本極高
近年來LLM的上下文窗口不斷擴大(如Mistral-32K、Phi-128K),但直接處理超長文本(如1M tokens)仍不現(xiàn)實——不僅推理時間呈指數(shù)級增長,GPU內(nèi)存占用也會飆升(處理128K tokens需數(shù)十GiB內(nèi)存),而且當答案位于文本中間時,模型還可能“失憶”(即“Lost in the middle”問題)。
傳統(tǒng)RAG:依賴明確查詢與結(jié)構(gòu)化數(shù)據(jù)
傳統(tǒng)RAG的核心邏輯是“用查詢檢索相關(guān)片段”,但這需要兩個前提:
- 查詢必須明確:比如“哈利波特的生日是哪天”這類問題能直接檢索,但“分析書中愛情主題的表達方式”這類模糊需求,傳統(tǒng)RAG無法生成有效檢索query;
- 數(shù)據(jù)必須結(jié)構(gòu)化:像Wikipedia這樣分段落、有標題的文本能輕松切割索引,但面對無格式的超長報告、小說原文,分割后的文本塊會丟失語義關(guān)聯(lián),導致檢索混亂。
人類認知的啟發(fā):先全局記憶,再細節(jié)定位
人類處理長文檔時,從不會逐字逐句記住所有內(nèi)容,而是先快速瀏覽形成“全局記憶”(比如知道一本書的核心人物、主線劇情),再根據(jù)任務(wù)需求(如“分析人物關(guān)系”)從記憶中提取線索,最后翻書定位具體細節(jié)。MemoRAG正是將這一過程模塊化,構(gòu)建了“記憶-線索-檢索-生成”的閉環(huán)。

02、MemoRAG核心設(shè)計1:雙系統(tǒng)架構(gòu)
MemoRAG的突破點在于用“全局記憶”打通“模糊需求”與“精準檢索”的鴻溝,采用了一種Dual-System架構(gòu)。整體架構(gòu)分為“輕量級長程系統(tǒng)”(負責記憶)和“重量級表達系統(tǒng)”(負責生成)兩部分,流程可概括為“先記全局,再找細節(jié),最后生成”。
核心流程:從記憶到答案的四步走
以“分析《哈利波特》中主要人物關(guān)系”為例,MemoRAG的工作流程如下:
- Step 1:建立全局記憶:用輕量級模型(如壓縮后的Mistral-7B)處理完整文本,生成“全局記憶”——這不是逐字存儲,而是將文本壓縮為KV緩存(鍵值對)形式,保留核心語義(如“哈利、羅恩、赫敏是主角,三人是朋友”);
- Step 2:生成線索:收到用戶查詢后,記憶模塊基于全局記憶生成“草稿線索”,比如“哈利與羅恩是室友,赫敏常幫兩人解決危機,三人曾共同對抗伏地魔”——這些線索雖不完整,但明確了檢索方向;
- Step 3:線索引導檢索:用線索作為檢索query,在原始文本中定位相關(guān)片段(如“赫敏在密室中幫助哈利破解謎題”“羅恩為保護哈利犧牲自己”);
- Step 4:生成最終答案:重量級模型(如Phi-3-mini-128K)結(jié)合查詢、線索和檢索到的細節(jié),生成完整答案(如“哈利與羅恩、赫敏組成不可分割的三人組,友誼建立在信任與支持之上……”)。
這個過程完美復刻了人類認知:記憶模塊對應“大腦對文檔的整體印象”,線索對應“大腦提取的關(guān)鍵信息”,檢索對應“翻書找細節(jié)”,生成對應“組織語言回答”。

03、MemoRAG核心設(shè)計2:全局記憶模塊
全局記憶模塊是MemoRAG突破傳統(tǒng)RAG局限、實現(xiàn)超長上下文高效處理的核心,其設(shè)計圍繞“長度可擴展性(高效處理超長文本)、記憶持久性(留存關(guān)鍵語義)、指導有效性(生成精準檢索線索)”三大目標展開,從模型架構(gòu)、訓練流程到技術(shù)優(yōu)化形成完整閉環(huán)。
核心定位:全局記憶模塊的角色與價值
在MemoRAG的雙系統(tǒng)架構(gòu)中,全局記憶模塊承擔“長上下文語義濃縮器”與“檢索線索生成器”雙重角色,是連接“超長非結(jié)構(gòu)化文本”與“精準檢索-生成”的關(guān)鍵橋梁:
- 對比傳統(tǒng)RAG:傳統(tǒng)RAG無全局認知,直接依賴用戶查詢檢索文本塊,面對模糊需求(如“總結(jié)合同核心風險點”)或非結(jié)構(gòu)化文本(如100頁小說)時,易因“查詢-文本語義鴻溝”導致檢索失效;而全局記憶模塊先通過輕量級系統(tǒng)處理完整文本,形成覆蓋全文的語義記憶,再基于記憶生成線索,從根源上解決“無明確查詢”“文本無結(jié)構(gòu)”的痛點。
- 對比長上下文LLM:長上下文LLM需維護與文本長度成正比的KV緩存(如1M tokens文本需GB級緩存),推理成本極高;而全局記憶模塊通過壓縮技術(shù)將KV緩存體積大幅縮減,在保證語義完整性的同時,讓128K窗口的LLM能處理8M tokens文本,兼顧效率與能力。
MemoRAG通過“KV壓縮”和“三段式訓練”實現(xiàn)了這三點:
KV壓縮:用“記憶token”壓縮超長文本
輕量級記憶是全局記憶的“基準版本”,核心思路是復用現(xiàn)有長上下文優(yōu)化技術(shù),快速實現(xiàn)“長文本處理”能力,但存在明顯局限:
- 上下文長度受限:仍依賴LLM原生上下文窗口(如Mistral-7B-32K),即使通過SelfExtend擴展,也難以突破“原生窗口×2”的限制,無法處理8M tokens級超長篇文本;
- 語義完整性受損:為壓縮內(nèi)存,MInference等技術(shù)采用稀疏注意力,僅關(guān)注文本局部關(guān)聯(lián),導致全局語義斷裂(如小說中“跨章節(jié)人物關(guān)系”無法被捕捉);
- 內(nèi)存占用仍高:雖減少模型參數(shù),但需維護完整長度的KV緩存(如處理128K tokens文本仍需數(shù)十GiB GPU內(nèi)存),未從根本上解決“長文本-高內(nèi)存”矛盾。
MemoRAG的解決方案是插入“記憶token”:
- 核心創(chuàng)新:記憶token(Memory Tokens)的引入
為打破 “KV 緩存長度必須等于文本長度” 的固定綁定,論文提出在文本中插入專門承載全局語義的記憶 token,將其作為壓縮后的 “語義載體”。
具體來說,先看記憶 token 的插入規(guī)則:假設(shè)底層 LLM 的原生上下文窗口長度為 128K tokens(這是很多主流 LLM 的常見配置),那么每處理完 128K tokens 的原始文本后,就會插入少量記憶 token—— 比如 2K tokens,形成 “原始文本窗口 + 記憶 token” 不斷循環(huán)的結(jié)構(gòu)。
這些記憶 token 不直接對應原始文本里的具體句子或內(nèi)容,而是通過專門設(shè)計的注意力機制,“吸收” 它所在文本窗口內(nèi)的核心語義,比如一個窗口里的人物關(guān)系、事件因果邏輯、關(guān)鍵概念定義等,相當于給這個窗口的文本做了一份 “語義摘要”。后續(xù)模型處理時,不再需要維護原始文本 token 的 KV 緩存,只保留記憶 token 的 KV 緩存就能替代,從根本上實現(xiàn) “壓縮存儲”。 - KV空間壓縮:記憶token的注意力計算與緩存更新
為確保記憶token能有效捕捉并留存全局語義,論文設(shè)計了針對記憶token的專屬注意力機制與KV緩存更新規(guī)則,整個過程的核心在于實現(xiàn)“記憶token與原始文本token的雙向注意力交互”,避免記憶token因獨立計算而丟失文本關(guān)聯(lián)。
首先,在參數(shù)層面,為記憶token初始化了獨立的查詢(Q)、鍵(K)、值(V)投影權(quán)重矩陣,即
,這些權(quán)重矩陣與原始文本token使用的權(quán)重矩陣完全分離,以此確保記憶token能專注于“語義濃縮”這一核心任務(wù),不受原始文本token參數(shù)的干擾。
其次,在注意力計算環(huán)節(jié),處理每個“原始文本窗口+記憶token”單元時,模型會同時對兩類token的注意力進行計算:一方面,基于記憶token的嵌入矩陣
,通過專屬權(quán)重矩陣計算出對應的Q、K、V,公式為:
另一方面,將原始文本token的Q、K、V與記憶token的Q、K、V進行拼接,進而計算全局注意力,具體公式為:
其中,
分別代表歷史處理過程中積累的記憶token的KV緩存。
最后,在緩存更新策略上,每處理完一個“原始文本窗口+記憶token”單元后,模型會丟棄原始文本token的KV緩存(
與
),僅保留記憶token的KV緩存(
與
),并將其與歷史記憶緩存進行拼接更新,即
——這一步是實現(xiàn)“KV空間壓縮”與“內(nèi)存降低”的關(guān)鍵,通過用少量記憶token的緩存替代大量原始文本token的緩存,直接實現(xiàn)內(nèi)存占用的線性降低。 - 壓縮比控制:靈活平衡效率與語義完整性
論文用 “壓縮比β=l/k” (其中l(wèi)ll為原始文本窗口長度,kkk為記憶token數(shù)量)來控制 KV 緩存的壓縮程度,這里的 β 是原始文本窗口長度和記憶 token 數(shù)量的比值,支持 4、8、16、32、64 等多檔配置,能根據(jù)不同任務(wù)的需求靈活調(diào)整。
從壓縮效果來看,當 β=64 時,128K tokens 的原始文本窗口,只需要 2K 記憶 token 就能覆蓋,GPU 內(nèi)存占用能降低約 64 倍;原本只能處理 128K tokens 的 LLM,這時能處理高達 8M tokens 的超長篇文本,徹底突破了原生上下文窗口的限制。
在性能平衡上,實驗顯示,隨著 β 增大(壓縮更激進),模型性能會輕微下降,但當 β=32 時,性能就趨于穩(wěn)定了 —— 即便 β=64(極端壓縮),MemoRAG 在 LongBench 基準的 “NarrativeQA 問答任務(wù)” 中,F(xiàn)1 得分仍有 26.3,比傳統(tǒng) RAG 方法(如 BGE-M3 的 20.3)還高,這說明就算壓縮得很厲害,記憶 token 也能保留原始文本的關(guān)鍵語義,不影響后續(xù)任務(wù)性能。
三段式訓練:讓記憶模塊“會記憶、能生成”
為確保記憶模塊能生成有效線索,團隊設(shè)計“預訓練→監(jiān)督微調(diào)(SFT)→生成反饋強化學習(RLGF)”的三段式訓練流程,僅優(yōu)化記憶模塊的新增參數(shù)(如
),凍結(jié)底層LLM參數(shù),大幅降低訓練成本。
- 預訓練:讓模型學習“濃縮語義”,使記憶token具備“吸收窗口語義”的能力,確保全局記憶能完整留存長文本關(guān)鍵信息——給模型輸入長文本,訓練其用記憶token預測下一個token,確保記憶能保留關(guān)鍵信息。
損失函數(shù)采用交叉熵損失,最大化“基于記憶+當前文本”生成正確下一個token的概率:
- 監(jiān)督微調(diào)(SFT):預訓練后的記憶模塊僅具備“語義濃縮”能力,需通過SFT讓其學會“基于任務(wù)生成檢索線索”,適配不同長上下文任務(wù)(如問答、摘要)——給模型輸入“查詢+全局記憶”,讓其生成與任務(wù)匹配的線索(如摘要任務(wù)生成“核心觀點”,問答任務(wù)生成“關(guān)鍵實體”);
輸入“長文本+任務(wù)指令(如查詢、摘要要求)”,讓記憶模塊生成線索;采用交叉熵損失,最小化生成線索與人工標注線索的差異,公式為:
- 生成反饋強化學習(RLGF):SFT僅保證線索與標注的“文本匹配”,但無法確保線索能引導檢索到高質(zhì)量證據(jù)(即“線索的實際效用”)。RLGF通過“最終答案質(zhì)量反哺線索生成”,讓記憶模塊優(yōu)先生成“能提升檢索-生成效果”的線索——如果某條線索能引導檢索到高質(zhì)量證據(jù),就給這條線索“獎勵”,讓模型優(yōu)先生成類似線索。
用“最終答案質(zhì)量”作為線索的獎勵(
為偏好線索的獎勵,
為非偏好線索的獎勵),采用基于偏好的排序損失,驅(qū)動模型生成更優(yōu)線索,公式為:
該損失確保“偏好線索的獎勵高于非偏好線索”,若
,則觸發(fā)損失優(yōu)化;

04、實驗驗證:MemoRAG有多強?
團隊在 LongBench、InfiniteBench(主流長上下文基準)和自建的 UltraDomain(覆蓋法律、金融、物理等 20 個領(lǐng)域)三個數(shù)據(jù)集上做了測試,結(jié)果證明 MemoRAG 在 “性能”“泛化性”“效率” 三方面全面領(lǐng)先,同時通過消融實驗進一步驗證了核心設(shè)計的必要性與魯棒性。
性能:碾壓傳統(tǒng)RAG與長LLM
先看結(jié)論,MemoRAG在性能上持續(xù)優(yōu)于標準RAG、先進RAG系統(tǒng)及長上下文LLM;其適用范圍突破簡單問答任務(wù),能有效處理非問答任務(wù)與復雜問答任務(wù)。得益于全局記憶增強檢索,MemoRAG在標準RAG系統(tǒng)難以應對的場景中,優(yōu)勢尤為明顯。
在簡單QA任務(wù)(如HotpotQA多文檔問答)中,MemoRAG的F1得分比傳統(tǒng)RAG(如HyDE、GraphRAG)高10%-15%;在非QA任務(wù)(如政府報告摘要)中,優(yōu)勢更明顯——傳統(tǒng)RAG因無法處理模糊需求,摘要完整性得分僅28分,而MemoRAG達到32.9分(滿分50),甚至超過直接用128K LLM處理全文本的效果(32.2分)。

在UltraDomain的法律數(shù)據(jù)集上,面對56K tokens的合同文本,傳統(tǒng)RAG回答“Outside Date的意義”時,僅能給出“是一個截止日期”的模糊答案(F1=0.36),而MemoRAG能精準定位“Outside Date為2020年10月5日,未達標則合同自動終止”(F1=0.83)。

泛化性:跨領(lǐng)域無壓力
UltraDomain數(shù)據(jù)集覆蓋20個領(lǐng)域,包括數(shù)學公式推導、農(nóng)業(yè)技術(shù)手冊、音樂理論等專業(yè)內(nèi)容。測試顯示,MemoRAG在所有領(lǐng)域的表現(xiàn)均優(yōu)于基線——即使在完全未訓練過的“烹飪教程摘要”“哲學論文問答”任務(wù)中,得分仍比傳統(tǒng)RAG高20%以上,證明其全局記憶模塊能快速適配不同領(lǐng)域的語義邏輯。

效率:內(nèi)存與速度的平衡
處理128K tokens文本時:
- 長LLM(如Phi-3-mini-128K)需60GiB以上GPU內(nèi)存,預填充時間超過40秒;
- MemoRAG因采用KV壓縮,內(nèi)存占用僅45GiB,預填充時間縮短至25秒,檢索速度雖比傳統(tǒng)RAG慢10%(需生成線索),但遠快于GraphRAG(依賴GPT-4o API,檢索時間超1分鐘)。
綜合實驗結(jié)果來看,MemoRAG在時間與內(nèi)存效率上實現(xiàn)了良好平衡:盡管其速度慢于標準RAG,但在時間與內(nèi)存效率上均優(yōu)于先進RAG方法與長上下文LLM。

消融實驗:驗證核心設(shè)計的必要性與魯棒性
- 模型設(shè)計與優(yōu)化策略:對比輕量級與緊湊型記憶及不同訓練階段性能,發(fā)現(xiàn)每項技術(shù)設(shè)計均對 MemoRAG 有效性有獨特貢獻,移除任意一項會導致性能下降,驗證了各組件的必要性。

- 基礎(chǔ)模型選擇:將記憶模型底層 LLM 替換為 Qwen2-7B-instruct 后,仍能實現(xiàn)穩(wěn)定性能提升,表明 MemoRAG 記憶模型設(shè)計魯棒且適配多種 LLM。

- 不同生成器影響:搭配三種不同生成器時,MemoRAG 性能均優(yōu)于直接使用長 LLMs,且上下文超出生成器原生窗口時性能差距擴大,證明其適配不同生成器并能提升任務(wù)性能。

- 壓縮比影響:壓縮比 β 增大時性能呈下降趨勢但 β=32 后趨于穩(wěn)定,且所有 β 取值下 MemoRAG 性能均優(yōu)于標準 RAG,說明其能平衡效率與性能并捕捉關(guān)鍵信息。

05、落地思考:MemoRAG如何解決實際問題?
MemoRAG的價值不僅在于技術(shù)突破,更在于為企業(yè)級知識庫、長文檔分析等場景提供了可行方案。結(jié)合論文與實踐經(jīng)驗,落地時需重點關(guān)注“記憶與文本塊的協(xié)同”“多文檔處理”兩個核心問題。
存儲設(shè)計:隔離存儲+關(guān)聯(lián)索引
MemoRAG需要存儲“全局記憶向量”和“原始文本塊”兩類數(shù)據(jù),建議采用“雙存儲層”設(shè)計:
- 記憶向量層:用輕量KV存儲保存每個文檔的全局記憶向量,核心字段包括“文檔ID”“記憶向量”“生成時間”——用于快速加載記憶,生成線索;
- 文本塊層:用向量數(shù)據(jù)庫存儲切割后的文本塊,核心字段包括“文檔ID”“文本內(nèi)容”“位置信息”——用于線索引導的精準檢索;
- 關(guān)聯(lián)機制:通過“文檔ID”建立兩者關(guān)聯(lián),確保線索僅檢索對應文檔的文本塊,避免跨文檔混亂。
多文檔場景:先粗篩,再細查
面對跨文檔任務(wù)(如“對比3份財務(wù)報告的營收趨勢”),MemoRAG的處理邏輯為:
- 先對所有文檔生成全局記憶,建立“文檔元數(shù)據(jù)向量庫”(存儲每個文檔的標題、摘要向量);
- 用用戶查詢粗篩出Top 5相關(guān)文檔(如“2022-2024年營收報告”);
- 對每個文檔生成線索,分別檢索對應文本塊;
- 最后匯總多文檔的線索與細節(jié),生成對比性答案。
06、總結(jié):RAG技術(shù)的下一站是什么?
MemoRAG的出現(xiàn),標志著RAG從“工具”向“智能系統(tǒng)”邁進了一步——它不再依賴用戶提供明確查詢,而是能主動理解模糊需求,通過“記憶-線索”環(huán)節(jié)搭建“需求與數(shù)據(jù)”的橋梁。
對于開發(fā)者和企業(yè)而言,MemoRAG的價值在于:
- 降低長文本處理成本:無需為128K+上下文的LLM支付高昂算力,用輕量級模型+KV壓縮即可處理超長文本;
- 拓展RAG應用邊界:首次將RAG從簡單QA推向摘要、跨文檔分析、法律合同解讀等復雜場景;
未來,隨著記憶模塊的進一步優(yōu)化(如動態(tài)調(diào)整壓縮比、多模態(tài)記憶),RAG或許能真正實現(xiàn)“像人一樣理解長文檔”,為醫(yī)療報告分析、學術(shù)論文解讀、企業(yè)知識庫等領(lǐng)域帶來更顛覆性的改變。





































