想象你是一名国际花样滑冰比赛的裁判长。比赛结束后,观众最关心的不是冠军是谁,而是打分是否公正。复盘时你会问两个问题:第一,来自不同国家的选手,整体得分有没有系统性差异——比如某国选手平均分总比其他国低一大截;第二,两个腾空高度、旋转圈数几乎一模一样的选手,是否拿到了几乎相同的分数。这两个问题,恰好对应 AI 模型公平性测试的两大支柱:群体公平(Group Fairness)与个体公平(Individual Fairness)。 在 AI 世界里,模型就是那位手握评分尺的裁判,而性别、年龄、地域等敏感属性,就像选手的国籍。群体公平要求模型对不同人群给出统计上相当的结果;个体公平要求能力相似的个体得到相似的待遇。本文会带着你沿着“裁判打分”这条线,走一遍公平性测试的完整链路:从公平性定义到量化指标,从偏见检测到测试用例设计,最后是如何缓解偏见并验证效果。

岗位关联

对 AI 测试与质量从业者而言,公平性测试是合规审计与模型放行的硬门槛。掌握群体与个体公平的指标、检测与缓解方法,能让你在信贷、招聘、医疗等高敏场景中独立设计公平性验证方案,守住模型上线的道德与法律底线。

目录
  1. 可视化演示
  2. 公平性基础
  3. 群体公平指标
  4. 个体公平方法
  5. 偏见检测技术
  6. 测试设计流程
  7. 偏见缓解方法
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

交互展示群体公平性指标对比、个体公平性近邻一致性检验和偏见检测与缓解流程,理解AI公平性核心概念。

本节配有交互动效(进入视口后自动加载,约 3KB)。

群体公平性指标对比 人口统计均等:各群体正例率相等 机会均等:各群体真正例率相等 PPD_A ≈ PPD_B: 群体间无偏 多维度衡量模型群体公平性

公平性基础

继续当你的裁判长。要让“公正”从口号变成可执行的规则,你必须先定义清楚:什么算是偏袒?是某国选手整体得分偏低,还是某个选手被单独压分?前者统计的是“群体”,后者针对的是“个体”。这就在公平性里凿出了两条路:群体公平与个体公平。

群体公平(group fairness)的核心主张是:在敏感属性(如性别、年龄、种族)划分出的不同人群上,模型输出的正向率应当统计上相当。所谓正向率,就是类似“录取率”“通过率”这样的比例。个体公平(individual fairness)则主张:在任务相关特征上相似的两个个体,无论属于哪个群体,都应该获得相似的结果。两者一个是“天平的两端放群体”,一个是“天平的两端放个人”。

还要区分“公平”与“偏见”。偏见(bias)是描述问题的:数据、标注或算法中存在系统性倾斜,导致某些群体被系统性低估或高估。公平(fairness)是描述约束的:它是一组我们选择施加给模型的可量化标准。一个模型可能有偏见,但我们选择了某个公平定义,通过测试来确保偏见不越界。公平性实现的难点在于:不同指标常常相互冲突,群体公平和个体公平也未必能同时满足。这让公平性测试不是“跑一个脚本”,而是“在多个标准之间做权衡设计”。

所以,裁判长的工作不是喊一句“要公平”,而是明确定义哪条评分线路代表群体公正、哪条代表个体公正,并接受它们偶尔的矛盾——这正是用指标度量的前提。

群体公平指标

要判断裁判是否对某国选手集体压分,你不可能凭感觉,得拿出统计数字。假设A国选手平均分 7.8,B国选手平均分 7.2,分差 0.6——这个差值就是最直观的群体公平信号。AI 里最常用的群体公平指标是统计均等差异(Demographic Parity, DP),它统计两组人群获得正向预测的比例之差。

只看 DP 还不够。假设裁判给 A 国选手普遍加分、给 B 国选手普遍减分,但“真优秀的 A 国选手”和“真优秀的 B 国选手”被点名的比例不一致,说明裁判在区分实力时仍然偏心。于是有了均等化几率(Equalized Odds, EO):在真实标签相同的人群里,两组的正向预测率必须一致。

