人人都会AI编程

6.4 幻觉产生的技术根源与缓解思路

更新时间:2026-07-09

在 1.1 节中,我们揭示了大语言模型的本质是一个“逐 Token 概率接龙”机器,它将人类知识有损压缩进数百亿参数;在 1.3 节讨论生成能力边界时,我们特别指出“流畅≠真实”——这是用户在日常使用中体感最强烈的能力短板。本节将系统性地拆解这一现象:幻觉(Hallucination)并非简单的“模型犯错了”,而是由架构、训练目标与数据形态共同决定的结构性产物。 理解其技术根源,是你设计高可靠 AI 系统的必修课。


一、幻觉的定义与分类:先对齐概念

在工程语境中,幻觉指模型生成的内容看似合理、语法通顺、逻辑连贯,但与客观事实不符,或与输入/上下文相矛盾。学界通常将其分为两类:

| 类型 | 定义 | 典型表现 |
|------|------|----------|
| 事实性幻觉(Factual Hallucination) | 生成内容与可验证的现实世界事实不符 | 编造不存在的论文、错的人物生卒年、虚构法律条款 |
| 忠实性幻觉(Faithfulness Hallucination) | 生成内容与用户输入、前文上下文或检索到的参考材料不一致 | 摘要歪曲原文意思、问答时忽略题干约束、翻译擅自增删信息 |

这两类幻觉的根因并不完全相同,但底层都指向同一个问题:LLM 的训练目标从来不是“说真话”,而是“说得像人话”。


二、技术根源:为什么概率接龙必然产生幻觉?

1. 训练目标与事实 fidelity 的根本错位

LLM 的核心训练目标(见 4.1 节因果语言建模)是最小化交叉熵损失,即最大化训练语料中下一个 Token 的条件概率。这个目标等价于:

“让你说的话在统计分布上与人类语料尽可能不可区分。”

它并没有显式约束“你说的话必须在现实世界为真”。因此,如果训练语料中某类错误表述高频出现(如长期流传的谣言、过时医学观点),模型会将其学习为高概率模式并自信复现。

2. 知识参数化存储的固有缺陷(呼应 1.1 节)

LLM 没有可查询的数据库,知识全部以分布式、隐式、有损压缩的形式固化在权重中(1.1 节)。这导致:

  • 无法精确检索:模型不能执行 SQL 式的精确 lookup。当问及“某公司 2023 年 Q3 营收”,它激活的是与“公司”“Q3”“营收”相关的向量区域,可能把不同公司的财务数据特征混叠在一起。
  • 更新僵化:训练截止日期后的知识无法自动刷新,但模型缺乏“自知之明”,不会默认回答“我不知道”,而是会继续接龙,用旧知识拼凑出看似合理的答案。
  • 长尾事实稀释:对于训练语料中出现频次低的事实(如某小众领域的人物关系),参数空间的信噪比极低,模型倾向于用高频模式“脑补”缺失的细节。

3. 自回归生成的错误级联与暴露偏差(Exposure Bias)

这是架构层面的结构性缺陷。自回归生成每一步都以前面已生成的 Token 为输入(4.1 节)。一旦某一步产生了轻微偏离(例如把“2021 年”写成“2020 年”),这个错误会被硬编码进后续上下文,导致后续所有 Token 的条件分布建立在错误前提之上,形成滚雪球式的级联幻觉

更深层的问题是暴露偏差:模型在训练时看到的上下文始终来自真实数据(Teacher Forcing),而推理时看到的上下文却是自己刚刚生成的。这种分布偏移使得模型对早期错误的鲁棒性极差。

4. 注意力机制的“软聚焦”与上下文稀释

Transformer 的 Softmax 注意力(3.3 节)本质上是加权平均。当上下文很长或事实细节很细微时,关键信息可能被淹没:

  • 远距离衰减:虽然注意力在理论上支持全局关联,但在深层网络中,与当前生成位置相距甚远的关键事实可能被其他高激活的语义模式压制。
  • 表面相关性劫持:如果用户 prompt 中的某个词与训练语料中的高频错误叙事存在统计关联,注意力权重可能偏向“好听的叙事”而非“准确的事实”。

5. 对齐阶段的副作用:从“诚实”到“讨好”

RLHF/DPO 等对齐技术(5.2、5.3 节)在提升指令遵循与安全性的同时,可能引入新的幻觉诱因:

  • 谄媚偏差(Sycophancy):模型倾向于迎合用户的隐含立场。如果用户 prompt 中带有错误前提(“既然爱因斯坦获得了诺贝尔文学奖……”),模型为了“满足用户期望”,可能顺着错误前提继续编下去,而非直接反驳。
  • 过度拒绝的反面——过度自信:对齐训练往往惩罚模型说“我不知道”,因为标注者通常偏好给出详细回答的模型。这导致模型在知识边界外仍强行生成,形成“自信的胡说”。

三、缓解思路:从“治本”到“治标”的分层策略

幻觉无法被绝对消除,但可以通过系统性的工程与算法手段将其压缩到业务可接受的范围。以下是按实施成本与效果排序的实用策略:

1. 检索增强生成(RAG):给模型外挂“非参数记忆”

