大模型为什么会幻觉?应用层能做哪些缓解?

Q1-05幻觉高频幻觉事实性引用溯源拒答可验收指标

谁在问:各轮都可能(一面考概念、二面考工程、三面考风险承诺)

口语化问法

  • 模型为什么会一本正经地胡说八道?
  • 你们上了 RAG 之后,幻觉解决了吗?
  • 你怎么知道你的系统现在幻觉率是多少?

考察意图

这题是个照妖镜。概念层面人人都能答两句,真正区分度在三处:

  1. 你能不能把幻觉的根源归到生成机制上,而不是归到「模型不够聪明」;
  2. 你会不会把幻觉分类——不同类型的幻觉解法完全不同,混为一谈说明没真治过;
  3. 面对「保证不出错」这种不可能的要求,你能不能把它翻译成可验收指标

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

模型每一步做的是预测下一个 token 的概率分布,它的训练目标是「像语料那样接下去」,不是「说真话」。它内部没有一个可查的事实数据库,知识是以参数形式模糊存储的。当上下文里缺少答案时,「我不知道」并不是一个天然高概率的续写,所以它会顺着语感补一个看起来最像的答案。

应用层的缓解手段:用 RAG 提供外部证据、要求带引用、降低温度、加输出校验、给模型明确的拒答出口。

90

90 分答案(有生产经验的回答)

先把根源说准,再把问题拆开:

根源:目标函数决定的默认行为。应用层能改的是分布的条件(给证据、给出口、给约束、给校验),改不了的是目标函数本身。所以「消灭幻觉」是伪目标,真目标是把它压到可接受率,并且让它可被发现

分类是治理的前提,我们线上分三类,解法完全不同:

类型 表现 主要解法
① 无据可依的编造 上下文里根本没有这个信息 检索覆盖率 + 明确的拒答出口
② 有据但读错 上下文里有,模型张冠李戴、算错、张三的数安到李四头上 rerank、减少干扰项、结构化引用、字段级校验
③ 参数化知识过时 模型凭记忆答了旧事实 强制以检索内容为准 + 时效标注 + 覆盖时效性查询

归因动作:怀疑幻觉时的第一动作不是调提示词,是手工把正确文档塞进 prompt,看它还错不错——这一刀直接切开检索侧和生成侧。还错,是生成侧(②);不错了,是检索侧(①)。这一步不做,后面所有优化都是在猜。

度量与兜底:建带标注来源的评测集,跑 groundedness / faithfulness 类指标;线上做引用可点开核对、抽检、用户点踩闭环。另外一个 2026 年的视角:OWASP 在新版 LLM Top 10 里把 Misinformation 往上提了两位,理由是当模型输出驱动工具调用时,一个错答案就变成一个错动作——在 Agent 场景里,幻觉已经不只是质量问题,是安全问题。

追问链

图 1 · 五层追问树:面试官会往哪儿挖
照妖镜题:概念谁都能说两句,区分度全在分类与度量

  1. 温度调到 0 是不是就不幻觉了?

    期望不是。温度只影响从概率分布里怎么挑,不影响这个分布本身对不对;分布错了,温度 0 只是让它稳定地错 —— 甚至更难被发现,因为多次采样都一样
    信号说得出「温度 0 让它稳定地错」→ 理解了机制;答「是的,会好很多」→ 把采样和事实性混成了一件事
  2. 上了 RAG 就能消灭幻觉吗?

    期望不能,只是把问题从「凭记忆编」搬到「基于给定内容答」。三个残留:检索错了照样错(垃圾进垃圾出);检索对了模型也可能读错;引用幻觉 —— 标了出处但内容并非出自该处,这类最危险,因为它看起来更可信
    信号主动提「标了引用却胡编」→ 通常真做过 toB 交付;只说「RAG 能大幅缓解」→ 听来的
  3. 怎么让模型该说「我不知道」的时候真说出来?

    期望给出口而不是给禁令 —— 与其写「不许编造」,不如在输出结构里留显式字段(answerable: false + reason),让「不知道」成为合法的、有位置的输出;配证据不足时的判定规则与阈值。代价要一起说:拒答率会上升,可能误拒本可回答的问题
    信号主动说「拒答率会上升,是要一起看的指标」→ 真上线过;只说「提示词里让它不知道就说不知道」→ 没做过
  4. 你怎么度量幻觉率?

    期望先定义什么算幻觉(对着给定来源判还是对着客观事实判,二者难度差一个量级)→ 建带来源标注的评测集 → 用 groundedness 类指标自动评 → 用 LLM-as-Judge 要知道它自身有偏差、得拿人工标注小集校准;线上侧靠引用可核对 + 抽检 + 用户反馈
    信号能区分「对来源忠实」与「客观正确」→ 做过评测;一律「让另一个大模型打分」且不提校准 → 只搭过 demo
  5. 法务提出「上线前必须保证系统不会输出虚假信息」,你怎么回应?

    期望不能承诺也不能摊手,翻译成可验收契约:① 分级:金额、条款编号、日期、人名只许原样抄来源、不许生成,最高风险面一刀收掉 → ② 指标:双方认可的评测集上忠实度达阈值、关键字段错误率为 0(因为是抄的)、结论可点回溯原文 → ③ 兜底:证据不足先拒答、高风险转人工、输出侧规则校验(金额对不上就拦) → ④ 写下不可承诺的部分,配监控、抽检、事故响应,留证据链
    信号主动做「哪些字段只许抄不许编」的分级 → 把风险变成了工程约束;硬拍胸脯说能保证、或只说「做不到」然后没下文 → 两种差答案
前两层还在拆误解(温度 0、上了 RAG),第 3 层起才见真章:讲拒答要连拒答率上升的代价一起讲;第 5 层考你能不能把「保证不出错」换成分级 + 指标 + 兜底。

评分要点

  1. 把根源归到生成目标函数上,而非「模型不够聪明」
  2. 说清应用层能改条件、改不了目标函数
  3. 能对幻觉分类,并给出不同类型的不同解法
  4. 排障第一动作是手工塞正确文档,切开检索侧与生成侧
  5. 知道温度不影响分布本身的对错
  6. 知道 RAG 有残留问题,尤其是引用幻觉
  7. 讲拒答时能同时提到拒答率上升这个代价
  8. 能把「保证不出错」翻译成分级 + 指标 + 兜底 + 证据链

常见错误

把幻觉归因为「模型还不够强,等下一代就好了」。
认为温度调到 0 就不会幻觉。
认为上了 RAG 幻觉就解决了,说不出任何残留问题。
缓解手段只会罗列名词(RAG、CoT、校验),说不出各自解决哪一类。
从没度量过,被问幻觉率时只能给一个凭感觉的数。
面对「保证不出错」要么硬承诺,要么直接摊手。
含糊标志词:「多加点提示词约束一下就好了」「让它严谨一点」「一般不会出现这种情况」。

关联学习