工程中还会看预测率均衡(两组中被评为正向的人,真实为正的比例应一致)和校准误差(同一分数段上两组真实正例的比例应一致)。它们从不同角度回答“裁判的分数是否有同样的含金量”。把这几个指标想成裁判长的四把尺:DP 量“整体给分松紧”,EO 量“对真才实学的识别力”,预测率均衡量“高分选手的成色”,校准量“每个分数段的可信度”。四把尺都过了,群体维度才算基本过关。

DP=P(y^=1∣A=a)−P(y^=1∣A=b)\displaystyle DP = P(\hat{y}=1 \mid A=a) - P(\hat{y}=1 \mid A=b)
真实能力相同的人,被“看上”和被“冤枉”的比例都不应有群体差异。
  1. 真实为正$y=1$ 表示样本的真实情况是正例,例如候选人确实优秀。
    y=1y=1
  2. 正例组内命中率一致A 组真实正例中被模型判为正的比例,应等于 B 组对应比例——这保护“被看见”的机会。
    P(y^=1∣A=a,y=1)=P(y^=1∣A=b,y=1)P(\hat{y}=1 \mid A=a, y=1) = P(\hat{y}=1 \mid A=b, y=1)
  3. 负例组内误伤率一致A 组真实负例中被误判为正的比例,也应等于 B 组对应比例——这保护“不被冤枉”的机会。
    P(y^=1∣A=a,y=0)=P(y^=1∣A=b,y=0)P(\hat{y}=1 \mid A=a, y=0) = P(\hat{y}=1 \mid A=b, y=0)

个体公平方法

群体指标都过了,不代表你可以收工。把两位表现几乎相同的选手的录像单拎出来并排看:一个得了 8.0,另一个只得了 7.2,哪怕两国平均分一样,观众也会愤怒——这就是个体层面的不公正。

个体公平(Individual Fairness)的核心约束是:相似的个体应获得相似的输出。先要定义“相似”。通常我们在任务相关特征(如收入、工龄、历史行为)上计算两个样本的距离 $D(x_i, x_j)$;距离越小,代表两人“硬实力”越接近。

实践中常配套做一致性检验:在测试集上对每个样本找 K 个最近邻,统计输出差值的分布,若大量近邻对的分差明显超过 $\epsilon D$,说明模型在个人尺度上不稳定。另一个更“反直觉”的方法是反事实公平:把样本的敏感属性(如性别)翻转后重新预测,结果应当不变。

要提醒的是:“相似”的度量本身可能含偏见——如果把历史工资作为特征,那么历史歧视会被当成“硬实力”复制。所以设计相似性度量时,要刻意剔除与敏感属性强相关的代理特征。这就像裁判长把两段录像并排播放,要求裁判解释分差来源。个体公平方法本质上就是“逐对审查”,它比群体均值更敏感,也更容易暴露细节问题。

∣y^(xi)−y^(xj)∣≤ϵ⋅D(xi,xj)\displaystyle \big| \hat{y}(x_i) - \hat{y}(x_j) \big| \leq \epsilon \cdot D(x_i, x_j)
把一个人的敏感属性从 $a$ 改成 $b$,模型的输出不能跟着变。
  1. 反事实世界$\hat{y}_{A=a}(x)$ 表示“如果这个人是 A 组”时模型的输出。
    y^A=a(x)\hat{y}_{A=a}(x)
  2. 对照世界$\hat{y}_{A=b}(x)$ 表示“如果这个人是 B 组”时模型的输出。
    y^A=b(x)\hat{y}_{A=b}(x)
  3. 要求不变模型应当对敏感属性的翻转“视而不见”,两个结果必须相等。
    y^A=a(x)=y^A=b(x)\hat{y}_{A=a}(x) = \hat{y}_{A=b}(x)

偏见检测技术

