北京郵電大學最新研究:使用提示工程解決大模型記憶問題
北京郵電大學的研究者發(fā)現(xiàn)了一個免訓練的提示技巧,能讓大型語言模型在多輪對話中的推理時間減少73.1%,令牌(tokens)消耗減少59.4%,同時問答準確率還提升了14.1%。

大模型記性差,聊得越久越糊涂
大型語言模型有個軟肋,就是記性不太好,尤其是在連續(xù)進行多輪對話的時候。
你可以把它想象成一個記憶力只有七秒的魚,聊著聊著,就忘了你們最開始在聊什么。它更傾向于記住最近聽到的幾句話,對早先的信息則印象模糊。這在學術(shù)上被稱為“遺忘現(xiàn)象”或“近因偏見”。
這個毛病很要命。因為很多復雜的任務,比如分析一份長長的報告、當一個智能客服、或者做一個需要多步驟推理的問答,都需要模型能記住并整合貫穿整個對話的所有信息。如果它聊到后面忘了前面,那最終的結(jié)論就很可能跑偏,甚至得出完全錯誤的答案。
為了搞清楚這個問題到底有多嚴重,北京郵電大學人工智能學院的研究者設計了兩個非常直接的實驗。
他們用了一個叫HotpotQA的公開數(shù)據(jù)集,這個數(shù)據(jù)集的特點是需要模型閱讀好幾段文字,然后綜合里面的信息才能回答一個問題。
第一個實驗是測試對話長度的影響。研究者把需要模型閱讀的10個段落,分別打包成1輪、5輪和10輪對話發(fā)給模型。也就是說,要么一口氣把所有材料都給它,要么分5次給,要么分10次給。在每一輪,都要求模型篩選出對回答問題有用的關鍵句子。
結(jié)果怎么樣呢?

F1分數(shù)(一個衡量準確率的指標)隨著對話輪數(shù)的增加,穩(wěn)定地往下掉。對話輪次越多,模型表現(xiàn)越差。有趣的是,模型規(guī)模越大,這種性能下降反而越明顯。這說明,雖然更大的模型在單次理解能力上更強,但它們同樣沒能解決在多輪對話中記住歷史上下文這個根本性的挑戰(zhàn)。
第二個實驗更進一步,直接去戳模型的痛點:信息的位置到底有多大影響?
研究者們把回答問題最關鍵的那個段落,有時候放在第一輪對話就告訴模型,有時候則藏到最后一輪才給它。
結(jié)果戲劇性地出現(xiàn)了。

當關鍵信息出現(xiàn)在最后一輪時,模型的性能得分要高得多。這幾乎是無可辯駁的證據(jù),證明了模型存在嚴重的“近因偏見”。它就是更偏愛眼前的信息,對那些“陳年舊事”則不太上心。
目前主流的多輪對話方式存在兩個大問題:第一,模型會忘記早期的輸入;第二,模型很難把不同輪次的信息有效地整合起來進行思考。
不聊歷史,只更新狀態(tài)
傳統(tǒng)的對話方式,就像我們用微信聊天一樣,新的信息不斷附加在舊的聊天記錄后面,整個歷史記錄越來越長。這對計算機來說負擔很重,因為模型每一輪都要把全部歷史記錄再讀一遍,既浪費時間又消耗計算資源。

研究者提出的新策略叫“狀態(tài)更新多輪對話策略”,這個方法非常巧妙,它不需要重新訓練模型,僅僅通過改變給模型提問的方式(也就是提示工程)就解決了問題。
它的核心思想是:別再讓模型背著越來越重的歷史包袱前進了。
在每一輪對話結(jié)束后,我們不保留完整的對話歷史,而是提煉出一個“當前狀態(tài)”,這個狀態(tài)只包含到目前為止所有對解決問題有用的關鍵信息。下一輪對話開始時,我們只需要把新的材料和這個濃縮后的“當前狀態(tài)”一起交給模型就行了。
這個策略主要靠三個技術(shù)組件實現(xiàn)。
第一個叫“狀態(tài)重構(gòu)”(State Reconstruction, SR)。它的作用就是減負。每一輪對話,輸入給模型的信息長度基本是固定的,不會隨著對話輪數(shù)的增加而無限膨脹。因為它包含的不是全部聊天記錄,而是“新的段落”加上“上一輪提煉出的關鍵信息”。
第二個叫“歷史提醒”(History Reminder, HR)。這是整個策略的點睛之筆。通過一個名為“先前選擇”的機制,在每一輪都非常明確地把上一輪篩選出的關鍵句子再次展示給模型。這就像一個秘書在旁邊不停地提醒老板:“老板,別忘了,我們上次開會的核心結(jié)論是這些”。這種方式強制模型必須關注并整合所有跨越時間線的關鍵信息,從而有效對抗遺忘。
第三個是“XML結(jié)構(gòu)化輸出”。為了讓上面兩個機制能自動化地運轉(zhuǎn)起來,模型每次的輸出都必須是標準、規(guī)范的。研究者要求模型把所有找到的關鍵句子,都用一個<info>...</info>這樣的XML標簽包裹起來。這樣,程序就能非常輕松準確地解析出上一輪的結(jié)果,然后用于構(gòu)建下一輪的輸入。

