跳到主要内容

为什么 “准确率 92%” 几乎总是一个谎言

· 阅读需 10 分钟
Tian Pan
Software Engineer

你发布了一个 AI 功能。模型在你的留出集(holdout set)上达到了 92% 的准确率。你把这个结果展示给产品 VP、法务团队和客户成功主管。每个人都点头表示认可。功能上线了。

三个月后,一个你没有专门测试过的客户群体正面临 40% 的错误率。法务部门在提问。客户成功团队正在处理升级投诉。产品 VP 想知道为什么没有人预警。

92% 这个数字在技术上是正确的。但在作为决策输入时,它几乎是毫无用处的 —— 因为整体准确率恰恰掩盖了那些最重要的信息。

单一准确率数字隐藏了什么

一个在平衡数据集上达到 92% 准确率的模型有 8% 的错误率。这听起来是可以处理的。但这 8% 的分布并不均匀,整体数字无法告诉你:

  • 哪些错误是有害的,哪些是可恢复的。 用户忽略的错误产品推荐,与冻结合法账户的错误欺诈标记是不一样的。
  • 错误集中在哪里。 如果某个高价值用户群体在你的测试集中占比很小,那么 92% 的总指标可能会掩盖该群体 60% 的错误率。
  • 模型在不确定时会做什么。 有些模型会给出一个自信的错误答案;另一些则会选择弃权或转交。这些行为在生产环境中的表现截然不同。
  • 错误率是否稳定。 一个在历史数据上准确率为 92% 的模型,在没有明显信号的情况下,可能会在新的输入分布上急剧退化。

Apple Card 信用卡算法争议是一个被广泛记录的案例,该模型在汇总指标上表现良好,但系统性地冷落了特定的受众群体。整体数字没问题,但底下的分布却有问题。

驱动真实决策的四维错误分类法

在向非技术利益相关者汇报时,停止展示单一的准确率数字。相反,将模型的输出分为四个桶:

1. 正确 (Correct)。 模型预测正确,且用户从中获得了价值。这是你想要增加的分母。

2. 错误但可恢复 (Wrong-but-recoverable)。 模型犯了错,但下游后果的修复成本很低。错误分类的支持票据在几分钟内就会被重新路由。错误的产品建议会被忽略。这些错误会影响用户体验,但很少会导致法律或财务风险。

3. 错误且有害 (Wrong-and-harmful)。 模型犯了一个产生严重下游后果的错误。导致资金损失的漏掉的欺诈信号。错误的医疗分类。有偏见的信贷决策。这些错误具有不对称的成本 —— 就实际影响而言,一个有害的错误可能超过数百个正确的预测。

4. 弃权 (Abstained)。 模型拒绝预测或将其路由给人工审核员。这通常是一个功能,而不是失败 —— 一个了解自己局限性且校准良好的模型,比一个对所有问题都自信回答的模型能产生更好的结果。单独跟踪弃权率可以告诉你模型实际处理了多少流量。

这种分类法迫使人们进行“92% 准确率”永远无法引发的对话。无法区分可恢复错误和有害错误的利益相关者会做出系统性的错误权衡 —— 他们要么在减少无关紧要的错误上投入过多,要么在修复真正具有破坏性的错误上投入不足。

准确率分布在用户细分中,而不仅仅是测试集中

大多数模型评估都是在整个测试集上进行汇总。这是正确的起点,但也是一个危险的终点。

为你的模型生成最多边缘案例(edge cases)的用户,在历史训练或测试数据中的代表性往往不足。一个针对英语密集型数据进行微调的语言模型,在用户编写混合语言内容时表现会较差。一个针对桌面 Web 会话训练的欺诈检测模型,在后期接入市场的移动端优先用户身上的错误率会更高。

在向利益相关者展示准确率之前,请至少从两个轴进行细分:

  • 对业务重要的用户群 (User cohorts)。 高 LTV 客户、监管市场的用户、历史数据稀疏的新入驻用户。
  • 输入难度。 短输入与长输入、模糊与明确的请求、高置信度与低置信度的模型输出。

一个在简单输入上表现为 95%、在困难输入上表现为 60% 的模型,正在告诉你关于投资方向的关键信息。而 88% 的汇总数据几乎无法告诉你该从哪里着手。

防止误差校准失灵的一页报告格式

向非技术利益相关者传达准确率的目的不是为了让他们对某个数字感到满意,而是给他们提供足够的信息,以便做出正确的产品、法律和投资决策。这需要一种内容密集但不技术化的格式。

