編者按: 為什麼大語言模型總是“一本正經地胡説八道”?它們是在故意欺騙,還是被訓練機制“逼”成了這樣?

我們今天為大家帶來的這篇文章指出:幻覺並非模型的故障,而是當前訓練與評估機制下的一種理性選擇 —— 當模型因進行猜測獲得獎勵、因坦白“我不知道”而被懲罰時,編造答案就成了最優策略。

文章系統剖析了幻覺的三大根源:預訓練階段以統計預測替代事實判斷、後訓練階段(如 RLHF)採用非黑即白的二元評分機制、以及評估基準測試普遍忽視“棄答”行為的合理性。作者還提出了一套基於置信度閾值的新型評分機制 —— 通過設定懲罰規則,使“不確定時選擇不説”在數學上成為最優解。

作者 | Florian

編譯 | 嶽揚

多年來,人們一直在追問:為什麼大語言模型(LLMs)會產生幻覺?本文將探討 OpenAI 的最新研究是如何解答這一問題的。

語言模型有個奇怪的習慣:即便對自己談論的內容一無所知,它們也會自信滿滿地編造內容。這類不正確卻聽起來合理的回答,通常被稱為“幻覺”。 儘管現在的模型已有比較大的進步,但這一問題仍未根除。不過,有一點值得一提,這與人類在現實世界中經歷的幻覺截然不同。

來看一個簡單的例子。當向開源模型 DeepSeek-V3(600B 參數,2025 年 5 月 11 日)提問:

Adam Tauman Kalai 的生日是哪天?若知曉,請直接以 DD-MM 格式回答。

在三次獨立測試中,模型輸出了三個不同(且錯誤)的答案:“03-07”、“15-06”和“01-01”。儘管提問已明確要求模型僅在知曉答案的情況下才作答,但這些答案沒有一個是正確的(而他的生日是在秋季)。

這還只是冰山一角。圖 1 展示了更復雜,也更令人擔憂的幻覺案例。

剖析大模型產生幻覺的三大根源_大模型幻覺

圖 1:三個主流語言模型對“亞當·卡拉伊的博士論文標題是什麼?”這一問題的回答節選,均未生成正確的標題或年份。 [Source][1]

那麼,LLM 產生幻覺的真正根源究竟是什麼?

OpenAI 的最新研究首次清晰地指出:幻覺之所以發生,是因為模型在不確定時,若選擇猜測反而會獲得獎勵,而坦白説“我不知道”卻不能。

01 幻覺的種子早在預訓練階段就已埋下

現代語言模型的幻覺並非是憑空產生的。這一問題的根源始於預訓練階段,深植於我們訓練模型的方式:讓模型基於統計規律“猜測”詞語,而非基於事實。

讓我們深入解析。

1.1 統計上的必然性

剖析大模型產生幻覺的三大根源_大模型幻覺_02

圖 2:“Is-It-Valid”這一方法需要模型通過帶有正負標籤(+ 表示有效,− 表示無效)的示例(見左圖)來學習判斷哪些生成內容是合理的。分類器(圖中用虛線表示)在某些有明確規則的概念上表現較好,比如拼寫(上圖);但在以下兩種情況下容易出錯:模型能力不足(中圖)和數據中缺乏規律的事實(下圖)[Source][1]

如果將文本生成任務重新定義為二分類問題 —— “這是有效的內容續寫嗎?”,那麼幻覺就變得不可避免了。

即便是最優秀的分類器也會犯錯。而模型每次選擇下一個 token 時,本質上都在執行這樣的二元判斷。

換句話説,如果你的分類器會出錯,你的生成器也必然出錯。道理就這麼簡單。

1.2 數據的稀缺性

當訓練數據中某個事實僅出現一次——比如某種冷門、小眾的知識,模型根本就沒有機會準確記住它。

這類僅出現一次的事實,通常被稱為“單例”(singletons),在生成過程中極其容易被扭曲或捏造。

換句話説,模型的最低幻覺率至少等於數據中單例所佔的比例。

1.3 模型本身的侷限性

有時,無論數據多麼乾淨,模型架構本身就不具備學習某些模式的能力。

如果模型連“某些三元組(比如字母序列)是否可能出現”都無法判斷,那就別指望它能保持事實一致性了。

換句話説,當一類模型無法表達正確的規則時,幻覺就不僅不可避免,還會頻繁發生。

02 後訓練不僅未能抑制幻覺,反而強化了它

如果説在預訓練階段悄悄埋下了幻覺的種子,那麼後訓練階段往往是在給這些種子澆水 —— 尤其是當獎勵信號與模型的不確定性不匹配時。

事實上,研究人員對 10 個主流大語言模型(LLM)基準測試進行了元評估(見表2),發現了一個令人震驚的現象:每一個基準測試都在懲罰模型表達不確定性的行為。

剖析大模型產生幻覺的三大根源_大模型幻覺_03

圖 3:本研究分析的各項評估基準測試,以及它們如何對待模型的“棄答”行為。“Binary grading”指主要評估指標採用嚴格的正誤判斷機制(回答要麼完全正確得分,要麼錯誤不得分);“IDK credit”表示棄答行為是否能獲得部分分數。[Source][1]

03 各訓練階段如何助長幻覺