整個對話流程是這樣運作的:
首先,研究者給模型設定一個全局規(guī)則,這個規(guī)則在所有對話輪次中都一樣,寫在系統(tǒng)提示(SYSTEM Prompt)里:
SYSTEM: You are helping to find supporting sentences...
Format your response with <info>...</info>tags. Each response should contain ALL supporting sentences (previous + new ones).這個提示告訴了模型兩件核心任務:第一,你的回答必須用<info>標簽包起來。第二,你每次回答,都必須包含之前所有輪次找到的關鍵句,再加上當前輪次新找到的關鍵句,是一個累積的過程。
對話開始。
第一輪,用戶提出問題,并給出第一段上下文。
USER: Question: ...Context: {passage 1}
USER: Question: ...
Context: {passage 1}模型閱讀后,會輸出它認為的關鍵句子,并用<info>標簽包好。
從第二輪開始,“狀態(tài)更新”的魔法就啟動了。用戶會輸入新的文本段落,同時,把上一輪模型輸出的<info>標簽里的內(nèi)容,作為“先前選擇”的歷史提醒,一起發(fā)給模型。
USER:
Question: ...
New Context : {passage k}
USER: Previously selected: {supporting sentences from turn k-1}程序在每一輪結(jié)束后,自動解析模型輸出的關鍵句子,然后填充到下一輪的“先前選擇”字段里。這個過程循環(huán)往復,直到所有段落都處理完畢。
模型真的記憶變好了嗎?
研究者在三個公開數(shù)據(jù)集上進行了全面的測試,分別是HotpotQA、2WikiMultiHopQA和QASC。前兩個是需要多跳推理的問答數(shù)據(jù)集,非常考驗模型整合信息的能力。
實驗用的模型是Qwen2.5-Instruct系列。
他們把傳統(tǒng)的線性歷史連接方法作為“基線”,用來和新的“狀態(tài)更新”策略進行對比。
首先看性能。

在所有三個數(shù)據(jù)集上,基線方法的性能都隨著對話輪數(shù)的增加而急劇下降,就像我們前面實驗看到的那樣。而狀態(tài)更新策略的表現(xiàn)則非常穩(wěn)健,幾乎不受對話長度的影響。在10輪對話的場景下,新方法的Word F1分數(shù)平均提高了大約10%,由大型語言模型評估的Info Score(信息分數(shù))更是增加了超過1.5分。這證明它確實有效地整合了歷史信息,克服了遺忘問題。
再來看效率,這可以說是最驚人的部分。
表1:主要結(jié)果和消融研究。我們的方法在有效性(Info/QA分數(shù))和效率(時間/令牌)方面均優(yōu)于基線。消融研究證明了HR和SR組件的必要性。(↑:越高越好,↓:越低越好)

在5輪對話中,新方法將總令牌消耗減少了59.4%,推理時間更是減少了73.1%。這意味著過去需要花費100塊錢和1分鐘才能完成的任務,現(xiàn)在只需要花40塊錢和不到20秒就能搞定。這個效率提升是巨大的,因為它避免了每一輪都重復處理冗長的歷史記錄。
研究者還測試了新方法在不同尺寸模型上的普適性。

結(jié)果顯示,無論是30億參數(shù)的小模型,還是140億參數(shù)的大模型,狀態(tài)更新策略都穩(wěn)定地優(yōu)于傳統(tǒng)方法。這說明這個策略的改進是根本性的,不是碰巧在某個特定設置下才有效。
更重要的是,這種高效的信息過濾能力,直接轉(zhuǎn)化為了下游任務的更優(yōu)表現(xiàn)。在篩選出關鍵信息后,模型最終回答問題的得分(QA Score)也比基線方法高出了14.1%。這證明了通過狀態(tài)更新保留下來的信息,不僅緊湊高效,而且對于完成復雜的推理任務極具價值。
為了驗證這個策略設計的合理性,研究者還做了消融研究,也就是把策略的核心組件一個個拿掉,看看會發(fā)生什么。
當把“狀態(tài)重構(gòu)”(SR)模塊去掉后(無SR),整個系統(tǒng)的效率瞬間掉到和基線差不多的水平,證明了SR在壓縮上下文、提升效率方面的核心作用。
而當把“歷史提醒”(HR)模塊去掉后(無HR),性能則出現(xiàn)了災難性的下滑,信息分數(shù)從6.91暴跌至3.74,問答分數(shù)也從7.22降到了4.68。這個結(jié)果強有力地證明了,歷史提醒機制才是跨輪次推理和上下文理解的基石。
結(jié)論很明確:狀態(tài)重構(gòu)(SR)保證了效率,歷史提醒(HR)驅(qū)動了性能,兩個組件缺一不可。
應用前景廣闊
任何需要和用戶進行長時間、多輪次交流的系統(tǒng),都能從中受益。
比如智能客服。它可以幫助客服機器人更好地記住用戶之前提到的所有問題和細節(jié),避免讓用戶重復描述,從而提供更精準、更連貫的服務。
比如在線教育。一個AI輔導老師可以用這個策略來持續(xù)跟蹤學生的學習進度和歷史提問,形成一個動態(tài)更新的“學生狀態(tài)”,從而提供更有針對性的個性化指導。
這項技術(shù)也可能為檢索增強生成(Retrieval-Augmented Generation, RAG)技術(shù)帶來新的可能性。RAG系統(tǒng)通過從外部數(shù)據(jù)庫檢索信息來提升回答的準確性,但如果檢索到的信息很多,如何讓模型有效消化并記住這些信息,同樣是個挑戰(zhàn)。狀態(tài)更新策略可以幫助RAG系統(tǒng)更高效地管理和利用檢索到的知識。
長遠來看,這項研究為構(gòu)建更強大的智能代理(Intelligent Agent)的記憶模塊提供了關鍵的思路。智能代理需要維護一個關于世界和自身任務的內(nèi)部狀態(tài),并根據(jù)新的信息不斷更新。狀態(tài)更新策略,本質(zhì)上就是一種高效、明確的狀態(tài)管理機制。
下次當你發(fā)現(xiàn)大模型開始胡言亂語時,是不是也該考慮幫它“更新”一下狀態(tài)了?

























