LLMStart|持续课程 · 不追玄学
模块 9 · 9.1
进阶级60 分钟

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 的课。

风险:

  • 模型名称可能过时。
  • 价格可能错误。
  • 上下文长度可能变化。
  • 参数支持可能变化。
  • 官方接口可能改版。

处理方式:

  1. 不把高变化信息写成永久事实。
  2. 标注日期。
  3. 查官方文档。
  4. 把待核查内容放入 fact-check-backlog
  5. 课程里讲稳定概念,把变化信息放到更新日志。

这也是本项目的默认规则。

常见误区

误区 1:幻觉是小概率 bug

不是。它是生成式模型需要长期管理的风险。

误区 2:模型越新,幻觉就不存在

更强模型通常更可靠,但不会彻底消除幻觉。

误区 3:RAG 可以完全解决幻觉

不能。RAG 自己也有检索、资料、引用和理解错误。

误区 4:让模型“认真一点”就能避免幻觉

语气约束不等于事实验证。要提供资料、工具、标准和审核。

误区 5:模型说“根据资料”,就真的根据了资料

需要检查引用是否存在、是否相关、是否支持结论。

动手练习

找一个 LLM,问它一个你熟悉但稍微冷门的问题。

要求它:

  1. 给出结论。
  2. 标注依据。
  3. 说明不确定点。
  4. 列出需要进一步核查的信息。

然后你自己检查:

  • 哪些结论有依据?
  • 哪些依据不存在或不支持结论?
  • 它有没有承认不确定?
  • 它是否编造了引用?
检查题(自测)
  1. 为什么 LLM 会产生幻觉?
  2. RAG 为什么只能降低幻觉,而不能彻底消除?
  3. 高风险场景至少需要哪些可靠性措施?
参考答案
  1. 模型按概率生成"看起来合理"的内容:缺少可靠资料、问题前提错误、没有实时信息、采样路径偏差等都会导致编造,而且它没有"我不知道"的天然机制。
  2. RAG 提供资料能显著降低幻觉,但资料不全、检索不到、模型误读资料时仍会编造;它降低的是概率,不是消除。
  3. 高风险场景至少需要:资料约束与引用、人工审核、风险分级、权限控制,以及必要时拒绝回答。

Takeaway

幻觉不是“模型偶尔犯傻”,而是生成式 AI 必须管理的核心风险。可靠 AI 系统不是靠祈祷模型别错,而是靠资料边界、引用、检索、工具验证、评估和人工审核共同降低风险。