這項由耶路撒冷希伯來大學、以色列理工學院、伊利諾伊大學厄巴納-香檳分校及南加州大學聯合開展的研究,以預印本形式於2026年4月16日發布在arXiv平台,論文編號為arXiv:2604.15574。有興趣深入了解技術細節的讀者可以通過該編號檢索原文。
每當我們使用ChatGPT或類似的AI助手時,偶爾會發現它們自信滿滿地說出一些錯誤的事實——把某個真實城市的位置說錯,把一位名人的出生地張冠李戴。這類現象有個專門的名字叫"幻覺"(hallucination),是目前AI領域最讓工程師頭疼的問題之一。大多數人以為這只是模型"學習不夠"造成的,然而這項研究揭示了一個更出乎意料的真相:很多時候,AI在接受"補課"(微調)之後,反而把自己原本就會的知識給"忘"了。更關鍵的是,研究團隊不僅找出了背後的原因,還給出了切實有效的解決方案。
以一個學生為核心比喻來理解整項研究會容易得多。假設有個學霸同學,在高中階段積累了紮實的歷史、地理和文學基礎知識。畢業後,他參加了一個專門學習新編程語言的集訓營。集訓結束之後,他的編程能力確實提高了,可當你再問他"法國的首都是哪裡?"時,他卻支支吾吾說不準了。這種現象就是研究者所說的"事實遺忘",而集訓營里學到的大量新知識正是讓他忘掉舊知識的罪魁禍首。這項研究的核心任務,就是搞清楚集訓營里究竟發生了什麼,以及如何讓他在學新知識的同時不丟掉舊知識。
一、學霸為什麼會"忘事"——問題的本質
要理解這項研究,先要了解大語言模型是怎麼"學習"的。在最初的預訓練階段,模型讀取了海量的網際網路文字,把人類世界的各種事實和知識"壓縮"到了數十億個參數裡,就像把一座圖書館的內容都記進腦子裡。這個階段結束後,模型已經知道"巴黎是法國首都"、"魯迅是中國著名作家"等無數事實。
然而,預訓練完成的模型還不太懂得"好好說話"——它不知道用問答格式、對話格式和用戶交流。於是工程師們會進行第二階段的訓練,稱為"有監督微調"(Supervised Fine-Tuning,簡稱SFT)。這就像是讓圖書館裡的百科全書參加一個演講培訓班,學會用流暢清晰的方式回答問題。
問題就出在這個培訓班上。當培訓班的教材里包含了模型此前從未見過的新事實時,模型在學習這些新知識的過程中,會悄悄損壞它原本已經記住的舊知識。結果就是:它學會了新內容,卻把老底子"覆蓋"了一部分,開始對原本答得很好的問題給出錯誤答案——幻覺由此而生。
研究團隊把這個現象套入了一個經典的學習理論框架,叫做"穩定性-可塑性困境"(stability-plasticity dilemma)。可塑性指的是學習新東西的能力,穩定性指的是保住舊知識的能力。通常情況下,這兩者是此消彼長的關係,就像一塊橡皮泥,你捏它越多它越容易變形,但原來的形狀也越難保留。
為了精確研究這個問題,研究團隊建立了一個非常精巧的實驗框架。他們使用了一個叫做ENTITYQUESTIONS的數據集,這個數據集包含了大量來自維基百科的事實問答,例如"某某作品的語言是什麼?"或"某某地方屬於哪個國家?"。接著,他們使用一個名為SLiCK的方法,把每道題對模型來說分成四個等級:模型每次都能答對的(HighlyKnown,稱為"熟知事實")、有時能答對的(MaybeKnown)、偶爾答對的(WeaklyKnown)、以及從來答不對的(Unknown,稱為"未知事實")。
實驗時,訓練集由兩部分混合而成:一部分是模型已經熟知的事實,作用是教模型用問答格式正常對話;另一部分是模型完全不知道的新事實,作用是測試模型學習新知識的能力。同時,另一批模型熟知的事實被單獨留出來作為"哨兵",專門用來監測模型的舊知識是否在訓練過程中被悄悄損壞。這個設計讓研究團隊可以清晰區分三件事:模型是否學會了答題格式、模型是否學會了新事實,以及模型是否在這個過程中忘掉了舊事實。
實驗結果相當直觀。訓練開始後的頭幾個階段,模型迅速掌握了問答格式,"哨兵"題的準確率也相應攀升,最高達到了93%。然而隨著模型開始把新事實真正"消化進去",哨兵題的準確率就開始緩慢但穩定地下滑,最終下降了大約15個百分點。對比實驗證實了這一點:當研究者把訓練集中的新事實全部去掉,只用模型已知的事實來訓練時,哨兵題的準確率從頭到尾都保持穩定,毫無下滑跡象。由此可以確定,讓舊知識受損的元兇正是新知識的學習過程,而非微調本身。
二、凍結部分"記憶迴路"——第一種解決方案
找到了問題的源頭,研究團隊開始尋找解決方案。他們的第一個思路來自一個有趣的發現:大型語言模型內部並非鐵板一塊,不同類型的神經網路層承擔著不同的職責。
模型內部大致有兩類關鍵層:負責處理"關係和注意力"的注意力層(Attention Layers),以及負責儲存和提取具體事實的前饋網路層(FFN Layers,也叫Feed-Forward Network)。可以把前饋網路層比作圖書館的書架,上面存放著具體的百科知識;而注意力層則像是圖書館員,負責根據問題找到正確的書架位置。
基於這個區別,研究團隊做了一系列"局部凍結"實驗。在訓練時,他們分別嘗試只更新注意力層、只更新前饋網路層,以及同時更新所有層,然後觀察三種方案對新知識學習和舊知識保留的不同影響。
結果非常有啟發性。當只更新前饋網路層時,模型的表現和正常全量訓練幾乎一模一樣——它成功學會了新事實,但舊知識的損失幅度也與全量訓練相當,兩者的"遺忘"程度緊密綁定在一起。相反,當只更新注意力層時,情況發生了戲劇性的逆轉:模型幾乎完全沒有學到任何新事實(新事實的準確率僅約1%),但舊知識的保留卻極為完好,哨兵題準確率接近"從不學新東西"時的上限水平,同時模型仍然順利掌握了問答的對話格式。
這意味著,如果在某些場景下,你根本不希望模型通過微調學新事實——比如對一個企業內部助手進行"讓它更懂禮貌"的對齊訓練,或者針對隱私保護需求進行微調——那麼只需把前饋網路層凍結住,只允許注意力層更新,就可以在讓模型學會新的對話風格的同時,幾乎完全防止舊知識被意外覆蓋,把"遺忘"幅度從約15%壓縮到約3%。
研究者進一步做了更細粒度的實驗,把注意力層內部的四個子模組(分別處理"查詢"、"鍵"、"值"、"輸出"的投影矩陣,記作q、k、v、o)也逐一單獨測試。結果顯示,只要凍結其中任意一個子模組而訓練其餘所有參數,就足以把舊知識的損失壓制到極低水平。換句話說,學新事實這件事對參數的依賴極為集中,稍微卡住一個關鍵"閥門",新知識的湧入就會大幅受阻,舊知識也得以安然無恙。
不過,這個方法有個明顯的局限:它本質上是通過"阻止學習新東西"來保護舊知識的。在很多真實場景下,我們恰恰希望模型在微調時既能學新知識,又不損失舊知識——這就引出了第二種、也是更有意思的解決方案。
三、"自我蒸餾"——既學新知,又不忘舊事
研究團隊的第二個解決方案來自持續學習(Continual Learning)領域的一個經典技術,叫做"自我蒸餾"(Self-Distillation)。
"蒸餾"這個詞源自化學,指的是通過加熱讓混合物中的不同成分在不同溫度下蒸發,從而實現分離提純。在機器學習中,"知識蒸餾"是讓一個已經訓練好的"教師"模型去指導一個正在學習的"學生"模型,讓學生不僅學習正確答案,還要學習教師對各種可能答案的"信心分配"。"自我蒸餾"則更為精妙:教師和學生是同一個模型,只不過教師被凍結在某一個時間節點的狀態,而學生則繼續在新數據上更新學習。
可以用一個非常直覺的類比來理解這個機制。假設你是那個學霸同學,要去參加編程集訓營,同時擔心自己會忘掉歷史地理知識。於是你在出發前做了一件事:給自己拍了一段詳細的影片,裡面講了你對所有歷史地理問題的理解,不只是正確答案,還包括你對各種"可能答案"的判斷(比如"這道題我認為答案很可能是A,B也有一點可能,C基本不可能")。在集訓營學習新知識的整個過程中,你每隔一段時間就會和影片裡的"過去的自己"核對一下:對於那些老問題,你現在的思路和出發前的判斷有沒有偏離太遠?如果偏離了,就調整一下,不要走太遠。
在技術實現上,這個"核對"是通過在損失函數裡加入一個額外的懲罰項來實現的。這個懲罰項會測量當前正在訓練的模型和凍結的"教師"模型在同一批輸入上給出的概率分布之間的差距,差距越大,懲罰越重。通過這種方式,模型被時刻提醒不要離它的"原始狀態"飄得太遠,從而保護了舊知識對應的參數不被隨意改寫。
實驗結果證明這個方法效果顯著。在引入自我蒸餾後,模型學習新事實的速度與正常微調幾乎相同,兩者的學習曲線高度吻合。但與此同時,哨兵題(舊知識指標)的準確率損失從正常微調的約15%大幅壓縮到了約3%——而那剩下的3%,研究者認為很可能是模型在適應新的問答格式時不可避免的輕微調整,而非真正的知識損失。換句話說,自我蒸餾幾乎"完美地"同時實現了學新和保舊兩個目標。
研究團隊還仔細測試了這個方法對參數設置的敏感性。在三個關鍵超參數中,教師模型凍結在第幾個訓練輪次(epoch)的影響最大:如果在模型連問答格式都還沒學會時就凍結教師(第0輪),學生模型的表現在新舊知識兩方面都較差;將教師凍結在第1輪(剛學會問答格式但還未開始消化新事實)效果最佳。蒸餾強度(λ)則調控著一個直接的權衡:強度越低,學新事實越快但舊知識損失越多;強度越高,舊知識保護越好但學新事實所需的輪次也越多。溫度參數(τ)主要影響訓練過程的平滑性,較低的溫度(如0.5)在舊知識保護和學習速度之間取得了最優平衡。
四、"幻覺"的真正根源——三個假說與一個答案
找到了兩種有效的解決方案之後,研究者並不滿足,他們還想搞清楚一個更深層的問題:舊知識究竟是怎麼被"忘掉"的?新知識學習和舊知識損壞之間具體的因果鏈條是什麼?
研究團隊提出了三個競爭性假說,就像三條不同的"破案思路"。第一條思路叫"容量限制說":模型就像一個容量有限的硬碟,新文件塞進來太多,舊文件就會被壓縮或覆蓋,是一種純粹的儲存空間競爭。第二條思路叫"行為克隆說":微調會讓模型養成一種壞習慣,無論知道還是不知道,它都傾向於給出一個答案,而不是說"我不確定",這種行為模式的改變導致它開始瞎猜。第三條思路叫"局部干擾說":當新舊知識對應的內部"表示"(representation,可以理解為模型處理資訊時構建的內部符號)在空間上靠得很近時,更新新知識的參數會像"誤傷"一樣干擾舊知識的儲存,而如果新舊知識對應的內部符號在空間上毫無交集,則不會產生干擾。
為了區分這三個假說,研究團隊設計了一個極為精巧的合成實驗。他們選取了一個單一的知識關係——"地點屬於哪個國家"——然後人為製造了大量從未存在過的虛構地名,給這些虛構地名配上真實的國家名,作為"全新事實"讓模型學習。這些虛構地名被分成兩類:第一類叫"語義鍵",製作方法是把真實地名的組成部件打散重新拼接,例如把"Bergamo"和"Pasadena"的詞素混合拼出"Bergadena",這樣的名字讀起來和真實地名非常相似,但其實並不存在;第二類叫"UUID鍵",就是完全隨機生成的無意義編號,例如"Loc_fcfb46ee",在拼寫上與任何真實地名毫無關聯。
兩種虛構地名在訓練時的規模從一千條到一百萬條不等,其他所有條件完全相同。實驗結果給出了非常清晰的答案。首先,無論哪種虛構地名,模型都完全學會了——兩種條件下新事實的準確率都達到了100%,對已知事實的正常問答也都保持在90%以上,排除了學習效果差異的干擾。真正有差別的是舊知識的損失情況。對於"語義鍵"(那些讀起來像真實地名的虛構名),舊知識的損失隨著新事實數量的增加急劇攀升,在一百萬條新事實的規模下,損失達到了約40個百分點。而對於"UUID鍵"(那些完全隨機的編號),無論新事實規模擴大到多少,舊知識的損失始終維持在約4%的極低水平,幾乎毫無變化。
這個結果對"容量限制說"和"行為克隆說"都構成了直接的反駁。如果問題是儲存空間不夠,那麼UUID和語義鍵裝的事實數量完全一樣,應該產生相似程度的舊知識損失才對,可實際差異卻天壤之別。如果問題是模型學了壞習慣"被迫猜測",那麼兩種條件下引入的未知事實數量也完全相同,同樣不應該有如此巨大的差異。只有"局部干擾說"能夠解釋這一切:語義鍵之所以破壞力強,是因為類似真實地名的虛構名字會與真實地名共享內部表示空間,更新這些虛構地名的參數時,產生的"漣漪效應"會波及鄰近的真實地名表示,把它們也一起擾動了;而UUID鍵在內部空間裡與任何已知地名都相距甚遠,更新它們的參數就像在荒無人煙的地方施工,不會誤傷任何"鄰居"。
研究團隊還進行了一組交叉驗證實驗,專門測試"幻覺是否由關聯值(國家名)決定"。他們將國家名也分成三種:真實國家名、仿造的語義國家名,以及UUID式國家標識。然後把所有兩種地名鍵和三種國家值的組合都測試了一遍,共六種條件。結果非常清晰:舊知識損失完全由地名鍵決定——語義鍵配任何值都造成約38%~41%的損失,UUID鍵配任何值都只造成約4%的損失。這徹底確認了干擾來自於"實體名字如何在模型內部被表示",而非它對應的答案是什麼。
五、解剖"干擾"的內部痕跡——自我蒸餾為何有效
確定了干擾機制之後,研究者進一步追問:自我蒸餾究竟是通過什麼方式阻止了這種干擾?它是一種通用的"減少參數變化量"的正則化效果,還是有其特定的針對性作用?
為了回答這個問題,他們拿自我蒸餾與另一種常見的"減少參數變化"方法——L2正則化——做了對比。L2正則化是一種通用的約束手段,它會在訓練時懲罰參數偏離初始值太遠,效果類似於給參數變化量套上一根橡皮筋。研究者特意把L2正則化的強度調整到與自我蒸餾產生相同量級的參數變化,然後測試兩種方法對舊知識的保護效果。結果顯示,L2正則化下舊知識的損失仍然接近10個百分點,與正常微調相比基本沒有改善;而且增大L2正則化的強度雖然能減少一些舊知識損失,但代價是讓新事實的學習速度嚴重受阻。這說明自我蒸餾的效果並非簡單地來自於"讓參數變化變少",而是有其獨特的作用機制。
更直接的證據來自對模型內部"表示"的跟蹤分析。研究者在訓練過程中,每隔一定步驟就從模型的第14層(這是這個28層模型的正中間位置,也是研究表明實體知識最密集編碼的位置)提取被測試舊事實對應地名的內部向量,並計算這些向量與訓練前版本的"方向差異"——就像追蹤一個人在心理地圖中走了多遠。
三條曲線的對比揭示了關鍵資訊。正常微調下學語義鍵的那條曲線:訓練開始時,內部向量偏移迅速爬升到約5%,這是所有條件共有的部分,對應的是模型學習問答格式帶來的基礎調整;隨後,當語義鍵的新事實開始被消化,曲線繼續上升,最終穩定在約11%。正常微調下學UUID鍵的那條曲線:同樣在最初爬升到約5%之後,就停住了,不再繼續偏移,因為UUID鍵和舊知識在內部沒有交集,學UUID鍵不會波及舊知識的鄰域。自我蒸餾下學語義鍵的那條曲線:同樣經歷了最初約5%的爬升,隨後和UUID那條曲線一樣,穩定在約5%,沒有繼續上升。
換句話說,UUID和自我蒸餾達到了相同的效果——兩者的共同點是"學新知識時不擾動舊知識的內部表示"。UUID是因為它天生就和舊知識在內部空間裡毫無交集;自我蒸餾則是通過強制約束輸出概率分布,阻止了梯度信號沿共享表示路徑反向傳播,從而人為地切斷了新舊知識之間的"誤傷通道"。
研究者還進一步測試了究竟是"對整個詞彙表的概率分布約束"在起作用,還是只需要約束概率最高的那一小部分詞語就夠了。他們設計了"Top-k蒸餾":只對教師模型認為最可能的前76個詞(約占詞彙表的0.5%)施加概率分布約束,完全忽略其餘所有詞。結果令人振奮:Top-k蒸餾的效果與完整蒸餾幾乎完全相同,舊知識損失同樣被壓縮到約3%。作為對照,"隨機76個詞蒸餾"(隨機選76個詞施加約束,而非概率最高的那些)則毫無效果,舊知識損失與正常微調相當。這意味著真正關鍵的不是約束多少詞,而是約束那些模型認為"最可能、最有競爭力"的候選答案——正是這些高概率詞語代表著語義上相互競爭的候選實體,約束它們的相對概率關係,就相當於保住了模型對舊知識"傾向性判斷"的完整性。
六、弱知識的奇異命運——被"強化學習"意外傷害的邊緣知識
研究者還觀察到了一個反直覺的現象,值得單獨拿出來說說。上面的討論都集中在模型"每次都能答對"的高置信度知識上。但實驗數據中還有"偶爾答對"(MaybeKnown)和"答對了但很不穩定"(WeaklyKnown)的事實,它們呈現出截然不同的命運。
"偶爾答對"的知識(MaybeKnown)在正常微調後損失更加慘烈,準確率從約0.64驟降至約0.43,下跌約21個百分點,明顯超過"高置信度知識"約13個百分點的跌幅。可以理解為這類知識編碼得不夠牢固,本來就搖搖欲墜,新事實帶來的"地震"一來,它就比高置信度知識倒得更快。值得欣慰的是,自我蒸餾對這類脆弱知識的保護效果也更為突出,能夠挽回約15個百分點,相對保護率約達90%。
"答對了但很不穩定"的知識(WeaklyKnown)則出現了最令人意外的情況。這類知識的基礎準確率本來就很低,但在"只用高置信度知識訓練"的條件下,準確率反而進一步崩潰到約0.04~0.05,遠遠低於正常微調。研究者的解釋是:當你只餵給模型那些"每次都答對"的問題時,模型會把自己調整成一個"高置信度回答模式"——它更擅長在有把握時給出答案,反而對那些需要"挖掘隱藏記憶"才能找到的知識變得更遲鈍了。正常微調因為包含了各種類型的訓練樣本,反而給了模型一個更加多樣化的優化信號,讓那些邊緣知識得以被偶爾激活,保持了比"只用高置信度知識訓練"更高的準確率。
這個發現提醒我們,知識的保護和遺忘遠比表面看起來複雜——不同置信度的知識對各種干預手段的反應截然不同,"對高置信度知識最好的方案"未必對所有知識都是最優選擇。
七、研究結論的完整圖景
回過頭來看整項研究,它形成了一個相當完整的故事鏈條。大語言模型在微調時產生幻覺,核心原因不是模型"原來就不知道",也不是模型"變懶了瞎猜",而是新舊知識在模型內部共用了相似的"表示空間",導致學新知識的參數更新不可避免地干擾到了舊知識的儲存——就像你在一塊密集居住區修路,稍不注意就會震壞鄰居家的地基。
對於這個問題,研究團隊提供了兩條互補的出路。當你不需要模型學任何新事實、只需要它適應新的對話風格或對齊規範時,凍結前饋網路層(或者更精細地,只允許注意力層的某個子模組更新)是一個簡潔高效的選擇,可以把舊知識損失從約15%壓縮到約3%。當你確實需要模型在微調時學習新知識,同時又不想讓舊知識受到太多損害時,自我蒸餾是更靈活的選擇,它能在基本不犧牲學習速度的前提下,把舊知識損失同樣控制在約3%的水平。
歸根結底,這項研究最重要的貢獻是改變了我們對AI幻覺的認知框架。幻覺並非模型的先天缺陷,也不是不可避免的代價,很大程度上是一個可以被工程手段直接針對和解決的"干擾問題"。這為未來構建更可靠、更"記性好"的AI系統指明了一條具體可行的路。
每一次大型AI公司對自己的模型進行更新和改進時,背後都有可能經歷了類似的微調過程,而這項研究揭示的機制意味著,未來的AI開發者可以藉助自我蒸餾這類技術,讓模型在"長本事"的同時不"忘老本",用戶使用AI助手時遭遇莫名其妙的事實錯誤的概率也將隨之降低。這或許不是什麼轟動一時的新聞,但對於每天與AI打交道的人來說,這種"悄悄變好"的改變才是最切實的進步。有意深入研究這個方向的讀者,可以通過arXiv編號2604.15574找到完整的技術論文。
---
Q&A
Q1:大語言模型微調時為什麼會產生幻覺?
A:微調時引入新事實會導致舊知識被破壞,核心原因是新舊知識在模型內部共享相似的"表示空間"——更新新知識對應的參數時,會像漣漪一樣波及鄰近的舊知識儲存區域,導致模型原本能正確回答的問題開始出錯。與模型本身不知道某件事或變得"懶惰隨意猜測"無關,而是一種類似"誤傷鄰居"的干擾效應。
Q2:自我蒸餾技術是怎麼防止大語言模型忘掉舊知識的?
A:自我蒸餾在訓練時保留一個"教師版本"(即訓練前某階段的模型快照),在學習新知識的過程中,持續要求當前模型在舊問題上的輸出概率分布不要偏離教師版本太遠。這相當於給模型設置了一道"護欄",阻止梯度信號通過共享的內部表示空間干擾舊知識,從而在幾乎不犧牲學習新知識速度的前提下,把舊知識損失從約15%壓縮到約3%。
Q3:凍結注意力層和凍結前饋網路層對大語言模型的影響有什麼區別?
A:兩者效果截然相反。凍結前饋網路層(只允許注意力層更新)會阻止模型學習幾乎所有新事實,但能很好地保護舊知識,適合只需要模型學習對話格式而不需要吸收新內容的場景。凍結注意力層(只允許前饋網路層更新)則與全量訓練幾乎沒有區別——模型仍會學習新事實,舊知識損失同樣約為15%,因為事實知識主要儲存在前饋網路層中。






