為什麼 AI 在回答時,會產生幻覺?

為什麼 AI 在回答時,會產生幻覺?

AI 幻覺,最大的問題在於 LLM 「不理解」內容的真實性,因為 LLM 在回答用戶時,是基於「機率」來選擇句子中最有可能出現的文字(Token)。

60 秒看懂本篇文章

AI 幻覺

「AI 幻覺」(AI Hallucination)指的是 AI 在生成內容時,基於訓練數據的限制或機率模型錯誤,生成了看似合理但實際上不正確的資訊。

詞源

隨著生成式 AI 技術的快速發展,AI 模型在缺乏充足上下文時,可能會依據已有的數據模式填補內容,導致虛構或錯誤的回答,這種現象被稱為 AI 幻覺。

可以這樣理解

想像 AI 像是在寫作文,但它的「知識庫」中沒有某個問題的答案時,為了讓文章通順,它可能會憑記憶或模式「編造」出一個合理但錯誤的內容。

AI 幻覺常見類型

  • 錯誤事實:如虛構不存在的人物或事件。
  • 虛構引用:引用不存在的研究或文獻。
  • 語境錯誤:無法正確理解對話中的語境,導致不連貫的回答。

順便學英文

“AI hallucination occurs when a model generates plausible yet incorrect information.”
當 AI 生成看似合理但實際錯誤的資訊時,就稱為 AI 幻覺。

AI 幻覺大概長什麼樣子?

我來列幾個例子:

內容生成錯誤

  • 錯誤事實:
    • AI 生成的文字可能包含看似合理但完全虛構的事實。
    • 例子:聊天機器人回答「台灣有三個活火山,其中一個是阿里山」,但阿里山其實並非火山。
  • 虛構引用:
    • 模型可能會捏造出不存在的文獻或研究作為其回答的支持。
    • 例子:AI 說「根據 2024 年麻省理工學院的研究…」,但該研究並不存在。

偏見與歧視

  • 社會偏見:
    • AI 模型可能在訓練數據中學習到社會的「偏見」,並在預測或生成內容時呈現出來。
    • 例子:求職篩選工具對特定族群或性別給出較低評分,因為訓練數據偏向某些特定背景。
  • 文化誤解:
    • AI 無法正確處理「不同文化背景」的資訊,導致回答不合適。
    • 例子:AI 可能將某個文化習俗解釋為迷信,但這對該文化來說是重要傳統。

語言理解錯誤

  • 語境錯誤:
    • AI 無法正確理解對話中的語境,導致不連貫或錯誤的回答。
    • 例子:用戶問「你知道今天的新聞嗎?」AI 回答「今天是個好天氣」,但沒有講到新聞。
  • 短期記憶不足(上下文範圍限制):
    • 大型語言模型可能忘記對話中的關鍵細節。
    • 例子:用戶先前說過自己住在台北,但 AI 後來誤認為用戶住在高雄。

為什麼會有 AI 幻覺?

一、用機率來計算文字該出現什麼

生成式 AI(LLM) 是基於「數學」來計算出來下一個「最可能」的詞,但 LLM 並不「理解」內容的真實性,而是根據訓練數據中出現的模式來生成回應。

數學算不出真實性

AI 不知道什麼是真的、什麼是假的。它只根據「學過的資料裡,哪些詞通常會一起出現」來決定答案。假設你問 AI:「誰發明了時光機?」AI 在學過的資料裡沒看到這個答案,但 LLM 計算出來:「時光機」跟「科學家」這兩個詞常出現在一起,所以 LLM 可能會編出一個科學家的名字。

資料不完整或不正確

AI 的答案取決於它學過的資料,如果資料裡沒有某個問題的答案,它就會「根據數學機率」算出一個看起來合理的答案,但這可能是錯的,像是「2025年發生了什麼重大事件?」資料裡沒有相關資訊,但它算出「2025」跟「科技」這些詞很常一起出現,於是 LLM 可能說:「某科技公司發明了新東西」,但這是它「算」出來的,而不是它真的知道。

它優先讓句子通順

AI 的目標是讓句子看起來像人類說的話,因此它會選機率最高的詞來保持句子流暢,但不會檢查這些詞是不是正確的組合。就像它可能知道「蘋果」和「樹」很常一起出現,但如果你問:「什麼樹長出藍色的蘋果?」它可能隨機說出「某種樹」,因為這樣看起來比較自然。

機率最高 ≠ 出現最多的詞

