Command Palette
Search for a command to run...
HALOGEN:大语言模型幻觉的奇幻探索与发现之地
HALOGEN:大语言模型幻觉的奇幻探索与发现之地
Abhilasha Ravichander Shrusti Ghela David Wadden Yejin Choi
摘要
尽管生成式大语言模型(LLM)在生成高质量、流畅文本方面表现出色,但它们同样会产生幻觉:即与既定世界知识或所提供的输入上下文不符的陈述。然而,衡量幻觉颇具挑战性,因为让人类即时验证模型输出既昂贵又耗时。本工作发布了 HALOGEN,一个全面的幻觉基准,包含:(1)涵盖编程、科学归因和摘要等九个领域的 10,923 条生成式模型提示词;(2)针对每种用例的高精度自动验证器,将 LLM 生成内容分解为原子单元,并对照高质量知识来源逐一验证每个单元。我们利用该框架对 14 个语言模型生成的 150,000 条结果进行评估,发现即便是表现最佳的模型也充斥着幻觉(在某些领域,高达 86% 的生成原子事实存在幻觉)。我们进一步提出了一种新颖的 LLM 幻觉错误分类体系,依据其可能源于对训练数据的错误回忆(A 类错误)、训练数据中的错误知识(B 类错误)还是凭空捏造(C 类错误)进行区分。我们期望该框架能为深入研究生成模型产生幻觉的原因奠定基础,推动可信大语言模型的发展。
一句话总结
华盛顿大学、Google 和斯坦福大学提出 HALOGEN,这是一个幻觉基准,覆盖九个领域的 10,923 条提示,并配备自动验证器,这些验证器将 LLM 生成内容拆解为原子单元,以进行知识锚定式验证;同时定义了一种新的三类型错误分类,区分对训练数据的错误回忆、训练数据中的错误知识以及捏造。
核心贡献
- HALOGEN 作为一个幻觉基准被提出,包含覆盖九个领域的 10,923 条提示,以及自动高精度验证器;这些验证器将生成内容拆解为原子单元,并针对每个单元对照知识来源进行验证。
- HALOGEN 被用于评估来自 14 个语言模型的 150,000 条生成结果,结果显示,即使表现最好的模型在某些领域也可能对高达 86% 的生成原子事实产生幻觉。
- 定义了新的幻觉错误分类:类型 A 为对训练数据的错误回忆,类型 B 为训练数据中的错误知识,类型 C 为捏造;同时这些幻觉可以追溯到大规模预训练语料。
引言
商用大语言模型可能产生会误导用户、破坏工作流,并在搜索、摘要和代码生成等应用中造成下游危害的幻觉。已有工作主要在狭窄的锚定任务中衡量幻觉,或依赖参考来源和人工检查,但开放式生成使事实核查成本高昂、不完整,且难以跨领域比较。作者提出 HALOGEN,一个多领域评估套件,它将长格式输出拆解为原子事实,并使用外部工具、程序或分类器进行验证。其评估了 14 个模型在基于回答和基于拒答任务上的 150000 条生成结果,随后使用类型 A、类型 B 和类型 C 错误分类体系,将幻觉追溯至预训练语料。
数据集
-
HALOGEN 是一个幻觉评估数据集,而不是训练语料。它包含九个基于提示的任务,覆盖内容锚定文本生成和开放域文本生成。
-
每个任务包含三个组件:
- 一组供模型使用的提示。
- 一个分解引擎,将模型输出拆解为原子可验证事实或单元。
- 一个验证器,针对任务特定的事实真值源检查每个单元。
-
任务分为回答型任务,模型应当回答;以及拒答型任务,模型应当在适当时拒答。
-
开放域任务聚焦知识导向问题,并避免主观观点、夸张表述和创意写作。
-
内容锚定任务根据生成事实是否被提供上下文蕴含来判定幻觉。
-
Code Packages:
- Source: 基于 Stack Overflow 问题的提示。
- Task: 模型生成编码解决方案。
- Processing: 从生成代码中提取导入的包。
- Verification: 将包对照 PyPi 和 Python Module index 进行检查。
-
Summarization:
- Source: 来自 CNN/Daily Mail 摘要数据集的 1,278 个实例。
- Task: 模型对提供的文章进行摘要。
- Decomposition: GPT-3.5 将摘要拆解为独立事实。
- Verification: Llama-2-70B 检查每个事实是否由源文本蕴含。
-
Simplification:
- Source: 从 WikiLarge 采样的 1,000 个实例。
- Task: 模型在保留含义的同时简化输入文本。
- Processing: 使用与摘要相同的分解和验证流程。
-
Biographies:
- Source: 来自 FactScore 数据集的 682 个实体。
- Prompt format: "Tell me a bio of ."
- Processing: 使用 FactScore 分解引擎和验证器检查传记事实。
-
Rationalization, Binary:
- 任务要求给出二元答案并提供理由。
- 主题包括素性测试、从州和大学识别参议员,以及判断两个城市之间是否存在航班序列。
- 正确答案是素性测试为 Yes,参议员搜索和图连通性为 No。
- 相反答案或不正确理由都被视为幻觉。
-
Rationalization, Numerical:
- 包含 1,014 个生成的提示,每个提示都有唯一正确答案。
- Task: 模型统计满足条件的实体并列出它们。
- Decomposition: Llama-2-70B 提取列出的实体。
- Verification: 实体对照地名词典进行检查。
-
Scientific Attribution:
- Source: 来自 Hetionet、TruthfulQA、COVID-19 Lies 和 SciFact 的不准确陈述、错误观念、错误答案和误导性声明。
- Task: 模型回应科学声明,通常通过引用参考文献。
- Decomposition: 响应被拆解为原子参考文献标题。
- Verification: 参考文献对照 S2 index 进行检查。
-
Historical Events:
- Source: 使用 400 位知名人士构造 1,500 对寿命不重叠的配对,使会面不太可能。
- Task: 模型应当否认不合理的会面,或者拒答。
- Verification: Llama-2-70B 判定模型是确认、否认,还是未能拒答。
- Hallucinations: 确认会面或未能拒答都被计为幻觉。
-
False Presuppositions:
- 提示要求模型列出 N 个满足条件的实体,而 N 超过真实满足条件的实体数量。
- Processing: 幻觉单元是不满足条件而生成的条目。
-
Verifier evaluation:
- 对于摘要、简化和历史事件,作者从每个任务中抽样 100 个原子事实。
- 这些事实被人工标注为蕴含或拒答。
- 标注结果用于衡量与自动验证器的一致性。
-
该论文使用 HALOGEN 评估模型事实性。它没有描述 HALOGEN 的训练划分或混合比例。
-
对于每条提示,该基准评估模型是否响应,在不拒答时从响应中抽取原子事实,验证每个事实,并计算幻觉和效用相关分数。
-
没有报告裁剪策略。数据集构建的重点是提示来源、提示生成、采样、原子事实分解,以及任务特定验证元数据,例如包索引、参考文献索引、地名词典和蕴含判定。
方法
作者将 HALOGEN 设计为模块化评估框架,而不是单一评分函数。核心方法是将模型输出转化为小型、独立可核查的声明,然后对这些声明应用任务特定验证器。这种分离使基准能够评估不同种类的事实性错误,包括摘要中缺乏支持的声明、代码中无效包名、错误数值列表,以及捏造的历史事件。
该流程有三个主要组件:
- 一组提示 X,用于引出针对性生成内容。
- 一个分解引擎 D,将每条模型生成内容转换为原子单元。
- 一个幻觉检测器 V,针对外部事实真值源、提供的上下文或预定义任务策略验证每个原子单元。
对于提示 x∈X 和模型响应 y,分解步骤得到
D(y)={a1,a2,…,an},其中每个 ai 是一个简短声明、事实、实体、代码依赖或其他可验证单元。验证器随后给出事实性判定
V(ai)∈{supported,hallucinated}.如果有一个或多个原子单元未通过验证,则相应生成内容被认为包含幻觉。对于内容锚定任务,检测器检查每个单元是否被提供的上下文蕴含。对于开放域任务,检测器针对指定事实真值源检查每个单元,例如包索引、科学论文索引、地名词典或历史关系数据库。
该框架区分回答型设置和拒答型设置。在回答型任务中,模型被期望提供事实性内容,检测器验证这些内容。在拒答型任务中,模型被期望避免断言缺乏支持的信息,检测器检查响应是否确认、否认,或未能适当拒答。这种区分对于包含错误前提、误导性科学声明或历史上极不可能发生事件的提示尤其重要。
每个基准模块遵循相同的高层结构,但使用任务特定的分解与验证策略。参见下方的任务流程说明了解主要模块。
对于代码生成,模型被要求解决编程问题并返回代码。验证模块从生成代码中提取导入库或包名。随后将这些包标识符对照权威包索引进行检查。当模型引用索引中不存在的库,或者生成的依赖无法匹配有效 Python 包时,记录一个幻觉。
对于摘要和简化,该基准将生成的摘要或简化文本视为声明级事实性来源。分解引擎首先将模型输出拆解为独立事实声明。随后将这些原子事实与原始源上下文进行比较。验证步骤确定每个原子事实是否由提供的文本蕴含。这使框架能够区分忠实压缩与无支持改写或额外添加细节。
对于传记生成,该基准使用面向个人级事实声明的专门分解与验证设计。系统将由传记生成内容转换为关于命名实体的原子声明,并对照外部证据验证这些声明。该模块针对语言模型中常见失败模式:生成看似合理但错误的个人属性、日期、职业或隶属关系。
对于二元合理化任务,框架同时评估答案和理由。模型必须回答此类问题,例如一个数是否为素数、一名政治家是否满足指定条件,或两个城市之间是否存在航班连接。每个提示家族的预期答案是固定的。如果模型返回正确答案但缺乏支持或存在矛盾的理由,或者返回错误答案并附带不正确解释,系统会将该响应视为包含幻觉。这种设计捕捉了推理说明可能事实性无效这一点,即使最终标签看起来合理。
对于数值合理化任务,模型被要求列出满足条件的实体并给出计数。分解模块从自由格式响应中提取列出的实体。验证模块随后对照地名词典或参考集合检查每个实体。这测试模型是否捏造条目、过度计数类别,或遗漏有效实体,同时给出自信的数值答案。
对于科学归属,提示包含不准确的科学声明、错误观念、误导性陈述或错误答案。目标是衡量模型是否为虚假或缺乏支持的声明附上有效引用。响应被拆解为引用参考单元,例如论文标题或科学来源。随后这些单元对照科学文献索引进行检查。因此,该模块不仅评估声明是否正确,还评估所引用证据是否实际支持该声明。
对于历史事件推理,该基准构造涉及寿命不重叠知名人士的提示。任务是判断拟议会面或互动是否可能。验证器分析模型响应,以决定它是否确认会面、否认会面,或未能拒答。如果模型在不兼容的历史时间线下仍断言会面,则被标记为幻觉。该模块特别契合框架的拒答型设置,因为正确行为可能需要否认或拒答,而不是生成详细但错误的叙事。
对于错误前提任务,提示要求模型列出比实际满足条件的实体更多的实体。例如,模型可能被要求提供 N 个具有某性质的实体,即使少于 N 个此类实体存在。分解模块提取提出的实体,验证器检查每个实体是否满足条件。任何未满足所请求约束而列出的条目,或为达到请求列表长度而捏造额外实体的响应,都是幻觉单元。
该工作还验证验证器模块的可靠性。对于若干任务,事实性检测器本身使用大语言模型实现。为审查这种设计,基准从摘要、简化和历史事件验证等任务中抽取原子单元子集,随后将自动验证器判定与人工标注进行比较。目标是确保检测器保持与人工事实性判断的充分一致性,因为该基准的整体可靠性依赖于验证器阶段的准确性。
总体而言,该方法将幻觉评估视为结构化验证问题。该框架不是孤立地为完整模型响应评分,而是将其转换为原子声明,应用来源特定验证器,并在单元级别汇总判定。这使得评估更具可解释性、更任务敏感,并更能定位事实性错误发生的位置。
实验
实验构建并使用 HALOGEN,这是一个九任务事实性基准,具备自动分解与验证,以及用于幻觉、拒答和效用的指标,用于在内容锚定、开放域、回答型和拒答型设置中比较 14 个 LLM。结果显示,所有模型仍容易产生幻觉,事实性随领域和模型家族变化,闭源 GPT 模型和 Llama-3-70B 表现最强,而更大的规模主要提升回答型准确性,而非拒答表现。进一步分析表明,许多开放域错误可追溯到误导性预训练上下文或证据不足,而内容锚定错误主要源于错误处理提供来源,这说明提升事实性需要更干净的锚定和更忠实地使用上下文。
HALOGEN 提出了一个基于多样提示场景构建的事实性基准,并配套场景特定的分解和验证工具。它覆盖面向回答的生成和面向拒答的任务,支持在代码、科学归属、摘要、简化、传记、历史事件和错误前提上进行幻觉分析。 accompanying 错误分析表明,高性能模型经常通过错误处理提供上下文而产生幻觉,而简化错误通常涉及严重插入或替换。该基准为九种事实性场景组合了提示、分解器和事实性验证器。验证方法因任务而异,包括包索引检查、Semantic Scholar 检索、蕴含判断、FActScore、拒答检查和程序化验证。对于高效用摘要,大多数检测到的幻觉是内在型幻觉,源自对输入上下文的不正确使用。在简化中,插入和替换解释了大多数标注幻觉,且许多很严重。错误前提和不可能的历史事件被作为拒答型场景处理,以测试模型拒答。
在回答型 HALOGEN 任务中,GPT-4 和 GPT-3.5 表现出最强的整体质量和最低幻觉率,但其逐任务优势在代码、摘要、简化、传记和合理化设置中有所不同。Falcon-40B 总体具有竞争力,而更小或更旧的指令模型通常产生较低质量响应并更容易产生幻觉,尤其是在传记、简化和合理化中。结果表明,事实性行为依赖领域,而不能完全从模型的总体性能预测。GPT-4 和 GPT-3.5 在回答型任务集合中几乎并列,是最事实性且高效用的响应模型。代码和摘要任务显示多个模型具有高效用,但幻觉行为仍因模型家族而异。传记、简化和合理化设置是较弱领域,低效用模型在这些领域表现出明显更多的幻觉事实。
在拒绝导向的 HALOGEN 类别中,GPT-4 在被比较模型之间表现出最强的整体平均效用和最低平均幻觉分数。模型性能因类别而异,GPT-4 和 Llama-2 7B chat 在历史事件上表现良好,而 Alpaca-7B 在引用项效用方面显示相对较高的效用。若干模型仍表现出较高的幻觉比例或响应比例,尤其是在科学归属和错误前提上。GPT-4 在所列模型中的整体平均效用和整体幻觉分数上领先。性能在不同拒答型类别中不同,GPT-4 和 Llama-2 7B chat 在历史事件结果上较强,而 Alpaca-7B 在引用项效用分数上较高。许多模型在科学归属和错误前提上显示较高幻觉比例或响应比例,表明在这些类别中仍存在困难。
实验显示,许多唯一幻觉包名并非完全捏造,因为它们也出现在与模型相关的预训练语料中。覆盖程度在各模型家族间相当可观,在更大的 Llama-3 设置中匹配最强,而 OLMo、Llama-2 模型和 GPT-3.5 的匹配较为温和。检查的示例表明,这些匹配通常涉及本地导入、通用占位名称、已弃用或未收录名称,或非 Python 上下文中的名称。相当大比例的幻觉包名可追溯到模型预训练数据。Llama-3 模型,尤其是 70B 模型,在 C4 中对幻觉包名显示最高覆盖。GPT-3.5 的幻觉包也出现在 OpenWebText 中,但低于最强 Llama-3 设置中的比例。许多匹配名称并非公开包索引名称,而是本地导入、类占位式名称,或与类和函数绑定的名称。
HALOGEN 通过任务特定分解和验证评估响应生成和拒答导向拒答,覆盖代码、科学归属、摘要、简化、传记、历史事件和错误前提。模型实验表明,事实可靠性依赖领域:领先模型取得最佳整体行为,而更小或更旧模型产生更多幻觉,即使强系统也仍在简化、传记、合理化、科学归属和错误前提拒答中容易犯错。进一步分析表明,许多幻觉并非完全捏造;摘要失败通常反映对提供上下文的错误使用,许多幻觉包名对应来自预训练语料的痕迹,例如本地导入、占位符或未收录名称。