一份有用的一页准确率简报应包含:

标题 (The headline): 当前评估集的整体准确率,并与之前的版本进行对比,明确注明哪些方面有所改进或退化。

错误分解 (Error breakdown): 正确、错误但可恢复、错误且有害、弃权这四个桶中分别有多少错误,以百分比表示,并根据实际流量预测为绝对数量。绝对数量很重要;“0.5% 的有害错误”与“按当前流量计算,每天约有 500 个有害决策”带来的感受是完全不同的。

细分市场表现 (Segment performance): 对业务最重要或最容易受错误影响的两三个用户群体的准确率。如果某个细分市场的错误率有明显差异,请明确说明。

模型无法处理的情况。 每个模型都有定义的输入域。当输入超出该域时,模型要么弃权,要么优雅地降级。利益相关者需要知道边界在哪里,而不不仅仅是模型在边界内的表现。

选择的阈值及其原因。 大多数分类模型都有一个决策阈值 —— 即模型承诺进行预测而非弃权的置信度分数。降低阈值会增加召回率,但代价是更多的假阳性。提高阈值则反之。如果利益相关者不知道阈值的选择依据,就无法评估该选择在他们的业务语境下是否正确。

一个具体的格式:一张表格,行代表每个与利益相关者相关的细分市场,列代表正确率、可恢复错误率、有害错误率和弃权率。在顶部添加一行汇总数据。整个内容可以缩减在一页内,并能回答法律或产品审查中应该提出的每一个问题。

为什么“通俗易懂地解释” dashboard 并不是问题的关键

工程师们经常把与非技术利益相关者的沟通视为一个简化问题:我们如何让数学变得易于理解?这种设想把问题搞反了。

问题不在于利益相关者无法理解精确率与召回率的权衡(precision-recall tradeoffs)。问题在于工程师经常提供技术上正确但在战略上不完整的信息。单一的准确率数字并不是对全局的简化 —— 它是一种压缩,丢弃了对决策最重要的信号。

当产品经理(PM)问“模型的准确率是多少”时,他们并不是在要求你上一堂数学课。他们其实是在问:我可以发布这个产品吗?如果出了问题,我需要承担什么责任?92% 这样的数字无法回答这个问题。而一份如下的细分报告可以回答:“在所有的错误中,只有不到 0.3% 属于有害类别,且这些错误集中在模型标记为低置信度的输入中。”

目标不是让信息变得更简单,而是让信息对于需要做出的决策而言变得完整。

仅凭准确率无法告诉你是否可以发布

核心指标的最终失败模式在于它们是静态的。一个在 11 月评估为 92% 准确率的模型(基于截至 9 月的数据训练),随着输入分布的偏移,到次年 3 月可能只有 84% 的准确率 —— 而这种退化在你发布时提供的准确率数字中是看不出来的。

生产环境中的准确率是一个动态目标。随着世界发生训练数据未曾预料的变化,准确率会随之衰减。新的用户行为、监管变化、季节性模式以及上游数据的分布偏移,都会随着时间的推移侵蚀模型性能。如果一个利益相关者在发布时被告知“准确率为 92%”,而没有被告知“这个数字需要每季度重新评估”,那么你给他的信息就是不完整的。

弥补这一差距的监控模式是在生产环境中(而不仅仅是在评估阶段)应用“四桶分类框架”(four-bucket taxonomy)。将有害错误率作为一个运营指标进行追踪,并设置告警阈值,就像你为服务的 p99 延迟或错误率所做的那样。当有害错误率超过阈值时,这就是一起生产事故 —— 而不是一个例行审查的议程事项。

如果你能给出这种框架,非技术利益相关者是可以进行逻辑推导的。“我们有一个告警,如果有害错误率超过流量的 0.4%,就会触发告警”,任何产品负责人或律师都能理解这句话,并据此要求工程团队负责。

核心要点

当你向非技术利益相关者展示 AI 准确率时,你不是在进行数学沟通,而是在进行风险沟通。相关的核心问题不是“模型有多大几率是正确的?”,而是“当它出错时,谁会受到伤害?我们能否在伤害发生前检测到它?”

围绕“四桶分类框架”构建你的准确率简报,针对对业务至关重要的客群进行细分,说明你选择的阈值及其原因,并承诺一个生产监控数值 —— 而不仅仅是一个评估指标。这种形式才能带来正确的产品决策、妥当的法律姿态,以及在最终出问题时能够站得住脚的工程问责制。

因为问题终究会发生。

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