现在,你怀疑某位裁判偏心。怎么验证?老练的裁判长会先把选手按真实水平分层,再看这位裁判在每一层里是否都对某国选手压低分;还会随机抽几段录像,请其他裁判复评。

对应到算法审计,第一项技术是子群性能对比:把测试数据按“敏感属性 × 真实标签 × 分数段”切分成多个子群,分别计算精确率、召回率、F1 与 AUC。如果某个子群的指标明显塌陷,就找到了疑点。第二项是敏感性分析:对输入中的敏感属性做扰动(比如把性别从“女”翻到“男”),观察模型输出的变化幅度,变化过大说明模型过度依赖敏感属性。第三项是偏见审计工具,如 IBM 的 AI Fairness 360 与微软的 Fairlearn,它们内置了多种指标和可视化面板,可以快速产出审计报告。第四项是因果归因:构建因果图,判断偏差源头是训练数据分布、标注流程还是算法放大。

量化偏见程度时,工程界常用分歧指数(Disparate Impact, DI)配合“80% 规则”。

这就像裁判长在赛后做“录像倒查”:分层对比、随机复评、互换国籍视角。DI 指标就是倒查报告里那句“该裁判对 B 国选手的打分整体低于 A 国选手的八成”的硬证据。

DI=P(y^=1∣A=b)P(y^=1∣A=a)(经验标准: DI≥0.8)\displaystyle DI = \frac{P(\hat{y}=1 \mid A=b)}{P(\hat{y}=1 \mid A=a)} \quad \text{(经验标准: } DI \geq 0.8 \text{)}
把一组通过率除以另一组通过率,比值低于 0.8 就视为存在不利影响。
  1. 分子分母分子是 B 组的正向预测比例,分母是 A 组的正向预测比例。
    P(y^=1∣A=b)P(y^=1∣A=a)\frac{P(\hat{y}=1 \mid A=b)}{P(\hat{y}=1 \mid A=a)}
  2. 比率含义比值接近 1 表示两组整体一致,明显小于 1 表示 B 组通过率被压制。
    DI≈1DI \approx 1
  3. 经验阈值美国平等就业机会委员会常用的 80% 规则认为 $DI < 0.8$ 即存在不利影响。
    DI≥0.8DI \geq 0.8

测试设计流程

比赛不是只有决赛那天。赛事开始前,裁判长要制定评分细则、圈定重点复查的选手名单、安排多位裁判独立打分取均值,赛后还要复盘争议判罚。公平性测试同样是一套“赛前—赛中—赛后”的流程。

第一步是设计测试用例。不能只准备“全体样本”这类笼统用例,而要覆盖:敏感属性各分组的组合、不同分数段、边界样本(如分数恰好在阈值附近),以及交叉子群(例如“年轻女性”与“中年男性”)。第二步是数据划分策略:训练集、验证集、测试集都必须按敏感属性分层划分,避免泄漏;同时构造一个平衡的公平性测试集,确保每组样本量足够支撑统计显著性。第三步是设定基线与对照:基线通常是“只使用任务相关特征、不使用敏感属性”的简单模型;对照实验用来回答“偏见是数据带来的,还是算法放大的”。第四步是评估与放行:在测试集上计算各类公平指标,与预设容差比较。

通常把容差定在 0.05 左右、DI 阈值定在 0.8,但具体数值要结合业务风险和法律要求调整。这就像写进赛事手册的评判标准:先定规则,再抽样本,对照历史裁判,最后按多把尺子联合判定。有了这套流程,公平性测评才能可重复、可解释、可审计。

