大模型幻觉怎么从系统层面降低?

第 1240 题 约 2 分钟读完

本文目录
  1. 面试怎么回答
  2. 先理解幻觉为什么发生
  3. 系统层面的措施
  4. 衡量

面试怎么回答

幻觉的根源是模型生成看起来合理的文本,缺信息时倾向于补全。系统层面我会:一是给事实来源,知识走 RAG、数据走工具查询、实时信息走接口,不让模型凭记忆;二是允许说不知道,并在评测中把正确拒答计为正确;三是把计算、日期、排序这类确定性工作交给代码,用 Schema 约束格式;四是生成后验证引用是否存在且支持结论、数字能否在来源中找到,关键结论交叉验证;五是提升检索准确性和元数据口径清晰度;六是产品上展示来源、标识不确定内容,高风险场景人工审核。衡量上建立含无答案问题的事实性评测集,统计幻觉率、拒答率、引用准确率,并做线上抽样核查。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

「幻觉」是大模型应用最常被提到的问题:编造不存在的数据、引用不存在的文档、给出看似合理但错误的结论。面试官问这题,不是想听你说「换个更好的模型」,而是想看你怎么从系统设计上让幻觉更少、更容易被发现。

先理解幻觉为什么发生

  • 模型本质上是在生成「看起来合理」的文本,而不是查询事实;
  • 缺少相关信息时,模型倾向于补全而不是承认不知道;
  • 上下文中有错误、过时或矛盾的信息;
  • 任务超出了模型的能力,比如复杂计算。

系统层面的措施

1. 给事实来源,不让模型凭记忆回答

  • 知识类问题用 RAG 提供文档依据;
  • 数据类问题通过工具查询,数字来自查询结果;
  • 实时信息通过接口获取。

2. 允许和鼓励说「不知道」

  • 提示词明确:没有依据时说明无法确定;
  • 评测时把正确的拒答计为正确,而不是失败,否则优化方向会鼓励模型硬答。

3. 把确定性工作交给代码

  • 计算、日期推算、单位换算、排序,用代码执行;
  • 格式和取值范围用 Schema 约束。

4. 生成后的验证

  • 引用检查:引用的文档和段落是否存在,是否支持对应的结论;
  • 数字检查:回答中的数字能否在工具返回或文档中找到;
  • 一致性检查:多次生成或多个模型交叉验证关键结论;
  • 不通过的进行修正、标记或拒答。

5. 提升输入质量

  • 检索的准确性:混合检索、重排、过滤过期文档;
  • 元数据和口径清晰,减少模型「猜」的空间。

6. 产品设计

  • 展示来源和依据,让用户可以核实;
  • 对不确定的内容做标识;
  • 高风险场景(财务、法务、对外发布)保留人工审核。

衡量

  • 构建事实性评测集:带标准答案的问题、知识库中没有答案的问题;
  • 统计幻觉率、拒答率、引用准确率;
  • 线上抽样核查,用户反馈分类统计。