:::
【專欄】大型語言模型在長篇對話中的記憶覆寫障礙

發布時間: 2026-07-08

作者:黃瀚萱副研究員(本院資訊科學研究所)

黃瀚萱副研究員與電腦「對話」的旅程已持續數十年。出於對電腦的熱愛,其早期透過程式語言來理解電腦的運作邏輯;而後,這份渴望驅使其走入自然語言處理(NLP)領域,致力於教導電腦聽懂人類的語言。

在多年的 NLP 研究生涯中,作者始終不滿足於單純的詞彙或句構解析,而是將目光聚焦於「巨觀」的篇章分析(Discourse Analysis),探索語言在多元、複雜且廣闊的脈絡下如何被理解與運作。隨著 AI 進入大型語言模型(LLM)時代,其研究也邁向更深層的認知領域:包含探索 LLM 的後設認知、賦予模型時空感知能力,以及在多模態場景下,如何讓 AI 完成文化與價值觀後對齊,並將前沿的 AI 技術部署到真實的應用情境中。


大家在日常生活中使用ChatGPT或其他大型語言模型(LargeLanguageModel,LLM)時,可能遇過這樣的狀況:你要求AI幫忙規劃一趟旅行,一開始設定了「找便宜且有免費停車場的飯店」。聊了幾句後,你改變主意說「改成四星級飯店」,接著又因為行程變動,把入住時間從星期二改成星期四。

對於人類客服或旅行社專員來說,這種「隨時改變心意」的溝通是非常自然且容易處理的。然而,當你滿心期待AI給出最終確認時,它卻常常像是腦筋轉不過彎一樣,不是把舊的條件和新的條件混在一起,搞不清楚你最終版的條件是什麼。

為什麼號稱能通過各種艱難人類考試、擁有強大推理能力的最先進AI,卻在這種日常的對話更新中出錯?我們團隊去年在國際頂級人工智慧會議AAAI2025發表的研究中,點出了一個迫切的現實問題:當今的對話系統在面對「使用者意圖改變」時,即時更新資訊的適應能力依然是一大挑戰。要理解AI為什麼會犯這種「死腦筋」的錯,我們可以從LLM的底層架構(如Transformer神經網路)、上下文視窗(ContextWindows)的限制,以及模型訓練方式等三個維度來一探究竟。

Transformer的長篇記憶反而成了新舊混淆

現在市面上強大的LLM,底層幾乎都依賴於Transformer架構。Transformer的核心靈魂在於「注意力機制(AttentionMechanism)」。當人類在閱讀一篇長文或進行長對話時,我們的大腦會自動將舊的、錯誤的資訊從短期記憶中「淡化」或「覆寫」;但Transformer的運作方式卻截然不同。

在Transformer的眼中,對話歷史中的每一個字詞(Token)都是同時存在的。當你前幾分鐘說了「我想找一間學校參觀」,後來又改口說「其實我想找個公園」時,這兩個意圖同時躺在模型的記憶庫裡。

當AI準備生成回答時,注意力機制會計算過去所有字詞對當下語境的「權重」。問題在於,模型往往難以判斷新舊資訊的「互斥性」。它可能會認為「學校」和「公園」都是你想去的地點,導致它無法有效地忽略或重新脈絡化(re-contextualizing)那些已經過時的舊資訊。當具有互斥性的資訊在對話過程中更新了,卻沒有明確機制強制將舊事實的注意力權重調降,模型很容易陷入新舊資訊的混淆。

上下文視窗(ContextWindows)中的「注意力稀釋」

隨著對話輪數的增加,問題會變得更加嚴重。這就是所謂的上下文視窗限制。想像上下文視窗是一塊大黑板,你和AI的對話就是不斷在黑板上寫字。雖然現在的LLM黑板越做越大,可以容納數十萬個詞組,但這不代表它能精準找到黑板角落的一行小字。當對話變得冗長,使用者在「舊意圖」與「新意圖」之間來回穿插時,AI必須持續追蹤整段對話,找出意圖轉變的節點,並調和資訊流中的矛盾,而這需要極度進階的上下文理解與記憶管理能力,已經逼近了當前自然語言處理技術的極限。當視窗內充滿了各種條件與對話,AI對於最新意圖的注意力就會被稀釋,導致它可能不小心回憶起幾十分鐘前你早就不要的那個選項。