Pass=[∣DP^∣≤δ1]∧[∣EO^TPR∣≤δ2]∧[DI^≥τ]\displaystyle \text{Pass} = \Big[ |\widehat{DP}| \leq \delta_1 \Big] \land \Big[ |\widehat{EO}_{TPR}| \leq \delta_2 \Big] \land \Big[ \widehat{DI} \geq \tau \Big]
三个公平指标同时落在预设容差区间内,验收才算通过。
  1. 统计估计量$\widehat{DP}$ 表示在测试集上估计出的统计均等差异,带上标记表示这是抽样估计值,不是理论真值。
    DP^\widehat{DP}
  2. 与容忍度比较$|\cdot| \leq \delta$ 表示偏差的绝对值必须小于预设容差,例如 $\delta_1 = 0.05$。
    ∣DP^∣≤δ1| \widehat{DP} | \leq \delta_1
  3. 全部条件同时满足三个条件用逻辑与 $\land$ 连接,表示任何一个指标不达标都不能放行。
    Pass=[∣DP^∣≤δ1]∧[∣EO^TPR∣≤δ2]∧[DI^≥τ]\text{Pass} = \Big[ |\widehat{DP}| \leq \delta_1 \Big] \land \Big[ |\widehat{EO}_{TPR}| \leq \delta_2 \Big] \land \Big[ \widehat{DI} \geq \tau \Big]

偏见缓解方法

复查结果证明裁判确实偏心。现在有三次补救机会:赛前就替换掉有历史偏向的裁判(预处理);在比赛进行中给裁判台加上“同分复核”的硬规则(训练中约束);赛后公布加权修正后的分数(后处理)。

预处理(Pre-processing)在训练之前动手:对样本重加权(提高被压制群体的权重)、平衡采样、或遮蔽与敏感属性强相关的代理特征,让进入模型的数据更干净。训练中约束(In-processing)把公平性写进目标函数:在损失函数中加入公平性正则项,例如对 DP 或 EO 的偏差施加惩罚,让优化器在“准”与“公”之间找平衡。后处理(Post-processing)则最灵活:模型已经训好,不改权重,只对输出做校准。常见做法是为不同群体设置不同的决策阈值,使最终结果的公平指标达标。

最后也是最重要的一步:复测验证。缓解手段不是凭感觉,而是把上一节的整套测试流程重新跑一遍,确认 DP、EO、DI 全部落入容差区间,同时检查准确率、召回率没有严重回退。裁判工作从来不是换个人就万事大吉——预处理换人、训练中加规则、后处理调分,三层防线加一次赛后复核,才能让“公平”从口号变成可验收的分数。

y^fair′=1[s(x)≥ta](对 A=a 组)y^fair′=1[s(x)≥tb](对 A=b 组)\displaystyle \hat{y}'_{fair} = \mathbb{1}\big[ s(x) \geq t_a \big] \quad \text{(对 } A=a \text{ 组)} \quad \hat{y}'_{fair} = \mathbb{1}\big[ s(x) \geq t_b \big] \quad \text{(对 } A=b \text{ 组)}
让两组使用各自的决策阈值,分数线按公平指标反推调整。
  1. 原始得分$s(x)$ 是模型给出的连续分数,越高质量越高。
    s(x)s(x)
  2. 指示函数$\mathbb{1}[\cdot]$ 在括号内条件成立时取 1,否则取 0,即“超过阈值才通过”。
    y^fair′=1[s(x)≥t]\hat{y}'_{fair} = \mathbb{1}\big[ s(x) \geq t \big]
  3. 分组阈值A 组用阈值 $t_a$,B 组用阈值 $t_b$,通过调节两个阈值使最终的公平指标达标。
    ta≠tbt_a \neq t_b

AI 应用场景

信贷风控模型的合规审计

阶段:模型测试与上线评审

解决的问题:银行消保部门过去靠人工抽检不同人群的审批通过率,效率低且漏检率高。用群体公平指标可以在全量样本上自动计算 DP、EO,并生成合规报告,把“凭感觉抽查”升级为“全量量化审计”。

具体案例:某区域性银行在贷款审批模型评审时,用公平性脚本审计不同年龄段的通过率,发现 30 岁以下群体通过率比 45 岁以上低 17%,触发 DP 超限告警。风控团队随即对评分卡做后处理阈值校准,使两组通过率差异回落到 3% 以内。

招聘简历筛选的偏见检测

阶段:偏见检测与持续监控