所謂的高頻用詞,是指在訓練資料中出現次數最多的詞。但生成式 AI(LLM)在回答問題時,並不是單純依照詞出現的次數來決定答案,而是根據當前的語境,計算哪個詞最適合接下去。因此,某個詞在訓練資料中可能出現很少,但在特定上下文中仍然可能成為機率最高的選擇。

next token prediction 例子
next token prediction 例子

二、訓練數據的局限性

訓練數據的局限性主要發生在內容覆蓋的不足、時間更新的限制、數據偏差上,這些都會導致 LLM 在生成答案時出現幻覺(錯誤答案或虛構內容),即使 LLM 表現得「流暢」且「自信」,這些幻覺依然可能出現,因為模型生成的核心邏輯是基於機率而非真實理解。

如果模型的訓練數據為「某地區的小偷中,有 50% 是博士」,那麼在生成答案時,模型可能會基於這個數據模式,給出類似「這個小偷是一位博士」的回答。

LLM 並不具備查證事實的能力,它的任務只是生成「根據機率分布」看起來合理的文字,而不是提供真實的答案。模型並不「理解」數據,而是基於數據中的模式來計算機率,數據中出現得越頻繁的資訊,生成答案時的權重越高。

三、缺乏真實性驗證機制

LLM 生成模型的架構( Transformer)設計上沒有內建「驗證事實」的機制,它們只負責生成語言,並不會評估內容的真實性或邏輯一致性,所以,才會有了RAG 增強型檢索式系統的出現,檢索系統可以提供外部驗證(就好比是在知識庫中查找答案),但純 LLM 生成模型無法做到這一點。

四、過度最佳化語言流暢性

模型在訓練時被最佳化生成流暢且符合語義的詞,而「不是事實正確」的詞,為了讓回應的詞「看起來專業」或「有說服力」,模型可能會填補空白資訊,進一步讓幻覺更為嚴重。

五、人類提示的影響

模糊或誘導性提問,如果用戶的問題本身有誤(像是假設某些不存在的事實),模型可能會迎合這種錯誤前提,例如:問「1980年火星人入侵地球時的領導者是誰?」模型可能會基於語言模式「編造」一個名字,而不是指出問題的假設錯誤。

六、長記憶鏈條中的誤差累積

在處理長文本生成時,模型需要記住上下文,這可能導致記憶錯誤或邏輯混亂,進而生成錯誤資訊。

就好比玩 「傳話遊戲」,第一個人講了一句話,第二個人聽到後再傳給下一個人,結果最後一個人說出來的話,常常跟最開始的完全不一樣,這就是所謂的 「誤差累積」。

在 AI 的世界裡,當它回答很長的對話或記住很多事情時,也可能會發生這種問題,讓原本正確的東西慢慢變得錯誤。

所以,當 AI 在對話時,會把「最近」的回答當成新事實,然後再根據這個「新事實」來回答接下來的問題,如果它一開始記錯了,那麼這個錯誤就會一直被帶下去,越來越嚴重。

關於 AI 幻覺,再講深入一點

AI 生成錯誤資訊的原因有很多,其中一個關鍵因素是「稀有 token」的影響(我先假設你知道什麼是token),當 AI 遇到較罕見的詞或概念時,就容易產生錯誤,讓我們來拆解這個問題。

罕見詞(稀有 token)會增加 AI 的不確定性

AI 是透過數學計算機率選擇下一個詞(token)來生成內容,但如果某個詞在訓練數據中出現的次數很少,模型就難以準確理解它的上下文關係,例如:

  • 常見詞:如「The cat is on the mat.」,這個模型熟悉,生成正確。
  • 罕見詞:如「Quantum cat paradox in non-Euclidean geometry.」,這種句型模型缺乏經驗,容易產生錯誤。

當 AI 遇到不熟悉的情境時,可能會填補空白,創造出看似合理但不正確的內容。

語言模型的長尾效應

人類的語言詞彙分布情況遵循 Zipf 定律,AI 會學習,然後試著找出哪些詞最常出現,哪些詞很少見。這就像我們學語言時,會先學「你好」、「謝謝」這些常用詞,而不是先學「光合作用」這種比較少用的詞,但問題來了:

很少見的詞,AI 不太懂

如果 AI 在學習時幾乎沒看過某個詞,它就不知道這個詞該怎麼用。當它需要用這個詞時,可能會「亂猜」,結果就變成錯誤的答案,例如,AI 常常讀到「貓在地毯上」(The cat is on the mat),但它很少看到「量子貓悖論」(Quantum cat paradox),所以當它碰到這種少見詞時,可能會自己亂腦補。

AI 可能誤以為罕見詞很重要

