大模型的幻覺問題,又有新的解決方法了!
Meta AI 實驗室提出了一種 " 分而治之 " 的解決方案。
有了這個方案,Llama-65B 輸出的信息準确率提升了一倍,甚至超過了 ChatGPT。
所謂大模型幻覺,就是輸出一些看似合理但完全不對的内容。
Meta 此次提出的 " 驗證鏈 "(CoVe),是與 " 思維鏈 "(CoT)相似的一種鏈式方法。
區别在于,"step-by-step" 的思維鏈更關注邏輯推理,而驗證鏈更注重事實信息。
有網友看了之後發現,這個驗證鏈很像是自己用 ChatGPT 寫代碼時的一種科學方法:
那麽 " 驗證鏈 " 究竟是個什麽方法," 驗證 " 的又是什麽呢?
拆解答案,分而治之
驗證鏈的核心思想,是把要驗證的一大段内容,拆解成一個個小的問題,具體流程是這樣的:
首先,模型會根據用戶提出的問題照常生成回複。
接着,根據生成的回複内容,針對其中的各項信息,生成一系列的驗證問題。
然後讓模型自行回答其所提出的這些問題,并根據結果對初始答案進行調整,得到最終結果。
舉個簡單的例子,假如想詢問模型 19 世紀美墨戰争的主要原因是什麽。
模型回答了事件發生的時間,以及在這之前都發生了什麽事。
之後針對這一系列事件,逐一詢問它們是什麽時候發生的。
于是,模型發現自己提到的一項内容時間相差太遠,調整後給出了最終的答案。
其中,問題的生成和驗證是最關鍵的一環,對此,研究人員一共提出了四種具體的方式:
Joint,即将生成問題和回答的指令寫入同一段提示詞
2-Step,即先讓模型生成提問,然後開啓新的對話(一次性)回答提出的問題
Factored,在 2-Step 的基礎上,對提出的每一個問題分别開啓新對話
Factor+Revise,在 Factored 的基礎之上加入一緻性檢驗,讓模型重點關注前後不一緻的内容
這四種模式越來越細化,準确率也是越來越高。
△從紅色開始,四種顔色依次代表無 CoVe、Joint、Factored 和 Factor+Revise
那麽爲什麽拆分提問就能提高模型的準确性呢?
首先是因爲拆解後的問題比整體任務更容易,論述題變成了問答甚至選擇、判斷題,問題簡單了,準确率也就提升了。
此外,把問題分解可以讓模型真正重新思考,而不是反複地重複錯誤答案。
那麽,驗證鏈方式的效果究竟如何呢?
信息準确率超過 ChatGPT
爲了探究這一問題,研究人員用 Llama 進行了測試,測試任務一共有三項。
首先是信息列舉,比如列舉出出生于某地、從事某行業的名人。
這項任務中,研究人員一共測試了兩個數據集——簡單一些的 Wikidata 和從難一些的 Wiki-Category list(從維基百科中提取)。
結果發現,65B 參數的 Llama,在 two-step 模式的驗證鏈加持下,簡單問題的準确度從 0.17 提升到了 0.36,增加了一倍還多,複雜問題準确度也接近翻番。
接下來是 "閉域問答" 題,研究人員從 MultiSpanQA 數據集中抽取多個不連續信息進行挖空提問。
比如 " 誰在哪一年創建了世界上第一家出版社 "(答案是 Johannes Gutenberg, 1450)。
結果,Cove 也爲 Llama 帶來了 20% 左右的準确度提升。
第三項任務是 " 長段文本傳記生成 ",問題就是 "Tell me a bio of ( 人名 ) ",使用 FactScore 數據集進行評價。
結果在 Factor+Reviese 模式下,準确率不僅比無驗證鏈模式大幅提高,還超過了 ChatGPT。
對這項研究感興趣的朋友,可以到論文中了解更多細節。
論文地址:
https://arxiv.org/abs/2309.11495