解决的问题:招聘模型若对性别或户籍存在隐性偏见,会被投诉甚至涉诉。通过子群性能对比与敏感性分析,可以定位“简历中哪类特征组合被系统性压分”。

具体案例:某互联网公司内推系统上线后,通过子群审计发现“非一线城市 + 女性”交叉子群的初筛通过率远低于其他组合。定位到原因是历史简历数据中该组合样本极少、模型欠拟合,团队补充数据并加入反事实校验后,通过率差异显著收窄。

医疗诊断模型的公平性回归测试

阶段:版本迭代回归与上线验证

解决的问题:模型每次迭代都可能引入公平性回归,单靠人工复查不现实。把公平性测试嵌入 CI 流程,作为版本发布门禁,可以持续拦截偏见过大的模型。

具体案例:某三甲医院合作的 AI 团队在每次模型发布前自动运行公平性回归套件,覆盖不同年龄组、性别和既往病史的交叉子群。某次更新后,模型对老年女性子群的召回率骤降 8%,被门禁拦截。团队回退版本并修复数据增强策略后才重新发布。

Python 演示

python43 行
# 公平性评估: 计算群体公平三大指标import numpy as np def fairness_report(y_true, y_pred, group, diff_limit=0.05, di_limit=0.8):    # 按敏感属性分组, 逐组计算统计量    groups = np.unique(group)    res = {}    for g in groups:        mask = group == g        res[g] = {            "positive_rate": y_pred[mask].mean(),            "tpr": y_pred[mask][y_true[mask] == 1].mean(),            "fpr": y_pred[mask][y_true[mask] == 0].mean(),        }    ga, gb = groups[0], groups[1]    # 三个核心指标: DP, EO(TPR/FPR差), DI    dp = res[ga]["positive_rate"] - res[gb]["positive_rate"]    eo_tpr = res[ga]["tpr"] - res[gb]["tpr"]    eo_fpr = res[ga]["fpr"] - res[gb]["fpr"]    di = res[gb]["positive_rate"] / max(res[ga]["positive_rate"], 1e-9)    # 联合验收门禁: 全部达标的才放行    passed = (        abs(dp) <= diff_limit        and abs(eo_tpr) <= diff_limit        and abs(eo_fpr) <= diff_limit        and di >= di_limit    )    return {"dp": dp, "eo_tpr": eo_tpr, "eo_fpr": eo_fpr, "di": di, "passed": passed} if __name__ == "__main__":    rng = np.random.default_rng(42)    n = 2000    group = rng.integers(0, 2, size=n)    y_true = rng.integers(0, 2, size=n)    # 制造带偏见的模拟数据: group 系数 0.12 让 B 组更容易通过    score = 0.35 + 0.35 * y_true + 0.12 * group + rng.normal(0, 0.18, size=n)    y_pred = (score > 0.5).astype(int)    report = fairness_report(y_true, y_pred, group)    for key, val in report.items():        if isinstance(val, float):            print(f"{key}: {round(val, 4)}")        else:            print(f"{key}: {val}")
目的:在测试集上自动计算群体公平的三大指标(DP、EO 的 TPR/FPR 差异、DI),并按业务容差判定模型是否通过公平性验收。
  1. mask = group == g按敏感属性构造布尔掩码,只选中当前要统计的群体子集。
  2. "positive_rate": y_pred[mask].mean()计算该组的正向预测比例,即“组内通过率”,是 DP 的基础。
  3. "tpr": y_pred[mask][y_true[mask] == 1].mean()只在真实正例中统计预测为正的比例,对应 EO 的命中率维度。
  4. dp = res[ga]["positive_rate"] - res[gb]["positive_rate"]两组通过率相减,直接得到统计均等差异。
  5. di = res[gb]["positive_rate"] / max(res[ga]["positive_rate"], 1e-9)计算分歧指数 DI,分母加极小值防止除零。
  6. abs(dp) <= diff_limit通过条件的核心判断,偏差绝对值必须在容差内。
  7. score = 0.35 + 0.35 * y_true + 0.12 * group + rng.normal(0, 0.18, size=n)向模拟数据注入 group 系数,制造可控的群体偏见以便验证检测逻辑。

