回归测试与 A/B 的统计关

评测与可观测进阶17讲解 2

「涨了两个点」不是结论:同一评测集上的配对检验(McNemar)与置信区间才能说明换模型、换 prompt 是真变好还是噪声。上线走灰度与 A/B,护栏指标兜底;简历里的「效果提升」也要过这一关 —— 和 few-shot 基线比过没有、样本量够不够。

也叫:回归测试 · A/B 实验 · 配对检验 · McNemar · 置信区间 · 灰度 · 护栏指标 · 基线对照 · 效果量化

五、统计关:「涨了两个点」是不是结论出自 T5-1

第一步,先算置信区间。 单个比例的样本量公式:

原文示意
n = z² · m̂(1 - m̂) / ε²
(z=1.96 对应 95% 置信;m̂ 是预期的指标值;ε 是可接受的误差半径)

95% 置信、误差 ±5%、预期准确率 80%  →  n ≈ 246

反过来算:n=100、基线 80% 时,95% 置信区间大约是 ±7.8 个百分点。 涨 2 个点连半个置信区间都没走出去。

第二步,别用独立比例的算法。 上面那个 ±7.8pt 是「两组独立样本」的口径,而评测通常是同一套题、两个配置各跑一遍——这是配对数据。配对检验只关心结论发生翻转的那些题

数据形态 该用的检验
二元(对/错、pass/fail) McNemar
连续分(0.0–1.0) 配对 t 检验
Likert(1–5) Wilcoxon 符号秩

举例:100 题里 90 题结论相同,剩下 10 题 A 对 B 错 6 条、A 错 B 对 4 条——远不显著;9 比 1 才开始有话说。同样 n=100,配对检验能分辨的差异比独立比例小得多——「评测集不大也能用」的前提,就是你得会用配对检验。

第三步,模型自己也是方差源,而且 2026 年你按不住它。

按已冻结的口径 7,Opus 4.7+ / Sonnet 5 上传非默认的 temperature / top_p / top_k 会直接返回 400 —— temperature=0 这条老路已经没了。这意味着单次跑分不再是「确定性结果」,而是一次采样。正确做法是:

K = 3~5
for cfg in [baseline, candidate]:
    for seed in range(K):
        scores[cfg][seed] = run(eval_set, cfg)
report  mean(scores[cfg]) ± std(scores[cfg])          # 每个配置报均值和方差
mcnemar(correct[baseline], correct[candidate])        # 只看结论翻转的题

一句话:没有配对检验、没有方差的「涨了两个点」不是结论,是噪声。


以上节选自T5-1 评测集建设与离线/在线的鸿沟,读全文能看到前后语境。

延伸阅读

考这个知识点的题2

会连带问到15