如果 AI 在學習時不小心看到某些奇怪的詞,卻沒有足夠的例子讓它知道這些詞應該怎麼用,它有時候會「過度重視」這些詞,導致回答變得奇怪、不自然,像是 AI 學過很多次「宇宙爆炸理論」,但只學過幾次「太陽東升西落」,它可能會誤以為「宇宙爆炸理論」比「太陽東升西落」還常見,結果就容易講得不太對勁。

這就是為什麼 AI 有時候會說出聽起來合理,但其實不正確的話。因為它學得不夠多,或者學得不夠好,所以在碰到一些少見詞時,就可能出錯了!

就不要用罕見詞(稀有 token)就好了啊?

若不要使用這些稀有 token,實際上操作起來有些困難,因為這樣的選擇會導致一些副作用,甚至限制模型的功能。

稀有 token 是語言多樣性的一部分

  • 語言自然性:
    • 如果完全排除稀有 token,生成內容會變得非常單調,缺乏多樣性和語言表達的豐富性。
    • 「科技」、「醫療」或「法律」等專業領域本身依賴大量稀有 token,刪除這些 token 會導致模型無法生成專業領域的答案。
  • 真實需求:
    • 某些問題的答案本身需要使用稀有 token,例如地名、人名或專業術語,如果直接刪除,模型可能無法正確回答問題。

平衡常見與稀有的 token 挑戰

AI 在回答問題時,如果只用常見的詞(高頻 token),就像一個人講話很普通、不會用特別的詞,但如果它完全不用冷門詞(低頻 token),又可能答不出比較專業或特別的內容。

  1. 如果 AI 只會用常見詞,會發生什麼事?
    • AI 可能回答得很籠統、不準確。
    • 例如,當你問:「量子計算的最新技術是什麼?」,AI 可能只會說:「量子計算是一種很厲害的科技」,但沒有說出真正的新技術名稱,因為那些詞比較少見,它可能不敢用。
  2. 如果 AI 不用稀有詞,會發生什麼事?
    • 它的回答會變得很普通,沒有創意,沒辦法深入解釋事情。
    • 例如,當你問 AI:「太空探索的未來計畫有哪些?」,如果它不用稀有詞,就可能只會說:「我們會去更多地方探索」,但不會說出真正的計畫名稱,比如「阿提米絲登月計畫」。

稀有 token 代表知識的深度

有些詞很少見,因為它們跟專業知識或特別的領域有關。如果我們讓 AI 完全不使用這些詞,它就沒辦法回答一些難的問題,只能說出很簡單的內容。

舉個例子:「黑洞事件視界的熱力學性質是什麼?」

  • 如果 AI 不用稀有詞 → 它可能只會回答:「黑洞有重力。」
  • 如果 AI 可以用稀有詞 → 它就能說:「黑洞會發出霍金輻射,還有熵的變化。」

所以,有時候這些冷門詞雖然不常見,卻能讓 AI 說出更專業、更深入的內容!

更好的解決方式:控制而非禁止

限制 AI 亂選字

AI 在回答問題時,會根據機率選擇下一個字(Token)。我們可以告訴它,只選比較常見的詞,這樣能降低它選擇罕見詞的機率,可以用 Top-k 和 Top-p方式,這就好像是在餐廳點菜的方式:

Top-k(固定菜單選擇)

你去一家餐廳,老闆說:「我們的推薦菜單只給你 3 道菜,你只能在這 3 道菜裡挑選!」

  1. 牛排(人氣超高)
  2. 炸雞(很多人喜歡)
  3. 炒青菜(還不錯)
  4. 刺身(冷門,幾乎沒人點)

老闆只推薦前 3 名菜品,因為固定只能提供 3 道菜,所以我們刺身直接不考慮。

Top-p(人氣篩選)

你去另一家餐廳,老闆說:「我們推薦菜的原則是要達到 90% 顧客滿意度,才會列入菜單。」

  • 牛排(50% )
  • 炸雞(30%)
  • 炒青菜(10%)
  • 章魚刺身(5%)
  • 豬血糕(5%)

計算了受歡迎度:牛排(50%) + 炸雞(30%) + 炒青菜(10%) = 90%,這樣已經達到 90% 滿意度,所以這 3 道菜列入推薦菜單。刺身和豬血糕被排除。

Top-k 像是餐廳說「我們只能推薦 3 道菜」,固定名額。Top-p 根據受歡迎度,選擇達到滿意門檻的菜品,靈活調整推薦內容,這樣 AI 還是能用稀有詞,但不會隨便亂用。

強化上下文理解
  • 上下文微調
    • 如果模型有更多相關的上下文資訊(例如 RAG 輔助),它能更準確地選擇何時使用稀有 token。
