大模型幻觉:成因、检测与缓解方法

大语言模型(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 论文也指出,单纯扩大模型规模并不能提升真实性,针对性对齐更为关键。

工程实践清单

把上述方法落地到产品时,建议按以下清单逐项检查:

  1. 明确场景风险等级:医疗、法律、金融等高风险场景必须强制检索增强与引用。
  2. 接入可信知识源:构建或采购高质量知识库,并保证其及时更新。
  3. 默认开启引用:要求模型输出带来源,缺失来源时提示「信息无法核实」。
  4. 设置低温度档位:事实类任务默认低 temperature,创意类任务单独配置。
  5. 加入自检环节:对关键回答做链式验证或多采样一致性检查。
  6. 建立评测闭环:用 TruthfulQA、HaluEval 等基准做回归测试,监控幻觉率变化。
  7. 保留人工抽检:对高影响输出做抽样人工复核,防止自动化评测漏检。
  8. 透明告知用户:在界面上说明「模型可能出错,重要信息请核查来源」。

小结

大模型幻觉分为事实性幻觉与忠实性幻觉两类,根源在于训练数据噪声、知识边界、暴露偏差与解码随机性。检测上可借助人工评测、外部事实检索与公开基准(TruthfulQA、HaluEval、FActScore);缓解上以检索增强生成(RAG)为核心,配合引用标注、自检一致性校验、采样参数调节与对齐微调,并按工程清单系统化落地。幻觉难以彻底消除,但通过「检索加验证、输出可溯源、评测常态化」的组合策略,完全可以把风险压到可接受的水平。

参考与延伸阅读

  1. Lin S., Hilton J., Evans O. TruthfulQA: Measuring How Models Mimic Human Falsehoods. arXiv:2109.07958(事实性/真实性评测基准,已核验)
  2. 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 实为生物统计论文,非本篇)
  3. Huang L., Yu W., Ma W. 等. A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions. arXiv:2311.05232(幻觉综述,已核验)
  4. Gao Y., Xiong Y., Gao X. 等. Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997(RAG 综述,已核验)
  5. Min S., Krishna K., Lyu X. 等. FActScore: Fine-grained Atomic Evaluation of Factual Precision in Long Form Text Generation. arXiv:2305.14251(长文本细粒度事实评测,已核验)
本文累计阅读