介紹
在一段名為《深入了解像 ChatGPT 的大型語言模型 (LLMs)》的 YouTube 影片中,特斯拉 (Tesla) 的前 AI 高級總監安德烈·卡帕西 (Andrej Karpathy) 討論了大型語言模型的心理學,這些模型是訓練過程中出現的認知效應。這篇文章受到他對 LLM 幻覺的解釋和影片中提供的信息的啟發。
你可能見過模型的幻覺。這些是 LLM 生成不正確、誤導性或完全虛構的信息的情況,這些信息看起來似乎合理。這些幻覺發生的原因是 LLM 並不像人類那樣“知道”事實;相反,它們是根據訓練數據中的模式來預測單詞。幾年前發布的早期模型在幻覺方面面臨很大挑戰。隨著時間的推移,減輕策略改善了這種情況,儘管幻覺並未完全消除。
Zyler Vance 是我隨便想出來的名字。當我在 falcon-7b-instruct 模型中輸入提示“Zyler Vance 是誰?”時,它生成了虛構的信息。Zyler Vance 不是電影《克勞佛菲爾德悖論 (The Cloverfield Paradox)》(2018)中的角色。這個模型因為是舊版本,所以容易出現幻覺。
LLM 訓練流程
要了解這些幻覺的來源,你需要熟悉訓練流程。訓練 LLM 通常涉及三個主要階段。
預訓練
這是 LLM 訓練的初始階段。在預訓練期間,模型接觸到大量高質量和多樣化的文本,這些文本是從互聯網上抓取的。預訓練幫助模型學習一般的語言模式、語法和事實。這一訓練階段的輸出稱為基礎模型。它是一個令牌模擬器,預測序列中的下一個單詞。
要了解預訓練數據集的樣子,你可以查看 FineWeb 數據集。FineWeb 數據集相當具有代表性,反映了企業級語言模型中可能出現的內容。所有主要的 LLM 提供商,如 OpenAI、Google 或 Meta,都會有一些類似於 FineWeb 數據集的內部數據集。
後訓練:監督微調
正如我之前提到的,基礎模型是一個令牌模擬器。它只是從互聯網文本文檔中隨機抽樣。我們需要將這個基礎模型轉變為能夠回答問題的助手。因此,預訓練模型會使用對話數據集進行進一步的微調。這些對話數據集包含數十萬條對話,涵蓋多個主題,且對話內容非常長。

這些對話來自人類標記者。在對話上下文中,人類標記者為助手在任何情況下寫出理想的回應。然後,我們將基於互聯網文檔訓練的基礎模型替換為對話數據集。接著在這個新的對話數據集上繼續進行模型訓練。這樣,模型迅速調整並學習助手對查詢的回應統計。訓練結束時,模型能夠模仿人類的回答。
OpenAssistant/oasst1 是 hugging face 上可用的一個開源對話數據集。這是一個由人類生成和標註的助手風格對話語料庫,包含 161,443 條消息,涵蓋 35 種不同語言。
後訓練:人類反饋的強化學習
監督微調使模型變得更有能力。然而,即使是訓練良好的模型也可能生成誤導性、偏見或無幫助的回應。因此,需要進行人類反饋的強化學習,以使其與人類的期望保持一致。
我們從經過 SFT 訓練的助手模型開始。對於給定的提示,我們生成多個模型輸出。人類標記者根據質量、安全性和與人類偏好的對齊程度對多個模型輸出進行排名或打分。我們使用這些數據來訓練一個完全獨立的神經網絡,稱為獎勵模型。
獎勵模型模仿人類的評分。它是一個人類偏好的模擬器。這是一個完全獨立的神經網絡,可能具有變壓器架構,但它不是一個生成多樣語言的語言模型。它只是個評分模型。
現在,LLM 使用強化學習進行微調,獎勵模型提供對生成輸出的質量的反饋。因此,我們不是在詢問一個真實的人類,而是在詢問一個模擬的人類對輸出的評分。目標是最大化獎勵信號,這反映了人類的偏好。
為什麼會有幻覺?
現在我們對大型語言模型的訓練過程有了更清晰的理解,我們可以繼續討論幻覺。
幻覺源於訓練流程中的監督微調階段。以下是你在訓練集中可能會有的三個潛在對話的具體示例。

