LLM 面试备考
首页/Agent 评测

评估结果的统计显著性:置信区间、配对检验与模型排名(Statistical Significance of Eval Results)

所属:01-fundamentals / 05-agent-evaluation
面试权重:★★★
来源:《深入理解 AI Agent:设计原理与工程实践》第 7 章(李博杰,github.com/bojieli/ai-agent-book);非一手实测
相关知识点:agent-eval.md、benchmarks.md、llm-as-judge.md、02-interview/design/04-llm-evaluation.md
为什么有这个文件:本仓库其余的评测文件反复说「要报置信区间」「几分的差距落在噪声内」「配对比较更敏感」(agent-eval.md §评测自身的成本与噪声、benchmarks.md §统计与报告规范、llm-as-judge.md 自测 2、02-interview/design/04-llm-evaluation.md §4.7),但没有一处给出公式、样本量口径和检验方法。本文件就是补上这个方法的:它把「置信区间」从一个说法变成一个能当场算出来的数字,把「配对」从一句形容词变成 McNemar / paired bootstrap 的可复述流程。本文件是方法/知识,不是实战经验(见 01-llm-core/multimodal.md 顶部那条硬规矩)。

一句话#

评估集是有限的、模型输出又是随机的,所以「A 比 B 高 3 个点」默认是噪声,不是结论:单看一个成功率时,误差按 SE(p)≈p(1−p)/n\mathrm{SE}(p)\approx\sqrt{p(1-p)/n} 估算(100 题 70% 的成功率,95% 区间约 ±9 个百分点);比较两个配置时必须用配对分析(McNemar 或 paired bootstrap,以「题」为单位而不是两个独立均值相减),因为同一批题的难度差异在配对时被消掉,灵敏度高得多;只有「分差超过噪声 + 配对成立 + 可复现」三条同时满足,才配得上「切换模型 / 发布改动」这个动作。

为什么重要(面试角度)#

  • 它是评测题的「第二问」。面试官听到「我在 100 条评测集上把成功率从 70% 刷到 73%」,下一句几乎必然是「这 3 个点是真的吗?」——答不出公式和配对检验,前面讲的评测体系会被一句话打回原形。
  • 它把「严谨」变得可验证。说「要报置信区间」谁都会;能写出 p(1−p)/n\sqrt{p(1-p)/n}、能算出 70%±9、能说出「要减半误差得把样本翻两番」,才证明你真的会用这套统计。
  • 它直接对应线上决策:要不要换模型、要不要上灰度、要不要回滚——这些都是「差异是否超出噪声带宽」的问题。第 7 章里那个模型切换案例(Gemini 在复杂编排场景成功率反降 5%)之所以能转成「简单任务迁移、复杂任务保留」的差异化策略,前提正是先确认了这 5% 超出噪声。
  • 它是唯一能同时串联四份文件的知识点:llm-as-judge.md 讲了位置偏置却没讲 Elo 与 76% 这个数、agent-eval.md 讲了 pass^k 却没讲它和 pass@k 的公式关系、benchmarks.md 讲了「给不确定性」却没讲怎么给、设计题 04-llm-evaluation.md 讲了「几十条只能分辨十几个点」却没讲这句怎么来的。

核心内容#

1. 标准误与置信区间:先给误差一个数字#

在 nn 个用例上测得成功率 pp,标准误(Standard Error)粗略估计为:

SE(p)≈p(1−p)n \mathrm{SE}(p)\approx\sqrt{\frac{p(1-p)}{n}}

核心算例(背下来):100 个用例、成功率 70% 时,

SE=0.7×0.3100=0.0021≈4.6%,95% 置信区间≈70%±1.96×4.6%≈70%±9 个百分点 \mathrm{SE}=\sqrt{\frac{0.7\times0.3}{100}}=\sqrt{0.0021}\approx 4.6\%,\qquad 95\%\ \text{置信区间}\approx 70\%\pm1.96\times4.6\%\approx 70\%\pm 9\ \text{个百分点}

所以「新模型 73% 对旧模型 70%」不足以支持切换 —— 那个 3 个点被埋在 ±9 个点的区间里,两个模型在统计上不可区分。(注意:这是两个独立比例相减的粗口径;若两模型跑的是同一批题,正确的做法是下面的配对分析,它给出的区间会窄得多。)

为什么 nn 在根号里:误差按 1/n1/\sqrt{n} 缩小,所以

  • 要把误差减半,样本量得乘 4(100 题 → 400 题);
  • 要把误差降到 1/3,样本量得乘 9。

