中文精炼导读
核心观点
- Lilian Weng 聚焦"外在幻觉"(extrinsic hallucination)写综述:幻觉被收窄定义为"模型输出是编造的、不被所给上下文或世界知识所支撑",与"上下文内幻觉"(输出应与上下文源内容一致)相对;若把预训练语料当作世界知识的代理,本质就是确保模型输出可被外部世界知识验证为事实。
- 要避免幻觉,LLM 需要两件事:一是"事实性"(输出可被验证为真),二是"知道何时承认不知道"——当模型不知道某个事实时,它应该明确说出来。
- 幻觉的两大成因:预训练数据问题(互联网爬取数据必然过时、缺失或错误,模型靠最大化 log-likelihood 可能错误记忆这些信息);以及微调引入新知识(Gekhman et al. 2024 发现:模型学带新知识的样本比学与既有知识一致的样本慢得多,且一旦学会这些新知识样本,会显著增加模型的幻觉倾向)。
- 幻觉检测的主流思路:检索增强式评估(FactualityPrompt 的 NE 错误与蕴含比率、FActScore 把长生成拆成原子事实逐一验证、SAFE 用 LLM 做 agent 迭代 Google 搜索核实每个原子事实);采样式检测(SelfCheckGPT 靠多次采样交叉验证);以及"未知知识校准"(让模型直接回答"我不知道")与间接查询。
- 反幻觉方法从"给依据"到"自我验证"分层:RAG 系(RARR 检索+编辑+归因、FAVA、Rethinking with Retrieval、Self-RAG 用反思 token 边生成边自我批判);无外部依据的链式动作(Chain-of-Verification:基线回答 → 规划验证问题 → 独立执行验证 → 生成最终修正回答);以及为事实性/归因做微调。