預訓練與對齊機制的「副作用」

最後一個關鍵原因,藏在LLM的訓練方式裡。LLM的基礎訓練是預測下一個字(Next-TokenPrediction)。它讀遍了網路上的海量文本,學習字詞之間的機率分佈。但在真實的網路文章中,人類很少會用幾千字的篇幅寫下一個條件,然後在文章結尾突然說「前面寫的都不算數,改成另外一個」。缺乏這種專門針對「動態對話狀態追蹤」的訓練資料,使得模型先天就不擅長處理意圖的翻盤。

更引人深思的是,我們為了讓AI變得「安全」、「有禮貌」,通常會對它們進行人類回饋增強學習(RLHF)或直接偏好最佳化(DPO)。這種訓練雖然讓AI變得聽話,但也可能讓它們變得過於「保守」。我們在這篇研究中發現了一個極度違反直覺的現象:在2024年當時擁有最強能力的GPT-4,在這個任務上的表現竟然輸給了上一代的GPT-3.5!為什麼會這樣?我們提出了一個假說:GPT-4為了減輕惡意攻擊並提升安全性,經歷了更為嚴格的強健性(Robustness)訓練。這使得GPT-4在面對使用者的輸入時,更傾向於死守最初的指令,不輕易被後續的話語改變。這種為了防禦提示詞注入(Prompt Injection)而建立的防護罩,反而成為了它在正常對話中無法順暢對齊使用者最新意圖的絆腳石。

DynDST資料集與嚴苛的測試

為了系統性的探索這個問題,我們的團隊開發了一個專門的資料集,DynDST (Dynamic Dialogue State Tracking),評測大型語言模型追縱使用者意圖動態的能力。這不是單純的問答題庫,我們基於知名的MultiWOZ 2.2 對話資料庫改造而成的動態模擬情境。團隊在其中設計了複雜的陷阱:

●錯誤回合(Falseturn):包含使用者最初的錯誤意圖(例如:我想找一間學校)。
●更新回合(Updateturn):使用者改口修正意圖的回合(例如:其實我想找一個公園)。
●測試回合(Testturn):最終考驗AI是否有跟上最新進度的問題(例如:所以我剛才說想去哪種景點?)。整個資料集包含了高達8,001筆這樣充滿變數的長對話資料。
這項測試涵蓋了封閉源的GPT、Gemini,以及開源的Vicuna與Llama等多款知名模型。結果顯示,在零樣本(Zero-shot)的設定下,這些當代最先進的LLM都難以精準捕捉自然對話中微細的意圖變化。

給使用者的實用建議:如何讓AI聽懂你的「反悔」?

對於一般使用者來說,這項學術研究提供了非常實用的「避坑指南」。

研究發現,使用者如何表達「我改主意了」,會直接決定AI能不能成功更新記憶。實驗對比了兩種更新方式:
1.隱性更新(Implicit Update):直接給出新指令,例如「請幫我找一個公園。」
2.顯性更新(Explicit Update):明確指出舊的是錯的,並給出新的。例如「很抱歉我剛剛說錯了,不是學校,其實是公園。」

實驗數據顯示,顯性更新的效果穩定超越了隱性更新。如果你還能誘導機器人回覆一句「沒問題,我已經根據您的修正更新了我的記憶」,AI的成功率將進一步提升。透過這個簡單卻有效的方法,開源模型Vicuna 33B的準確率甚至驚人地提升了17.5%,幾乎追平了強大的GPT-4。

另外一個有趣的發現是,對於Google的Gemini模型來說,將對話歷史全部塞在一起的「單回合(Single-turn)」輸入格式,其表現竟然比正常的「多回合(Multi-turn)」對話格式更好,甚至超越了多回合設定下的GPT-3.5。

通往真實人類對話

人類的對話從來都不是一條直線,而是充滿了猶豫、口誤、反悔與自我修正。我們大腦的「注意力機制」懂得何時該放下過去,擁抱改變。未來的AI發展,除了不斷擴大上下文視窗、增加參數之外,或許需要引入技術來針對「意圖動態對齊」進行專門的最佳化,讓AI真正學會聰明地處理人類的「善變」,成為真正懂我們的貼心夥伴。