这解释了两个常见误判:「多加几十条样本就能看出 2 个点的差异」是错的(几十条的区间宽达十几个点);而「评测集已经几百条了,怎么还测不出小差异」也是对的——几百条对 2% 级别的差异本就无能为力。

小样本的口径(面试常用):把 nn 代进去算,几十条样本只能分辨十几个百分点量级的差异。例如 n=50n=50、p=0.7p=0.7:SE≈6.5%\mathrm{SE}\approx6.5\%,95% 区间约 ±12.7 个点;n=30n=30:区间约 ±16.4 个点。这正是 02-interview/design/04-llm-evaluation.md §4.7 那句「几十条样本只能分辨很大的差异(十几个百分点量级)」的来源。若预期收益只有 2–3 个百分点,而评测集只有几十题,正确的动作是先扩大样本,不是先下结论。

2. 配对分析:比独立比较灵敏得多#

同一批任务比较两个模型,必须做配对分析,而不是两个独立成功率相减。

方法 用到的信息 前提
两个独立成功率相减 每题只贡献给各自的总分 两批样本相互独立
McNemar 检验 只看两个模型结论不一致的那些题 两模型跑同一批题
paired bootstrap 对「同一道题上的成对结果」有放回重采样 两模型跑同一批题 + 可复现的随机条件

为什么配对更灵敏:同一批题里,有的题很难(两个模型都错)、有的题很简单(两个模型都对)—— 这些难度差异在配对时被消掉了:McNemar 只统计「A 对 B 错」和「A 错 B 对」这两类分歧题,一致的那些题根本不进入检验。独立比较则把难度方差当作噪声一起算进分母,所以要有同样多的样本才能看出同样的差异。同一个 3 个点的差距,配对检验可能显著,独立检验可能落在噪声里,差别就在这里。

McNemar 的口径:把结果排成一张 2×2 表,只关心两个非对角格:

B 做对 B 做错
A 做对 都对(不提供信息) bb:A 对 B 错
A 做错 cc:A 错 B 对 都错(不提供信息)

原假设是「两者在分歧题上对称」,即 b=cb=c。检验统计量近似为 χ2=(∣b−c∣−1)2b+c\chi^2=\frac{(|b-c|-1)^2}{b+c}(连续性校正),b+cb+c 小时用精确二项检验。只用到 b+cb+c 道分歧题——这就是它灵敏的原因,也是它的代价:一致题再多也不增加检验的功效。

paired bootstrap 的可复述步骤(不需要真代码):

  1. 以「题」为单位(不是以「单次运行」为单位),从 nn 道题里有放回抽 nn 道,得到一个 bootstrap 样本 —— 同一道题可能被抽中多次,也可能一次都没抽中;
  2. 在这个样本上分别算 AA、BB 的成功率,取差值 Δ∗=pA∗−pB∗\Delta^*=p_A^*-p_B^*;
  3. 重复 BB 次(通常 1000–10000 次),得到 Δ\Delta 的一串取值,即差值的经验分布;
  4. 看这个分布:取它的 2.5% 与 97.5% 分位,就是差值的 95% 置信区间。整个区间落在 0 的同一侧(不含 0)→ 差异显著;跨过 0 → 差异与噪声不可区分;
  5. 也可以直接用「Δ∗≤0\Delta^*\le 0 的比例」作为 pp 值的近似。

关键:重采样的单位是题,而每一道题都是「A 在这次、B 在这次」的成对记录 —— 这样难度差异才会在每次重采样里同步抵消。这就是「配对」二字在 bootstrap 里的实现。

配对的含义是让两组共享任务与随机条件(同一批题、同一组固定种子),而不是分别抽两批样本再比平均值。第 7 章给的最小伪代码正是这个口径:

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)

3. 三条必须一起讲的纪律#

  1. 每个配置跑 3–5 个随机种子,报均值和波动范围。 Agent 每次运行都可能不同,单次跑分的差常常只是种子噪声——单次运行只能用来筛选方向,不能用来下结论。第 7 章 AndroidWorld 那个调优案例里,三轮实验始终固定模型、任务参数、随机种子、步数上限和模拟器,并且交替安排两组的运行顺序,就是为了让每轮的差异只来自那个被改动的变量。

  2. 多重比较:并行验证很多假设时要收紧阈值,或对正向结果做独立复跑。 同时比较十几个配置、试十几个提示词,即使每个都没效果,试够多次也总能碰上一个「看起来显著」的(这就是 pp 值的定义:单次假阳性率 5%,试 20 次至少命中一次的期望不低)。缓解办法是收紧显著性阈值(如按假设数做 Bonferroni 式校正,阈值除以假设数),或者只用第一轮结果生成假设、再用一批新样本独立复跑去验证它。

  3. 判据三件套:分差超过噪声 + 配对成立 + 可复现。 第 7 章的原话是:分差要超过噪声、在配对分析中成立,并且能够复现,才值得据此切换模型或发布改动。 缺任何一条都不能成为决策依据——这是本文件最该背下来的一句话。

