開源模型「幻覺」更嚴重,這是三元組粒度的幻覺檢測套件
大模型長期以來一直存在一個致命的問題,即生成幻覺。由于數(shù)據(jù)集的復雜性,難免會包含過時和錯誤的信息,這使得輸出質(zhì)量面臨著極大的挑戰(zhàn)。過多的重復信息還可能導致大型模型產(chǎn)生偏見,這也算是一種形式的幻覺。如何檢測和有效緩解大模型的生成幻覺問題一直是學術(shù)界的熱門課題。
近日,亞馬遜上海人工智能研究院推出細粒度大模型幻覺檢測工具 BSChecker,包含如下重要特性:
- 細粒度幻覺檢測框架,對大模型輸出文本進行三元組粒度的幻覺檢測。
- 幻覺檢測基準測試集,包含三種任務場景,滿足用戶的不同需求。
- 兩個基準測試排行榜,目前涵蓋15個主流大模型的幻覺檢測結(jié)果。
另外,BSChecker的作者們在Gemini推出后也很快做了自動檢測的幻覺測試。

幻覺檢測框架示意圖
- 項目地址:https://github.com/amazon-science/bschecker-for-fine-grained-hallucination-detection
- 排行榜地址:https://huggingface.co/spaces/xiangkun/BSChecker-Leaderboard
技術(shù)亮點
更細的粒度:與傳統(tǒng)的段落或句子級別的分析方法不同,BSChecker 將大模型的輸出文本分解成知識三元組。進行這樣的細粒度檢測不僅能驗證單個知識的真實性,還為進一步的精確分析提供了可能。
通常我們將幻覺檢測的最小單元稱為一個聲明(claim)。在前人的工作中,有使用輸出文本中的句子作為聲明的(SelfCheckGPT),也有使用模型從輸出文本中抽取更短的子句作為聲明的(FActScore,F(xiàn)ACTOOL)。BSChecker 探索了使用知識三元組表示聲明的方法,這個想法受到知識圖譜的啟發(fā),在知識圖譜中三元組被用來封裝事實和知識單元。知識三元組采用(主語,謂詞,賓語)的結(jié)構(gòu),捕捉輸出文本中的細粒度信息。以下示例展示了一句句子和其對應的細粒度三元組表示:
吳京在電影《戰(zhàn)狼》中飾演了主角冷鋒。

三元標簽模式:不同于傳統(tǒng)幻覺檢測方法將整個輸出文本分類為是否存在幻覺這兩種類別標簽,BSChecker 對輸出文本中的每一個聲明都進行幻覺檢測并分類。通過這種方式,輸出文本和其相應的參考文本之間的關(guān)系可以可視化為下圖:

圖中輸出文本和參考文本之間的交集是可以直接驗證的部分,其中又分為蘊涵(Entailment,圖中綠勾?)和矛盾(Contradiction,圖中紅叉?)兩類,具體取決于聲明是否得到參考文本的支撐。然而,在實際應用中,參考文本可能并不總是能提供足夠的證據(jù)來驗證所有聲明。在這種情況下,這些聲明的真實性需要額外的參考文本才能進行評估(橙色問號),我們將這樣的聲明稱為中性(Neutral)。
這三個類別與事實核查(Fact Checking)領域中的支撐(Support)、反駁(Refute)和信息不足(Not Enough Information)這三個概念密切相關(guān),并且它們在自然語言推理(NLI)中也有應用。BSChecker 使用這種三元標簽模式取代傳統(tǒng)的二分類標簽,使得輸出文本與參考文本之間的關(guān)系得到更精確的表達。
更廣泛的覆蓋范圍:BSChecker 根據(jù)輸入大模型的上下文的數(shù)量和質(zhì)量,設定了三種不同的場景,分別是無上下文(如開放性問答任務),帶噪聲的上下文(如檢索增強生成任務)和準確上下文(如文本摘要、信息抽取任務)。

三種場景對比示意圖
基于這三種場景,作者構(gòu)建了一個基準數(shù)據(jù)集,包括 300 個示例,每種場景對應 100 個示例。這些示例是從下表中列出的數(shù)據(jù)源中隨機抽取的:

