什么是幻觉?
幻觉(Hallucination)指大模型生成看似合理但事实上不正确的信息。不是简单的"不知道",而是"自信地说错了"——这是部署AI系统最大的信任障碍。
幻觉的成因
1. 训练数据层面
数据噪声:互联网文本包含大量错误信息。模型从中学到了"看起来权威但不准确"的表述模式。
知识冲突:同一问题的不同来源给出不同答案。模型根据训练分布概率生成,而非基于事实判断。
信息过时:训练数据有截止日期。模型对训练后发生的事情"编造"答案。
2. 模型架构层面
统计本质:LLM本质是概率模型——预测下一个最可能出现的token。它不是从知识库中"检索"事实,而是"生成"看似合理的文本。
无来源标注:模型无法区分"学过的知识"和"推理出的结论"和"编造的内容"。一切输出都是概率分布的采样。
过度自信:SFT训练让模型习惯给出明确答案,即使它不确定。RLHF中的"帮助性"偏好也鼓励模型"给出答案"而非"承认不知道"。
3. 推理层面
长推理链错误累积:多步推理中,每一步有概率出错,错误会累积。5步推理每步95%准确率,整体只有77%。
上下文干扰:长prompt中关键信息可能被淹没。模型注意力被无关内容分散。
幻觉类型
事实性幻觉
生成不存在的事实:
- “爱因斯坦在1955年获得了诺贝尔物理学奖”(实际是1921年)
- 虚构的研究论文引用
- 不存在的历史事件
逻辑幻觉
推理过程看似合理但逻辑错误:
- “所有猫都是动物,所有动物都会飞,所以猫会飞”(逻辑结构正确但前提错误)
- 数学计算步骤正确但最终结果错误
上下文幻觉
生成与提供上下文矛盾的内容:
- 上下文说"2025年",模型说"2024年的最新数据"
- 文档说"不支持X功能",模型说"支持X功能"
格式幻觉
输出格式不符合要求:
- 要求JSON但输出markdown
- 引用不存在的段落编号
检测方法
内部置信度估计
Logprob分析:模型输出的token概率分布。低置信度区域可能是幻觉信号。
# 伪代码
logprobs = model.generate(prompt, return_logprobs=True)
confidence = mean(logprobs)
if confidence < threshold:
flag_as_potential_hallucination()
Token Entropy:高熵(不确定性大)的token更可能是幻觉。
外部验证
事实核查:将生成内容与知识库对比:
- 提取模型输出的实体和关系
- 在知识图谱中验证
- 标记无法验证的内容
检索验证:将生成内容作为query检索:
- 检索到的文档是否支持该内容
- 使用NLI(自然语言推理)模型判断"支持/矛盾/中立"
自我评估
让模型评估自己的输出:
Prompt: "审查以下回答是否包含不准确信息。对每句话标注'确认'或'不确定':
回答: {model_output}"
模型自我审查能发现约50-60%的幻觉,比不做检查好,但不能完全依赖。
交叉验证
用不同模型生成同一回答,比较一致性:
- 高一致性 → 更可信(但不保证正确)
- 低一致性 → 需要人工审查
缓解策略
训练层
- 高质量数据:提高训练数据的事实准确性
- 拒答训练:训练模型在不确定时说"我不知道"
- RAG fine-tuning:用带检索的训练数据,让模型习惯"基于证据"回答
- Constitutional AI:宪法规则包含"不编造信息"
推理层
- RAG增强:提供可靠的外部知识,减少编造的动机
- Chain of Thought:让推理过程显式,便于发现错误
- Self-Consistency:多次采样取一致答案
- 温度控制:降低temperature减少随机性
- 约束解码:限制输出在事实范围内(如constrained decoding)
应用层
- 引用标注:要求输出标注来源
- 后验证:对输出做事实核查
- 人工审核:高风险场景必经人工
- 不确定性展示:向用户展示置信度
RAG是幻觉的银弹吗?
RAG大幅减少幻觉,但不能完全消除:
RAG减少幻觉的原因:
- 模型基于检索到的事实生成,而非依赖训练知识
- 检索内容提供了"锚点"
RAG仍有幻觉的原因:
- 检索内容可能不相关或不完整
- 模型可能"选择性忽略"检索内容
- 检索内容本身可能不准确
- 长上下文中检索信息被稀释
改进方向:
- Faithfulness评估(回答是否忠于检索内容)
- 引用验证(引用的段落确实支持该说法)
- 矛盾检测(检索内容是否互相矛盾)
评估指标
幻觉检测基准
- TruthfulQA:测量模型是否避免生成常见错误信息
- FActScore:细粒度事实准确性评估
- HaluEval:幻觉检测专用基准
- FaithDial:对话中的忠实度评估
评估方法
1. 生成回答
2. 将回答分解为原子事实陈述
3. 对每个事实陈述:
a. 在知识库中检索相关证据
b. NLI判断: 支持/矛盾/无法验证
4. 统计:
- 支持率: 支持的陈述比例
- 矛盾率: 矛盾的陈述比例
- 幻觉率: 1 - 支持率
总结
AI幻觉是大模型本质特性——统计生成模型的固有局限。完全消除幻觉不现实,但可以通过"RAG+CoT+自我审查+外部验证"的多层防御大幅降低。关键原则:不要信任,要验证。在可预见的未来,AI系统都需要人在回路(human-in-the-loop)来保障事实可靠性。