4. Pass@k vs Pass^k:能力上限 vs 业务可靠性#

单次成功率为 pp、kk 次运行相互独立时,两类指标的关系很直观:

Pass@k=1−(1−p)k,Passk=pk \mathrm{Pass@k}=1-(1-p)^k,\qquad \mathrm{Pass}^{k}=p^k

核心算例(背下来):p=0.6p=0.6、k=5k=5 时,

Pass@5=1−0.45≈99.0%,Pass5=0.65≈7.8% \mathrm{Pass@5}=1-0.4^5\approx 99.0\%,\qquad \mathrm{Pass}^{5}=0.6^5\approx 7.8\%

同一个 pp,一个看起来几乎完美,一个看起来几乎不可用。 前者适合衡量探索时的能力天花板(给足机会总能做成至少一次,科研发现、漏洞挖掘这类任务里,人类可以从 kk 条候选轨迹里挑最好那条);后者才接近支付、退款、权限变更、生产部署等场景的可靠性要求。kk 越大,两者分岔越明显:

k=1k=1 k=3k=3 k=5k=5
Pass@k=1−(1−p)k\mathrm{Pass@k}=1-(1-p)^k 60.0% 93.6% 99.0%
Passk=pk\mathrm{Pass}^{k}=p^k 60.0% 21.6% 7.8%
  • Best@k:输出是连续得分而非通过/失败时,取最好一次,记为 Best@k(agent-eval.md 与 04-llm-evaluation.md 都只在 pass@k/pass^k 上打转,Best@k 是连续指标场景下的对应物)。
  • 必须写清 kk 的口径:是「同一任务独立采样 kk 次」,还是「生产流水线上连续 kk 个任务」?两者含义完全不同——前者是「给模型 kk 次机会」,后者是「用户连续遭遇 kk 个请求时全都得对」。报告里不写清口径,Pass@k\mathrm{Pass@k} 和 Passk\mathrm{Pass}^{k} 都是不可解读的。
  • 有副作用的操作不能「重试直到成功」。 对会产生真实副作用的动作(转账、退款、删库),必须在沙盒或可回滚环境里采样,并且把每一次失败都计入可靠性指标。否则 Pass@k\mathrm{Pass@k} 会系统性高估线上表现——因为线上那次失败是真扣款、真退款,不是你 discard 掉的一条采样。

交叉引用:agent-eval.md 已经给出了 pass@k(能力上限)与 pass^k(可靠性)的定性区分,方向是对的;但它的口径偏松——正文写的是 pass^k「也叫 success^all 之类的口径」,「之类的」正是问题所在:success^all 到底是哪种 all、k 的口径是什么,必须钉死,否则同一份报告里两个人都说 pass^k,算的却不是同一个东西。02-interview/design/04-llm-evaluation.md §4.7 要求「多次采样,报 pass@k 和 pass^k 并给置信区间」,本文件把这两个量的公式和 kk 口径补上了。

5. 配对比较与模型排名:Elo / Bradley-Terry#

当评估从「绝对打分」转向「A 和 B 哪个更好」的配对比较时,需要一套把两两结果聚合成全局排名的方法。

Elo 评分(最初用于国际象棋)通过大量两两对决量化相对能力:分差越大,强者的预期胜率越高。

核心算例(背下来):模型 A 得 1200、模型 B 得 1000,Elo 系统预测 A 的胜率约 76%:

EA=11+10(RB−RA)/400=11+10−0.5≈0.76 E_A=\frac{1}{1+10^{(R_B-R_A)/400}}=\frac{1}{1+10^{-0.5}}\approx 0.76
  • 爆冷时调整幅度更大:如果 B 赢了,B 加分较多、A 减分较多——结果与预期偏差越大,分数调整越多。这种机制让排名快速收敛到真实水平。
  • 统计基础是 Bradley-Terry 模型:把每个模型抽象为一个潜在「实力分数」,两两对决的胜负概率由两者分数差决定,即 P(A 胜B)=θAθA+θBP(A\ \text{胜} B)=\dfrac{\theta_A}{\theta_A+\theta_B}。Elo 是 Bradley-Terry 的在线增量工程实现:按时间顺序逐场更新、调整幅度受学习率 KK 因子和处理顺序影响;官方榜单(如 Chatbot Arena)用的是 Bradley-Terry 极大似然拟合——对全部对局一次性求解、与投票先后顺序无关。两者总体排名应当吻合,但具体分值不会精确一致(这一点在对比 Elo 实现与官方榜单时必须主动说明,否则会被当成 bug)。

配对评判由 LLM 而非人类投票完成时,要防位置偏差(Position Bias):评判模型会系统性地偏向出现在某个位置(通常是先出现)的候选,即使两个候选内容完全对调,判决也可能不变。缓解方式:

做法 强度 说明
交换顺序各评一次、取平均 标准做法 A 在前评一次、B 在前再评一次,两次取平均
只有两次判决一致才计入,不一致记平局或送人工复核 更严格 把位置敏感的部分直接判为「无法判定」
随机化展示位置(Chatbot Arena 的做法) 大样本下有效 本质相同——让位置偏差在大样本下相互抵消

交叉引用:llm-as-judge.md 已经把位置偏置与「交换顺序各评一次再聚合」讲清楚了,但它没有给出聚合机制——为什么 pairwise 的结果最后需要 Elo / Bradley-Terry 才能得到全序、以及 1200 对 1000 究竟是 76% 这个数,都在本文件补上。两处合起来才是完整的:llm-as-judge.md 讲单次判决怎么去偏,本文件讲去偏后的判决怎么聚合成排名。

常见面试问法#

Q:我在 100 条评测集上把成功率从 70% 刷到了 73%,能上线吗?

A:不够,这 3 个点大概率是噪声。 用标准误估算:SE(p)≈p(1−p)/n=0.7×0.3/100≈4.6%\mathrm{SE}(p)\approx\sqrt{p(1-p)/n}=\sqrt{0.7\times0.3/100}\approx4.6\%,95% 置信区间约 70% ± 9 个百分点——73% 完全落在旧模型 70% 的区间内,两者统计上不可区分。「新模型 73% 对旧模型 70%」不足以支持切换。要下结论,正确的做法有两条:① 把样本扩大(误差按 1/n1/\sqrt{n} 缩,要减半得乘 4);② 若两模型跑的是同一批题,改用配对分析——逐题记录谁胜出,用 McNemar 检验(只看「A 对 B 错」和「A 错 B 对」两类分歧题)或 paired bootstrap(以题为单位有放回重采样,看差值分布是否落在 0 的同一侧)。配对把题目难度差异消掉了,比两个独立成功率相减灵敏得多。

Q:标准误的公式是什么?为什么 nn 在根号里?要减半误差怎么办?

A:SE(p)≈p(1−p)/n\mathrm{SE}(p)\approx\sqrt{p(1-p)/n}。nn 在根号里意味着误差按 1/n1/\sqrt{n} 缩小,所以要把误差减半,样本量得乘 4(100 题 → 400 题),要降到 1/3 得乘 9。代入数字:100 题 70% 的成功率,SE≈4.6%\mathrm{SE}\approx4.6\%,95% 区间约 ±9 个点;n=50n=50 时区间约 ±12.7 个点,n=30n=30 时约 ±16.4 个点——所以几十条样本只能分辨十几个百分点量级的差异。若预期收益只有 2–3 个点而评测集只有几十题,先扩样本,别下结论。

Q:比较两个模型,为什么不能直接相减成功率?

A:因为同一批题的难度差异会被当成噪声算进去。有的题很难(两个模型都错)、有的题很简单(两个模型都对),这些一致的部分对「谁更强」不提供信息,但在独立比较里却进了分母,抬高了方差。配对分析把难度差异消掉:McNemar 只看两模型结论不一致的题(「A 对 B 错」的 bb 与「A 错 B 对」的 cc,原假设 b=cb=c);paired bootstrap 以题为单位重采样,每次算同一道题上成对结果的差值。前提是两组共享同一批任务与随机条件,而不是各抽一批样本比均值。

Q:pass@k 和 pass^k 是什么关系?p=0.6、k=5 时分别是多少?

