幻觉(Hallucination)

LLM 生成看似合理但实际错误或虚构的内容的现象。模型不是"故意撒谎",而是在没有足够依据时仍按概率生成最可能的下一个 token,导致输出与事实不符。是 AI 应用中最核心的可靠性挑战之一。

为什么会幻觉?

LLM 的本质是"给定前文,预测下一个 token 的概率分布"。它没有内置的事实核查机制——如果训练数据中某个说法出现频率高,模型就倾向于输出它,不管它是不是真的。

更根本地说,模型的目标函数是最小化预测损失(交叉熵),不是"输出正确的事实"。这两个目标大部分时候重合,但在模型知识边界处会分离——模型宁可"编一个像样的回答"也不会说"我不知道",因为训练数据中很少有"我不知道"的示范。

幻觉的类型

  1. 事实性幻觉:生成与现实世界不符的信息(编造论文、虚构人物履历、错误的数字)
  2. 忠实性幻觉:回答与给定的上下文/文档不一致(RAG 场景中,模型明明看到了正确信息但回答了别的)
  3. 逻辑幻觉:推理步骤看似连贯但存在逻辑跳跃或错误

缓解手段

没有银弹,但有多层防线:

  • RLHF 对齐:训练模型在不确定时说"我不确定"——InstructGPT 将幻觉率从 41% 降到 21%
  • RAG:把相关事实检索出来塞进 prompt,让模型"有据可依"而非凭记忆作答
  • Structured Outputs:约束输出格式,减少自由发挥空间
  • Chain-of-Thought:让模型展示推理过程,便于人工审查中间步骤
  • Agent 确认机制:关键操作前要求人工审批(human-in-the-loop)

为什么重要

在 Agent 场景中,幻觉的危害被放大——模型不只是"说错话",还可能"做错事"。如果 Agent 幻觉出一个工具返回值而不是真正调用工具,后续决策链都建立在虚假信息上。这就是为什么 ReAct 框架强制要求 Observation 步骤——必须拿到真实的工具返回值,不允许模型自己编。