模型概述
模型特點
模型能力
使用案例
🚀 HHEM-2.1-Open幻覺評估模型
HHEM-2.1-Open是用於檢測大語言模型(LLM)中幻覺現象的模型。相比前代HHEM-1.0,它有顯著提升,在部分基準測試中表現優於GPT-3.5-Turbo和GPT-4。該模型可在消費級硬件上運行,適用於構建檢索增強生成(RAG)應用。
🚀 快速開始
HHEM-2.1-Open是Vectara於2023年11月創建的HHEM-1.0-Open的重大升級版本。HHEM模型系列旨在檢測大語言模型中的幻覺現象,在構建檢索增強生成(RAG)應用時特別有用,可衡量LLM生成的摘要與事實的事實一致性程度。
如果你想了解更多關於RAG的信息或體驗Vectara,可以註冊一個Vectara賬戶。
⚠️ 重要提示
HHEM-2.1-Open在使用上引入了重大變更,請根據下面的新使用方法更新你的代碼。我們正在努力使其與HuggingFace的推理端點兼容,對此帶來的不便,我們深表歉意。
✨ 主要特性
- 性能提升:HHEM-2.1-Open相較於HHEM-1.0有顯著改進,在RAGTruth-Summ和RAGTruth-QA基準測試中表現更佳。
- 超越GPT:在所有三個基準測試中,HHEM-2.1-Open的性能均優於GPT-3.5-Turbo和GPT-4。
- 硬件友好:可以在消費級硬件上運行,32位精度下佔用不到600MB的RAM空間,在現代x86 CPU上處理2k令牌輸入約需1.5秒。
- 上下文長度:具有無限的上下文長度,而HHEM-1.0上限為512個令牌,這使得HHEM-2.1-Open能為RAG提供更準確的幻覺檢測。
📦 安裝指南
文檔未提及具體安裝步驟,可參考Hugging Face相關模型加載方式,使用transformers
庫進行安裝和加載。
💻 使用示例
基礎用法
使用AutoModel
進行預測:
from transformers import AutoModelForSequenceClassification
pairs = [ # 測試數據,List[Tuple[str, str]]
("The capital of France is Berlin.", "The capital of France is Paris."), # 事實正確但有幻覺
('I am in California', 'I am in United States.'), # 一致
('I am in United States', 'I am in California.'), # 有幻覺
("A person on a horse jumps over a broken down airplane.", "A person is outdoors, on a horse."),
("A boy is jumping on skateboard in the middle of a red bridge.", "The boy skates down the sidewalk on a red bridge"),
("A man with blond-hair, and a brown shirt drinking out of a public water fountain.", "A blond man wearing a brown shirt is reading a book."),
("Mark Wahlberg was a fan of Manny.", "Manny was a fan of Mark Wahlberg.")
]
# 步驟1: 加載模型
model = AutoModelForSequenceClassification.from_pretrained(
'vectara/hallucination_evaluation_model', trust_remote_code=True)
# 步驟2: 使用模型進行預測
model.predict(pairs) # 注意使用predict()方法,不要使用model(pairs)。
# tensor([0.0111, 0.6474, 0.1290, 0.8969, 0.1846, 0.0050, 0.0543])
高級用法
使用pipeline
進行預測:
from transformers import pipeline, AutoTokenizer
pairs = [ # 測試數據,List[Tuple[str, str]]
("The capital of France is Berlin.", "The capital of France is Paris."),
('I am in California', 'I am in United States.'),
('I am in United States', 'I am in California.'),
("A person on a horse jumps over a broken down airplane.", "A person is outdoors, on a horse."),
("A boy is jumping on skateboard in the middle of a red bridge.", "The boy skates down the sidewalk on a red bridge"),
("A man with blond-hair, and a brown shirt drinking out of a public water fountain.", "A blond man wearing a brown shirt is reading a book."),
("Mark Wahlberg was a fan of Manny.", "Manny was a fan of Mark Wahlberg.")
]
# 準備提示
prompt = "<pad> Determine if the hypothesis is true given the premise?\n\nPremise: {text1}\n\nHypothesis: {text2}"
input_pairs = [prompt.format(text1=pair[0], text2=pair[1]) for pair in pairs]
# 使用文本分類管道進行預測
classifier = pipeline(
"text-classification",
model='vectara/hallucination_evaluation_model',
tokenizer=AutoTokenizer.from_pretrained('google/flan-t5-base'),
trust_remote_code=True
)
full_scores = classifier(input_pairs, top_k=None) # List[List[Dict[str, float]]]
# 可選: 提取'consistent'標籤的分數
simple_scores = [score_dict['score'] for score_for_both_labels in full_scores for score_dict in score_for_both_labels if score_dict['label'] == 'consistent']
print(simple_scores)
# 預期輸出: [0.011061512865126133, 0.6473632454872131, 0.1290171593427658, 0.8969419002532959, 0.18462494015693665, 0.005031010136008263, 0.05432349815964699]
當然,使用pipeline
時,你還可以通過設置top_k=1
來獲取最可能的標籤(即得分最高的標籤)。
📚 詳細文檔
幻覺檢測基礎
“幻覺”或“事實不一致”是指一個文本(待判斷的假設)沒有得到另一個文本(給定的證據/前提)的支持。要確定一個文本是否存在幻覺,始終需要兩個文本片段。在應用於檢索增強生成(RAG)時,大語言模型會獲得從某個數據集中檢索到的若干文本片段(通常稱為事實或上下文),如果摘要(假設)沒有得到這些事實(證據)的支持,則表明存在幻覺。
RAG中常見的一種幻覺類型是事實正確但有幻覺。例如,給定前提“法國的首都是柏林”,假設“法國的首都是巴黎”就是有幻覺的——儘管在世界知識中這是正確的。當大語言模型不是基於RAG檢索過程中提供給它們的文本數據生成內容,而是基於其預訓練知識生成內容時,就會發生這種情況。
此外,幻覺檢測是“不對稱的”或不可交換的。例如,給定前提“我在美國”,假設“我在加利福尼亞”被認為是有幻覺的,但反之則是一致的。
HHEM-2.1-Open與HHEM-1.0對比
HHEM-2.1-Open與原始的HHEM-1.0的主要區別在於,HHEM-2.1-Open具有無限的上下文長度,而HHEM-1.0上限為512個令牌。更長的上下文長度使得HHEM-2.1-Open能夠為RAG提供更準確的幻覺檢測,因為RAG通常需要超過512個令牌。
以下表格比較了這兩個模型在AggreFact和RAGTruth基準測試中的表現,以及與GPT-3.5-Turbo和GPT-4的對比。特別是在AggreFact上,我們關注其SOTA子集(表示為AggreFact-SOTA
),其中包含由Google的T5、Meta的BART和Google的Pegasus生成的摘要,這是AggreFact基準測試中的三個最新模型。RAGTruth的摘要(表示為RAGTruth-Summ
)和問答(表示為RAGTruth-QA
)子集的結果分別報告。GPT-3.5-Turbo和GPT-4的版本分別為01-25和06-13。兩個GPT模型的零樣本結果是使用本文中的提示模板獲得的。
表1:在AggreFact-SOTA上的性能
模型 | 平衡準確率 | F1值 | 召回率 | 精確率 |
---|---|---|---|---|
HHEM-1.0 | 78.87% | 90.47% | 70.81% | 67.27% |
HHEM-2.1-Open | 76.55% | 66.77% | 68.48% | 65.13% |
GPT-3.5-Turbo零樣本 | 72.19% | 60.88% | 58.48% | 63.49% |
GPT-4 06-13零樣本 | 73.78% | 63.87% | 53.03% | 80.28% |
表2:在RAGTruth-Summ上的性能
模型 | 平衡準確率 | F1值 | 召回率 | 精確率 |
---|---|---|---|---|
HHEM-1.0 | 53.36% | 15.77% | 9.31% | 51.35% |
HHEM-2.1-Open | 64.42% | 44.83% | 31.86% | 75.58% |
GPT-3.5-Turbo零樣本 | 58.49% | 29.72% | 18.14% | 82.22% |
GPT-4 06-13零樣本 | 62.62% | 40.59% | 26.96% | 82.09% |
表3:在RAGTruth-QA上的性能
模型 | 平衡準確率 | F1值 | 召回率 | 精確率 |
---|---|---|---|---|
HHEM-1.0 | 52.58% | 19.40% | 16.25% | 24.07% |
HHEM-2.1-Open | 74.28% | 60.00% | 54.38% | 66.92% |
GPT-3.5-Turbo零樣本 | 56.16% | 25.00% | 18.13% | 40.28% |
GPT-4 06-13零樣本 | 74.11% | 57.78% | 56.88% | 58.71% |
上述表格顯示,HHEM-2.1-Open在RAGTruth-Summ和RAGTruth-QA基準測試中相較於HHEM-1.0有顯著改進,而在AggreFact-SOTA基準測試中略有下降。然而,在解釋這些結果時,請注意AggreFact-SOTA是在相對較舊的大語言模型類型上進行評估的:
- AggreFact-SOTA中的大語言模型:T5、BART和Pegasus;
- RAGTruth中的大語言模型:GPT-4-0613、GPT-3.5-turbo-0613、Llama-2-7B/13B/70B-chat和Mistral-7B-instruct。
HHEM-2.1-Open與GPT-3.5-Turbo和GPT-4對比
從上述表格中我們還可以得出結論,HHEM-2.1-Open在所有三個基準測試中的性能均優於GPT-3.5-Turbo和GPT-4。HHEM-2.1-Open相對於GPT-3.5-Turbo和GPT-4的平衡準確率優勢總結如下表4所示。
表4:HHEM-2.1-Open相對於GPT-3.5-Turbo和GPT-4的平衡準確率優勢百分比
對比情況 | AggreFact-SOTA | RAGTruth-Summ | RAGTruth-QA |
---|---|---|---|
HHEM-2.1-Open 優於 GPT-3.5-Turbo | 4.36% | 5.93% | 18.12% |
HHEM-2.1-Open 優於 GPT-4 | 2.64% | 1.80% | 0.17% |
HHEM-2.1-Open的另一個優勢是其效率。它可以在消費級硬件上運行,32位精度下佔用不到600MB的RAM空間,在現代x86 CPU上處理2k令牌輸入約需1.5秒。
HHEM-2.1:HHEM-2.1-Open更強大的專有版本
從名稱中你可能已經察覺到,HHEM-2.1-Open是高級版HHEM-2.1的開源版本。HHEM-2.1(不帶-Open
)僅通過Vectara的RAG即服務平臺提供。HHEM-2.1與HHEM-2.1-Open的主要區別在於,HHEM-2.1支持三種語言的跨語言處理:英語、德語和法語,而HHEM-2.1-Open僅支持英語。“跨語言”意味著三種語言的任意組合,例如,德語文檔、英語查詢、法語結果。
為什麼選擇Vectara的RAG?
Vectara提供了一個可信的生成式AI平臺。該平臺允許組織快速創建基於其擁有的數據、文檔和知識的AI助手體驗。Vectara的無服務器RAG即服務還解決了企業採用所需的關鍵問題,即:減少幻覺、提供可解釋性/來源、實施訪問控制、允許知識的即時更新,並減輕大語言模型帶來的知識產權/偏見問題。
要開始從HHEM-2.1中受益,你可以註冊一個Vectara賬戶,每次查詢時都會自動返回HHEM-2.1分數。
以下是一些額外的資源:
- Vectara API文檔。
- 使用Forrest的
vektara
包的快速入門指南。 - 瞭解更多關於Vectara的Boomerang嵌入模型、Slingshot重排器和Mockingbird大語言模型。
LLM幻覺排行榜
如果你想了解使用該模型評估頂級大語言模型的最新測試結果,我們有一個公共排行榜會定期更新,結果也可在GitHub倉庫上獲取。
📄 許可證
本模型採用Apache-2.0許可證。
🔧 技術細節
文檔未提供詳細技術實現細節。
Cite this model
@misc {hhem-2.1-open,
author = {Forrest Bao and Miaoran Li and Rogger Luo and Ofer Mendelevitch},
title = {{HHEM-2.1-Open}},
year = 2024,
url = { https://huggingface.co/vectara/hallucination_evaluation_model },
doi = { 10.57967/hf/3240 },
publisher = { Hugging Face }
}



