大模型会“一本正经地胡说八道”? AI 幻觉的成因与对策。
在使用 ChatGPT 或其他大模型时,你有没有遇到过这种情况: 它语气坚定、逻辑通顺地给了你一个答案,结果你去查证发现 完全是瞎编的!
在 AI 领域,这种现象有个很科幻的名字:“幻觉”(Hallucination)。
很多人以为这只是简单的 “出错了”,其实背后的原理非常复杂。
🔬 到底什么是“幻觉”?
大模型的幻觉,简单说就是:回答不准确,或者前后逻辑打架。
但如果细分起来,它主要有两种“发病症状”:
第一类:事实性幻觉(跟现实世界对着干)
这类幻觉是指 AI 说的话违背了客观事实。
- 事实不一致: 比如你问“谁第一个登上月球?”,它自信地回答“查尔斯·林德伯格在 1951 年上去的”。 这就叫睁眼说瞎话,因为现实是阿姆斯特朗。
- 事实捏造:这个更离谱,它会编造一些压根不存在的人、事、物。
第二类:忠实性幻觉(不听你的话)
这类幻觉是指 AI 虽然没造谣,但它 无视了你的指令 或 无视了上下文。
- 指令不一致:你让它翻译,它却开始写代码;偏离了你的用户指令。
- 逻辑不一致:推理过程看着挺对,结果得出的结论和推理过程自相矛盾。
- 上下文不一致:你给它一篇文章让它总结“今年 10 月的新闻”, 明明写的是 2025 年,它却总结出了 2006 年的事。
🔬 为什么会产生幻觉?(三大病灶)
大模型不是故意骗你,它的 “致幻” 原因可以追溯到三个环节:
吃的数据(数据源)、学的过程(训练)、用的过程(推理)。
病灶一:数据源(病从口入)
大模型的 “粮食” 就是数据,粮食有问题,身体就有问题。
数据本身的缺陷: 互联网上本身就充斥着错误信息和偏见,模型照单全收。
知识利用率低: 即便模型吃了很多书,有时候也会“消化不良”,出现知识遗忘或调用错误。
过度依赖“迷信”模式: 这是一个很有趣的点。
举个栗子: 假如训练数据里,“加拿大”和“多伦多”这两个词经常挨在一起出现。模型就会产生一种 统计学上的错觉, 认为多伦多是加拿大的首都(实际上是渥太华)。这就是所谓的 “共现统计数据” 导致的误判。
病灶二:训练过程(成长的烦恼)
这个阶段分为 “预训练” 和 “对齐” 两步,每一步都可能埋雷。
1. 预训练阶段(打地基)
大模型学习通用表示并获取世界知识。
单向建模的缺陷:目前主流模型是 基于前一个
Token预测下一个Token。 它只能根据上文猜下文(单向),随着Token长度增加, 不同位置的注意力被稀释。导致对复杂上下文理解不够。暴露偏差(Exposure Bias): 这是一个专业痛点。模型训练时有标准答案看着, 但推理(生成)时只能依赖自己上一个生成的词。 如果它自己上一个词生成错了,后面就会像 滚雪球 一样,错上加错,这叫级联错误。
2. 对齐阶段(教规矩)
我们通常用 RLHF(人类反馈强化学习)来微调模型,让它更符合人类喜好。但这也会带来副作用:
- 能力错位:我们逼着模型去回答一些 超出它知识边界 的问题,它为了完成任务,只能硬编。
- 信念错位(讨好型人格): 模型发现,只要顺着人类的话说就能得高分。 结果它为了 迎合人类的偏好,宁愿牺牲真实性。你说地球是平的,它可能为了让你开心也跟着附和。
病灶三:推理过程(发挥失常)
大模型产生幻觉的第三个关键因素是推理,存在两个问题:
随机性的锅: 模型生成答案本质上是 概率游戏。 为了让回答不枯燥,我们允许它有一定的随机性(采样)。 只要是掷骰子,就总有掷歪的时候。
解码不完美: 模型有时候会 “注意力涣散”, 过度关注最近的内容,而忽略了长文中真正重要的源信息(Softmax 瓶颈)。
🔬 怎么诊断 AI 有没有幻觉?
医生看病要体检,评估大模型有没有幻觉,现在业界主要有这几套 “体检方案”:
针对 “事实性幻觉” 的检测:
两种方法: 检索外部事实、不确定性估计
检索外部事实(查字典): AI 说完话,我们立刻用搜索引擎或知识库去查证, 对比它说的和真实信息是否一致。
不确定性估计(测自信):
2.1 查内功(内部状态): 看模型生成这个答案时的概率。 如果关键概念的概率很低,说明模型自己都心虚,多半是幻觉。
2.2 看表现(基于行为): 不需要看模型内部数据,而是问它多次,或者采样多个回答。 如果它每次说法都不一样,那肯定是在瞎编。
针对 “忠实性幻觉” 的检测:
五种主流方法
- 基于事实度量:算一算生成内容和原文的事实重叠率来评估。
- 分类器度量:使用训练过的模型分类器,用来区分忠实内容和幻觉内容。
- 问答度量:使用问答系统来验证源内容和生成内容之间的信息一致性。
- 不确定度估计:测量模型对其生成输出的置信度来评估忠实性。
- 提示度量:直接让另一个大模型当考官,通过特定的提示策略来评估生成内容的忠实性
🔬 大模型幻觉的缓解方案
首先要告诉大家一个 扎心的真相:
幻觉和“创造力”其实是一体两面。 如果我们彻底消灭了幻觉,模型可能也就失去了联想、创新和涌现的能力, 变成了一个只会死记硬背的复读机。
所以,我们的目标是 缓解,而不是在所有场景下彻底 根除。
方案一:数据层面(最实用!RAG )
这是目前应用开发中最主流的方案。既然模型记不住那么多,或者知识会过时,那我们就给它 挂个外挂。
RAG(检索增强生成)
- 一次性检索:回答前,先去知识库里把相关资料找出来,喂给模型,让它看着资料回答。
- 迭代检索:在整个生成过程中不断收集知识,边查边写。
- 事后检索:模型先写完,然后再去查资料,发现写错了就自动修正。
此外,知识编辑 也是一种方法,就是直接修改模型的参数,强行把错误的知识点修正。
方案二:预训练层面
缓解预训练相关幻觉
- 改进架构:使用双向模型,让它既能看上文也能看下文,理解更透彻。
- 优化训练目标:通过引入事实性增强的训练方法和上下文预训练,提升模型的事实关联和逻辑一致性。
- 减少曝光偏差:优化训练策略,让模型在训练时就模拟“一旦上个词说错了该怎么补救”,提高抗干扰能力。
方案三:对齐层面
缓解对齐相关幻觉
- 纠正能力错位:训练模型时要让它学会“知之为知之,不知为不知”,不要不懂装懂。
- 纠正信念错位:聚合人类偏好和调整模型奖励机制,减少模型迎合行为, 避免生成与模型自身认知相悖的内容。
方案四:推理层面
缓解推理相关幻觉
- 事实性解码:在生成答案的每一个瞬间,都利用算法引导它往“符合事实”的方向走。
- 忠实度解码:通过上下文和逻辑一致性策略, 强行约束它,必须紧扣指令和上下文,别跑题。
🔬 总结一下
大模型的幻觉主要来自 坏数据、死板的训练方式以及推理时的随机性。
虽然我们无法完全消灭它,但通过 RAG(检索增强生成) 这种外挂技术, 以及改进模型的训练方法,我们正在让 AI 变得越来越靠谱。
对于我们使用者来说,要记住一点: 在关键领域(医疗、金融),永远不要盲信 AI 的直接输出,验证才是王道!
