大模型幻觉:成因、检测与缓解方法
大语言模型(LLM)在问答、写作、摘要等任务上表现惊艳,却有一个挥之不去的顽疾:它们会一本正经地生成看似通顺、实则错误或与事实不符的内容。这种现象被称为「幻觉」(hallucination)。本教程系统梳理幻觉的定义、成因、检测评测方法与工程缓解手段,帮助你在构建 AI 应用时把不可靠输出降到可控范围。
什么是大模型幻觉
「幻觉」指模型生成的文本在语法和语感上完全正常,却在事实层面不忠实。根据不忠实的对象不同,通常分为两大类。
事实性幻觉(Factuality Hallucination)
模型输出与可验证的现实世界知识相冲突。它又可分为两种情况:
- 事实不一致:世界确有此事,但模型记错细节。例如把「第一个登上月球的人」说成加加林,而非阿姆斯特朗。
- 事实捏造:模型编造现实里并不存在的实体、事件或数字。例如凭空描述某种「不存在的草药成分」并给出用法用量。
忠实性幻觉(Faithfulness Hallucination)
模型输出与给定的上下文、指令或自身前文相冲突,即使内容本身在世界上「查无此病」,问题出在「没听指令」或「自相矛盾」:
- 指令不一致:要求翻译一句问句,模型却直接回答了问题。
- 上下文不一致(又称忠实度问题):在摘要任务中,模型无视原文,总结出一个原文没有的结论。
- 逻辑不一致:解方程时前一步得出 2x=8,后一步却算出 x=3。
下面用一个文本对照示例直观感受两种幻觉的区别。
【事实性幻觉示例】
问:2022 年冬奥会的举办城市是哪里?
模型答:2022 年冬奥会在韩国平昌举办。(错误,平昌是 2018 年冬奥会举办地)
【忠实性幻觉示例】
指令:请把下面这句话翻译成英文——「今天天气真好」。
模型答:Today is a sunny day and I feel happy.(未翻译,而是自行发挥了内容)
理解这两类幻觉,是选择后续检测与缓解策略的前提:事实性幻觉要靠「外部知识比对」,忠实性幻觉要靠「与源文本一致性校验」。
幻觉的成因
幻觉并非单一原因造成,而是贯穿数据、训练、推理全链路的系统性问题。
训练数据噪声
大模型通过「模仿训练语料分布」来学习。如果语料中存在错误信息、社会偏见或重复内容,模型会把这些噪声一并学进去。重复偏差尤为典型:当某些错误表述在语料中高频出现,模型会更倾向于复述它,而非正确版本。
知识边界
模型参数化地固化了训练截止时刻的知识,存在两道天然边界:
- 专业领域知识不足:通用模型在医疗、法律等垂直领域缺乏足量训练数据,遇到专业问题容易捏造。
- 时效性知识过时:世界是动态变化的,模型训练后其内部知识不再更新,面对新近事件只能「凭空猜测」。
暴露偏差(Exposure Bias)
自回归模型在训练阶段每一步都能看到「真实的前文」,而推理阶段只能依赖「自己上一步生成的、可能早已偏离正轨的前文」。这种训练与推理的不匹配,会让错误在长文本生成中不断累积放大。
解码随机性
采样阶段的温度(temperature)、top-p 等参数决定输出的多样性。提高随机性有助于创意,却也提高了模型「随手编一个」的概率。即便使用贪婪解码(总选概率最高的词),模型也可能对错误答案高度自信,从而输出流畅的谬误。
检测与评测
要缓解幻觉,先要能度量幻觉。检测方法大致分三类。
人工评测
由标注者逐条判断输出是否包含幻觉,结果最可靠,但成本高、难以规模化,通常只用于构建基准或抽样质检。
自动评测
- 检索外部事实:把模型输出拆成若干事实点,再去维基百科、知识库或网页中检索佐证,比对是否一致。FActScore 即采用这种「原子事实」思路。
- 不确定性估计:通过多次前向、熵或一致性来估计模型对输出的置信度,低置信区域往往是幻觉高发区。
- 基于提示的评判:让另一个强模型充当评审,按既定标准给生成内容打分(即 LLM-as-a-Judge)。
公开评测基准
- TruthfulQA(arXiv:2109.07958):包含 817 道问题,覆盖健康、法律、金融、政治等 38 个类别,专门测量模型是否会「模仿人类的常见误解」而说出不实答案。
- HaluEval(arXiv:2305.11747):大规模幻觉识别基准,涵盖问答、知识对话、文本摘要三类任务,包含自动生成与人工标注的幻觉样本,用于评估模型「识别幻觉」的能力。
- FActScore(arXiv:2305.14251):针对长文本生成,把回答拆成原子事实并统计被可靠知识源支持的比例,提供更细粒度的忠实性评分。
缓解方法
降低幻觉没有银弹,通常需要组合多种手段。
检索增强生成(RAG)
在生成前先从外部知识库检索相关证据,再把证据与问题一并交给模型,并要求其据检索内容作答、附上出处。RAG 把「参数化记忆」与「非参数化外部知识」结合,能显著减少事实错误(详见综述 arXiv:2312.10997)。下面是一段示意代码。
# 极简 RAG 检索增强示例(示意,非可直接运行)
from typing import List
def retrieve(query: str, knowledge_base: List[str], top_k: int = 3) -> List[str]:
# 实际项目里这一步由向量数据库完成语义相似度检索
scores = [similarity(query, doc) for doc in knowledge_base]
ranked = sorted(zip(knowledge_base, scores), key=lambda x: x[1], reverse=True)
return [doc for doc, _ in ranked[:top_k]]
def generate_with_citation(query: str) -> str:
contexts = retrieve(query, KNOWLEDGE_BASE, top_k=3)
prompt = build_prompt(query, contexts)
answer = llm_complete(prompt)
return attach_citations(answer, contexts)
无检索与有检索的差别,用一段文本示例说明:
用户问:2022 年冬奥会举办城市是哪里?
无检索的模型回答:2022 年冬奥会在韩国平昌举办。(错误,平昌为 2018 年)
RAG 检索后回答:2022 年冬奥会在北京举办。来源:北京 2022 年冬奥会官方网站。
要求引用与可溯源
在提示中明确「每条事实都必须给出可点击或可核查的来源」,并让模型输出引用标记。可溯源不仅方便用户核验,也倒逼模型在缺乏证据时承认「无法确定」,而不是强行编造。
自检与一致性校验
- 链式验证(Chain-of-Verification):先给出初答,再让模型针对初答中的关键事实逐一提出验证问题并自查,纠正错误。
- 多次采样一致性(SelfCheckGPT 思路):对同一个问题采样多条回答,彼此冲突、无法互相印证的片段更可能是幻觉。
- 事实清单核对:把长回答拆成原子事实,逐条对照检索证据,标记未支持的条目。
采样参数调节
对事实敏感场景(如医疗、法律问答),降低 temperature 与 top-p,或采用贪婪解码,以牺牲部分多样性换取更高准确率。对创意写作则可适度放开。参数调节是性价比最高的「开关」,但无法根治深层知识缺陷。
微调与对齐
用事实性偏好数据做监督微调(SFT)与基于人类反馈的强化学习(RLHF)或 DPO 对齐,训练目标不只是「像人类文本」,而是「像人类文本且内容正确」。TruthfulQA 论文也指出,单纯扩大模型规模并不能提升真实性,针对性对齐更为关键。
工程实践清单
把上述方法落地到产品时,建议按以下清单逐项检查:
- 明确场景风险等级:医疗、法律、金融等高风险场景必须强制检索增强与引用。
- 接入可信知识源:构建或采购高质量知识库,并保证其及时更新。
- 默认开启引用:要求模型输出带来源,缺失来源时提示「信息无法核实」。
- 设置低温度档位:事实类任务默认低 temperature,创意类任务单独配置。
- 加入自检环节:对关键回答做链式验证或多采样一致性检查。
- 建立评测闭环:用 TruthfulQA、HaluEval 等基准做回归测试,监控幻觉率变化。
- 保留人工抽检:对高影响输出做抽样人工复核,防止自动化评测漏检。
- 透明告知用户:在界面上说明「模型可能出错,重要信息请核查来源」。
小结
大模型幻觉分为事实性幻觉与忠实性幻觉两类,根源在于训练数据噪声、知识边界、暴露偏差与解码随机性。检测上可借助人工评测、外部事实检索与公开基准(TruthfulQA、HaluEval、FActScore);缓解上以检索增强生成(RAG)为核心,配合引用标注、自检一致性校验、采样参数调节与对齐微调,并按工程清单系统化落地。幻觉难以彻底消除,但通过「检索加验证、输出可溯源、评测常态化」的组合策略,完全可以把风险压到可接受的水平。
参考与延伸阅读
- Lin S., Hilton J., Evans O. TruthfulQA: Measuring How Models Mimic Human Falsehoods. arXiv:2109.07958(事实性/真实性评测基准,已核验)
- Li J., Cheng X., Zhao W. X., Nie J. Y., Wen J. R. HaluEval: A Large-Scale Hallucination Evaluation Benchmark for Large Language Models. arXiv:2305.11747(大规模幻觉识别基准,已核验;注意用户原始所给 2305.08201 实为生物统计论文,非本篇)
- Huang L., Yu W., Ma W. 等. A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions. arXiv:2311.05232(幻觉综述,已核验)
- Gao Y., Xiong Y., Gao X. 等. Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997(RAG 综述,已核验)
- Min S., Krishna K., Lyu X. 等. FActScore: Fine-grained Atomic Evaluation of Factual Precision in Long Form Text Generation. arXiv:2305.14251(长文本细粒度事实评测,已核验)