常见误区

误区我经常用“模型在男性和女性上的准确率都是 85%”来说明模型很公平,觉得准确率相等就万事大吉了。

正解准确率衡量的是“总正确度”,而公平性关注的是输出在群体间的系统性差异。两组准确率完全一样,仍可能出现通过率差 30% 的情况——这就像裁判对两国选手“错得一样多”并不代表没有压分。必须用 DP、EO、校准等专门的公平指标去度量。

为何常见:“正确率”是最直观的质量指标,新手容易把模型质量好直接等同于公平性达标,忽略了公平性描述的是“差异”而非“水平”。

误区我把 DP 和 EO 都测到接近 0,就很放心地宣布模型没有偏见,认为每个个体都被公平对待了。

正解群体指标是“一阶均值”,个体可能在群体内部被系统性歧视。著名的辛普森悖论说明:总体看两组均值相同,但拆开每个特征组合看差异巨大。比如总体通过率一致,但“高收入年轻女性”子群被整体压分。所以要在群体指标之外,再做个体公平的相似性检查和交叉子群审计。

为何常见:群体指标统计简单、容易量化,个体公平度量需要设计距离和近邻,实现成本高,于是容易被偷懒跳过。

误区训练时把性别、种族等列直接从特征里删掉,模型就看不到这些信息了,自然不会有偏见。

正解敏感属性常与学历、邮编、消费习惯等代理特征强相关。模型完全可以从代理特征反推出群体身份,依然复现甚至放大偏见。删列只是“眼不见”,不是“心不偏”。正确做法是删列后继续做敏感性分析和子群审计,必要时施加公平约束。

为何常见:人很容易按“信息是否能被直接看到”来判断模型是否知道,却忽略了统计相关性会让模型间接重建敏感信息。

误区我认为统计均等差异必须严格等于 0,为了达标甚至强制拉平两组通过率,哪怕牺牲预测校准度。

正解DP = 0 要求两组通过率完全相等。但当两组真实能力分布本身不同时,强行拉平会损害校准——就像明明 A 国选手整体实力更强,却非要让两国通过人数一样多,导致分数失真。公平是多个指标联合权衡的结果,DP 卡在容差内即可,不必追求绝对归零。

为何常见:单一指标做 KPI 最容易执行,人们喜欢“归零”式的干净达标,忽略了公平本质是多维度的。

误区模型上线前我测了一遍公平性指标,都通过了,之后就再也不用管了。

正解数据漂移、策略迭代、特征分布变化都可能让偏见随版本悄悄回归。真实场景中要在 CI 流程中加入公平性回归测试,并建立线上持续监控,像监控准确率一样监控 DP、EO、DI。一次通过不等于永远通过。

为何常见:把公平当成一次性验收动作,而不是长期质量属性;这与“测试只在发布前做”的旧习惯一脉相承。

面试题

Q1. 群体公平关注的核心问题是?

单选题 · easy

  • A.相似个体获得相似输出
  • B.不同群体整体表现相当← 正确答案
  • C.所有样本准确率最高
  • D.训练数据量足够充分

答案:B。群体公平关心敏感属性划分的不同人群整体上是否被系统性差别对待,就像裁判是否对某国选手整体压分。A 描述的是个体公平,C 和 D 分别属于性能与数据问题,与公平性定义不符。

Q2. 统计均等差异(DP)要求两组什么相等?

单选题 · easy

  • A.正向预测的整体比例← 正确答案
  • B.真实标签的正例比例
  • C.模型预测的总准确率
  • D.训练样本的总体数量

答案:A。DP 就是两组正向预测比例之差,要求 P(ŷ=1|A=a) 等于 P(ŷ=1|A=b)。它不关心真实标签,只看输出比例,相当于统计两支队伍的平均得分是否相当。B 是真实分布而非预测,C、D 与公平指标无关。