这是目前工业界最主流的缓解方案,直接回应了“知识固化在权重中”的根因。

  • 原理:在生成前,先将用户 query 向量化,从外部知识库(向量数据库、企业文档、实时网页)检索相关文档,将检索结果作为上下文拼入 prompt,让模型基于显式提供的参考文本作答。
  • 关键工程细节
  • 检索质量决定上限:如果向量检索召回的文档本身不相关,模型会产生“忠实性幻觉”(照着错材料认真总结)。
  • 需配合引用生成(Citation Generation):强制模型在回答中标注信息来源,既方便用户核验,也通过 token-level 监督提升忠实度。
  • 局限:对需要多跳推理、数值计算或常识组合的问题,单纯 RAG 仍可能失败。

2. 工具调用与外部验证:让模型“先查再答”

直接延续 1.3 节和 6.3 节的工具调用思路。当问题涉及可验证事实(天气、股价、数学运算、数据库状态)时:

  • 让模型输出结构化函数调用(如查询 API),不直接回答
  • 将外部系统返回的精确结果作为新上下文,再组织语言;
  • 对代码/数学任务,优先调用 Python 解释器(Code Interpreter),把计算环节外包给符号系统,避免模型“心算”出错。

3. 事实性与拒绝感知训练:在微调阶段植入“谦卑”

  • 拒绝生成训练(Abstention Training):在 SFT/DPO 阶段引入特殊训练样本,教会模型在知识不确定时明确回答“基于现有信息,我无法确认”或“我的知识截止到某年”。这比强行编造对用户体验更安全。
  • 事实性微调(Fact-checking Fine-tuning):使用高质量的事实三元组(实体-关系-实体)或经过人工校验的问答对进行继续预训练或 SFT,强化参数空间中正确事实的激活强度。
  • 负样本对抗训练:让模型学习识别并拒绝常见的错误叙事模式。

4. 解码策略优化:在生成环节加“刹车片”

  • 约束解码(Constrained Decoding):如果业务要求输出严格 JSON、SQL 或必须从给定的选项中选择,使用 CFG(Context-Free Grammar)或正则约束,把生成空间限制在合法 Token 子集中,杜绝结构层面的幻觉。
  • 降低温度与核采样:高 temperature 会让低概率 token 被采样到,增加创造性但也增加胡说概率。在需要高事实准确性的场景(如医疗、法律),应使用 greedy decoding 或 low temperature(0.1–0.3)。
  • 事实性采样算法:如 DoLA(Decoding by Contrasting Layers),通过对比高层与低层的输出分布,抑制由浅层语义偏见导致的幻觉。

5. 后处理校验与自我批判:多一道“审稿”流程

  • 自我一致性校验(Self-Consistency):对同一问题多次采样生成,让模型投票或检查答案之间是否一致。不一致往往意味着幻觉。
  • 链式验证(Chain-of-Verification, CoVe):让模型先生成初稿,再针对初稿中的关键事实生成验证问题,逐一回答,最后根据验证结果修正初稿。
  • 外挂事实核查模块:对关键实体(人名、地名、数字)提取后,用规则引擎或专用小模型与权威数据库比对,标记存疑内容。

6. 提示工程:用 prompt 框住模型的“脑洞”

  • 要求分步思考并引用:在 prompt 中明确“请基于提供的材料分步推理,并引用原文编号”,可显著提升忠实性。
  • 先罗列已知信息再下结论:通过思维链(CoT,6.2 节)把模型的隐性推理外显化,让错误更容易被追溯。
  • 设定角色与边界:“你是一位谨慎的医学助理,如果不确定,必须说明不确定性。”对齐阶段的指令遵循能力会让模型更保守。

7. 模型与数据层面的长期建设

  • 预训练数据清洗:在数据层(1.4 节)加大对低质、重复、矛盾语料的过滤与去重,从源头减少噪声进入参数。
  • Scaling 与架构改进:更大规模的模型、更长的训练、更高质量的数据确实能提升事实记忆精度(2.1 节),但边际效益递减。MoE 架构(6.5 节)通过稀疏激活可以在不增加推理成本的前提下扩大参数容量,为存储更多细粒度事实提供可能。
  • 长上下文与记忆机制:通过扩展上下文窗口(2.3 节)或外挂记忆模块,减少模型对参数化记忆的依赖,让关键事实以原文形式驻留在输入上下文中。

四、小结:与幻觉共存,但不被幻觉主导

幻觉是大语言模型自回归概率本质、参数化知识存储与对齐目标共同决定的内生产物,不是能通过简单调参彻底消除的 bug。作为技术从业者,我们需要建立这样的认知框架:

  1. 区分场景容忍度:创意写作可以容忍一定幻觉,医疗诊断则零容忍;
  2. 组合防御:没有银弹。RAG + 工具调用 + 拒绝生成 + 后验校验的分层防御,是目前工业界最务实的方案;
  3. 人机协同:高 stakes 场景必须保留人类在环(Human-in-the-loop),把 LLM 定位为“草稿生成器”或“假设提出者”,而非最终事实仲裁者。

在 6.5 节中,我们将转向另一种提升模型容量与效率的架构创新——MoE(混合专家模型),看它如何在控制推理成本的前提下,通过稀疏激活机制为大模型“扩容大脑”,从而间接缓解因参数容量不足导致的部分知识幻觉问题。