"幻觉"是什么、为什么会发生、怎么减轻
为什么 AI 会一本正经地胡说八道?这不是 bug,这是它本来就这样工作。理解了机制,你就知道怎么用。
如果你用过 ChatGPT、Claude、文心一言、豆包……你大概率遇到过这种事:
你问:「《红楼梦》第三回里林黛玉第一次见贾宝玉,宝玉说的第一句话是什么?」
AI 答:「宝玉笑道:‘这个妹妹我曾见过的。’」
听起来好真实!但你打开《红楼梦》核对——贾宝玉这句话出现在第三回结尾,但 AI 描述的细节可能完全错位。它给的那句话本身可能对,可能错,也可能是它从训练数据里”凑”出来的——你无法知道。
这就是 AI 幻觉(Hallucination)。
它不是个 bug,它是这类 AI 工作原理的副产品。理解了为什么,你才知道怎么应对。
一、什么是”幻觉”
学术定义有点啰嗦,先看现象。AI 幻觉的典型表现:
- 编造事实:编出不存在的论文、书籍、公司、人物
- 混淆记忆:把张三的事情安到李四头上
- 过度自信:用极度笃定的语气说一件错的事
- 看起来很专业:使用准确的术语、合理的结构,所以你看不出哪里假
- 难以察觉:很多幻觉只能靠核对原文才能发现
2023 年美国一名律师用 ChatGPT 写法律辩护书,里面引用了 6 个案例——结果全是 ChatGPT 编的。法官查不到任何一个,律师被处罚。 他不是不知道 AI 会出错——他只是没意识到 AI 会编得这么逼真。
二、为什么会发生
要回答这个问题,需要知道 LLM 到底在干什么。
LLM 本质上在做一件事:
给一段文本,预测下一个最有可能的 token。
注意:是”最有可能”,不是”最正确”。它输出的每个词,都是基于训练时见过的统计模式选出来的。
举个例子。如果训练语料里大量出现:
《红楼梦》第三回 ... 林黛玉 ... 见到了贾宝玉 ... 贾宝玉说:「______」
模型见过的”贾宝玉说:「」“后面通常接什么?可能是”这个妹妹我曾见过的”、可能是”我已经见过”、可能是各种其它说法。
模型只看见了”什么样的字接在什么后面”,它从来没真正”读懂”过这本书。它输出的是统计上合理的延续,不是经过验证的事实。
一个比喻
AI 像一个超级博学的会编故事的失忆症患者。
它读过几乎所有书(训练时),但已经忘了具体哪句来自哪本书。
当你问它”这本书第三回宝玉说什么”——它不是去翻书,而是根据它”对这本书风格的整体印象”重新生成一句宝玉可能说的话。
有时候生成的恰好是真的,有时候完全是它编的。它自己也分不清。
三、幻觉的几种来源
知道幻觉为什么发生,能让你预判什么时候它特别容易出错:
1. 信息稀缺型
模型对小众/冷门话题的训练数据少,但又不愿说”我不知道”——它就会拼凑。
典型例子:让它讲一个小众学术研究、一个三线城市的本地名人、一个非主流的编程库。
2. 时效性陷阱
模型有训练截止日期。问它训练截止之后的事,它要么不知道,要么用截止前的旧信息编一个看起来合理的答案。
典型例子:2024 年初训练的模型,被问”2024 年 11 月美国大选谁赢了”——它会编一个。
3. 提示词诱导
你的提问方式会”暗示”它一个答案。比如你问”鲁迅在 1936 年给青年画家张梅的那封信里说了什么?“——这封信根本不存在,但你的提问方式让 AI 默认”它存在”,于是它会编一封。
这种叫 “提示注入式幻觉”——你的问题预设了不存在的前提,AI 配合你演下去。
4. 跨域混淆
让 AI 处理跨领域信息(“用经济学解释这首唐诗”),它容易把不相关的事情串到一起,看起来很有洞见,但其实是胡扯。
5. 数字、日期、专名
数字、日期、人名、地名、术语——这些细节是幻觉的重灾区。
典型例子:让它说”AlphaGo 是哪一年发布的”——它可能说 2014、2015、2016,三个里只有一个对(2015 年首次出圈,2016 年战胜李世石)。
四、为什么”自信地胡说”是必然
有人可能会问:那为什么 AI 不直接说”我不知道”?
这里有几层原因:
1. 训练目标决定的
LLM 训练时目标是”生成看起来像人会写的文本”。人写文章通常不会说”我不知道”——人会写下他认为可能正确的内容。
所以 LLM 学到的就是:永远输出一个完整的答案。
2. 不知道自己不知道
LLM 没有真正意义上的”自我认知”——它不知道哪些事它真的会、哪些事它在编。
它的每个输出都是相同的统计机制,所以它对所有答案的”自信度”看起来都差不多高。
3. RLHF 让事情更糟(一点)
ChatGPT、Claude 这些经过 RLHF(人类反馈强化学习)训练的模型——人类标注员通常会给”有用的、详细的”回答打高分,给”我不知道”打低分。结果:模型更倾向给你一个详细回答,哪怕它在编。
后来 Anthropic 等开始专门训练模型”该不知道的时候敢说不知道”,但这只能部分缓解,无法根除。
五、怎么减轻幻觉
幻觉不可能完全消除,但你可以做很多事降低它:
用户侧的 7 个习惯
| 招数 | 做法 |
|---|---|
| 1. 给材料 | 别让它”凭记忆”答;把相关文档/链接/数据贴给它,让它”基于材料”回答 |
| 2. 要求出处 | ”请在每个论断后面标出处。“——会让它至少不敢瞎编 |
| 3. 反问验证 | ”你刚才说 XX 是 1985 年成立的,有什么证据?“ |
| 4. 让它列代码算 | 涉及数字,让它写 Python,不要让它直接算 |
| 5. 用联网版本 | 时效性问题用 Perplexity / 联网的 GPT/Claude |
| 6. 选合适的模型 | 重要场景用 GPT-4 级别的大模型,别用小模型 |
| 7. 关键事实自己核 | 永远把 AI 当线索来源,不是事实来源 |
工程侧的解决方案
如果你在做产品/应用,业界主流的解决方案:
- RAG(检索增强生成):先从你的知识库里检索出相关文档,再把文档塞给 LLM 让它基于文档回答。今天的 90% 企业 AI 应用都用这个。
- Citation 强制:训练/提示模型必须给出出处,没出处的内容标”低置信度”
- Self-consistency:让模型回答 5 次,看答案是否一致——不一致的就丢弃
- Verifier model:用另一个模型/规则系统验证主模型的输出
你以为客服机器人/法律助手/医疗咨询是直接问 LLM?不是。它们 99% 都先从企业自己的文档库里检索(“retrieval”),把检索结果塞给 LLM 做答案生成。这样 LLM 只在你给的范围内”说话”,幻觉大幅下降。L4 路径有 RAG 专题,到时候详讲。
六、一些反常识的认知
1. “更大的模型 = 更少幻觉” —— 不完全对
GPT-4 比 GPT-3.5 幻觉少,但幻觉的内容更隐蔽——它编的东西更接近真实,更难识破。
2. “中文模型在中文上更准” —— 不一定
中文模型在中文流畅度上更好,但在事实准确性上,GPT-4 在中文上的表现常常超过专门的中文模型——因为它见过的中文有效数据更多。
3. “我让它’不要瞎说’就有用” —— 部分有用
加一句”请只回答你确信的内容,否则请说不知道”——确实能减少一部分幻觉。但不能根除。
4. “幻觉只是技术问题,过几年就解决了” —— 不一定
幻觉根植于当前 LLM 的工作原理(统计预测下一个 token)。除非范式根本改变,否则它只能缓解、不能消除。
七、一句话总结
AI 不是知识库,是猜测引擎。
它擅长给你”一个看起来对的答案”,但不一定是”那个真正对的答案”。
你的工作不是停止用它——而是用它的同时,保持你自己的判断力。
下次 AI 给你一个让你想”哇这个我之前不知道”的”知识”时,停一秒——你能不能轻易在其它来源验证它?如果不能,那它很可能是幻觉。
下一篇:《提示词入门 10 招:让 AI 干活立刻精准 10 倍》——一篇就能让你的 AI 使用效率翻几倍。
读到这里说明你认真在学 🎯
订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。
讨论区
· 用 GitHub 账号登录评论src/components/Comments.astro 顶部填入
仓库 ID 和分类 ID(见组件注释里的配置步骤)。