跳到主要内容

用户终将学会忽略的置信度评分

· 阅读需 12 分钟
Tian Pan
Software Engineer

你想要表现得诚实。你在智能体给出的每个答案旁边都标上了一个小小的 92%。当智能体第三次以 92% 的置信度给出错误答案后,你的用户就不再看那个数字了。他们并没有因此生气。他们只是学会了——就像人类在面对失灵信号时总会学到的那样——仪表盘上的指针并没有连接到引擎。数字还在那里。生成它需要消耗你的 token。但它不再能为任何人的决策提供参考。

这种失败模式是置信度校准(calibration)UX 研究不断重现的:呈现概率是一种信任承诺,而且这种承诺是单向的。一旦数字在用户的使用体验中被证明与正确性无关,这个分数就失去了意义——你为了展示它而投入的信任也随之崩塌。你无法在事后通过修正数字来挽回局面。这个数字现在只是个装饰品。

想要展示不确定性的本意是好的。你读过关于过度自信(overconfidence)的论文。你曾看到用户因为模型表达得过于流利和肯定而轻信了错误答案。于是你决定让你的产品有所不同——它会如实反映它所知道的。你在设计文档中写下了关于“信任校准”的句子,并在每一个输出结果上都加上了一个置信度标签(confidence chip)。但在大多数情况下,你实际发布的只是一个披着校准外壳、背后却是由未校准数字支撑的东西。你的用户正如每一项关于自动化偏差(automation bias)研究所预见的那样:他们动摇了一段时间,遇到了几次严重的负面验证,然后默默地选择了忽略那个仪表。

这个数字在测量什么(以及它不在测量什么)

你在屏幕上显示的那个数字在文献中有一个名称。它是模型对其自身下一个 token 表达出的置信度——要么是口头表达出的“我有 92% 的把握”,要么是将 logit 概率转换成的百分比。它是模型对其生成的字符串内部确定性的一种陈述。

这并不是用户认为的那个数字的含义。用户将其解读为答案在现实世界中正确的概率。这是两个不同的量,而在当下的对话微调(chat-tuned)模型中,它们甚至相去甚远。

这种差距已经被测量过了。针对 GPT-3、GPT-3.5 和 Vicuna 级别模型的研究发现,口头表达置信度的期望校准误差(Expected Calibration Error, ECE)超过了 0.37——也就是说,模型陈述的概率与其实际准确率平均相差约 37 个百分点,且大多数预测都集中在 90–100% 的区间内,无论答案是否正确。GPT-4 的表现稍好,但其利用口头置信度来区分正确与错误答案的 AUROC 也仅为 0.63 左右,只比掷硬币好一点点。一项研究发现,GPT-4 为 87% 的回答分配了最高置信度,其中包含许多事实性错误。直方图中 90% 以上的部分承担了所有权重,而其中的大部分内容其实名不副实。

其机制并不神秘。RLHF 训练模型以人类认可的方式说话,而人类认可听起来自信的回答。在对齐(alignment)过程中的奖励信号系统性地偏好肯定的语气,即使底层的答案是错误的。最近的机械论解释工作已经定位了一组紧凑的 MLP 块和注意力头(主要位于中后期层),它们在最后一个 token 的位置持续写入置信度膨胀信号。过度自信并不是后期处理中的 bug。它是训练程序有意为之的结果。

因此,当你把那个数字包装成概率并放在屏幕上时,你实际上是将对齐流水线的一个产物当作校准后的概率在展示。它并不是。而且用户无法得知这一点。

为什么展示它反而比什么都不展示更糟

理性的人会说:不完美的信号总比没有信号强。如果数字有一点相关性,展示它肯定能引导用户走向正确的方向。

经验记录给出了否定答案。信任校准文献记录了一种特定的动态:当置信度显示与实际正确性的相关性较低或不可靠时,用户并不会将其权重降低到其真实的真实信息价值。他们会产生摇摆。起初会过度信任,遇到一个高置信度的错误答案后,又摆向过度不信任;遇到一个低置信度的正确答案后,再摆回来。经过几天的使用,他们最终会完全忽略这个信号——重要的是,由于他们在摇摆中感到疲倦,他们会停留在过度信任或过度不信任的基准线上。

这正是“不完美的信号胜过没有信号”这一论点所忽略的部分。展示数字并非没有代价的行为。它消耗了用户的注意力。它消耗了用户的信任。如果这个数字没有以可用的信息作为回报,用户的校准状态会比你什么都不展示时还要糟糕——因为他们的先验认知现在已经被试图使用这个仪表并发现它撒谎的过程所污染了。

还有一个相关的、更隐蔽的成本。一旦你展示了数字,你的产品就开始承担“维护该数字信誉”的负担。看到错误答案旁边标着 92% 的用户是不会忘记的。你原本想传达的信号是“我们对不确定性很诚实”,而他们收到的信号却恰恰相反,即“这个产品在面对错误时依然迷之自信”。你必须要么修复校准,要么隐藏数字,或者接受信誉受损的现实。没有体面退出的余地。

三个诚实的选项

一旦你接受向用户展示未经校准的概率比不展示数字更糟糕,设计空间就会收缩为三个选项。每一个选项都是一种切实的承诺。

隐藏数字。 这是大多数产品实际上应该采取但却没有采取的选项,因为这感觉像是一种倒退。你停止显示置信度分数,让答案独立存在。这里隐含的假设 —— 且对于大多数消费者界面来说是正确的假设 —— 是模型的语气已经在其有限的能力范围内编码了它的信心,额外增加的数字叠加层充其量是冗余,最坏的情况是误导。隐藏数字并不等同于放弃校准。它是意识到,除非概率足够好,否则概率不属于面向用户的界面。