A:Pass@k=1−(1−p)k\mathrm{Pass@k}=1-(1-p)^k(kk 次中至少一次成功,衡量能力上限),Passk=pk\mathrm{Pass}^{k}=p^k(kk 次全部成功,衡量业务可靠性)。p=0.6p=0.6、k=5k=5:Pass@5=1−0.45≈99.0%\mathrm{Pass@5}=1-0.4^5\approx99.0\%,Pass5=0.65≈7.8%\mathrm{Pass}^5=0.6^5\approx7.8\%。同一个 pp,一个看起来几乎完美、一个看起来几乎不可用——所以要写清 kk 的口径:是同一任务独立采样 kk 次,还是流水线上连续 kk 个任务?对有副作用的操作,不能「重试直到成功」,必须在沙盒/可回滚环境采样,并把每次失败都计入可靠性,否则 pass@k 会系统性高估线上表现。

Q:Elo 1200 对 1000,谁赢的概率多大?它的统计基础是什么?

A:Elo 系统预测 1200 分的一方胜率约 76%:1/(1+10(1000−1200)/400)=1/(1+10−0.5)≈0.761/(1+10^{(1000-1200)/400})=1/(1+10^{-0.5})\approx0.76。爆冷时调整幅度更大(赢家加分多、输家减分多),使排名快速收敛。统计基础是 Bradley-Terry 模型——每个模型有一个潜在实力分 θ\theta,P(A 胜B)=θA/(θA+θB)P(A\ \text{胜}B)=\theta_A/(\theta_A+\theta_B),Elo 是它的在线增量实现。要注意两种算法的区别:Elo 逐场在线更新、受学习率 KK 与处理顺序影响;官方榜单常用 Bradley-Terry 极大似然拟合(一次性求解、与顺序无关)。两者总体排名吻合,但具体分值不会精确一致,对比时要说清。

Q:LLM 做 pairwise 评判时位置偏置怎么处理?

A:交换顺序各评一次、取平均;更严格的做法是只有两次判决一致才计入,不一致则记为平局或送人工复核;Chatbot Arena 的做法本质相同——随机化两个回答的展示位置,让位置偏差在大样本下相互抵消。去偏之后的 pairwise 结果,需要用 Elo / Bradley-Terry 这类聚合方法才能得到全局排名(详见 llm-as-judge.md 的偏置一节,那里讲去偏、这里讲聚合)。

易错点#

易错说法 / 做法 问题 应该说 / 应该做
「A 比 B 高 3 个点,换 B」 3 个点往往埋在 ±9 个点的区间里 先算区间;分差超不过噪声就扩样本或改配对
「多加几十条样本就能测出 2 个点的差异」 误差按 1/n1/\sqrt{n} 缩,几十条的区间有十几个点宽 要减半误差得把样本乘 4;测小差异要几百条量级的配对样本
两个模型的独立成功率直接相减 题目难度差异被算成噪声,灵敏度过低 用 McNemar 或 paired bootstrap,以题为单位配对
「配对」= 分别跑两批样本再比均值 那不是配对,是把独立比较换了个名字 配对要求同一批题、同一组固定种子
只跑一次就下结论 Agent 单次跑分的差常常只是种子噪声 每个配置跑 3–5 个随机种子,报均值和波动
并行试了二十个提示词,挑出那个「显著」的 多重比较——试够多次总能蒙上一个 收紧阈值(如除以假设数)或对新样本独立复跑
报告里写 pass^k 但不写 kk 的口径 「同一题采样 5 次全对」≠「线上连续 5 个任务全对」 钉死:独立采样 kk 次,还是流水线连续 kk 个任务
对有副作用的操作「重试直到成功」 失败被 discard 掉,pass@k 系统性高估线上表现 在沙盒/可回滚环境采样,每次失败都计入可靠性
看到 73% vs 70% 就写「显著提升」 把落在噪声内的差当成信号 判据三件套:分差超噪声 + 配对成立 + 可复现
拿 Elo 的分数和官方榜单逐一比对 Elo(在线、受 KK 与顺序影响)≠ Bradley-Terry MLE(批量、顺序无关) 只比排名是否大体一致,不比具体分值
只评一次顺序就下 pairwise 结论 位置偏置会让判决随顺序翻转 交换顺序各评一次取平均,不一致记平局/送人工

自测#

1. 一个评测集有 100 道题,某模型成功率 70%。给出 95% 置信区间,并说明「另一个模型 73%」意味着什么。

答案

