Senior SWE-Bench与冬季轮胎:基准测试的陷阱
Bad benchmarks and evals: Senior SWE-Bench, napkin math, and winter tires

我分析了三种常见的基准测试,揭示它们背后隐藏的误导性。首先是流行的 napkin math 性能估算表,其中随机内存读写延迟被严重低估,代码逻辑甚至忽略了CPU的并行加载能力。其次是备受推崇的 Senior SWE-Bench 和 DeepSWE,这些 AI 模型评测常被用来证明模型优劣,但数据本身可能存在偏差。最后是关于冬季轮胎的常识,虽然互联网上充斥着“四季胎在低温下变硬”的结论,但这是否经得起推敲?通过拆解这些看似权威的数据,我们能看到基准测试如何轻易误导直觉,提醒我们在面对性能指标和 AI 评测时需保持批判性思维。
为了建立直觉,我喜欢在查看解释之前先思考问题,因此这些内容先展示基准信息,稍后才会给出解释,以便你在看到我的想法前先思考自己的答案。
HN 评论区
46- cb321
Dan 在文章中似乎没有观察到的一点(也许 Jamie 在其他地方提到了?编辑:或者 Dan 自己在别处也提过),就是导致内存延迟基准测试不切实际(至少具有误导性)的同一个问题,通常也会影响哈希表查找基准测试,正如 https://github.com/c-blake/bu/blob/main/doc/memlat.md 中所提到的,可能还影响许多其他基准测试。本质上,CPU 的工作预测/推测执行已经变得如此出色,以至于要测量延迟而非倒数吞吐量,往往需要格外小心。这一切始于 1990 年代(或者更早,比如 Cray 时代),但我猜想这背后一直存在某种教育失败或过度简化的倾向。
当然,在某个“工作层级”上的吞吐量,往往在更高层级上表现为延迟(例如命令到命令的执行)。所以,“什么更重要”可能是吞吐量,也可能是“延迟”。这完全取决于具体情况。:-) 人们经常玩弄这类语义来推销方法、产品、理念等等,而营销往往与真正的理解背道而驰。
- dom96
太棒了。我最近一直在构建自己的模型基准测试,确实很容易把评分搞砸。要设计出一个算法,能把所有单项分数组合成一个在特殊情况下也不会出问题的综合指标,真的难得多。这就是为什么我觉得很多人干脆开始给结果设上限。
- jbellis
虽然总体上我同情“公开代码基准测试不足”这一观点——甚至过去我自己写过,未来可能还会再写——但这里的抱怨是“这些任务与我日常工作中做的不匹配”,而这几乎总是成立的。基准测试的希望在于,通过考察一小部分任务的表现,能够捕捉到具有普适性的特性,我认为对于设计良好的评估来说,至少在方向上这是成立的。
(有个 https://withspecific.com/benchmarks/real-swe,但由于任务是私有的,我们仍然无法真正知道它们代表了什么。)
- stephantul
文中那段关于轮胎的(相关)过渡,让整篇文章的格调提升了不少。我不明白为什么会有这种效果,但确实如此。
- jdw64
我觉得 AI 发展现在正撞上一堵墙。评估由基准测试驱动,但我完全不知道是谁在评估这些基准测试本身的有效性。那种认为只要持续训练和扩大模型规模,就能自动在多个领域获得广泛能力的想法,现在看来几乎站不住脚。
像 Senior SWE-Bench 这样的基准测试,应用了不连续且武断的阈值来评估结果。如果生成的代码在语义上与参考解完全一致,只是稍微超过了长度限制,就判定失败?这似乎是一个真正有缺陷的标准,而且基于 LLM 的评分器本身也显得极不稳定。
老实说,我的印象是 LLM 的进步现在完全由基准测试所主导。但看最近的趋势,Token 价格飞涨,而编程能力在某个模型代际之后并没有展现出巨大的提升。事实上,对比 GPT-6 Astra 和 5.6 SOL,SOL 往往能写出更好的代码。
考虑到这一切,虽然跨多个领域训练可以将各种知识碎片塞进模型,但最终感觉这种方法不可能做到类似从 medieval knowledge(中世纪知识)中推导出相对论这样的事情。