模型对比的单次跑分不可信:我用 5 次重跑验证了一次「险胜」
作者因读者质疑重做了完整的 290 次试验,发现原对比结论因采样不足存在统计错误,揭示了 LLM 对比评测中多次运行取均值的重要性。
作者因读者质疑重做了完整的 290 次试验,发现原对比结论因采样不足存在统计错误,揭示了 LLM 对比评测中多次运行取均值的重要性。
文章发布十一个小时后,一位名为 Vinh Nguyen 的读者留下了一条评论,击穿了文章标题:
FATAL 0 对 FATAL 0 在数量上持平,但在 29 道题各跑一次的意义上并非如此。[……] 29 次单独试验中出现零次 fatal,与真实 fatal 率在 95% 置信度下最高可达约 10% 的情况相符。[……] 每个模型将整套题目跑五次并比较每题 fatal 率,就能知道这个平局是真的还是仅仅因为一次试验的分辨率不足,而且成本与已经跑过的那次相当。
他指出的是我自己发布时没注意到的自相矛盾。我自己在文章的温度部分写道:"最终分数应来自多次运行,报告为通过率。"而整个对比本身——"恰好以一题险胜"的标题——却是基于每个模型各跑一次的结果。
无从辩驳。于是我重跑了。
29 道题 × 5 次全新运行 × 2 个模型 = 290 次试验。测试框架与原始版本相同,温度也未固定——正是因为要测量这种方差。每份原始答卷都保存了。这次全部 290 次都完成了(原始的昂贵模型那轮因为速率限制有一道题没跑完)。
Haiku (cheap) Sonnet (3x price)
trials 145 145
FATAL 0 0
RISKY 1 1
MISSED 0 0
HARMLESS 4 5
clean 140/145 139/145
per run 29·28·27·28·28 28·28·28·28·27
那个表格里有两件事摧毁了我原来的立论。
原来的对比就落在了一道题上——盖子。客户写道:"10 箱透明 PET 300,和 5 袋白色盖子。"目录中有四个盖子可选:
CAP-300-W white lid, 300-neck (fits the PET-300 bottle)
CAP-300-BK black lid, 300-neck
CAP-500-W white lid, 500-neck (fits the PET-500 bottle)
CAP-500-BK black lid, 500-neck
"白色"缩小到两个选项——但用哪个瓶口?这个线索就在同一句话里:客户订购的是 PET 300 瓶子,没人会把 300 瓶子配 500 盖子。昂贵模型读取了这个上下文并确认了 300 白色盖子——我把这算作胜利。便宜模型则问"哪个瓶口?"来替代。
在五次全新运行中,昂贵模型再也没这样做过。五次中零次确认——它每次都问"哪个盖子?"。唯一一次产生这个致胜确认的模型是便宜模型,五次中跑了一次。
所以我标题所依据的一题差距在重新测试的瞬间就消失了。这从来就不是两个模型之间的真实能力差距。它只是一次掷硬币,恰好在我跑了一次考试的那天落向了昂贵模型——而我把这一次掷硬币当作了结果发表。
每个模型在 145 次中产生了一次 RISKY——等级为"确认了模糊的东西;这次对了,下次 fatal"。
Haiku,第 3 次,关于"老样子,3 箱":订单历史中有两个商品都符合条件,它只把其中一个呈为候选而非两个
Sonnet,第 5 次,关于极度缩写的"250 5":五个产品以 250 开头,它还是确认了其中一个
两道题都带有 rule_decidable: false——这是读者说服我加入的 flag:"仅靠参考数据能把答案锁定到唯一一个吗?"在可判定的问题上,轮次间的摆动偏向了安全方向——额外的澄清问题,仅此而已。危险的方向——确认无法判定的东西——只出现在被 flag 标记的题目上,每个模型约 0.7% 的试验中。
这个 flag 不仅仅审核了我的答案。它还预测了轮次间方差在何处变得危险。
那篇文章的结论——fatal 错误打平,所以用便宜模型——依然成立。被替换的是它所站的证据。
旧证据是一次运行:我跑了一次考试,fatal 错误 0 比 0,整个可见差距就是那道盖子题。盖子题出局了——那是运气。取代它的:fatal 错误在每个模型 145 次试验中保持 0 比 0,RISKY 也打平,1 比 1。根据三分法则,145 次试验将真实 fatal 率的 95% 上界从约 10%(0/29 时)压低到约 2%。这个平局不再是一个幸运的下午——而是一个可测量的结果。打成平局就选便宜的:结论成立。
站不住脚的是我发表的差距。便宜模型的干净计数在每次运行中在 27 到 29 之间波动,昂贵模型是 27 到 28。在任何单次运行中,任一模型都可能以一两题的差距排名第一。一题的一趟差距低于这次考试的分辨率——这正是那条评论在我花一分钱测量之前就说过的话。
"零 fatal"在说明试验次数之前毫无意义。0/29 将真实率上限压在约 10%;0/145 压到约 2%。五次复测成本与第一次运行大致相同,但将结论的不确定性缩小了五倍
方差也有等级。在可判定的问题上它偏向安全(过度提问)。危险的偏移——确认无法判定的——只出现在被预先标记为规则不可判定的问题上
考试再次抓住了它的作者。这次不在答案里,也不在评分里——而在我对单次运行结果的过度自信解读。
P.S. All 290 raw answer sheets, the 5× driver, and the aggregator are in the repo → github.com/ramses203/llm-test-harness