跳到主要内容

为什么你的偏见评估在 CI 中通过但在部署时失败

· 阅读需 11 分钟
Tian Pan
Software Engineer

公平性审计曾是发布流水线中的一个绿色对勾。合规团队在 3 月签署通过了它。支持工单从 10 月开始涌现——来自一个模型从未被评估过的国家的的一组用户,得到的答案效用远低于其他人。模型本身没有任何改变。审计对模型的判断从未出错。它错在对世界的判断。

这是一个没人愿意大声说出来的失败模式:静态偏差评估只是已经发生漂移的数据流中公平性的一个快照。评估在运行时并没有撒谎。它告诉你的是一个关于不再存在的分布的真实情况。等到支持团队积攒了足够的工单并归纳出模式时,模型对该群体的处理不公已经持续了两个季度,而审计报告已经过时一年了。

修复方案不是做一个更好的静态审计,而是停止将公平性视为发布时检查一次的属性,并开始将其视为一个输入不断变化的系统的持续属性。这种重新定义改变了要构建的内容、其负责人以及发布门禁实际检查的内容。

CI 偏差评估中隐藏的假设

每个在 CI 中运行的公平性评估都带有一个未声明的假设:它所评分的分布是模型在生产环境中将看到的分布的忠实采样。策划的人口统计划分、黄金测试集、基于场景的审计——它们都是快照。在拍摄时,它们是真实的。但在输入组合发生变化的那天,它们便悄无声息地不再真实。

输入组合的变化原因往往与公平性工作无关。市场部门在新的地区发起了活动。移动应用上线了语音输入功能,导致语音查询的份额从 3% 跃升至 30%。一个新的长上下文功能让用户可以粘贴整份文档,导致平均提示词长度增长了一个数量级。免费层级引入非英语用户的速度是付费用户的五倍。模型是一样的,评估是一样的,但模型服务的群体已经变了。

偏差特征随着输入分布而变化。在一个短小、规范的英文文本上校准的模型,当输入的中位数变成一段 4,000 token 的混杂语言对话转录时,它将不再保持校准。在一个策划的审计集上实现了人口统计平衡的模型,在实时组合中不再平衡,因为某个群体的增长速度比评估更新的速度快了 10 倍。仪表板上的公平性数字仍然是绿色,因为仪表板评估的是错误的分布。

这就是“审计通过但部署失败”模式背后的机制。这并不是因为审计造假,而是因为审计是由两样东西决定的——模型和数据——而其中只有一个保持不变。

生产环境群体采样对比策划的黄金集

第一个需要落地的规范是从实时分布中采样公平性数据,而不是从一个冻结的参考集中采样。这听起来显而易见,直到你尝试去实现它。

策划的黄金集之所以受欢迎是有原因的:它们的评分成本低,在构建时就实现了人口统计平衡,并且每个发布版本都使用相同的集合,因此趋势是可解释的。生产环境群体不具备这些属性。它们充满了噪声,不同样本之间的构成会发生漂移。生产环境输入通常根本不存在人口统计标签,因此群体归类必须依靠推断——而推断本身也会引入偏差。评分成本很高,因为每次的数据都是陌生的。

但黄金集的公平性数字回答的是“模型在我们 2025 年选取的数据上是否公平?”而真正重要的问题是“模型在它上周服务的数据上是否公平?”第二个问题需要一个采样流水线,它能够:

  • 提取实时生产流量的分层切片,而不是从仓库中提取静态文件
  • 将推断出的或用户声明的群体属性关联到每个示例上
  • 在该切片上对模型重新评分,并与之前的切片进行对比,而不是与固定的历史基线对比
  • 呈现每个群体差距的增量,而不仅仅是总体的公平性数字

公平性的正确基线是“本周分布的公平性与上周的对比”。这是一个派生指标,也是唯一能在漂移发生时、而非支持团队发现问题后捕获漂移的指标。

将分布漂移检测器作为公平性信号

在陈旧数据上进行评分的偏差评估会悄无声息地失效。而在同样的陈旧数据上进行评分的分布漂移检测器则会响亮地报错,因为这正是它的设计初衷。公平性团队如果不拥有漂移检测器,在他们审计所依赖的最重要问题上就是在盲目飞行:被审计的范围是否仍然是现实的公平样本?

实际的漂移检测在更广泛的 ML 监控领域已经非常成熟。Kolmogorov-Smirnov 检验比较生产环境中特征的累积分布与数值信号的参考窗口。卡方检验对类别特征做同样的事情。人口稳定性指数 (PSI) 用熟悉的阈值来量化分歧——通常高于 0.25 的值意味着漂移大到需要采取行动。Wasserstein 距离处理简单测试会产生噪声的复杂多模态分布。这些都不是什么新鲜事。新鲜的是将这些信号接入公平性流水线,而不仅仅是接入模型质量流水线。

