模型幻觉与评估机制对比:为何“我不知道”才是关键指标

作者:很菜不狗2026.11.04 10:28浏览量:0

简介:本文从“准确率导向”与“错误率导向”两种评估机制出发,对比二者对模型幻觉行为的不同激励效果,剖析幻觉产生的根源、常见误判、度量方式与选型依据,帮助开发者建立更合理的模型评估体系,并给出可落地的度量流程与迁移注意事项。

模型幻觉与评估机制对比:为何“我不知道”才是关键指标

一、对比背景:同一个“准确率”,两种完全不同的模型行为

在模型评估与选型讨论中,“准确率”几乎是最常见的指标。但一个被反复忽略的事实是:准确率是一个混合指标,它把“答对”“答错”和“拒答”三种行为压缩成了一个数字。对于需要高风险决策支持的场景,这种压缩会掩盖真正重要的信息——模型到底是在“诚实地承认不知道”,还是在“自信地编造答案”。

本文对比的两类对象,不是两个具体产品,而是两种评估与激励思路:

  • 对象A:准确率导向的评估机制——以“答对比例”为核心度量,鼓励模型尽量给出答案,拒答被视为能力不足。
  • 对象B:错误率导向的评估机制——以“答错比例(即幻觉率)”为核心度量,明确把“我不知道”作为一种合法且被鼓励的输出。

两者的核心分歧不在于模型架构,而在于我们如何定义“好的模型行为”,以及这种定义如何反向塑造模型的输出倾向。

二、对象定义:两种机制分别解决什么问题

准确率导向机制的目标是提升单位问题上的正确命中数。它的隐含假设是:每个问题都应该有一个答案,模型的价值在于尽可能多地给出正确答案。在这种机制下,训练与评估的奖励信号集中在“是否命中标准答案”,而对“不该回答时是否回答”缺乏区分。

错误率导向机制的目标是压低“错误且自信”的输出比例。它把模型输出拆分为三类:正确、错误、明确拒答,并单独度量错误率。其核心主张是:幻觉不是神秘的架构缺陷,而是标准训练与评估激励机制的可预测后果——不是模型本身出了根本性问题,而是评价方式诱导了错误行为。

三、相同点分析:两种机制的共性基础

尽管目标不同,两者在以下方面存在共同点:

  1. 都依赖标注或参考答案:无论度量准确率还是错误率,都需要一个判定“正确”的基准,差别只在于如何归类“非正确”输出。
  2. 都作用于训练与推理两端:评估指标不仅用于事后打分,也会通过奖励建模、偏好数据构造等方式影响模型行为。
  3. 都面对同一组输出形态:模型在原则上具备三种输出能力——给出正确答案、给出错误答案、表达不确定性。区别在于哪种形态被激励。
  4. 都需要处理长尾与开放域问题:在冷门知识、时效性信息、专有名词等场景下,两种机制都面临参考答案缺失或过时的挑战。

四、核心差异分析

4.1 度量口径差异:一个数字掩盖三种行为

设模型在 N 个问题上的表现为:正确 C 个、错误 W 个、拒答 U 个,则 C + W + U = N。

  • 准确率 = C / N
  • 错误率(幻觉率)= W / N
  • 拒答率 = U / N

关键问题在于:同样的 80% 准确率,可能是 20% 错误率,也可能是 20% 拒答率,二者含义天差地别。前者意味着每五个问题就有一次自信的错误输出,后者意味着模型在不确定时选择了诚实。准确率导向的机制无法区分这两种情况,而错误率导向的机制可以。

4.2 激励方向差异:惩罚错答还是惩罚不答

在准确率导向下,拒答与错答在计分上等价(都不加分),因此模型没有动力去学习“何时应当说不知道”;相反,在不确定时“猜一个”至少存在命中概率,期望收益不低于拒答。这构成了幻觉的系统性诱因。

在错误率导向下,错答被单独惩罚,而拒答不被视为错误。此时“在不确定时表达不确定性”成为理性策略,模型行为与人类在面对陌生问题时的表现更接近。

4.3 行为表现差异:一个可复现的对照实验

一个简单且可复现的验证方式是:向模型询问一个不存在但形式上合理的缩写或术语,并在提示中明确给出“如果你不知道,请只回答不知道”的退出选项。

典型观察结果是:

  • 在缺乏明确退出选项时,多个模型会给出各不相同、形式上自洽但实际不存在的解释,甚至在被追问时补充“在某些语境下也可写作相近形式”这类二次编造。
  • 在明确给出退出选项、并允许较长思考时间后,部分模型能够检索后承认不知道。