SE(p)≈p(1−p)/n=0.7×0.3/100=0.0021≈4.6%\mathrm{SE}(p)\approx\sqrt{p(1-p)/n}=\sqrt{0.7\times0.3/100}=\sqrt{0.0021}\approx4.6\%;95% 置信区间 ≈70%±1.96×4.6%≈\approx70\%\pm1.96\times4.6\%\approx 70% ± 9 个百分点。「另一个模型 73%」落在这个区间内,两者统计上不可区分——不足以支持切换。想真正比较,要么扩大样本(误差按 1/n1/\sqrt{n} 缩,减半需 4 倍样本),要么因为两模型跑同一批题而改用配对分析(McNemar / paired bootstrap),后者的灵敏度远高于两个独立成功率相减。

2. 给出 McNemar 检验和 paired bootstrap 的口径,并解释为什么配对比独立比较灵敏。

答案

McNemar:只统计两模型结论不一致的题——bb(A 对 B 错)与 cc(A 错 B 对),原假设 b=cb=c,用 χ2=(∣b−c∣−1)2/(b+c)\chi^2=(|b-c|-1)^2/(b+c) 或精确二项检验;一致题(都对/都错)不进检验。paired bootstrap:以题为单位从 nn 道题里有放回重采样 nn 道,每次算两模型成功率的差值 Δ∗\Delta^*,重复上千次得到差值的经验分布,取 2.5%/97.5% 分位为 95% 区间——区间不含 0 即显著。为什么灵敏:同一批题里,难题(都错)与易题(都对)的难度差异在配对时被消掉,只有分歧题贡献信息;独立比较把难度方差当噪声算进分母,需要更多样本才能看出同样的差异。前提:两组共享任务与随机条件,不是各抽一批样本比均值。

3. p=0.6、k=5 时 pass@5 和 pass^5 分别是多少?为什么必须写清 k 的口径?

答案

Pass@5=1−(1−0.6)5=1−0.45≈\mathrm{Pass@5}=1-(1-0.6)^5=1-0.4^5\approx 99.0%;Pass5=0.65≈\mathrm{Pass}^5=0.6^5\approx 7.8%。同一个单次成功率 pp,一个看起来几乎完美(给足机会总能做成一次,衡量能力上限),一个看起来几乎不可用(五次连续都不出错极难,衡量业务可靠性)。必须写清 kk 的口径:是「同一任务独立采样 kk 次」还是「生产流水线上连续 kk 个任务」——前者是「给模型 kk 次机会」、后者是「用户连续 kk 个请求都得对」,含义完全不同。另:对有副作用的操作不能「重试直到成功」,要在沙盒/可回滚环境采样并把每次失败计入可靠性,否则 pass@k 会系统性高估线上表现。

4. 你并行测了 15 个提示词变体,其中一个把成功率从 68% 提到 75%(n=80)。你会直接采用它吗?

答案

不会,至少现在不会。 两个问题:① 样本量:n=80n=80、p≈0.7p\approx0.7 时 SE≈0.21/80≈5.1%\mathrm{SE}\approx\sqrt{0.21/80}\approx5.1\%,95% 区间约 ±10 个点,7 个点的提升仍在噪声内;② 多重比较:并行试了 15 个变体,即使都没效果,试够多次也总能碰上一个「看起来显著」的。正确做法:把这个变体单独拎出来,在扩大后的样本上、与基线做配对比较(同一批题、同一组种子),并做独立复跑确认可复现——满足「分差超噪声 + 配对成立 + 可复现」三件套才采用。

5. Elo 1200 对 1000 的预期胜率是多少?它和 Bradley-Terry 是什么关系?位置偏置怎么处理?

答案

预期胜率约 76%:1/(1+10(1000−1200)/400)=1/(1+10−0.5)≈0.761/(1+10^{(1000-1200)/400})=1/(1+10^{-0.5})\approx0.76;爆冷时调整幅度更大。统计基础是 Bradley-Terry 模型——P(A 胜B)=θA/(θA+θB)P(A\ \text{胜}B)=\theta_A/(\theta_A+\theta_B);Elo 是它的在线增量工程实现,逐场更新、受学习率 KK 与处理顺序影响,而官方榜单常用 Bradley-Terry 极大似然拟合(批量、顺序无关),两者排名大体吻合但具体分值不会精确一致。位置偏置:LLM 评判会系统性偏向某个位置,缓解是交换顺序各评一次取平均(更严格:只有两次一致才计入,不一致记平局或送人工),Chatbot Arena 则随机化展示位置让偏差在大样本下抵消;去偏后的 pairwise 结果需要用 Elo / Bradley-Terry 聚合才能得到全局排名。