选择性弃权问题:为何总给答案的 AI 系统是有缺陷的
这是一个几乎出现在每个生产 AI 部署中的模式:团队发布了一个能够处理 90% 查询的功能。然后开始收到投诉。某用户提了一个超出训练分布的问题,模型自信地给出了错误答案。RAG 流水线检索到一份过时文档,模型却将其当作最新信息来回答。一个法律查询触及了提示没有覆盖的边缘情况,模型靠猜测蒙混过关。在每一种情况下,修复方案都不是换一个更好的模型,而是让系统学会说"我不知道"。
弃权——有原则地决定不回答——是 AI 系统设计中最难、最被低估的能力之一。几乎所有产品工作都致力于让答案更好,几乎没有任何工作致力于让系统可靠地知道何时该拒绝作答。这种不对称是一种在生产环境中不断累积的设计债务。
为什么系统默认总是给出答案
在 AI 产 品开发中,阻力最小的路径是构建一个永远输出内容的系统。这看起来像是进展。用户看到了响应,功能在运作。在用户测试中,一个错误但自信的答案往往比表达不确定性的回答评分更高——人们发现"我没有足够的信息来可靠地回答这个问题"令人不满意,而"这是你的答案(虽然是错的)"暂时不会引起察觉。
这造成了一个恶性反馈循环。在开发过程中,自信的输出从未注意到错误的用户那里获得正面信号;弃权的系统则从体验为失败的用户那里获得负面信号。于是团队倾向于调优出高置信度的覆盖率,生产系统学会了猜测而非承认不知道。
这个结果往往要到数月后的 A/B 测试中才会显现——彼时用户信任已经侵蚀,用户已经不再期待系统是可靠的。而此时,置信度-输出的耦合已经深深嵌入了产品的训练、评估和度量方式之中。
根本问题在于,大多数 AI 评测框架衡量的是模型回答的那些问题的准确率,而不是它收到的所有问题的准确率。一个在 60% 的问题上回答正确、其余问题弃权的系统,在朴素的准确率指标下,看起来比一个回答 100% 问题、准确率 75% 的系统更差——尽管前者在生产中造成的错误更少。
应该驱动弃权决策的三个信号
构建弃权需要明确系统究竟在对什么感到不确定。有三个不同的维度,混淆它们会导致校准不良的行为:
查询可回答性。 有些问题在现有知识下根本没有正确答案。它们可能包含错误前提("爱 因斯坦小时候数学不及格是什么时候?"——他从来没有)、欠规范("这个最好的 API 是什么?"——根据什么标准的"最好"?),或者涉及真正未知的信息("美联储下个季度会怎么做?")。这些问题在结构上就无法回答,而不仅仅是困难。遇到没有支持证据的查询时,检索系统应当发出与模型在两个合理答案之间不确定时不同类型的信号。
模型置信度。 即使对于可回答的问题,模型对其输出的内部置信度也各不相同。正确校准这一点非常困难——大多数模型对流畅但错误的答案产生的 token 级概率,往往高于对带有保留意见但正确的答案。让模型明确表达不确定性有一定帮助,但 AbstentionBench 基准测试在 20 个弃权相关数据集上测试了 20 个前沿 LLM,发现即使是经过良好提示的模型也无法可靠地进行弃权。更令人担忧的是:针对推理优化的模型(经过逐步推理微调的模型)比其基础指令调优版本弃权能力差 24%。让模型在困难数学问题上表现更好的思维链推理,同样让它们更有可能通过推理得出自信的错误答案,而不是承认不确定性。
价值对齐。 第三类涉及那些技术上可以回答、但生成答案会违反安全或政策约束的查询。这是大多数团队最先投入的拒绝层,因为它整齐地映射到内容审核上。但对于工程可靠性而言,它是最无趣的——一个能拒绝有害查询但在模糊问题上自由编造内容的模型,在生产中仍然是一个风险。
大多数系统只实现了第三类。构建前两类需要刻意的工程投入。
