幻觉(Hallucination)
一句话 TL;DR:幻觉是大模型"一本正经胡说八道"的现象--生成看似合理但事实错误的内容。根源是模型本质在做"预测下一个 token"而非"检索事实",且不知道自己不知道什么。幻觉无法完全消除,只能通过 RAG、工具调用、校准、self-consistency 等手段缓解。它是大模型落地最大障碍之一。
L1 · 一句话点破
幻觉(Hallucination):模型生成的内容看起来合理、流畅、自信,但事实错误或与已知信息冲突。
典型表现:
- 编造不存在的论文、人物、URL
- 给出错误的数字、日期、引用
- 把两个不相关的事实拼成看似合理的叙述
- 对自己不确定的问题给出确定答案(不承认"不知道")
幻觉的本质:模型不知道自己不知道什么。它生成的是"统计上合理的下一个 token",不是"事实正确的答案"。当训练数据里没有的事实被问到,模型会基于统计规律"编"一个看似合理的答案。
L2 · 通俗类比
一个读了万卷书但分不清"读到过"和"自己想出来的"的学者:
- 你问他"莎士比亚的《哈姆雷特》主角是谁",他答对了(真的读过)
- 你问他"莎士比亚的失传剧本《爱丁堡的玫瑰》讲什么",他没读过,但不愿承认,基于莎士比亚的风格"编"了一个剧情(幻觉)
- 你问他"公元前 500 年的中国皇帝谁最长寿",他记不清,编了个名字和年龄(幻觉)
关键:他编的内容听起来很合理(符合莎士比亚风格、符合历史语境),但事实是错的。而且他说得很自信,你听不出来他其实在编。
这就是大模型的幻觉。模型不像搜索引擎(查到就答,查不到就说"没找到"),它像那个"不愿承认不知道"的学者--基于学到的语言模式续写,输出流畅但可能编造。
为什么难解决?
- 模型内部没有"我学过 vs 我编的"的明确区分
- 自回归生成(见 自回归生成)让它一路续写不能回头
- 训练目标是"流畅"而非"准确"
- 知识边界模糊,无法精确判断"这个我知道/不知道"
L3 · 正经定义
幻觉(Hallucination):大模型生成的内容与事实、已知信息、用户输入或预期行为不一致的现象。
按类型分(Ji et al., 2023 综述):
| 类型 | 定义 | 例子 |
|---|---|---|
| 事实幻觉 | 生成与客观事实不符的内容 | "爱因斯坦 1920 年发明相对论"(实际 1905) |
| 忠实幻觉 | 生成与输入/上下文不符的内容 | 摘要里编造原文没有的内容 |
| 指令幻觉 | 偏离用户指令 | 要求"100 字内"却写 500 字 |
| 自洽幻觉 | 前后矛盾 | 同一回答里先说 A 后说非 A |
按"是否可验证"分:
- 内蕴幻觉(intrinsic):与输入源直接矛盾,易检测
- 外延幻觉(extrinsic):输入源未提及但非必然错误,难检测
幻觉的根源(多因素叠加):
- 训练目标:next-token CE 优化"流畅"而非"准确"(见 损失函数)
- 知识表示模糊:模型参数里"学过的事实"和"语言模式"混在一起,无法区分
- 无元认知:模型没有"我知道/不知道"的自我评估机制
- 自回归累积:自回归生成 早期错误会累积
- 训练数据噪声:训练数据本身有错,模型学到了错误"事实"
- 过度自信:RLHF 让模型倾向给出确定答案,不轻易说"不知道"
参考资料:
- Ji et al., 2023 - Survey of Hallucination in NLG - 必读综述
- Maynez et al., 2020 - Faithfulness in Summarization
- Shuster et al., 2021 - Retrieval Augmentation Reduces Hallucination
- Lin et al., 2022 - Teaching Models to Express Uncertainty - 不确定性表达
L4 · 原理深挖
4.1 为什么会产生幻觉:训练目标与知识表示
大模型预训练目标是 next-token cross-entropy:
$$ \mathcal{L} = -\sum_t \log P_\theta(x_t | x_{<t}) $$
这个目标优化的是"给训练数据分配高概率",等价于"学会流畅续写"。但它不优化"事实准确性":
- 训练数据里"莎士比亚写《哈姆雷特》"和"莎士比亚的风格特征"都被模型学为"语言模式"
- 模型不知道哪些是"事实"、哪些是"风格"
- 当问到失传剧本,模型基于"莎士比亚风格"续写,输出"流畅但编造"的内容
更深的问题:知识在模型参数里是分布式表示。"莎士比亚"这个概念由数千个参数共同编码,包含事实(《哈姆雷特》作者)、风格(戏剧语言)、关联(伊丽莎白时代)等。模型无法分离"事实"和"非事实"部分。
4.2 为什么模型不知道自己不知道:缺乏元认知
人类答错时会说"我不确定"。模型为什么不?
① 训练数据偏向
RLHF 的偏好数据里,标注员倾向给"给出答案"的回复高分,给"我不知道"的回复低分(觉得不有用)。模型学到"永远给答案"而非"不确定时承认"。
② softmax 输出概率不等于"置信度"
模型输出 $P(\text{token})$ 是 next-token 分布,不是"我知道这个事实的概率"。即使模型不确定,某个 token 的概率仍可能很高(因为语言模式强烈)。高概率 ≠ 高准确。
③ 没有显式的元认知模块
模型没有"先评估自己知不知道,再决定答或拒"的机制。它直接生成,生成的自信度由 RLHF 调节,而非真实的不确定性。
Lin et al., 2022 等研究尝试让模型表达不确定性("我有 70% 把握..."),但仍未根本解决。
4.3 自回归生成的累积效应
自回归生成 的特性加剧幻觉:
prompt: "莎士比亚的失传剧本《爱丁堡的玫瑰》讲什么?"
生成:
step 1: "《爱丁堡的玫瑰》" (模型续写名字)
step 2: "是莎士比亚" (续写作者)
step 3: "晚年创作" (编造创作时间)
step 4: "的一部悲剧" (编造类型)
step 5: "讲述..." (开始编剧情)
...每步基于前文续写。一旦前几步"承认"了不存在的剧本名,后续就基于这个错误前提继续编。模型没有"等一下,这个剧本可能不存在"的回头机制。
这是为什么幻觉常呈"雪球效应"--越编越详细,越详细越像真的。
4.4 幻觉的检测
检测幻觉的几种思路:
① 外部知识对比
用搜索引擎或知识库验证模型输出的每个事实。RAG(见 RAG)的本质就是这种思路。
挑战:不是所有事实都能查到;查询构造本身需要技术。
② 自洽性检查
多次采样(不同温度),看模型是否给出一致答案。如果多次答案差异大,说明模型不确定,可能幻觉。
sample 1 (T=0.7): "爱因斯坦 1905 年发表相对论"
sample 2 (T=0.7): "爱因斯坦 1915 年发表广义相对论"
sample 3 (T=0.7): "爱因斯坦 1920 年提出相对论"
-> 答案不一致,模型不确定,可能幻觉③ 模型自评
让模型评估自己的输出:"上面这个回答里有哪些事实?你多确定?"但模型自评不可靠(Shuster et al., 2021 实证)。
④ 置信度估计
研究模型的内部状态(如 logit、激活)估计置信度。但 softmax 概率不等于真实置信度,校准是大问题。
4.5 幻觉的缓解策略
① RAG(检索增强生成)
最有效的工程方案。让模型生成前先检索相关文档,基于文档回答。把"事实回忆"从模型参数转移到外部知识库。
见 RAG 词条。RAG 大幅减少事实幻觉,但有自己的问题(检索不准、文档冲突)。
② 工具调用
让模型调用搜索引擎、计算器、数据库等工具获取事实。比 RAG 更灵活,但需要模型学会"何时调用工具"。
代表:ChatGPT 的 web search、Code Interpreter。
③ 校准(Calibration)
让模型的输出置信度匹配真实准确率。如 Lin et al., 2022 让模型生成"我有 X% 把握"。
挑战:校准本身不解决幻觉,只让用户知道何时该怀疑。
④ Self-consistency
多次采样取多数。适合有明确答案的任务(数学、推理),不适合开放生成。
⑤ 训练时干预
- 事实性微调:用事实性数据微调,让模型倾向"承认不知道"
- RLHF with truthfulness:在偏好数据里加入"承认不知道优于编造"
- DPO with honesty:类似 RLHF,强化诚实
挑战:标注"编造 vs 不知道"本身困难。
⑥ 解码策略
- 低 温度:减少随机性,减少"编造"
- 约束解码:限制输出必须基于检索文档(如 grounded decoding)
- 反复 prompt:"如果你不确定,请说不知道"
这些是缓解而非根治。
4.6 幻觉是特性还是 bug
一个反直觉的观点:幻觉是大模型"创造性"的副作用。
模型能写诗、编故事、做类比,本质是"基于学到的模式生成新内容"。这种能力在事实性任务上是幻觉(编造事实),在创意任务上是特性(创造新内容)。
完全消除幻觉 = 完全消除创造性。这是为什么幻觉难根治:它和模型最有价值的能力同源。
实务策略:根据任务调节。
- 事实性任务(医疗、法律、金融):用 RAG、工具调用、低温度、约束解码,最大程度抑制幻觉
- 创意任务(写作、brainstorming):允许"幻觉"作为创造力
- 关键决策:永远人工验证,不信任模型输出
4.7 幻觉的未来
幻觉研究的前沿方向:
① 过程奖励(Process Reward)
不只奖励最终答案,奖励每一步推理的事实性。OpenAI o1、DeepSeek-R1 等推理模型的核心思路。
② 显式知识分离
让模型显式区分"我学过的事实"和"我推断的内容"。架构层面的改进,如 RAG + 推理链。
③ 持续学习与事实更新
让模型动态更新知识,而非依赖静态训练数据。如 retrieval + in-context learning。
④ 多模态验证
用图像、视频等多模态信息验证文本事实。如生成"埃菲尔铁塔"时验证其图像特征。
但业界共识:幻觉不会完全消除。它是大模型架构(参数化知识 + 自回归生成)的根本特性。最终方案是"模型 + 工具 + 人工"的协作,而非纯模型。
L5 · 沿革与坑
沿革
- 2020-2021:GPT-3 发布后,幻觉问题被广泛观察。Shuster et al., 2021 等研究 RAG 缓解幻觉。
- 2022:ChatGPT 发布,幻觉成为大众认知问题。"AI 一本正经胡说八道"成网络梗。
- 2023:Ji et al. 综述 系统化幻觉定义和分类。RAG 成为缓解幻觉的主流工程方案。
- 2023-2024:GPT-4、Claude 等引入工具调用(web search),减少事实幻觉。
- 2024:OpenAI o1 等推理模型用过程奖励提升事实性。幻觉研究进入"推理 + 验证"阶段。
- 2025:业界共识幻觉无法完全消除,转向"模型 + 工具 + 人工"协作方案。
常见误解
❌ 误解:大模型越强大,幻觉越少。 ✅ 真相:规模提升整体能力,但幻觉是架构特性,不会随规模消失。GPT-4 仍有幻觉,只是相对 GPT-3 少一些。幻觉和规模无单调关系。
❌ 误解:幻觉是 bug,可以修复。 ✅ 真相:幻觉是"参数化知识 + 自回归生成"的根本特性,和创造性同源。可以缓解,不能消除(4.6)。
❌ 误解:模型说得很自信,所以是对的。 ✅ 真相:自信不等于正确。RLHF 让模型倾向自信表达,但自信度不反映真实准确性。高置信幻觉最危险(4.2)。
❌ 误解:低温可以消除幻觉。 ✅ 真相:低温减少随机性,但模型仍会"确定地编造"。低温让幻觉更稳定(每次都编同样的错),不消除幻觉。
❌ 误解:RAG 完全解决幻觉。 ✅ 真相:RAG 大幅减少事实幻觉,但有自己的问题:检索可能不准、文档可能冲突、模型可能忽略检索结果。RAG 是缓解不是根治。
❌ 误解:幻觉都是错的,应该完全消除。 ✅ 真相:幻觉在创意任务上是"创造性"。完全消除幻觉 = 消除创造性。应根据任务调节(4.6)。
❌ 误解:让模型说"我不知道"就解决问题。 ✅ 真相:让模型在不知道时说"我不知道"是好事,但模型不知道"自己不知道",无法可靠判断何时该说。而且过度保守会让模型拒绝合理请求。
面试怎么考
- "什么是大模型幻觉?" --生成看似合理但事实错误的内容。本质是模型不知道自己不知道(L1、L3)。
- "幻觉的根源是什么?" --训练目标(流畅而非准确)、知识表示模糊、无元认知、自回归累积、数据噪声、过度自信(4.1、4.2、4.3)。
- "怎么缓解幻觉?" --RAG、工具调用、校准、self-consistency、训练干预、解码策略(4.5)。
- "为什么幻觉难完全消除?" --和创造性同源,是架构根本特性(4.6)。
- "RAG 怎么减少幻觉?" --把事实回忆从参数转移到外部知识库,基于检索文档回答。但不根治(4.5)。
- "模型自信度高代表准确吗?" --不代表。softmax 概率不等于真实置信度,RLHF 让模型过度自信(4.2)。
延伸阅读
- 📄 Ji et al., 2023 - Survey of Hallucination in NLG - 必读综述
- 📄 Shuster et al., 2021 - RAG Reduces Hallucination
- 📄 Lin et al., 2022 - Teaching Models to Express Uncertainty
- 📄 Maynez et al., 2020 - Faithfulness in Summarization
- 📝 OpenAI - Reducing hallucinations
上一篇:温度 Temperature -- 一个参数怎么调节"创造力"。下一篇:量化 Quantization -- 怎么把大模型塞进显存。