9.1幻觉与可靠性
本课只解决一个主问题:本单元只解决一个主问题:为什么 LLM 会一本正经地说错,以及我们该如何降低这种风险?
学习目标
学完本单元后,学习者应该能够:
- 解释 LLM 幻觉是什么。
- 理解幻觉为什么会发生。
- 区分事实错误、推理错误、引用错误和过度自信。
- 设计降低幻觉风险的基础方法。
- 判断哪些场景必须加入人工审核或外部验证。
先给直觉
LLM 的输出常常很流畅,这让人容易误以为它“知道自己在说什么”。
但模型的基本目标不是“只说真话”,而是在给定上下文里生成看起来合理的内容。
当它缺少资料、问题有陷阱、上下文混乱,或者任务要求超出能力范围时,它仍然可能生成一个语气自然、结构完整、但事实错误的回答。
这就是幻觉最麻烦的地方:它不一定像错误,有时还挺像专家。
幻觉是什么
幻觉是指模型生成了不符合事实、资料或任务要求的内容。
常见表现:
- 编造不存在的事实。
- 编造论文、书籍、链接或引用。
- 把多个事实混在一起。
- 错误解释资料。
- 在没有依据时给出确定结论。
- 对不确定问题表现得过度自信。
幻觉不是模型“故意骗人”。它是生成式模型在特定条件下的可靠性问题。
为什么会发生幻觉
1. 训练目标不是事实验证
LLM 学的是生成合理文本,而不是每句话都做事实核查。
它可以生成非常像真实答案的文本,但“像”不等于“是”。
2. 缺少当前或私有知识
模型不一定知道:
- 最新事件。
- 公司内部资料。
- 用户上传以外的文件。
- 小众领域细节。
- 私有数据库内容。
如果没有检索或工具,它可能根据相似模式补全。
3. 上下文不足或噪音太多
Prompt 太短,模型缺少必要信息。
Prompt 太长或资料太杂,模型可能抓错重点。
上下文质量会直接影响回答质量。
4. 用户问题带有错误前提
例如:
请解释爱因斯坦在《Attention Is All You Need》中的贡献。
正确做法是指出前提错误。
但模型可能顺着问题编下去。
5. 采样带来不确定性
生成过程有概率性。较高随机性可能带来更多表达多样性,也可能增加错误路径。
6. 检索结果错误
即使用了 RAG,如果检索到错误资料、过期资料或不相关片段,模型也可能基于错误资料生成错误答案。
RAG 能降低幻觉,不是防弹衣,最多算加了一层护具。
幻觉的类型
事实幻觉
模型生成了错误事实。
例子:
把论文年份、作者、产品功能、价格、法规说错。
引用幻觉
模型编造不存在的引用。
例子:
给出一个看似真实但不存在的论文标题或链接。
推理幻觉
模型中间推理有误,导致结论错误。
例子:
数学计算、逻辑推断、条件判断出错。
归因幻觉
模型把某个观点、发现或功能归给错误的人、论文、公司或产品。
过度确定
模型在信息不足时没有说明不确定,而是直接下结论。
如何降低幻觉
方法 1:明确资料边界
告诉模型只能根据给定资料回答。
请只根据以下资料回答。
如果资料中没有答案,请说“资料中没有提供”。
不要使用外部常识补充。
方法 2:要求引用依据
让模型输出依据,方便检查。
每个结论后面标注依据来自哪一段资料。
引用不能保证正确,但能让错误更容易暴露。
方法 3:使用 RAG
对私有知识、实时知识、专业资料,使用检索增强生成。
但要同时关注:
- 文档质量。
- Chunk 切分。
- 检索召回。
- 重排质量。
- 权限过滤。
- 引用生成。
方法 4:降低随机性
事实型任务通常不需要太高随机性。
可以使用更稳定的参数设置,并限制输出格式。
方法 5:让模型承认不确定
加入明确规则:
如果无法确定,请列出缺失信息,不要猜测。
方法 6:外部工具验证
对可计算、可查询、可验证的信息,尽量调用工具。
例如:
- 计算器
- 数据库
- 搜索
- 测试用例
- 代码执行
- 官方文档查询
方法 7:人工审核
高风险场景必须有人把关。
包括:
- 医疗建议
- 法律意见
- 财务决策
- 对外发布
- 生产系统操作
- 敏感数据处理
可靠性分层
不同任务需要不同可靠性措施。
| 风险等级 | 场景 | 处理方式 |
|---|---|---|
| 低 | 头脑风暴、标题候选 | 可接受一定错误,人工筛选 |
| 中 | 课程解释、产品方案 | 需要事实检查和专家审阅 |
| 高 | 合同、医疗、财务 | 必须引用来源、工具验证、人工审核 |
| 极高 | 自动执行外部动作 | 严格权限、确认节点、日志和回滚 |
不要用同一套标准处理所有 AI 输出。
案例:课程内容事实核查
假设模型写了一节关于某个最新模型 API 的课。
风险:
- 模型名称可能过时。
- 价格可能错误。
- 上下文长度可能变化。
- 参数支持可能变化。
- 官方接口可能改版。
处理方式:
- 不把高变化信息写成永久事实。
- 标注日期。
- 查官方文档。
- 把待核查内容放入
fact-check-backlog。 - 课程里讲稳定概念,把变化信息放到更新日志。
这也是本项目的默认规则。
常见误区
误区 1:幻觉是小概率 bug
不是。它是生成式模型需要长期管理的风险。
误区 2:模型越新,幻觉就不存在
更强模型通常更可靠,但不会彻底消除幻觉。
误区 3:RAG 可以完全解决幻觉
不能。RAG 自己也有检索、资料、引用和理解错误。
误区 4:让模型“认真一点”就能避免幻觉
语气约束不等于事实验证。要提供资料、工具、标准和审核。
误区 5:模型说“根据资料”,就真的根据了资料
需要检查引用是否存在、是否相关、是否支持结论。
动手练习
找一个 LLM,问它一个你熟悉但稍微冷门的问题。
要求它:
- 给出结论。
- 标注依据。
- 说明不确定点。
- 列出需要进一步核查的信息。
然后你自己检查:
- 哪些结论有依据?
- 哪些依据不存在或不支持结论?
- 它有没有承认不确定?
- 它是否编造了引用?
检查题(自测)
- 为什么 LLM 会产生幻觉?
- RAG 为什么只能降低幻觉,而不能彻底消除?
- 高风险场景至少需要哪些可靠性措施?
参考答案
- 模型按概率生成"看起来合理"的内容:缺少可靠资料、问题前提错误、没有实时信息、采样路径偏差等都会导致编造,而且它没有"我不知道"的天然机制。
- RAG 提供资料能显著降低幻觉,但资料不全、检索不到、模型误读资料时仍会编造;它降低的是概率,不是消除。
- 高风险场景至少需要:资料约束与引用、人工审核、风险分级、权限控制,以及必要时拒绝回答。
Takeaway
幻觉不是“模型偶尔犯傻”,而是生成式 AI 必须管理的核心风险。可靠 AI 系统不是靠祈祷模型别错,而是靠资料边界、引用、检索、工具验证、评估和人工审核共同降低风险。