跳到主要内容

生产AI中的子群体公平性测试:为何聚合准确率会撒谎

· 阅读需 12 分钟
Tian Pan
Software Engineer

当一个人脸识别系统报告95%的准确率时,你的第一直觉是发布它。但这个直觉是错的。同一个系统可能同时对深肤色女性的错误率高达34%,而对浅肤色男性只有0.8%——40倍的差异,完全隐藏在那个令人安心的聚合数字里。

这就是聚合准确率幻觉,它正在摧毁从招聘到医疗保健再到语音识别等各个行业的生产AI功能。这种模式在结构上与辛普森悖论相同:一个在聚合层面看起来公平的模型,可以同时在每个有意义的子群体上进行系统性歧视。聚合指标是加权平均值。当某些子群体在评估集中数量较少或代表性不足时,其失败率会被多数群体的成功所稀释。

修复方法不是换一个不同的准确率阈值,而是分类评估——按子群体计算性能指标,定义差异SLO,并像监控延迟和错误率一样在生产中持续监控它们。

问题的规模

聚合指标掩盖真实危害的证据不是理论性的,而是经验性的,并且在每个AI应用领域都得到了复现。

语音识别。 一项PNAS研究测试了五个主要商业ASR系统(亚马逊、苹果、谷歌、IBM、微软),发现黑人说话者的平均词错误率为35%,而白人说话者为19%——近2倍的差距。2024年佐治亚理工学院的一项研究将其扩展到其他少数英语方言,发现Spanglish和奇卡诺英语说话者处于底部,Whisper在AAVE上表现更好,因为它拥有更具包容性的训练数据。根本原因不是词汇差异,而是声学模型在非裔美国人白话英语音位特征上的失败。每个系统的聚合报告准确率看起来都很好。

医疗评分。 Optum风险算法(2019年记录于《科学》杂志)使用医疗成本作为医疗需求的代理。由于黑人患者历史上获得的医疗较少,该算法将他们评为比具有相同客观疾病严重程度的白人患者更健康——差距高达3.25倍。在重症监护室普遍使用的脉搏血氧仪在深色皮肤上报告假性偏高读数:黑人ICU患者未被发现的低氧血症发生率是白人患者的近3倍。这两个系统都有很高的聚合准确率指标。

简历筛选。 布鲁金斯学会关于AI简历筛选的研究发现,与黑人相关的名字在85.1%的测试案例中处于不利地位,只有6.3%的情况下得到平等对待。聚合接受率指标看起来是平衡的。

大型语言模型。 在英语MMLU-ProX基准测试中得分70%以上的模型,在斯瓦希里语上准确率下降到约40%——差距达30个百分点。非洲语言(沃洛夫语、约鲁巴语、祖鲁语)显示出更严重的退化。"多语言"模型标签掩盖了对70亿非英语使用者崩溃的性能。

这些不是边缘案例,而是团队在没有进行每个子群体评估的情况下发布AI功能时的典型结果。

为何聚合指标会误导你

聚合指标欺骗你的数学原因很简单:如果你的评估集有90%的多数群体示例和10%的少数群体示例,你的模型对多数群体的准确率为97%,对少数群体为50%,那么你的聚合准确率为0.9×0.97 + 0.1×0.50 = 92.3%。这看起来可以接受。而50%的少数群体性能(相当于抛硬币的准确率)是不可见的。

当你添加交叉子群体时,问题会进一步复杂化。一位因种族和性别复合偏见而被拒绝贷款的黑人女性可能会发现,种族指标和性别指标单独都没有捕捉到她的伤害。单属性分类分析会错过交叉失败——你需要跨组合的切片分析。

还存在训练数据反馈循环。基于历史治疗数据训练的医疗算法将少数群体的治疗不足作为信号继承下来。基于历史简历选择训练的招聘算法继承了以前决策者的偏好。训练数据编码了结构性不平等,而聚合指标将其报告为客观真相。

子群体评估方法论

子群体公平性测试实现起来并不复杂。它需要三件事:正确的指标、具有代表性的评估数据,以及在每次生产部署之前运行此分析的承诺。

第一步:明确定义你的子群体。 相关子群体取决于你的应用领域。对于视觉系统:肤色(使用10分制Monk肤色量表而非更粗糙的6分制Fitzpatrick量表)、性别表现、年龄范围。对于语音:方言、母语、口音地区。对于NLP:语言、阅读水平、文化背景。对于做出重要决策的系统:在法律允许的情况下考虑种族、性别、社会经济指标。写下这些,在开始构建之前将其作为评估规范的一部分。

第二步:为你的领域选择正确的公平性指标。 存在几个选项,它们衡量不同的属性:

  • 人口统计均等差异:群体之间积极结果率的差距。用于招聘、贷款审批、内容推荐——任何群体间平等选择率是目标的决策。
  • 均等机会差异:群体间真阳性率和假阳性率的最大差距。当错误分类成本重要且需要两种类型的错误均等分布时使用。
  • 差异影响比率:群体之间积极结果率的比率。EEOC推导的五分之四规则将就业决策的可接受范围定义为0.8到1.25。
  • 召回均等:群体间的等同敏感性。用于医疗诊断、欺诈检测、安全系统——任何漏报是主要伤害的地方。
  • 校准:预测概率是否在各群体之间同样校准良好。一个模型可以在聚合层面校准良好,同时对一个群体系统性过度自信,对另一个群体则不足。

选择与你的功能实际伤害模型对应的指标。给予贷款审批的功能与对紧急消息进行分类的功能具有不同的伤害结构。