修正数字。 这是一个昂贵的选项。你需要构建校准基础设施:针对留出评估集(Held-out evals)的可靠性图表(Reliability diagrams)、针对基于 Logit 分数的事后温度缩放(Post-hoc temperature scaling),或者在一致性上优于原始概率提取的言语诱导策略(Verbal-elicitation strategies)。你根据地面真值(Ground truth)对数字进行仪表化测试,并不断重新调整,直到你的 ECE(期望校准误差)达到一个概率该有的水平 —— 即与准确率的偏差在个位数百分点,而不是 37%。你需要针对每种任务类型都这样做,因为校准在整个输入空间中并不是一个单一的数字。而且你需要持续这样做,因为下一个模型快照会改变曲线。这是实打实的工作,也是唯一能让你正直地保留百分比显示的路径。

用等级(Tier)代替数字。 这是大多数产品团队应该认真考虑但却没有考虑的选项,因为它感觉不够精确。与其显示“92%”,不如显示三个标签之一:“确信”、“请验证”或“我不确定 —— 请检查来源”。分类等级是根据相同的基础信号计算出来的,但它只承诺一个你真正能够支持的粗粒度声明。等级制度之所以奏效,是因为不同桶之间的阈值成为了校准目标,而不是绝对数字。你只需要保证“确信”和“请验证”之间的界限是准确率跌破某个工作点(Operating point)的界限。这是一个更容易保持诚实的界面,而且至关重要的是,它不会引导用户过度解读一个虚假的百分比。

人们有时会提出第四个选项 —— 显示数字加免责声明 —— 这是四个选项中最糟糕的一个。数字仍然具有锚定效应。免责声明被阅读一次后就会被丢弃。你对文本进行了避险处理,却没能对认知效果进行避险。

做好校准的实际成本

如果你选择修正数字,这项工作并不光鲜。以下是校准所需的诚实清单:

  • 为每种任务类型提供一个镜像生产环境分布的留出评估集,并随着生产分布的漂移而更新。没有这个,你就无法画出可靠性图表;没有可靠性图表,你就无法判断你展示的分数是否有意义。
  • 要么使用带有事后温度缩放的基于 Logit 的分数,要么使用针对评估集调整过诱导提示词结构的言语化分数。最近的研究表明,对于经过 RLHF 微调的模型,言语化置信度往往比原始条件概率具有更好的校准性 —— 但前提是你专门针对它进行了训练或提示词引导。聊天模型默认给出的言语化数字通常就是那个偏差 37% 的数字。
  • 一个监控系统,每当模型快照移动时,它都会重新运行评估,并在新模型接触用户之前生成更新的可靠性曲线。校准会随模型而漂移,有时甚至在单个模型中随时间漂移。你实现的任何校准都是模型、提示词和任务特定绑定的属性 —— 它不可迁移。
  • 根据业务成本而非“感觉”选择的工作点。一旦分数校准完毕,你仍然必须决定如何处理它。选择性预测(Selective-prediction)工作将此正式定义为准确率-覆盖率权衡(Accuracy-coverage tradeoff):在给定的置信度阈值下,你回答了多少比例的查询(覆盖率),以及在回答的子集中准确率是多少。选择阈值是一个关于错误答案的成本与拒绝回答的成本的产品决策。这不是模型的工作。

这几乎会占据一个应用机器学习团队的大部分日程。这不是 UX 设计师在一个 Sprint 中就能添加的东西。那些在没有做这些工作的情况下就展示置信度数字的团队,几乎总是在展示未经处理、因对齐而扭曲的 RLHF 分数,而这个数字正在产生文献所预言的误导后果。

你已经透支的信任

这场对话中最难的部分在于数字已经上线的情况。用户已经学会了忽略它。你的团队已经投入了 UI 资源。撤回它看起来像是退步,设计评审会很难看。

在内部可以提出的论据是:通过保留数字,你无法回收之前投入数字所花费的信任。未经校准的分数在界面中多停留一天,用户就会多花一天时间针对你产品的诚实信号来训练他们的先验判断。最廉价的回头路通常是降级该数字 —— 将百分比替换为等级标签或完全移除 —— 并围绕你真正能够支持的东西重建不确定性界面。用户不会像你担心的那样注意到它的缺失。他们早就不看那个数字了。

更深层的教训是,展示不确定性并不是一个单行的设计选择。它是模型内部状态与用户决策之间的一项契约,而这项契约只有在校准到位的范围内才具有强制力。展示一个你没有权利展示的概率比完全不展示更糟糕,因为在产品中,唯一比缺失信息更昂贵的东西,就是以事实的视觉语法呈现的误导性信息。那个气泡看起来很精确。那个数字看起来像事实。用户相信了一段时间。然后他们就不信了。

下次当你团队中有人提议在输出中增加置信度百分比时,正确的问题不是“这会帮助用户吗”。而是“我们是否有针对该任务下该分数的可靠性图表,并且我们是否愿意在每次模型移动时维护该图表”。如果答案是否定的,正确的产品举措是隐藏那个刻度盘 —— 或者用一个你可以辩护其边界的分类等级来代替它。除此之外的任何做法都是在租借你尚不拥有的信用,而租金到期得很快。

References:Let's stay in touch and Follow me for more thoughts and updates