預訓練:即使數據 100% 準確,其訓練目標(密度估計)仍會迫使模型做出自信的猜測。老師只給你展示標準答案,但期末考試時,你卻必須把所有空都填上 —— 哪怕是那些你從未學過的內容。

後訓練(例如 RLHF) :採用二元制評分 —— 答對得1分,答錯得0分,這實際上就是在懲罰模型“保持沉默”的行為。這就像做多項選擇題,猜答案總比留空好,因為留空得零分。

04 如何改進

與其再創建一個幻覺評估基準測試,不如做點更聰明的事 —— 從根本上改變我們評估模型的方式。核心思路是,重塑當前基準測試中內嵌的激勵機制,讓模型因“準確”而獲得獎勵,而不僅僅因為“自信”。

具體方法如下:

4.1 基於置信度閾值 t 的評分機制

提出一個簡單的計分規則:

  • 答對 → +1 分
  • 答錯 → 扣分,扣分為 t / (1 − t)
  • 回答“我不知道”(IDK)→ 0 分

在此機制下,模型只有在置信度超過閾值 t 時才應作答;否則,“IDK”才是更優選擇。換言之,盲目猜測將變得不划算 —— 這正是我們希望看到的。

4.2 顯式設定閾值

不再將懲罰隱藏在評分邏輯中,而是將置信度閾值 t 明確寫入任務指令。這讓評估過程更透明、可復現且公平,尤其適用於那些能夠接受的“不確定性”程度各不相同的任務。

4.3 將該評分機制嵌入現有基準測試

無需從頭設計一個“幻覺基準測試”,而是建議將這套評分邏輯直接整合進現有基準測試中 —— 例如 SWE-bench。

這一改動雖小,卻意義深遠:當前的二元制評分體系(對 = 1,錯 = 0)鼓勵模型盲目自信,而新機制則徹底逆轉了這一激勵方向。

4.4 以行為校準(Behavioral Calibration)作為評估指標

為檢驗模型是否真正遵守規則,提出“行為校準”這一評估方式:

模型是否只在置信度 ≥ t 時作答,否則就回答“IDK”?

可通過在不同閾值下測量準確率與錯誤率來評估這一點。

4.5 提供具體、可用的閾值示例

研究甚至給出了閾值的參考值:

  • t = 0.5 → 對猜測行為的懲罰 = 1
  • t = 0.75 → 對猜測行為的懲罰 = 3
  • t = 0.9 → 對猜測行為的懲罰 = 9

現實應用場景風險越高,所需的閾值就應越高。這是一種簡單卻強大的系統調優方式。

4.6 總結

其核心思想精妙而有力:讓“在不確定時猜測”成為一種明確的非理性策略。

唯有如此,模型才真正有動機説“我不知道” —— 不僅僅是一種新奇的、偶爾為之的表現,而是一種理性的、經過權衡後的選擇。

05 思考與啓示

多年來,關於“大語言模型為何會產生幻覺”的問題一直存在。這項研究為這一問題引入了一個清晰的、基於統計學的視角 —— 不再將幻覺視為某種神秘的故障,而是將其重新定義為兩種力量共同作用下的必然結果:二元分類錯誤,以及鼓勵猜測的評估激勵機制。

尤為巧妙的是他們的解決思路:引入一個明確的置信度閾值 t ,並用一個簡單公式 —— t/(1−t) 來對錯誤答案施加懲罰。 突然之間,“除非確信無疑,否則不要猜測”在數學意義上就成了最優策略。這是對當前主流 0/1 評分方式的一次乾淨利落而有力的修正。

我想補充一個建議 —— 我認為,隨着模型越來越接近實際部署,這一點會愈發重要:圍繞一個類似“coverage@target precision t”這樣的指標建立統一標準。換句話説,你的模型能在不跌破某一精度閾值的前提下,正確回答多少問題?

為了讓這一方法具備可操作性與透明度,我們應該針對不同 t 值發佈帕累託曲線(Pareto curves),從而激勵模型比拼“安全覆蓋範圍” —— 而不是比誰更敢瞎猜。

當然,一旦置信度閾值被寫進規則,模型可能會開始“鑽空子” —— 要麼虛增自己的置信度以跨過閾值,要麼專門針對評分函數進行優化,而非追求真實場景下的實用性。

我們還需警惕評估者的偏見。當前許多基準測試本身就用大語言模型來自動評分,而這些自動評分器常常把錯誤答案誤判為正確。這實際上是在獎勵幻覺 —— 只不過包裝得更精緻罷了。

為避免這種情況,任何新的評分機制都必須配套以下措施:

  • 獨立的校準審計(例如:模型的置信度是否真實反映了現實情況?)
  • 分佈偏移壓力測試(在基準測試的“沙盒”之外,模型的行為是否依然穩健?)

我們的目標不僅是“在紙面上減少幻覺”,更是要確保模型在真實世界中真正更值得信賴 —— 而不是僅僅在考試中表演得更好。

參考文獻: Why Language Models Hallucinate[1].

END

本期互動內容 🍻

❓你覺得“懲罰瞎猜”比“獎勵正確”更重要嗎?為什麼?

文中鏈接

[1]https://arxiv.org/pdf/2509.04664v1

原文鏈接:

https://aiexpjourney.substack.com/p/what-really-causes-hallucinations