第三步:构建具有代表性的评估数据集。 这是困难的部分。你现有的评估集可能不是在考虑子群体覆盖的情况下构建的。你需要最小子群体样本量才能获得可靠的估计——每个子群体至少N≥100以获得稳定的指标估计,交叉切片N≥500。对于稀疏的交叉群体,报告不确定性区间以及点估计,并将样本量不足的群体标记为监控不足,而不是假装其指标是可靠的。

如果你无法从用户那里收集人口统计元数据,你有几个选项:委托具有已知人口统计分布的代表性评估数据集,在适当的情况下使用代理信号,或与领域专家合作构建覆盖感知评估集。你不能做的是跳过这一步并声称你的模型是公平的。

第四步:使子群体评估成为阻塞门。 Fairlearn的MetricFrame按敏感特征列分解计算任何sklearn兼容指标。在CI中运行它。编写策略断言——equalized_odds_difference < 0.05disparate_impact_ratio in (0.8, 1.25)——作为模型晋升前的必须通过条件。将差异阈值违规与单元测试失败同等对待:构建不发布。

生产中的差异SLO

部署前评估捕获你训练的模型。它们不能捕获生产数据分布发生变化、新子群体出现或现有子群体静默退化时发生的情况。

以与定义延迟SLO相同的方式定义差异SLO:

  • SLI:按子群体计算的指标。示例:在生产预测的滚动30天窗口上计算的性别子群体之间的均等机会差异。
  • SLO:必须维持的阈值。示例:均等机会差异在任何滚动30天窗口内必须保持在0.05以下。
  • 告警预算:触发告警前的允许余地。如果你的SLO是0.05,在0.04时告警以便在违规前有时间调查。

将差异SLO与准确率、延迟和错误率SLO一起监控。它们属于同一个仪表板。Fiddler AI和Arize都支持开箱即用的公平性指标仪表板,在生产流量上连续计算人口统计均等、召回均等和差异影响比率。

最小覆盖问题将在生产中出现。当你同时按多个人口统计属性切片生产流量时,交叉单元会快速变得稀疏。一个为100万用户提供服务的生产系统,跨5个性别类别×5个种族群体×4个年龄段,产生100个单元。许多单元的统计可靠指标估计量将不足。以与SRE处理低流量端点相同的方式处理这个问题:聚合到更粗粒度以进行SLO执行,将稀疏单元标记为数据集扩充,不要静默地将稀疏子群体指标视为可靠的。

修复模式

当差异SLO违规触发时,修复取决于根本原因:

数据代表性不足:如果性能不足的子群体在训练数据中代表性不足,投资回报率最高的修复是从该子群体收集更多数据并重新训练。这直接解决了根本原因。

重新加权:在训练期间上调性能不足子群体的示例权重。比数据收集更快,但不添加新信息。

阈值优化(后处理):Fairlearn的ThresholdOptimizer调整每个子群体的决策阈值以实现均等,而无需重新训练底层模型。这是最快的修复路径,在你无法及时重新训练时有效。

处理内约束:对于计划的重新训练周期,Fairlearn的指数梯度算法使用明确的公平性约束(均等机会、人口统计均等)进行训练。这产生了一个通过构造满足约束的模型,而不是事后修补阈值。

一个重要警告:从模型中删除敏感特征不会消除偏见。模型学会使用代理变量——用邮政编码代表种族,用名字代表性别,用职称代表年龄。仅仅因为你从特征集中删除了人口统计列,对输出的公平性测试就不是可选的。

交叉问题

单属性分类分析会错过交叉失败。这不是理论上的担忧。一位因交叉种族性别偏见而被拒绝贷款的女性,可能在性别公平指标和种族公平指标上单独看起来都没问题。只有在交叉切片中才能看到伤害。

挑战在于统计:你需要足够的每个交叉单元样本才能获得可靠的估计。使用粗略的人口统计类别(3个种族×2个性别×3个年龄段= 18个单元),与聚合分析相比,每个指标估计需要18倍的样本量。

规模自适应假设检验方法更严格地处理这个问题。对于超过规模阈值的单元,标准置信区间有效。对于稀疏单元,具有Dirichlet-多项式先验的贝叶斯估计器提供可靠的不确定性量化。关键是不要在没有不确定性区间的情况下报告稀疏交叉指标,并积极优先为样本覆盖不足的交叉切片收集数据。

成熟实践的样子

具有成熟子群体公平性实践的生产AI系统如下所示:

在部署之前,模型卡记录了所有定义的敏感属性的每个子群体性能、已知差距和限制。子群体评估阈值是CI中的阻塞门。评估数据集具有记录的覆盖要求,每个子群体有最小样本量。

在生产中,公平性SLI在生产流量的滚动窗口上计算,并与准确率和延迟一起显示在同一可观察性仪表板中。当差异指标接近SLO阈值时触发告警,而不是在违规后。稀疏子群体单元被标记为监控不足。每种失败模式都存在修复手册。

当差异SLO触发时,有一个分类流程——与你应用于延迟或错误率事件的相同系统诊断树——识别原因是数据漂移、分布偏移、模型回归还是评估覆盖缺口。值班工程师知道该怎么做。

拥有这种实践的团队在预发布环境中捕获人口统计差异。没有这种实践的团队通过用户投诉、监管询问或记者来发现它们。无论哪种方式,技术投入是相同的。时机不同。

实际起点

如果你今天没有子群体公平性实践,从这里开始:

为你的功能定义三到五个最重要的子群体。选择与你的伤害模型匹配的公平性指标。将Fairlearn的MetricFrame添加到你现有的评估管道——代码不到20行。设置阈值,让它阻止晋升。

你会立即发现你的评估集中没有足够的人口统计元数据来衡量你关心的内容。这个发现是有价值的,它准确地告诉你接下来需要收集什么。另一种选择是在不知情的情况下发布,然后发现你聚合的94%准确率是建立在最需要这个功能的用户40%准确率之上的。

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