幻觉与缓解
幻觉是 LLM 的固有缺陷:一本正经地胡说。面试主线:类型、成因、怎么缓解。
幻觉类型
| 类型 | 表现 | 例子 |
|---|---|---|
| 事实幻觉 | 编造不存在的知识 | 虚构论文、假新闻 |
| 忠实性幻觉 | 偏离输入/指令 | 摘要加料、忽略约束 |
| 逻辑幻觉 | 推理跳跃 | 数学算错但自信 |
按严重程度:能核实的是“事实错误”,不能核实的是“编造”(后者更危险)。
成因
| 成因 | 机制 |
|---|---|
| 生成机制 | 模型本质是“预测下一个词”,不是“查数据库” |
| 训练数据 | 数据有噪声、过时、缺失 |
| 上下文冲突 | 输入信息与训练知识冲突时模型可能按训练走 |
| 奖励偏差 | 对齐阶段偏好“听起来对”的答案 |
| 信息密度 | 长上下文中关键信息被稀释(见上下文窗口篇) |
核心认知:模型没有“不知道”的开关,它总是会生成,知识不足时就编。
缓解手段
| 手段 | 机制 | 效果 |
|---|---|---|
| RAG | 检索事实喂给模型,让它基于资料回答 | 最有效,可控 |
| 提示约束 | “不知道就说不知道”、要求引用来源 | 降低概率,不根治 |
| 限制任务 | 只在有资料的领域作答 | 避开雷区 |
| 校验后处理 | 用工具/规则验证输出(计算、查库) | 关键场景必做 |
| 温度调低 | 降低随机性 | 小幅改善 |
| 微调 | 教模型说“不知道” | 成本高,效果有限 |
工程原则:对幻觉的防线是流程不是模型,关键输出过验证(工具执行、规则检查、人工审核)。Agent 场景:让模型调用工具拿事实,而不是凭记忆回答。
检测
- 事实性:交叉验证(检索对比、人工抽查)
- 一致性:同一问题多次提问对比
- 置信度:模型自评不可靠,别信
- 生产:关键场景(医疗、金融)强制人工审核 + 引用来源
面试追问
- 幻觉是什么? 生成与事实/输入不符的内容。模型是预测不是检索,知识不足就编
- 为什么 RAG 能缓解? 把事实放进上下文,模型基于资料回答,减少编造空间。不能根治但最有效
- 提示词能根治幻觉吗? 不能。降低概率(“不知道就说不知道”),但不改变生成机制
- Agent 场景怎么防幻觉? 让模型调工具拿事实(搜索/查库),关键输出走验证。流程防线
- 模型自评置信度可靠吗? 不可靠:幻觉时往往更自信。用外部验证