模型幻觉
概念
模型幻觉(Hallucination)指 LLM 生成的内容与事实不符,但以非常自信且合理的口吻呈现。这是所有 LLM 共通的固有问题,源自其核心机制——预测下一个 token,而非真正"理解"或"知道"事实。
简单说:LLM 被训练成编造听起来合理的文本,而很多时候它确实碰巧编对了,但出错时同样自信。
幻觉的类型
事实性幻觉(Factuality Hallucination)
生成内容与已知事实矛盾:
- 捏造数据:编造不存在的研究数据、统计数据
- 捏造引用:编造不存在的论文、书籍、法律条文
- 人物张冠李戴:把 A 的事迹归给 B
- 时间错乱:混淆历史事件的时间线
忠实性幻觉(Faithfulness Hallucination)
生成内容与给定的上下文或指令不一致:
- 偏离指令:忽略用户明确的限制条件
- 上下文污染:遗忘或扭曲上文提到的信息
- 过度总结:总结时添加原文没有的内容
幻觉的成因
- 训练数据噪声:互联网语料本身包含大量错误信息
- 概率生成本质:模型优化的是"像不像人话",不是"对不对"
- 知识截止日期:训练数据有截止时间,之后的事物全靠"猜"
- 长尾知识不足:冷门领域在训练数据中占比小,容易出错
- 对齐训练副作用:为满足"有帮助"而过度回答,宁错不缺
- 上下文窗口遗漏:长上下文中的关键信息被注意力机制稀释
缓解策略
技术层面
- RAG:让模型基于检索到的真实文档回答(详见 RAG 章节)
- 强约束 Prompt:明确要求"只基于提供的信息回答,不知道就说不知道"
- 降低 Temperature:生成事实内容时用低温度减少随机性
- Self-Consistency:多次生成取多数结果
- Grounding / Fact-checking:用外部工具验证生成内容
产品层面
- 标注"AI 生成,仅供参考"
- 提供信息来源链接
- 对关键场景(医疗、法律等)强制人工审核
- 设置置信度阈值,低置信度内容加警告
前端实践
- 对 AI 生成的可操作内容(如代码、配置、支付信息)不要直接执行,先让用户确认
- 展示 AI 回答时附上来源标注
- 用 UI 设计区分 AI 推断内容与确定内容(如斜体 vs 正常字体)
面试常问
- 什么是模型幻觉?根本原因是什么?
- 前端如何设计来降低幻觉带来的风险?
- RAG 为什么能缓解幻觉?
