維基百科+大模型打敗幻覺!斯坦福WikiChat性能碾壓GPT-4,準(zhǔn)確率高達97.3%
大語言模型的幻覺問題被解決了!
近日,來自斯坦福的研究人員發(fā)布了WikiChat——被稱為首個幾乎不產(chǎn)生幻覺的聊天機器人!
論文發(fā)表在EMNLP 2023,并且在Github上開源了代碼:
論文地址:https://aclanthology.org/2023.findings-emnlp.157.pdf
項目代碼:https://github.com/stanford-oval/WikiChat
作者表示自己的最佳模型在新的基準(zhǔn)測試中獲得了97.3%的事實準(zhǔn)確性,而相比之下,GPT-4的得分僅為66.1%。
在「recent」和「tail」兩個知識子集中,這個差距甚至更大。
另外,作者還發(fā)現(xiàn)了檢索增強生成(RAG)的幾個缺點,并添加了幾個重要步驟,以進一步減輕幻覺,并改進「對話性」指標(biāo)。
通過這些優(yōu)化,WikiChat在事實性方面比微調(diào)后的SOTA RAG模型Atlas高出8.5%,
在相關(guān)性、信息性、自然性、非重復(fù)性和時間正確性方面也大大領(lǐng)先。
最后,作者將基于GPT-4的WikiChat提煉成7B參數(shù)的LLaMA,這個模型在事實準(zhǔn)確性方面仍然能拿到91.1%的高分,
并且運行速度提高了6.5倍,能效更好,可以本地部署。
大模型+維基百科,一起擊敗幻覺
眾所周知,LLM的幻覺問題由來已久、根深蒂固,
而且曾給各家的大語言模型都造成過不同程度的影響。
基于LLM使用概率來推斷輸出的原理,幻覺這個問題很難徹底解決,
研究人員們?yōu)榇送度氪罅康男难【幰彩呛芷诖@個WikiChat的表現(xiàn)!
WikiChat,顧名思義,就是基于維基百科的知識進行訓(xùn)練,聽起來還挺靠譜的。
除了論文和代碼,研究團隊還部署了可以直接對話的demo供大家測試,好文明!
Demo地址:https://wikichat.genie.stanford.edu/
于是小編迫不及待地要試一試WikiChat的實力。
WikiChat首先進行了自我介紹,表示自己會記錄對話用于研究,
另外,WikiChat有以下三種模式:
默認狀態(tài)是平衡輸出速度和準(zhǔn)確性,我們可以在右邊的設(shè)置中調(diào)節(jié)。
WikiChat還額外添加了TTS功能,輸出是個溫柔的女聲。
好了,讓我們趕緊「Ask her about anything on Wikipedia」!
——開個玩笑,既然你不會中文,那小編這點英文水平,只能獻丑了......
(注意上面的這句中文不要點擊語音輸出,有可能導(dǎo)致整個聊天卡住無法恢復(fù))
下面,我們首先問一個常識性問題:Sam Altman是OpenAI的CEO嗎?
其實小編想測試她知不知道Altman被開除,然后又王者歸來這件事,
不過這一句「在2020年離開YC,全職加入OpenAI」,貌似就有事實性的錯誤。
小編接下來使用游戲信息進行測試:介紹一下「原神」中的「宵宮」。
這個回答確實沒什么問題,卡池時間和配音演員也正確,
既然提到了配音演員,那順便問一下中文CV是誰:
這......不知道她為什么產(chǎn)生了這樣的幻覺?實際上維基百科中是有相關(guān)信息的:
那我們提醒她反思一下:
好家伙,給出了另一個錯誤答案,小編想了一下,應(yīng)該說的是游戲中另一位角色的CV(負責(zé)《神女劈觀》中的戲腔部分,知名度較高)。
那么測試一下,知名度比較高的角色。
小編選擇了在維基百科上有單獨條目的雷電將軍:
這下連卡池時間都有事實性錯誤,——而維基百科中的相關(guān)描述是沒有問題的。
WikiChat對于自己一直心心念念的配音演員,倒是沒有回答錯誤。
小編于是不死心地又測試了一遍之前的問題:
WikiChat也是不死心地給出了和之前同樣的回答,并且在要求反思之后,變成了「道歉機器人」。
把模式調(diào)整到事實性優(yōu)先:
WikiChat給出回答的速度要慢了很多,但還是只能道歉。
小編于是換了另一位有單獨百科條目的角色:
除了第一句,后面就開始滿嘴跑火車了。
最后,來問一下配音演員的問題(維基百科的單獨條目中包含此信息):
......你這個聊天機器人是什么情況,認準(zhǔn)了Juhuahua了是嗎?
測試到此結(jié)束,小編不知如何總結(jié),有可能是我的問題有問題吧。
比如我問題的相關(guān)信息,在英語維基百科的語料中重要性很小。
不論如何,WikiChat在一些問題上的表現(xiàn)確實還不錯,比如宵宮那個問題,換成ChatGPT,就幾乎沒有任何沾邊的事實。
這說明研究人員確實采取了一些有效的優(yōu)化方法,來解決LLM的幻覺問題。
WikiChat架構(gòu)
這項工作的事實性基礎(chǔ)是信息檢索(IR),它基于聊天機器人的響應(yīng)、以及從可信語料庫中檢索到的信息,然后生成方法利用檢索到的數(shù)據(jù)生成響應(yīng)。
上圖展示了WikiChat的組件,以及一段示例對話(關(guān)于即將上映的電影)。
生成響應(yīng)所采取的步驟包括:
1. 生成從維基百科檢索的查詢,
2. 總結(jié)和過濾檢索到的段落,
3. 從LLM生成響應(yīng),
4. 從LLM響應(yīng)中提取聲明,
5. 使用檢索到的證據(jù)對LLM響應(yīng)中的聲明進行事實核查,
6. 起草響應(yīng),
7. 完善響應(yīng)。
研究人員使用用戶話語來檢索LLM可能不知道的信息,要求LLM做出回應(yīng),并對其進行事實檢查。
阻止LLM產(chǎn)生幻覺并不容易。一般情況下,當(dāng)IR沒有檢索到任何相關(guān)信息,或知識語料庫中沒有相關(guān)信息時,LLM會產(chǎn)生幻覺來彌補不足。
因此,WikiChat會匯總和過濾檢索到的信息,而不是直接生成響應(yīng)。
這里分別對LLM生成的每個聲明進行事實核查,并在必要時教系統(tǒng)說「我不知道」。
教LLM理解時間背景:例如,文章中的將來時態(tài)可能是指對話時的過去事件。
最重要的是,不能通過放棄這些必要的步驟來過早地優(yōu)化速度,而是依靠模型蒸餾來減少延遲,直到達到高質(zhì)量。
上圖中管道的每個階段都是使用上下文學(xué)習(xí)實現(xiàn)的。
生成的管道不特定于任何語料庫。雖然本文將管道應(yīng)用于維基百科以創(chuàng)建WikiChat,但它適用于任何自由文本語料庫,包括個人和公司機密信息。
該管道也不特定于任何LLM,作者在本文中將其應(yīng)用于三個不同的LLM。
策劃正確且與對話上下文相關(guān)的信息
LLM能夠解釋用戶話語,制定檢索范圍之外的響應(yīng),或者需要聚合來自多個來源的信息或得出結(jié)論,比如:
用戶:你認為蘋果會繼續(xù)成為科技行業(yè)的重要參與者嗎?
GPT-4:是的,......蘋果擁有良好的創(chuàng)新記錄、忠實的客戶群和穩(wěn)健的財務(wù)狀況。全球市值最高的公司,市值超過2萬億美元。繼續(xù)探索增強現(xiàn)實、人工智能、自動駕駛汽車等新技術(shù)。這將幫助他們在競爭中保持領(lǐng)先地位。
但我們不能完全相信LLM,而是需要對它們的輸出進行事實檢查。此外,LLM不知道最近發(fā)生的事件。
在與用戶的對話中,WikiChat會識別何時需要訪問外部信息。這可能是因為最后一個用戶話語包含直接問題(例如「斯蒂芬·庫里是誰?」),或者需要其他信息才能做出全面的回答(例如「我真的很喜歡斯蒂芬·庫里」)。
第1階段,WikiChat生成一個搜索查詢,該查詢通過提示捕獲用戶的興趣(如下圖所示)。作者發(fā)現(xiàn),現(xiàn)有的系統(tǒng)尤其難以適應(yīng)時間環(huán)境。
WikiChat在查詢旁邊生成用戶需求的推斷時間。查詢時間可以是最近、year=yyyy或none之一,分別表示檢索到的信息應(yīng)盡可能近、特定年份或時間不重要。
將查詢發(fā)送到信息檢索系統(tǒng),從語料庫中獲取相關(guān)段落,并根據(jù)時態(tài)信息對排名靠前的結(jié)果進行重新排序,得到Npassages。
第2階段,由于這些段落可能包含相關(guān)和不相關(guān)部分的混合,WikiChat會提取檢索到的段落的相關(guān)部分,并將它們總結(jié)為要點,同時過濾掉不相關(guān)的部分(如下圖所示)。
第3階段,提示LLM生成對對話歷史記錄的響應(yīng)。這種回應(yīng)通常包含有趣且相關(guān)的知識,但本質(zhì)上是不可靠的。
第4階段,LLM響應(yīng)被分解為多種聲明(如下圖),此階段解析共同引用以減少歧義,并解析相對時間信息(如「當(dāng)前」和「去年」),以使所有聲明自包含。
然后使用IR從知識語料庫中檢索Nevidence段落,以便每個聲明作為證據(jù),并使用基于時間的重新排名來更好地處理時間敏感的主題。
第5階段,驗證提示(如下圖)使用思維鏈提示,將每個聲明分配給以下三類之一:檢索到的證據(jù)是否支持該聲明、反駁該聲明,或者證據(jù)中是否沒有足夠的信息來做出此決定。只有有證據(jù)支持的主張才會被保留。
使用收集到的信息來形成響應(yīng)
實驗表明,在滿足所有會話標(biāo)準(zhǔn)的情況下一次性編寫最終響應(yīng),對于上下文學(xué)習(xí)具有挑戰(zhàn)性,尤其是有限的上下文長度,使得很難提供足夠的多輪對話,作為少量示例來涵蓋所有必要的方面。因此,這里采用兩步法:
第6階段,WikiChat根據(jù)給定的要點列表和對話歷史記錄生成響應(yīng)草稿。
第7階段,生成反饋并進行優(yōu)化——基于相關(guān)性、自然性、非重復(fù)性和時間正確性的響應(yīng)。
反饋包含模型對每個標(biāo)準(zhǔn)的推理,以及每個標(biāo)準(zhǔn)的分?jǐn)?shù)介于0到100之間,細化以此反饋為條件。
改進是以這種反饋和分?jǐn)?shù)為條件的,作為一個思維鏈。
最后,我們來看一下WikiChat的效果:
上表展示了WikiChat的評估結(jié)果和模擬對話的基線。事實和時間準(zhǔn)確性是百分比,其他指標(biāo)是介于1和5之間的整數(shù)的平均值。
事實準(zhǔn)確性來自人類評估,其他指標(biāo)來自小樣本GPT-4。所有指標(biāo)都是越高越好。