跳到正文
IFAI

AI科研

OpenAI 推出 SWE-bench Verified:500 道人工核验的编程评测题

首次发布 传播指数 38

OpenAI 联合原作者推出 SWE-bench Verified 基准测试。他们组织 93 名专业开发者人工核验,剔除描述不清和测试过于苛刻的样本,最终筛选出 500 个高质量题目。这意味着评估 AI 解决真实软件问题的表现将更加客观可靠。

OpenAI 推出 SWE-bench Verified:500 道人工核验的编程评测题
图:openai.com

如果你这几个月一直在看各种 AI 编程助手打榜,应该对 SWE-bench 这个名字不陌生。它把 GitHub 上的真实开源 Bug 拿来给大模型修,修好了就算得分,一直被当成衡量 AI 编程能力的黄金标准。

不过,这个常被大家挂在嘴边的测试集,本身其实有不少大坑。8 月 13 日,OpenAI 联手 SWE-bench 原作者发布了一个清洗版数据集 SWE-bench Verified,直接挑明了原版测试的诸多不合理之处。

考题里全是「超纲要求」和「环境配置坑」

AI 在真实的开发环境里究竟能帮多大忙,是 OpenAI 评估模型自主性风险的关键一环。但他们在测试时发现,旧版 SWE-bench 会严重低估大模型的能力,原因往往不在模型太笨,而是题目出得太刁钻甚至不合理。

OpenAI 总结了三大硬伤。首先是单元测试过于严苛,甚至测试内容跟题目描述根本对不上。比如在 scikit-learn 的一个问题里,要求修复一个被忽略的参数,但原作者在后续代码测试里,硬性要求模型抛出一个弃用警告,而且报错文案必须和维护者讨论出来的文字一模一样。题目描述里完全没写这事,模型又看不到测试用例,按常理修好也会被判零分。

其次是大量 GitHub Issue 的问题描述过于模糊,连资深程序员看了都摸不着头脑,根本不知道预期的正确行为是什么。

最后是原本的环境部署非常不稳定。很多时候模型写出的代码完全正确,却因为测试容器或依赖环境报错,直接被判不及格。

93 位程序员下场挑刺,砍掉了近七成题目

为了给大模型一个公平的考场,OpenAI 找来了 93 位经验丰富的 Python 开发者,对原版测试集里的 1699 个随机样本进行了逐一人工审查。

审查标准很严,每个题目都分配给 3 名开发者独立把关。只要 3 个人里有任何一位认为题目描述严重模糊,或者单元测试会误杀正确代码,这个题目就会被直接淘汰。

人工筛查的结果非常惊人。有 38.3% 的样本存在描述不清的问题,更有高达 61.1% 的样本包含不公平的单元测试。整体算下来,原版 SWE-bench 里竟然有 68.3% 的题目被直接剔除。

团队最终保留了 500 个完全合格的高质量样本,构成了 SWE-bench Verified。其中包含 196 个 15 分钟内能搞定的简单任务,以及 45 个需要 1 小时以上的复杂难题。同时,他们还与原作者一起推出了基于 Docker 的全新评估框架,彻底解决环境跑不通的问题。

在这个更干净的考场上,模型的成绩立刻好看许多。GPT-4o 拿到了 33.2% 的成绩,而开源框架 Agentless 的得分直接从之前的 16% 翻倍。

为什么重要

对开发者和企业来说,这一步厘清了过去很多人对 AI 编程能力的困惑。以前看着榜单上 10% 或 20% 的解决率,大家往往觉得大模型离实际干活还早得很。现在 Verified 版本把人为制造的绊脚石搬开后,大家可以更直观、更公允地看清模型在真实修 Bug 场景下的实际水平,评估它到底能不能接入日常工作流。

对整个行业而言,这次清洗树立了一个新标杆,并且它直接取代了原有的 SWE-bench 和 SWE-bench Lite。过去半年各家都在死卷这些基准,甚至为了微小的百分点调整提示词,但如果考题本身就不及格,刷分就成了无用功。OpenAI 带着原作者亲自给榜单挤水分,会倒逼行业转向更严密、更真实的数据集建设。

我们认为 OpenAI 这次的操作非常聪明。他们既没有另起炉灶重新造一个自说自话的榜单,也没有硬靠算法粉饰自家模型的能力,而是联手原作者用严谨的人工复核去修正既有标准。虽然一次性砍掉近七成的样本看起来有点矫枉过正,可能会漏掉一些真正需要多轮沟通的模糊场景,但对于一个基准测试来说,宁可考题少一点,也绝不能让不合理的判卷标准继续误导大家。

来源 (1)

  1. [1]
    openai.com(在新标签页打开)原文openai.com

每日 AI 内容精选