正如我之前所示,這就是人類助手在訓練期間的對話樣子。這些對話是由人類標記者在嚴格指導下創建的。當標記者為助手在每一種情況下寫出正確答案時,他們要麼認識這個人,要麼在互聯網上進行研究。之後,他們寫出助手的回應,語氣自信。
在測試時,如果模型被問到一個在訓練中未見過的個體,它不會簡單地回答不知道。簡單來說,它不會回答“哦,我不知道”。相反,模型會統計性地模仿訓練集。
在訓練集中,形式為“誰是 X?”的問題自信地回答正確答案。因此,在測試時,模型以這種回答的風格回應,並給出統計上最可能的猜測。所以它只是編造一些在其訓練集中統計上與回答風格一致的內容。
模型調查
我們現在的問題是如何減輕幻覺。顯然,我們的數據集應該包含助手的正確答案是模型不知道某些特定事實的示例。然而,這些答案必須僅在模型確實不知道的情況下生成。因此,關鍵問題是我們如何知道模型知道什麼而不知道什麼?我們需要對模型進行調查,以便實證地了解。
任務是找出模型知識的邊界。因此,我們需要調查模型,以了解它知道什麼和不知道什麼。然後,我們可以將模型不知道的內容的示例添加到訓練集中。在這種情況下,正確的回應是模型不知道這些內容。

讓我們看看 Meta 如何利用這個概念來處理 Llama 3 系列模型的幻覺問題。
在他們 2024 年的論文《Llama 3 模型群》中,Touvron 等人描述了他們如何開發知識探測技術來實現這一目標。他們的主要方法涉及生成數據,使模型生成與預訓練數據中存在的事實數據子集對齊。他們描述了數據生成過程的以下步驟:
從預訓練數據中提取數據片段。
通過提示 Llama 3 生成關於這些片段(上下文)的事實問題。
從 Llama 3 中抽樣對問題的回應。
使用原始上下文作為參考,並以 Llama 3 作為評判,對生成的正確性進行打分。
使用 Llama 3 作為評判,對生成的資訊性進行打分。
對於在生成中始終資訊性且不正確的回應,使用 Llama 3 生成拒絕。
之後,從知識探測生成的數據被用來鼓勵模型僅回答它知道的問題,並避免回答它不確定的問題。隨著時間的推移,實施這一技術改善了幻覺問題。
使用網路搜尋
我們有比僅僅說不知道更好的減輕策略。我們可以給 LLM 一個機會來生成事實性回應,準確回答問題。如果我問你一個你不知道的事實問題,你會怎麼做?你怎麼回答這個問題?你可以進行一些研究,搜尋互聯網以找出問題的答案。然後告訴我答案。我們可以用 LLM 做同樣的事情。
你可以把訓練神經網絡中的知識看作是模型在很久以前預訓練時見過的事物的模糊記憶。模型參數中的知識類似於你一個月前讀過的東西。如果你對讀過的資訊有良好的記憶,你會比起偶爾讀過的東西更容易記住。如果你對讀過的資訊沒有良好的記憶,你會去查找。當你查找資訊時,你實際上是在刷新你的工作記憶,讓你能夠檢索和討論這些資訊。
我們需要一些等效的機制來讓模型刷新其記憶或對資訊的回憶。我們可以通過為模型引入工具來實現這一點。模型可以使用網路搜尋工具,而不是僅僅回答“對不起,我不知道答案”。為了實現這一點,我們需要引入特殊標記,例如
在這裡,當從模型中抽樣的程序在推理過程中遇到特殊標記
從網路搜尋提取的文本現在在上下文窗口中,將被輸入到神經網絡中。可以將上下文窗口視為模型的工作記憶。上下文窗口中的數據是模型可以直接訪問的。它直接輸入到神經網絡中。因此,它不再是模糊的資訊記憶。現在,當抽樣新標記時,它可以非常輕鬆地參考已經複製到那裡的數據。因此,這是這些網路搜尋工具運作的一般概述。

我們如何教模型正確使用這些工具,如網路搜尋?我們再次通過訓練集來實現。我們現在需要足夠的數據和大量的對話示例,展示模型應該如何使用網路搜尋。我們需要用示例來說明一些方面,例如:“你在使用搜尋時的設置是什麼?它看起來像什麼?你如何開始搜尋?”由於預訓練階段,它對網路搜尋及什麼構成良好的搜尋查詢有著天生的理解。因此,如果你的訓練集包含幾千個示例,模型將能夠清楚地理解這個工具的運作方式。
結論
大型語言模型的幻覺是訓練流程的固有結果,特別是源於監督微調階段。由於語言模型旨在生成統計上可能的文本,因此它們經常生成看似合理但缺乏事實基礎的回應。
早期的模型在幻覺方面非常容易出現。然而,隨著各種減輕策略的實施,這個問題已經有所改善。知識探測技術和訓練模型使用網路搜尋工具已被證明在減輕問題方面有效。儘管這些改進,完全消除幻覺仍然是一個持續的挑戰。隨著 LLM 的不斷發展,在很大程度上減輕幻覺對於確保其作為可靠知識庫的可信性至關重要。
如果你喜歡這篇文章,請在 X(前身為 Twitter)上與我聯繫,獲取更多見解。
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!