一個杜撰的詞,指向真實的問題
向聊天機器人詢問某個小鎮的人口,或請它找一篇支持你論點的論文,它有時會流暢又完整地回答——給你一個根本不存在的數字或標題。這就是大家口中的幻覺(hallucination):模型生成出流暢、貌似合理、卻沒有任何真實事實依據的文字。這不算說謊,因為說謊需要知道真相並選擇隱瞞,而模型並沒有這種內在狀態。它只是在產生「聽起來最有可能」的接續,而「聽起來最有可能」並不等於「真實」。
為什麼它內建於這台機器之中
要理解語言模型為何會產生幻覺,得記住它們實際在做什麼:一次又一次地預測下一個詞元(token)。訓練過程中,模型學會了人類文字的「形狀」——文法、節奏,以及引註與統計數字通常如何呈現。它得到的獎勵是「聽起來對」,而從來不是直接獎勵「真的對」。所以當它沒有記住某個事實時,並不會停下來說「我不知道」,而是用形狀正確的文字來填補空白:一個看起來真實的作者名、一個可信的年份、一個漂亮的整數。
自迴歸迴圈示意圖:模型輸出一個詞元,再作為輸入回饋給下一次預測。
這正是那個帶有貶意的綽號隨機鸚鵡(stochastic parrot)背後的一點真理:一個只是把語言模式縫合在一起、卻沒有底層世界模型的系統,從原理上看,必然偶爾會縫出錯誤的東西。幻覺並不是偶然外掛上去的罕見錯誤;它與讓模型寫出一首詩的,是同一種生成才能——只是被指向了一個它毫無依據的問題。
模型被訓練去最大化的,只是在給定前文時下一個詞元的機率——它從不檢驗結果是否為真。
並非所有幻覺都一樣
為幻覺的類型做第一層劃分時,可以分開兩個問題。第一:輸出是不忠於它的來源(與你給它的文件相矛盾),還是不忠於世界(與現實相矛盾)?第二:模型是違背了別人告訴它的內容,還是憑空捏造?你會聽到這些被稱為忠實度(faithfulness)相對於事實性(factuality),以及內在型(intrinsic)相對於外在型(extrinsic)幻覺。
- 內在型:答案與它被給予的文字本身相矛盾(你貼上一篇寫著 2019 年的文章,它卻摘要成 2021 年)。
- 外在型:答案添加了來源既未陳述也未暗示的主張(一個貌似合理、卻憑空冒出的額外「事實」)。
- 事實錯誤:無論有沒有來源,這個主張對世界而言根本就是錯的。
- 忠實度錯誤:這個主張就一般而言甚至可能是真的,但它並未得到模型理應依據的材料所支持。
最危險的部分:它聽起來很確定
讓幻覺變得危險的,不只是模型答錯,而是它一本正經地答錯。這就是自信地犯錯(confident wrongness):同樣冷靜、權威的語氣,既包裝正確答案,也包裝捏造的答案。人類會用遲疑、保留語氣與口吻,作為「該信幾分」的線索——而流暢的模型把這些線索全抹去了。
在底層,模型的詞元機率確實帶有對自身不確定性的粗略感受,但一個調校良好的聊天模型在誠實這件事上往往校準(calibration)得很差:它被訓練得要樂於助人又語氣篤定,於是它「表達出的信心」與「實際的可靠度」可能各走各的。要縮小這個落差——讓表達出的信心能反映真實的不確定性——是一個尚未解決的研究課題,這正是為什麼你不能把模型的語氣當成測謊儀。
模型的「信心」不過是它最大的詞元機率;校準不佳的聊天模型即使答錯也能讓這個值很高。
這個主題後續會談什麼
幻覺是最受矚目的失誤,但它只是一個家族的一員。下一篇會拆解事實出錯的各種具體方式;接著我們會把目光移到事實之外——偏見、有害輸出與推理失誤;然後是提示詞與上下文視窗失效的脆弱邊緣;最後則是對隱私、著作權、環境與資訊生態的更廣泛風險。貫穿全部的主軸是:這些系統既非常有用,又確實會犯錯,要用得好,就得同時握住這兩個事實。