BSChecker 工作流程
BSChecker 具有模塊化的工作流程,分為三個可配置的模塊:聲明抽取器 E,幻覺檢測器 C,以及聚合規(guī)則 τ。這三個模塊互相解耦合,可以通過增強其中的部分模塊對整個框架進行擴展和改進。

BSChecker 工作流程圖
其中兩個主要模塊是:
- 基于大模型的聲明抽取器:作者發(fā)現(xiàn)大模型很擅長提取聲明三元組,在當前版本中,他們使用 GPT-4 和 Claude 2 作為聲明抽取器。
- 基于人工或模型的幻覺檢測器:對于給定的聲明三元組和參考文本,標注者可以相應地進行標注,如下圖所示。該標注工具也將很快發(fā)布。基于模型的幻覺檢測器將在后續(xù)的自動評估排行榜章節(jié)中介紹。

無上下文場景下的評估過程
人工評估結(jié)果
BSChecker 目前收錄了 2100 個經(jīng)過細粒度人工標注的大模型輸出文本,涵蓋了 7 個主流大模型,如 GPT-4、Claude 2、LLaMA 2 等?;谶@個結(jié)果,作者構(gòu)建了一個交互式的排行榜,見下圖。人工評估排行榜包含兩個可交互的選項:1)上文中提到的三種任務場景,以及三種場景上平均的結(jié)果(頂部選項);2)評估指標(左側(cè) “排名依據(jù)” 選項)。下圖顯示了依據(jù)蘊涵排名得到的排行榜。

根據(jù)人工評估結(jié)果,作者得出了以下發(fā)現(xiàn):
上下文信息對于輸出符合事實的文本至關(guān)重要
平均而言,從無上下文到帶噪聲的上下文,再到準確上下文,評估結(jié)果為矛盾的比例從 21% 降至 11%,再到 5%。

在真實性方面,最新的商業(yè)閉源大模型比大多數(shù)開源大模型更強
最新的商業(yè)大模型,如 Claude 2、GPT-4 和 GPT-3.5-Turbo,相較于大多數(shù)開源大模型,產(chǎn)生了更少的幻覺。具體而言,商業(yè)大模型在準確上下文場景中表現(xiàn)良好。例如,GPT-4 在這個場景中幾乎沒有幻覺(0.9% 矛盾和 1.2% 中性)。LLaMA 2 70B 在排行榜上與商業(yè)大模型結(jié)果接近,特別是在提供上下文的情況下。

GPT 系列大模型的真實性穩(wěn)步提高
GPT-4 比 GPT-3.5 更好,而 GPT-3.5 又遠遠優(yōu)于 InstructGPT。作者從相關(guān)文獻中尋找并總結(jié)了一些可能的解釋,詳見代碼倉庫中的 README。其中一個實驗是:他們將相同的文本輸入 GPT-4,并要求它解釋,這是一種修改過的檢索增強生成(RAG)場景。有趣的是,GPT-4 犯了一個明顯的錯誤,它宣稱在真實性方面 InstructGPT 比 GPT-3.5 更好。

即使對于最新的商業(yè)大模型,無上下文場景仍然具有挑戰(zhàn)性
雖然 GPT-4 和 Claude 2 在很大程度上領先于開源大模型,但 GPT4 仍然有超過 10% 的錯誤,這是一個不可忽視的錯誤比例。Claude 2 相對保守,犯的錯誤(即矛盾)較少,但往往提供更多無法驗證的輸出文本。

自動評估排行榜
人工標注有助于深入了解大模型的幻覺,但對于評估更多的大模型而言,它們不具備可擴展性。BSChecker 框架允許插入基于模型的幻覺檢測器,作者發(fā)現(xiàn)大模型和自然語言推理(NLI)模型都是不錯的選擇。它可以在命令行輕松配置,從而形成一個完全自動化的端到端幻覺檢測框架。
以下動圖顯示了由 GPT-4 作為聲明抽取器和幻覺檢測器得到的排行榜。作者現(xiàn)在在排行榜上評估了 15 個大模型。用戶可以方便地使用他們的工具將自己檢測的結(jié)果放在排行榜上。