这说明幻觉并非不可抑制,而是默认行为被激励机制塑造成了“必须给出答案”。同时值得注意的是:人类在同样场景下通常不会集体编造——面对一个陌生缩写,房间里的人会沉默或反问,而不是给出三个互不相同的自信答案。这构成了“人类也会同样幻觉”这一说法的反例。

4.4 评估成本与工程复杂度差异

准确率导向实现简单,只需比对答案,工程成本低,但对高风险场景的指导性弱。错误率导向需要三分类标注(正确/错误/拒答),并需要判定“拒答是否合理”,标注成本与判定规则设计复杂度更高,但对决策风险的解释力更强。

4.5 对比表格

对比维度 准确率导向机制 错误率导向机制
核心度量 正确数 / 总数 错误数 / 总数(幻觉率)
对拒答的处理 与错答等价,不加分 不计入错误,视为合法输出
对模型行为的激励 倾向“必须给答案” 倾向“不确定时表达不确定”
幻觉可见性 被准确率掩盖 单独暴露
标注与工程成本 较低 较高,需三分类与合理性判定
适用风险等级 低风险、容错场景 高风险决策支持场景
主要局限 无法区分错误与拒答 拒答滥用会降低可用性

五、典型场景选择

  • 创意生成、头脑风暴、草稿撰写:容错率高,准确率导向基本够用,过度强调拒答反而降低产出效率。
  • 事实查询、专有名词解释、参数与配置说明:错误代价明显,应优先采用错误率导向,并显式提供“不知道”出口。
  • 高风险决策支持(医疗、金融、合规、运维变更):必须采用错误率导向,并将拒答率作为独立观测指标,避免用单一准确率做验收。
  • 开放域长尾问答:参考答案本身可能缺失,需引入人工复核与不确定性标注,两种机制都应结合使用。

六、选型建议

  1. 不要用单一准确率做模型验收。至少同时报告错误率与拒答率,形成三分类视图。
  2. 在提示层面显式提供退出选项。例如在系统提示中写明“若无法确认,请直接回答‘不知道’,不要推测”,这是成本最低的干预手段。
  3. 在评估集构造上加入“不可答题目”。刻意放入不存在或超出知识范围的问题,专门测量模型在该类问题上的编造倾向。
  4. 按场景分层设定阈值。高风险场景可接受更高拒答率以换取更低错误率;低风险场景可放宽。
  5. 警惕“二次编造”。当模型给出错误答案并被追问时,可能追加解释性编造,评估时应将追问轮次纳入观测。

七、迁移与使用注意事项

从准确率导向迁移到错误率导向,需要关注以下风险:

  • 数据侧:历史评估集缺少“拒答”标注,需要重新标注或补充不可答题;口径变化会导致历史指标不可直接比较,应保留双轨度量一段时间。
  • 接口与流程侧:下游系统可能默认模型总是返回答案,需增加对“不知道”输出的解析与兜底逻辑,避免空值进入后续链路。
  • 体验侧:拒答率上升可能被用户感知为“能力下降”,需要产品侧配合文案与引导,明确区分“不确定”与“故障”。
  • 稳定性侧:引入更长的思考或检索流程会改变延迟分布,容量规划需重新评估。
  • 治理侧:需建立拒答合理性抽检机制,防止模型以拒答规避难题而掩盖能力退化。

一个通用的判定流程示意(伪代码):

  1. for q in eval_set:
  2. out = model.generate(q, allow_unknown=True)
  3. label = classify(out) # correct / wrong / abstain
  4. if label == "abstain":
  5. record.abstain += 1
  6. if human_check(q) == "answerable":
  7. record.over_abstain += 1 # 过度拒答
  8. elif label == "wrong":
  9. record.hallucination += 1
  10. else:
  11. record.correct += 1
  12. report(accuracy, hallucination_rate, abstain_rate, over_abstain_rate)

八、总结

两类机制的分野,本质是“把拒答当作失败”还是“把编造当作失败”。准确率导向简单易行,但会把错误与拒答混为一谈,从而在激励层面诱导模型自信编造;错误率导向成本更高,但能真实暴露幻觉水平,并与“不确定时应当承认不确定”这一合理行为对齐。对于高风险场景,评估体系应当以错误率为核心、以拒答率为观测、以准确率为参考,三者并报,才能真正回答“这个模型能不能用、在哪些问题上不能用”。