回归测试与 A/B 的统计关
「涨了两个点」不是结论:同一评测集上的配对检验(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 道
- Q1-03temperature 和 top_p 分别在调什么?什么场景调低、什么场景调高?
- Q1-08说说你常用的 Prompt 技巧;few-shot 什么时候有效、什么时候反而有害?
- Q1-09CoT 为什么有效?推理模型时代还需要手写 CoT 吗?
- Q4-01SFT、RLHF、DPO 分别在做什么?用一条主线把后训练串起来
- Q4-07什么问题该微调、什么问题该 RAG、什么问题写好 prompt 就够了?
- Q4-08基座模型半年一大版,你去年微调的模型还有价值吗?微调的护城河在哪?
- Q4-09微调数据从哪来?怎么保证质量?多少条够?
- Q5-01AI 应用上线前怎么评测?评测集怎么建、多少条起步?
- Q5-02离线评测分很高,上线效果差——可能出了什么问题?
- Q5-04主观任务(文案 / 对话质量)怎么评?人工评测怎么设计才靠谱?
- Q5-05Agent 的轨迹评估和单轮问答评估有什么不同?
- Q6-02vLLM 为什么快?PagedAttention、continuous batching 解决什么?
- Q6-06什么是 LLM 网关?限流、降级、多模型路由怎么设计?
- Q6-08模型路由(简单问题走小模型)怎么判断「简单」?
- Q7-07AI 写的代码上线出了事故——复盘时你怎么说清流程缺了哪几道闸?