配对比较与统计显著性
Elo 评分与 Bradley-Terry 模型如何运作?
- 场景: 面对 “A 和 B 哪个更好”,配对比较提供不依赖绝对分数的评估方式;
- Elo: 最初用于国际象棋的排名系统,通过大量两两对决量化模型的相对能力,分差越大强者的预期胜率越高;
- 例: 模型 A 得分 1200、模型 B 得分 1000,Elo 系统预测 A 的胜率约 76%;
- 更新规则: 若 B 意外获胜,B 加分较多、A 减分较多,爆冷的结果带来更大的分数调整,使排名快速收敛到真实水平;
- 统计基础: Bradley-Terry 模型将每个模型抽象为一个潜在 “实力分数”,两两对决胜负的概率由两者分数差决定;
- 关系: Elo 是 Bradley-Terry 模型的在线增量更新形式的一种工程实现;
Chatbot Arena 的盲选方法有什么优势与局限?
- 方法: 匿名随机对决,用户在不知道模型身份的情况下盲选更优回应,通过数百万次投票得出排名;
- 优势: 不需要定义 “绝对标准”,只需要人类判断 “A 和 B 哪个更好”;
- 局限: 排名结果取决于用户提了什么问题——若大量用户恰好都问编程题,擅长编程的模型排名就会偏高,未必反映它在其他任务上的真实水平;
- 官方算法差异: Chatbot Arena 官方用 Bradley-Terry 极大似然拟合,对全部对局一次性求解、与投票的先后顺序无关;
- 自实现差异: 在线增量更新的 Elo 结果受学习率 K 因子和处理顺序影响,两者在总体排名上应吻合,但具体分值不会精确一致;
位置偏差为什么必须被消除?
- 定义: 评判模型会系统性地偏向出现在某个位置(通常是先出现)的候选,即使两个候选的内容完全对调,判决也可能不变;
- 标准缓解: 交换顺序各评一次(A 在前评一次、B 在前再评一次),取两次结果的平均;
- 更严格: 只有两次判决一致时才计入,不一致则记为平局或送人工复核;
- 人类投票的对应做法: 随机化两个回答的展示位置,让位置偏差在大样本下相互抵消;
评估分数差异什么时候才算显著?
- 前提: 评估集有限、模型输出又有随机性,分数差异可能只是抽样噪声;
- 标准误: 在 个用例上测得成功率 ,可粗略估计为 ;
- 例: 100 个用例、成功率 70% 时,95% 置信区间约为 个百分点,“新模型 73% 对旧模型 70%” 不足以支持切换;
- 配对分析: 同一批任务比较两个配置时,应逐题记录谁胜出,用 McNemar 检验或配对 bootstrap 判断差异,而不是直接相减两个独立成功率;
- 多随机种子: Agent 每次运行也可能不同,每个配置最好用 3–5 个随机种子,报告均值和波动范围,单次运行只能用来筛选方向;
- 样本量: 若预期收益只有 2–3 个百分点而评估集只有几十题,应先扩大样本,标准误按 缩小;
- 配对含义: 让两组共享任务与随机条件,而不是分别抽两批样本再比较平均值;
- 多重比较: 并行验证多个假设时,应收紧显著性阈值,或对正向结果做独立复跑;
- 实务判据: 分差要超过噪声、在配对分析中成立,并且能够复现,才值得据此切换模型或发布改动;
for task in paired_tasks:
for seed in fixed_seeds:
a = run(config_a, task, seed)
b = run(config_b, task, seed)
record_paired_delta(verifier(a), verifier(b))
return paired_bootstrap_or_mcnemar(all_deltas)