内容精讲
文章先给幻觉下了一个收窄的定义。LLM 的幻觉通常指模型生成不忠实的、编造的、不一致或无意义的内容,但作者把"幻觉"收窄为"模型输出被编造、且不被所给上下文或世界知识所支撑"的情形,分为两类:上下文内幻觉(输出应与上下文中的源内容一致)与外在幻觉(输出应由预训练数据集支撑)。由于预训练数据集规模巨大、为每次生成检索并识别冲突成本过高,实践中把预训练语料当作世界知识的代理——本质是确保输出可被外部世界知识验证为事实;同样重要的是,当模型不知道某事实时应该明说。因此避免幻觉需要模型 (1) 事实性 且 (2) 在适用时承认不知道答案。
幻觉的成因从两个阶段分析。预训练数据问题:语料库规模庞大、代表所有书面形式的世界知识,最常见的来源是公网爬取——过时、缺失或错误的信息是常态;模型仅靠最大化 log-likelihood 就可能错误记忆这些信息而犯错。微调新知识问题:通过 SFT 与 RLHF 微调是提升指令跟随等能力的常用手段,但微调阶段引入新知识几乎不可避免;微调消耗的计算远少于预训练,模型能否通过小规模微调可靠学会新知识值得怀疑。Gekhman et al. 2024 直接研究了"在微调中教 LLM 新知识是否会鼓励幻觉":把闭卷 QA 样本按"模型输出正确答案的可能性"分成 HighlyKnown、MaybeKnown、WeaklyKnown 与 Unknown 四类后,他们发现:(1) LLM 学带新知识(Unknown)的样本比学与既有知识一致的样本慢得多;(2) 一旦这些新知识样本最终被学会,会增加模型的幻觉倾向。实验里以 dev 准确率为幻觉代理:Unknown 样本拟合明显更慢;最佳 dev 性能出现在"模型学会了大部分 Known 样本、但只学会少数 Unknown 样本"时;当模型学会大部分 Unknown 样本时开始幻觉;在 Known 中 MaybeKnown 案例贡献更好、比 HighlyKnown 更关键。这些结果警示了用 SFT 更新 LLM 知识的风险。
幻觉检测部分,作者介绍了检索增强式评估:Lee et al.(2022)引入 FactualityPrompt 基准(事实与非事实提示词混合,用 Wikipedia 文档做事实性基座),两个评估指标——幻觉 NE(命名实体)错误(预训练实体检测 + 文档级基座,检测到的实体不在真值文档中的比例)与蕴含比率(在 MNLI 上微调的 RoBERTa + 句子级基座,生成的句子被蕴含模型判为与配对的 Wikipedia 句子相关的比例);NE 错误更低、蕴含比率更高表示事实性更高,且两指标与人工标注相关,更大模型在该基准上表现更好。FActScore(Min et al. 2023)把长生成分解成多个原子事实、逐一用知识库(如 Wikipedia)验证,FActScore 是生成在各提示词上的平均精度(每句中被知识源支撑的比例);实验发现检索增强方法一致优于无上下文 LLM(直接把"<原子事实> True or False?"抛给 LLM),最优估计器取决于模型;还观察到几个有趣的幻觉行为模式:稀有实体的错误率更高、生成中后期提到的事实错误率更高、用检索做依据显著减少幻觉。SAFE(Wei et al. 2024)与 FActScore 的主要区别是:对每个自包含的原子事实,SAFE 用 LLM 作为 agent 迭代发起 Google 搜索、推理搜索结果是否支持该事实。
反幻觉方法从三个方向展开。第一类"RAG → 编辑与归因":RARR(Retrofit Attribution using Research and Revision;Gao et al. 2022)用两阶段"事后"框架让 LLM 输出支持外部证据归因——研究阶段用查询生成模型构造搜索查询、Google 搜索每查询取 5 条、用查询-文档相关模型只保留最相关 1 条;修订阶段用一致性模型检测证据与当前修订文本是否冲突、仅在检测到分歧时让编辑模型输出尽量少改动的新文本、最多 5 条证据进入归因报告;评估同时看重归因(AIS 分数)与保持度(Prev_intent × Prev_Lev)。FAVA(Mishra et al. 2024)同样检索相关文档再编辑模型输出,但编辑模型需要微调(用把随机错误插入模型生成来合成训练三元组 (c, y, y*))。Rethinking with Retrieval(RR;He et al. 2022)依赖外部知识检索但无编辑:用分解的 CoT 提示生成多条推理路径(每条含解释 E 与预测 P),检索外部知识支撑每条解释,再按"与检索知识的契合度"(蕴含/矛盾分数 + 嵌入相似度)选最忠实的答案。Self-RAG(Asai et al. 2024)端到端训练 LM 学会反思自己的生成——输出任务输出与间歇的"反思 token":Retrieve(是否并行检索)、IsRel(文档与提示是否相关)、IsSup(输出是否被文档支持)、IsUse(输出对提示是否有用),每生成一段用这些 token 评分、排序、选择多个输出中的最佳。
第二类"链式动作"无需外部检索依据,用模型自身做验证与修订:Chain-of-Verification(CoVe;Dhuliawala et al. 2023)四步——基线回答、规划验证(基于原始生成设计非模板化的验证问题)、独立执行验证(有 Joint / 2-step / Factored 三种变体,Factored 每个验证问题单独回答以避免原始响应的上下文影响)、生成最终修正回答。第三类是为事实性与归因做微调(RLHF 结合奖励模型等)。附录还给出评估基准清单。整体上,文章把"检测幻觉"与"减少幻觉"两个问题都梳理出了清晰的工具谱系:从检索给依据、到自我验证、再到对齐微调。
阅读价值
适合 LLM 应用工程师、RAG 系统构建者与对"模型事实性"感兴趣的研究者:这篇综述把幻觉的定义、成因(预训练数据 + 微调新知识)、检测方法(FActScore/SAFE/采样法)与缓解方法(RARR/FAVA/Self-RAG/CoVe)完整串联,并对"微调教新知识会诱发幻觉"给出实验证据;对设计防幻觉流水线或评估模型事实性都有直接的参考价值。
本文为中文精炼导读,由 AI 基于原文整理,内容与图片版权归原作者所有。原文: https://lilianweng.github.io/posts/2024-07-07-hallucination/