加權處理
  • 提升低頻 token 的學習權重:
    • 在訓練階段對稀有 token 提升學習權重,讓模型在生成時對它們的使用更為準確。
後處理驗證

若檢測到稀有 token,可以檢索相關資訊來確認它的正確性,或者要求用戶進一步提供上下文。

如何減少 AI 幻覺?

增強數據品質

  • 清理它學習的內容,把錯的資訊刪掉,避免它學到不對的知識,但但這個很費工。
  • AI 看到「貓」這個詞的次數很多,但如果它只看過「恐龍 DNA」幾次,它可能會亂猜。所以我們要讓它多學一些這類少見的詞,這樣它在回答問題時就不會亂說話了!

引入外部知識(RAG 檢索)

有時候,AI 會自己「猜答案」,但如果它能先查資料,就能減少猜錯的機會。這種方法叫 RAG(檢索增強生成,Retrieval-Augmented Generation)。

  • 怎麼做呢?
    • 先查資料 → AI 會先去找可靠的資訊,例如百科全書或新聞網站。
    • 再回答問題 → 它根據找到的資料來寫答案,而不是自己亂用罕見詞。
  • 為什麼這樣更好?
    • 如果不查資料:AI 可能會亂編一個聽起來很合理但錯誤的答案。
    • 如果先查資料:AI 可以從正確的地方找資訊,回答更準確,也更值得信賴。

增加後處理驗證

有時候,AI 會不太確定自己說的話對不對,如果我們不讓它檢查,它可能會隨便亂講,結果就會出錯,所以,我們可以加一些「檢查機制」來幫助 AI :

  • 當 AI 不確定時,讓它說「我不知道」
    • 如果 AI 不確定答案,而不是亂回,它可以直接說:「這個問題我不確定」,這樣比亂講一個錯誤答案好很多!
  • 讓 AI 自己再去查資料
    • AI 先回答問題後,還可以自己去查一查資料,看看答案到底對不對,然後再決定要不要修正。

生成式 AI 模型的幻覺問題,根源在於它的設計目的是生成語言,而非理解或驗證事實,透過結合檢索技術、改進品質和提升用戶互動品質,可以大幅降低這種現象的發生率。

參考文章與文獻

常見問題

為什麼 AI 會搞錯上下文?它不是有「記憶」功能嗎?

AI 並不像人類一樣有真正的「記憶」。它能記住的只是當前對話的「上下文」,而這個記憶範圍是有限的(例如 4,096 個 token)。當對話變得很長或過於複雜,超過範圍的部分就會被遺忘,這也是為什麼 AI 有時候會搞錯前面提到的關鍵細節。

既然 AI 無法自己查證,那我要怎麼信任它的答案?

AI 回答的可信度取決於它訓練過的數據。因此,如果你問的問題在訓練數據中有完整的答案,AI 通常能給出不錯的回應。相反地,如果問題是冷門知識,AI 就容易出錯。最好的方法是搭配像 RAG(檢索增強生成)這類技術,讓 AI 先查資料再回答,或是自行查證 AI 的回覆。

AI 為什麼會編造錯誤的內容?難道它的設計目標不是要給正確答案嗎?

其實,AI 的設計目標不是「提供正確答案」,而是「生成看起來合理、流暢的文字」。
AI 是根據訓練數據中的詞和上下文,依照機率計算出下一個最有可能的詞。但問題是,它沒有「真實性驗證」的能力,只能靠數據中學到的模式來回應。當缺少相關知識時,它可能會填補空白,編造出「看起來像真的」內容。

RAG 檢索輔助生成(Retrieval-Augmented Generation)真的能減少錯誤嗎?

它的原理是讓 AI 在生成回答之前,先從外部資料庫中檢索相關內容,提供更具參考性的資訊來源,這樣,AI 就能基於最新、可信的資料生成答案,而不再只是「靠記憶亂回」。

AI 在什麼情況下比人類更容易出錯?

AI 是基於機率和數據模式來回答的,當它碰到沒學過的內容時,可能會編造出答案。相對來說,人類在遇到類似情況時,通常會說「我不知道」,不會隨便亂答,因此在這方面,AI 需要改進。

能不能只靠增加訓練數據來解決 AI 幻覺問題?

增加數據確實能提高 AI 對特定內容的準確性,但要完全避免幻覺,還需要配合其他技術,例如 RAG 和後處理驗證,才能在不同情境下都保持較好的答案水準。

要深入了解 AI 產品經理的核心技能,請參考我的學習方法:AI 產品經理,我的學習之路
返回頂端