接入方式至关重要。一个显示“特征 X 的输入分布在 PSI 上移动了 0.31”的漂移警报是一个模型运维警报。同样这个警报,如果发送给公平性团队并结合群体标签,就变成了“生产环境中群体 C 的占比已经移出了审计范围的 4 倍,且上次公平性评估未涵盖该区域”。这第二个警报是具有可操作性的。它在任何用户投诉之前就告诉团队审计已经陈旧,并为他们提供了需要重新评分的具体群体,而不是一个要求重做整个公平性套件的模糊指令。

这里被打破的组织模式是:公平性属于合规部门,而漂移检测属于机器学习平台,两者没有共享的仪表板。两个团队各拥有同一个闭环的一部分,却没有任何一方拥有整个闭环。

团队能够真正捍卫的分群 SLO

聚合公平性指标适合放在幻灯片上展示,但在运营中毫无用处。驱动工程决策的数字应该是具有明确预算的分群表现 —— 即团队已同意捍卫的分群 SLO。

一个分群 SLO 命名了一个特定的群体、一个特定的指标以及一个可以接受的特定差距。“非英语语音查询的帮助性保持在全球帮助率的 8% 以内,每周对 5,000 个分层切片样本进行衡量。” 这个 SLO 是可测试的。它在分布偏移中依然有效,因为预算是相对于全球指标定义的,而不是相对于固定的历史数字定义的。它是可违反的,这意味着它可以触发告警。它是责任明确的,这意味着当它被违反时,必须有人决定是回滚、重新训练,还是申请预算豁免。

如果没有分群 SLO,公平性下降会表现为软信号 —— 支持工单的缓慢增加、某个细分群体负面反馈率的悄然上升,或者客户成功经理的投诉。软信号不会得到快速修复,因为它们没有负责人。SLO 将软信号转化为预算违规,这正是组织已经知道如何路由的问题类别。

陷阱在于过度拟合你记得定义的那些分群。你没有定义的分群不会发生违规。这就是为什么 SLO 流水线必须与偏移检测相结合:检测器标记出尚未拥有 SLO 的新兴或增长中的分群,而公平性团队则有一个“超过人口阈值且现在需要预算的分群”队列。一个分群在没有 SLO 的情况下占据了 5% 的流量,这本身就是一个公平性事件。

知道其评估已过时的发布门禁

最后一块必须落地的拼图是在部署步骤。如果发布门禁仅仅因为 CI 评估失败而阻止部署,那它只完成了一半的工作。另一半工作是当评估本身相对于输入分布已经过时时,阻止部署。

具体来说:当最近的公平性评估是在一个此后已超出评估覆盖范围的分布上进行评分时,门禁应该拒绝发布模型 —— 或提示词更改、工具目录更改,或任何影响模型行为的变动。喂给该决策的信号与上一节提到的偏移检测器相同。检查项是:“自上次刷新评估以来,在任何受监控的特征上,输入组合的移动是否超过了阈值 T?如果是,评估即为过时;部署将被阻止或降级为金丝雀发布。”

这是大多数团队尚未完成的倒置。评估被视为门禁,而评估的新鲜度被视为某个季度 OKR 中的卫生问题。事实应该相反。评估的新鲜度才是门禁。评估是否通过是一个下游问题,只有在评估仍在衡量真实情况时才重要。

2026 年 8 月《欧盟 AI 法案》对高风险 AI 系统的强制执行期限,在监管语言中明确了这一点。该法案要求持续的上市后监控,并记录足以识别性能偏移和意外行为的信息 —— 而不是一次性的预部署审计。那些围绕静态审计文档构建合规方案的团队将会发现,该文档并不是监管机构所要求的。而那些围绕持续监控流水线构建合规方案的团队将会发现,他们一直以来都拥有一个公平性系统。

组织失效模式与架构认知

每一个“审计通过但部署失败”案例背后的组织病态都具有相同的形状。合规团队拥有审计权。模型团队拥有模型。平台团队拥有流水线。公平性评估存在于合规团队的工具中,偏移检测器存在于平台团队的工具中,而连接它们的生产数据则存在于模型团队的数据仓库中。没有一个团队能看到整个闭环,因此当闭环断裂时,没有一个团队负责。一年后,唯一有证据表明系统对特定分群不公平的职能部门是支持团队 —— 因为他们是唯一通过用户投诉视角观察生产分布的群体。

架构上的认知是应该改变团队预算编制的部分。公平性不是你审计一次就完事的属性。它是输入不断变化的系统的持续属性。将其视为持续属性,需要与延迟、错误率和成本相同的投入:请求路径中的埋点、会触发告警的仪表盘、有负责人的 SLO、信号变红时拒绝发布的门禁,以及真正查看数据的定期评审节奏。

发布静态审计的团队不仅仅是在廉价地处理公平性问题。他们是在已经偏移的流中发布一张公平性的快照,并且像对待一次性项目一样为其提供资金,而这实际上是诚信运营 AI 系统的维护成本。将公平性定价为维护成本而非发布里程碑,是决定下一个“审计通过但部署失败”的故事中是否会出现你的名字的预算选择。

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