自動幻覺檢測框架的性能如何?
作者使用 Kendall's tau 來衡量自動排行榜與人工評估排行榜之間的一致性。具體地,他們使用了 scipy.stats.kendalltau,它可以返回兩個排名之間的 p 值(表示置信度)和 tau 值(表示相關(guān)性)。下面的熱度圖顯示了聲明抽取器(列)、幻覺檢測器(行)和任務場景(水平條)的各種組合結(jié)果,他們展示了其中高置信度(p 值 < 0.05)的組合。有趣的是,這些高置信度的條目也都顯示出了很高的相關(guān)性(tau>0.3)。例如,想要在無上下文場景中依據(jù)矛盾比例排名,用戶可以使用 GPT-4 聲明抽取器和 GPT-4 或 NLI 幻覺檢測器;想要排名準確上下文場景中的蘊涵比例,可以使用 Claude 2 聲明抽取器和 GPT4 幻覺檢測器。

他們使用 BSChecker 的自動檢測框架對 Gemini 進行了幻覺檢測,將 GPT-4 作為聲明抽取器和幻覺檢測器,在無上下文場景下按照矛盾比例進行排名(和上述推薦設置一致),得到的結(jié)果與 Gemini 報告中的實驗結(jié)果一致。他們還進一步對其中的 10 個輸出文本進行了人工標注,其中共包含 118 個聲明三元組,標注結(jié)果顯示自動檢測和人工標注的一致性達到了 90.7%。
BSChecker 使用方式
用戶現(xiàn)在可以在 GitHub 代碼倉庫中訪問 BSChecker,也可以通過 pip 進行安裝。使用方式可參閱 README 中的 Quick Start 部分。其中包含如何使用 BSChecker 提取知識三元組、在三元組級別檢測幻覺以及評估自定義大模型的詳細說明。此外,用戶可以將自定義的評估結(jié)果添加到自動評估排行榜中,與其他結(jié)果進行比較。
合作邀請:共同推動 BSChecker 的發(fā)展
作者相信,細粒度的檢測和準確定位幻覺是有效緩解幻覺的第一步。BSChecker 仍有很大的改進空間,他們熱情地邀請大家參與開源貢獻。以下是一些可能的方向:
- 開源聲明抽取器和幻覺檢測器:目前,性能最好的配置使用了閉源的商業(yè)大模型,作者在當前版本中也包含了一個基于自然語言推理的幻覺檢測器,盡管速度更快,但在處理長文檔時仍存在較大的性能差距。
- 錯誤記憶追溯:對于無上下文場景,使用搜索引擎查找最新的參考文獻是一種非常簡略的解決方案。但理想情況下,我們應該回到大模型的訓練數(shù)據(jù),去追溯有問題的記憶。
- 三元組抽取的優(yōu)化:三元組是簡潔的,但在處理更復雜的語義時存在困難。它們也是對文本的一個采樣,因此不能涵蓋文本中的全部語義,也不善于處理上下文中的細微差別。
- 幻覺檢測證據(jù)的定位:將三元組映射回文本可能并不容易,例如在處理多步推理時存在挑戰(zhàn)。
- 對齊人工評估結(jié)果:在復雜環(huán)境中,特別是在復雜上下文中縮小檢測器和人工評估者之間的差距。
- 擴展任務覆蓋:大模型在許多不同的任務和場景中被使用。由于資源限制,本研究在某些領域的覆蓋范圍較小。例如,在當前的基準測試集中,僅有 6 個示例涵蓋了摘要任務。
- 平衡真實性與有益性:BSChecker 目前僅評估幻覺的數(shù)量,這可以通過生成真實但無益的文本來操縱評估結(jié)果,正如作者觀察到的一些大模型的表現(xiàn)那樣。因此,對于 BSChecker 來說,引入一個關(guān)于有益性的評估標準可能很重要。
作者表示,如果有任何反饋,可以隨時通過 GitHub issues 聯(lián)系他們。





































