Extrinsic Hallucinations in LLMs | 大语言模型的外在幻觉
作者: Lilian Weng(翁荔)| 发布日期: 2024年7月7日
一句话摘要: 本文系统剖析了 LLM 生成与事实不符内容的根本原因、检测方法和缓解策略,从预训练数据缺陷到 RLHF 校准失调,从基于检索的评估到推理时干预,构建了一幅完整的"反幻觉"技术图谱。
一、核心内容翻译
1. 问题定义
翁荔将幻觉分为两类:
- 上下文内幻觉(In-context):与给定的源材料不一致
- 外在幻觉(Extrinsic):与预训练数据或世界知识相矛盾
核心命题:"为避免幻觉,LLM 需要做到两点:(1) 保持事实准确,(2) 在不确定时承认自己不知道。"
2. 根本原因
预训练数据问题:
互联网来源的训练数据包含过时、缺失或错误的信息,模型通过似然度最大化可能将这些错误"记忆"下来。这是一个结构性问题——模型的知识质量不可能超过其训练数据的质量。
微调新知识的风险:
Gekhman 等人(2024)的研究揭示了一个关键发现:
- 模型学习新知识的速度远慢于已有知识
- 一旦新样本被学会,幻觉率反而更高
- 实验将 QA 样本分为"已知"(高度已知、可能已知、弱已知)和"未知"两类
- 最佳表现出现在模型学习了大部分"已知"样本但仅少量"未知"样本时
这意味着:用包含模型不了解的新知识进行微调,本身就是制造幻觉的过程。
3. 检测方法
基于检索的评估:
- FactualityPrompt:使用 Wikipedia 作为事实基准,计算命名实体错误率和蕴含比率。
- FActScore:将长文本生成分解为原子事实,逐一与知识库验证。这种分解策略极具创新性——与其验证整段话的事实性,不如将其拆成最小可验证单元。
- SAFE(搜索增强事实性评估器):使用 LM 代理迭代查询 Google 搜索,自动化事实核查流程。
- FacTool:遵循"声明提取 -> 查询生成 -> 工具查询 -> 一致性验证"的四步工作流。
基于采样的检测:
SelfCheckGPT:在无需外部知识库的情况下,通过多次采样的一致性检查来检测幻觉。核心思想:如果模型在多次生成中对同一事实给出不一致的回答,那么该事实很可能是幻觉。这是一种优雅的黑盒方法。
校准评估:
- TruthfulQA:817 个对抗性构造的问题,测试模型是否会给出"听起来正确但实际错误"的回答。
- SelfAware:1,032 个不可回答的问题,测试模型是否能承认"我不知道"。
- 关键发现:更大的模型在多选题上展现出更好的校准,但 RLHF 微调反而降低了校准质量。 这是一个令人不安的权衡——让模型更"有用"的训练可能让它更不"诚实"。
间接查询方法:
Agrawal 等人(2023)发现:与其直接问"这篇论文存在吗?",不如问"这篇论文的作者是谁?"——间接问题比直接存在性问题更能有效检测幻觉引用。
4. 反幻觉方法
检索增强生成(RAG):
- RARR(使用研究和修订进行回溯归因):查询生成 -> Google 搜索 -> 相关性评分 -> 修订编辑。先生成再核实再修改。
- FAVA:将检索与训练好的编辑器模型结合,使用合成错误插入进行训练——教模型识别和修复自己的幻觉。
- 反思检索(Rethinking with Retrieval, RR):使用分解的思维链提示配合知识检索。
- Self-RAG:训练模型输出反思标记——Retrieve(是否需要检索)、IsRel(文档是否相关)、IsSup(答案是否有支撑)、IsUse(答案是否有用)。这种将元认知能力嵌入生成过程的方法非常巧妙。
行动链方法:
- 验证链(Chain-of-Verification, CoVe):四步流程——基线响应生成 -> 验证计划制定 -> 独立回答执行 -> 最终精炼。让模型自己设计验证问题并独立回答,避免了确认偏差。
- RECITE:在回答前先"背诵"相关信息,作为中间记忆检索步骤。让模型先回忆事实再推理,而非直接从模糊记忆中生成答案。
采样创新:
- 事实性核采样(Factual-Nucleus Sampling):在词元生成过程中动态调整采样概率——对事实性要求高的位置降低采样温度,对创造性位置保持较高温度。
- 推理时干预(Inference-Time Intervention, ITI):识别与真实性相关的注意力头,在推理时对其激活值进行偏移。这是一种不需要重新训练的"手术式"干预方法。
微调方法:
- TopicPrefix 训练和句子补全损失:聚焦于事实密集的文本部分进行训练。
- FLAME:实现事实性感知的 SFT 和 DPO 对齐。
- 事实性微调:使用基于参考和无参考的真实性估计配合 DPO。
归因训练:
- WebGPT 和 GopherCite:通过行为克隆和 RL 训练教模型在生成回答时提供引用来源。让模型"说出证据"而非仅给出结论。
5. 评估基准
| 基准 | 规模 | 评估维度 |
|---|---|---|
| TruthfulQA | 817 问题 | 对抗性真实性 |
| FactualityPrompt | Wikipedia 基准 | 事实性提示 |
| SelfAware | 1,032 不可回答问题 | 自知之明 |
| LongFact | 2,280 提示 | 长文本事实性 |
| HaDes | - | 幻觉检测 |
| FEVER | - | 事实验证 |
| FAVABench | 细粒度标注 | 多维度幻觉 |
二、技术要点
- 幻觉根源在于训练数据:模型的事实性上限受限于预训练数据的质量,微调新知识反而可能加剧幻觉——这颠覆了"更多数据必然更好"的直觉。
- RLHF 的双刃剑效应:RLHF 提升了模型的有用性但降低了校准质量,模型变得更擅长"自信地给出错误答案"。
- 原子事实分解是评估的金标准:FActScore 的思路——将长文本拆解为最小可验证单元——提供了一种可扩展的事实性评估范式。
- Self-RAG 的元认知方法:让模型学会输出"我是否需要检索"、"检索结果是否相关"等反思标记,是将认知科学中的元认知概念引入 NLP 的成功案例。
- 语言化置信度优于 logprob:让模型用自然语言表达不确定性(如"我不太确定")的泛化能力优于直接使用对数概率。
三、深度解读
这篇文章的核心贡献在于揭示了幻觉问题的系统性——它不是一个可以通过单一方法解决的"bug",而是深嵌于 LLM 训练范式中的结构性问题。
最发人深省的是关于 RLHF 和校准的讨论。RLHF 训练模型迎合人类偏好,但人类偏好自信的回答。因此,RLHF 后的模型倾向于"编造听起来可信的答案"而非承认无知。这不是训练的失败,而是在当前优化目标下的理性结果——模型正在精确地优化我们要求它优化的东西,只是我们要求的不够精确。
间接查询方法的发现也极具实用价值。"你能告诉我这篇论文的作者吗?"比"这篇论文存在吗?"更能暴露幻觉——因为模型可以对存在性问题轻松编造"是",但对具体细节的追问更容易露出破绽。
Self-RAG 的反思标记方法代表了一个重要方向:不是在模型外部添加检查机制,而是将自我质疑的能力内化到生成过程中。这与 Kahneman 的"系统二思维"理念一致——在快速生成之后加入慢速的自我审查。
四、延伸思考
- 幻觉是否可以完全消除?:考虑到语言模型本质上是概率模型而非知识库,某种程度的"幻觉"可能是不可避免的。更务实的目标可能是让模型在不确定时能够可靠地表达不确定性。
- 事实性与创造性的光谱:在创意写作中,我们称之为"想象力"的东西在事实回答中就变成了"幻觉"。如何让同一个模型在不同场景下切换这两种模式?
- 知识更新的困境:如果微调新知识会引入幻觉,那么如何让模型持续学习而不产生越来越多的错误?RAG 可能是当前的最优解,但它依赖外部知识源的质量和可用性。
- 社会影响:当人们习惯了 LLM 自信流畅的回答,可能会降低对信息进行独立验证的意愿。幻觉问题的解决不仅是技术挑战,也是用户教育的问题。