引言
2023 年 5 月,纽约南区联邦法院。律师 Roberto Mata 的代理律师 Steven Schwartz 站在法官面前,脸色苍白。
法官 P. Kevin Castel 正在质问他提交的法律文书:文书中引用了六个先例案件——但法院系统里根本找不到这些案件。
Schwartz 的解释令人难以置信:「这些案件是 ChatGPT 生成的,我不知道它会编造案例。」
最终,Schwartz 及其同事 Peter LoDuca 被罚款 $5,000,整个法律界为之震动。ChatGPT 编造了 6 个完全虚构的联邦案例,包括案件号、判决日期、甚至法官名字——全部是假的。
这就是大模型最危险的能力:幻觉(Hallucination)——用极其自信、极其逼真的方式说出完全错误的话。
什么是幻觉?
定义
幻觉(Hallucination):
大语言模型生成看似合理但实际上不正确、
无根据或与事实不符的内容。
关键特征:
├── 看起来很可信(语法正确、逻辑通顺、格式专业)
├── 模型很自信(不会说「我不确定」)
└── 用户很难分辨(需要领域知识才能发现)幻觉的类型
类型 1:事实性错误
问:「珠穆朗玛峰有多高?」
答:「珠穆朗玛峰海拔 7,848 米。」(实际是 8,848.86 米)
→ 数字编造,但看起来合理
类型 2:虚构引用
问:「AI 安全方面有什么重要论文?」
答:「Smith et al. (2023) 在 'AI Safety Framework' 一文中提出...」
→ 作者、论文、年份全部编造
→ 这就是那位律师遇到的
类型 3:合理推断但实际错误
问:「李白和苏轼见过面吗?」
答:「根据历史记载,李白和苏轼曾在汴京相聚...」
→ 李白(701-762),苏轼(1037-1101)
→ 差了 300 年,根本不可能见面
类型 4:知识截止问题
问:「2025 年的最新 AI 新闻是什么?」
答:(基于训练数据的最后时间点之前的新闻)
→ 不是幻觉,但同样不可靠为什么模型会产生幻觉?
根本原因:模型不「知道」任何事情
大语言模型的工作原理:
训练阶段:
阅读海量文本 → 学习统计规律 → 调整权重
生成阶段:
给定上下文 → 预测下一个最可能的 token → 输出
关键理解:
模型不是在「回忆」事实,而是在「预测」最可能出现的文字
它不知道什么是真的什么是假的
它只知道什么文字在什么上下文中更「常见」更深层的机制
为什么幻觉如此逼真?
1. 语言模型擅长「填空」
"根据 2023 年的研究,___"
模型知道学术论文的常见格式和用词
它会生成看起来像学术论文的文字
即使内容是编造的
2. 模型不知道「自己不知道什么」
人类在被问到不懂的问题时会说「不知道」
但模型没有元认知能力
它只会生成「最可能的下一个 token」
3. RLHF 训练可能加剧问题
人类标注员倾向于奖励「有用的回答」
模型学到:给出答案比说「不知道」更容易获得奖励
→ 倾向于编造答案而不是承认无知幻觉的数学本质
语言模型的概率分布:
P(下一个 token | 之前的所有 token)
当模型的概率分布在「正确答案」和「错误答案」
之间差距不大时,采样可能选到错误的那个
特别容易出错的场景:
├── 冷门知识(训练数据少)
├── 具体数字(日期、统计量)
├── 引用和出处(论文、法律案例)
└── 多步推理(每步都有误差,累积放大)知识截止问题
模型的训练数据有时间边界:
GPT-4: 训练数据截止到 2024 年初
Claude 4: 训练数据截止到 2025 年初
Gemini: 训练数据截止到具体版本不同
之后发生的所有事情,模型都不知道。
但模型不会主动告诉你「我的知识到此为止」
它可能自信地用旧信息回答新问题
例如:
问:「OpenAI 的现任 CEO 是谁?」
模型可能回答「Sam Altman」——这恰好是对的
但如果是问某个最近才换人的职位,就可能错了如何应对幻觉?
目前的解决方案
Level 1: Prompt Engineering
"如果你不确定,请说「我不确定」"
→ 有一定效果,但不可靠
→ 模型有时仍然会编造
Level 2: RAG(检索增强生成)
在回答前先检索相关文档
→ 让模型基于真实文档回答
→ 大幅降低幻觉(下一节详细讲)
Level 3: Grounding + Attribution
要求模型标注信息来源
→ 用户可以验证
→ 但模型可能编造来源
Level 4: 多模型交叉验证
用多个模型回答同一个问题,比较结果
→ 一致的部分更可信
→ 但成本高、耗时长
Level 5: 事实性微调
在特定领域数据上微调模型
→ 提高该领域的准确性
→ 但不能完全消除幻觉开发者的实践建议
减少幻觉的工程实践:
1. 明确告知模型的知识边界
System prompt: "你的知识截止于 2024 年。
对于之后的事件,明确表示你不了解。"
2. 要求模型标注不确定
"对每个事实性陈述,标注置信度(高/中/低)"
3. 使用 RAG 而不是依赖模型记忆
不问 "告诉我关于 X 的知识"
而是检索文档 + "基于以下文档回答"
4. 输出结构化 + 来源引用
要求输出包含 source 字段
方便程序验证来源是否存在
5. 关键决策不用 LLM
医疗诊断、法律建议、金融决策
这些场景不应完全依赖 LLM 的输出本节小结
| 概念 | 要点 |
|---|---|
| 幻觉 | 模型用逼真的方式输出错误内容——最危险的 AI 问题之一 |
| 根本原因 | 模型预测最可能的 token,不知道什么是对的 |
| 类型 | 事实错误、虚构引用、错误推断、知识过期 |
| 应对方法 | RAG 最有效——让模型基于真实文档回答,而不是靠记忆 |
| 开发建议 | 明确边界、要求标注不确定、使用 RAG、关键决策不用 LLM |
思考题
- 那位律师用 ChatGPT 写法律文书的故事中,谁应该承担责任?律师、OpenAI、还是两者都有?
- 为什么 RAG 能有效减少幻觉?它的原理是什么?(提示:想想信息来源从「模型记忆」变成了什么)
- 如果模型能够 100% 区分自己「知道」和「不知道」的内容,幻觉问题就解决了吗?