JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

幻覺入門:當自信的模型開始編造

「幻覺」究竟是什麼意思、為何它內建於模型的運作方式,以及錯誤答案為何聽起來如此有說服力。

一個杜撰的詞,指向真實的問題

向聊天機器人詢問某個小鎮的人口,或請它找一篇支持你論點的論文,它有時會流暢又完整地回答——給你一個根本不存在的數字或標題。這就是大家口中的幻覺(hallucination):模型生成出流暢、貌似合理、卻沒有任何真實事實依據的文字。這不算說謊,因為說謊需要知道真相並選擇隱瞞,而模型並沒有這種內在狀態。它只是在產生「聽起來最有可能」的接續,而「聽起來最有可能」並不等於「真實」。

為什麼它內建於這台機器之中

要理解語言模型為何會產生幻覺,得記住它們實際在做什麼:一次又一次地預測下一個詞元(token)。訓練過程中,模型學會了人類文字的「形狀」——文法、節奏,以及引註與統計數字通常如何呈現。它得到的獎勵是「聽起來對」,而從來不是直接獎勵「真的對」。所以當它沒有記住某個事實時,並不會停下來說「我不知道」,而是用形狀正確的文字來填補空白:一個看起來真實的作者名、一個可信的年份、一個漂亮的整數。

模型透過預測一個詞元、把它接上去、再預測下一個來生成文字——正是本節所說的「一遍遍預測下一個詞元」。

自迴歸迴圈示意圖:模型輸出一個詞元,再作為輸入回饋給下一次預測。

這正是那個帶有貶意的綽號隨機鸚鵡(stochastic parrot)背後的一點真理:一個只是把語言模式縫合在一起、卻沒有底層世界模型的系統,從原理上看,必然偶爾會縫出錯誤的東西。幻覺並不是偶然外掛上去的罕見錯誤;它與讓模型寫出一首詩的,是同一種生成才能——只是被指向了一個它毫無依據的問題。

P(x_t \mid x_{<t}) = \mathrm{softmax}(W h_t)

模型被訓練去最大化的,只是在給定前文時下一個詞元的機率——它從不檢驗結果是否為真。

並非所有幻覺都一樣

幻覺的類型做第一層劃分時,可以分開兩個問題。第一:輸出是不忠於它的來源(與你給它的文件相矛盾),還是不忠於世界(與現實相矛盾)?第二:模型是違背了別人告訴它的內容,還是憑空捏造?你會聽到這些被稱為忠實度(faithfulness)相對於事實性(factuality),以及內在型(intrinsic)相對於外在型(extrinsic)幻覺。

  1. 內在型:答案與它被給予的文字本身相矛盾(你貼上一篇寫著 2019 年的文章,它卻摘要成 2021 年)。
  2. 外在型:答案添加了來源既未陳述也未暗示的主張(一個貌似合理、卻憑空冒出的額外「事實」)。
  3. 事實錯誤:無論有沒有來源,這個主張對世界而言根本就是錯的。
  4. 忠實度錯誤:這個主張就一般而言甚至可能是真的,但它並未得到模型理應依據的材料所支持。

最危險的部分:它聽起來很確定

讓幻覺變得危險的,不只是模型答錯,而是它一本正經地答錯。這就是自信地犯錯(confident wrongness):同樣冷靜、權威的語氣,既包裝正確答案,也包裝捏造的答案。人類會用遲疑、保留語氣與口吻,作為「該信幾分」的線索——而流暢的模型把這些線索全抹去了。

在底層,模型的詞元機率確實帶有對自身不確定性的粗略感受,但一個調校良好的聊天模型在誠實這件事上往往校準(calibration)得很差:它被訓練得要樂於助人又語氣篤定,於是它「表達出的信心」與「實際的可靠度」可能各走各的。要縮小這個落差——讓表達出的信心能反映真實的不確定性——是一個尚未解決的研究課題,這正是為什麼你不能把模型的語氣當成測謊儀。

\text{confidence} = \max_i p_i, \qquad p = \mathrm{softmax}(z)

模型的「信心」不過是它最大的詞元機率;校準不佳的聊天模型即使答錯也能讓這個值很高。

這個主題後續會談什麼

幻覺是最受矚目的失誤,但它只是一個家族的一員。下一篇會拆解事實出錯的各種具體方式;接著我們會把目光移到事實之外——偏見、有害輸出與推理失誤;然後是提示詞與上下文視窗失效的脆弱邊緣;最後則是對隱私、著作權、環境與資訊生態的更廣泛風險。貫穿全部的主軸是:這些系統既非常有用,確實會犯錯,要用得好,就得同時握住這兩個事實。