Q3. 均等化几率(EO)额外约束了什么?

单选题 · mid

  • A.正负例内两组命中率← 正确答案
  • B.正例内两组通过率
  • C.负例内两组拒绝率
  • D.两组总体准确率相等

答案:A。EO 是 DP 的加严版:把人群按真实标签分层后,正向预测率仍要跨组一致。它同时约束真实正例中的命中率和真实负例中的误伤率。B、C 各只覆盖了一半,D 衡量的是准确率而非公平结构。

Q4. 个体公平的核心思想是?

单选题 · mid

  • A.相似个体应获得相似输出← 正确答案
  • B.不同群体应获得相同均值
  • C.全部个体应得到相同结果
  • D.输出方差应保持足够小

答案:A。个体公平的精髓是“相似的人得到相似的分”,用特征距离约束输出差。B 是群体公平的均值视角;C 是“绝对平均”反而违反个体公平;D 说的是模型稳定性而非公平性。

Q5. 下列哪些属于偏见检测方法?

多选题 · mid

  • A.子群性能对比与审计← 正确答案
  • B.敏感属性的敏感性分析← 正确答案
  • C.提升模型训练的批次大小
  • D.对模型做量化和剪枝压缩

答案:AB。子群性能对比和敏感性分析是典型的偏见检测手段,类似裁判长做分层对比与随机复评。C 属于训练效率调优,D 属于模型部署优化,与公平性检测无关,容易在概念上混淆。

Q6. 分歧指数 DI 小于 0.8 时表示?

单选题 · hard

  • A.群体间差异超过经验标准← 正确答案
  • B.群体间差异处于合理区间
  • C.个体间差异超过经验标准
  • D.个体间差异处于合理区间

答案:A。80% 规则以 0.8 为界,DI 低于 0.8 说明某组通过率不足另一组的八成,判定存在不利影响。B 说反了;C、D 把群体层面的分歧指数误当成个体指标。

Q7. 删除训练数据中的敏感属性后模型?

单选题 · easy

  • A.仍可能出现偏见效果← 正确答案
  • B.必然保证完全无偏见
  • C.准确率必然会大幅提升
  • D.无需再做任何公平测试

答案:A。敏感属性常通过代理特征(如邮编、消费习惯)被模型间接还原,删除属性列不保证公平。就像裁判不知道选手国籍,但可能从口音和姓名产生倾向。B、D 过于绝对,C 与公平性无必然关系。

Q8. 偏见缓解可以在哪些阶段开展?

多选题 · hard

  • A.数据预处理阶段调整← 正确答案
  • B.训练中加入公平约束← 正确答案
  • C.部署后做阈值后处理← 正确答案
  • D.压缩模型以减小显存占用

答案:ABC。偏见缓解按介入时机分预处理(数据重加权)、训练中约束(损失函数加正则)和后处理(阈值校准),相当于赛前换裁判、赛时加规则、赛后调分。D 是部署性能优化,与公平性缓解无关。

Q9. 辛普森悖论对公平测试的启示是什么?

单选题 · extreme

  • A.每个子群都应单独进行审计← 正确答案
  • B.汇总指标足以判断整体公平
  • C.样本量越大模型越公平
  • D.敏感属性数量越多越好

答案:A。辛普森悖论揭示总体均值相同不代表子群公平。必须对交叉子群逐一审计,否则偏见可能被聚合指标掩盖。B 正是该悖论反驳的常见误区,C、D 属于没有依据的泛化论断。

Q10. 公平性测试用例设计应包含?

多选题 · mid

  • A.覆盖不同敏感属性分组← 正确答案
  • B.覆盖边界与异常场景← 正确答案
  • C.只测试整体线上流量
  • D.设置基线与对照实验← 正确答案

答案:ABD。公平测试用例既要覆盖敏感属性分组,也要覆盖边界与异常场景,并设置基线对照来定位偏见来源。C 是偷懒做法,只测整体流量无法暴露子群差异,就像只看总平均分发现不了某国选手被集体压分。