“编者按:本文内容来自知名分析机构SemiAnalysis的深度剖析,它指出了OpenAI在SWE-bench基准测试中可能存在的作弊问题。
来自 SemiAnalysis
很高兴看到OpenAI最近修正了他们图表上的乌龙,在其柱状图中更准确地反映了之前69%的SWE-bench验证分数,并展示了GPT-5所取得的74.9%的惊人成绩。
然而,故事并非表面上看起来那么简单。关键在于,OpenAI并没有在SWE-bench验证集上运行全部500项测试。
分数背后的疑点
74.9%的得分,是基于500道题吗?计算一下,这意味着答对了374.5道题。
但如果我们仔细查看脚注,就会发现OpenAI清楚地说明,他们只在总共500项测试的SWE-bench验证数据集中运行了 477 项。
这到底是为什么?
当我们直接将其与Anthropic公司的Claude Opus 4.1对比时,后者在SWE-bench验证集上取得了74.5%的成绩。
表面上看,GPT-5以74.9%的微弱优势胜出。
但问题是,那凭空消失的23道题是什么?它们去哪了?
竞争对手的质疑
Anthropic公司过去就曾指出过这种差异。在他们8月5日发布Opus 4.1的博客文章的一条尾注中写道:
我们报告的所有Claude 4模型的分数,都是基于完整的500道题。而OpenAI模型的分数是基于一个包含477道题的子集报告的。
这并非最近才发生的事。
早在今年四月发布GPT-4.1时,OpenAI就承认过他们的分数遗漏了500道题中的23道,理由是这些题目的解决方案无法在他们的基础设施上运行;
如果将这些题目保守地记为0分,那么54.6%的得分就会降至52.1%。
SWE-bench 与 SWE-bench验证集
那么,SWE-bench和SWE-bench验证集究竟有什么区别?
我们可以借助OpenAI自己的解释,因为正是他们从原始的SWE-bench中创建了验证集。
具体来说,OpenAI在测试中发现,一些SWE-bench任务可能难以甚至不可能被解决,这导致SWE-bench基准系统性地低估了模型自主进行软件工程的能力。
因此,OpenAI雇佣了93名软件开发人员,阅读并标注了来自SWE-bench的1,699个样本,从而制作出了SWE-bench验证集。
其结果是一个评分系统,每个样本都根据一个标准被评为0、1、2或3分。
需要说明的是,SWE-bench的问题基本上就是一些公开软件仓库(例如astropy、django、matplotlib、requests、pylint、pytest、scikit-learn等项目)上的公开GitHub问题。

模型需要能够通过提交一个代码合并请求(PR)来解决这个问题,这个PR要能被提出问题的用户接受,并且能通过该项目仓库中的所有测试。
评分标准与筛选过程
使用OpenAI的评分标准,SWE-bench中的每个问题都得到了一个从0到3的标注。
0代表问题清晰; 1代表需要一些解读; 2代表问题模糊或有歧义; 3则代表在没有更多信息的情况下不可能解决。
最终的结果是产生了一个名为“SWE-bench验证集”的子集,其中所有问题都由人类标注者评为0、1或2分,所有评为3分(不可能解决)的问题都被移除了。
然后,通过随机抽样,构建了一个包含500道题的最终数据集。这听起来非常合理。
无法回避的核心问题
那么问题来了,既然已经有了一个经过精心筛选和验证的500道题的数据集,为什么OpenAI在发布GPT-5时,仍然只运行了其中的477项?
我们并不确定。
OpenAI的解释是:所有SWE-bench的评估运行都使用了一个固定的、包含477个已验证任务的子集,这些任务已在我们的内部基础设施上得到验证。
一个更公正的视角
说到底,要想最清晰地了解当前各大模型在这个基准测试上的表现,也许应该看swebench.com
网站上的官方SWE-bench排行榜。
在那里,没有所谓的验证集,工具使用受限(仅限bash),而且大部分的测试框架都是公开可见的。
在这个更纯粹的基准上,截至5月14日的Claude 4 Opus检查点版本,其表现是领先于GPT-5的。
参考资料:https://x.com/SemiAnalysis_/status/1955028150217478177
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!