模型简介
模型特点
模型能力
使用案例
🚀 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 }
}



