OpenAI SWE-bench Verified 发布:经人工验证的基准提升软件工程评估
TL;DR
OpenAI 发布了 SWE‑bench Verified,这是 SWE‑bench 软件工程基准的经人工验证的 500 条样本子集,去除了模糊的问题和不公平的单元测试,使得对 AI 模型自主编码能力的评估更加可靠;GPT‑4o 在这些样本中的解决率为 33.2%,是原基准得分的两倍多。
SWE‑bench 背景
SWE‑bench 对大型语言模型(LLM)进行评估,使用来自 12 个开源 Python 仓库的真实 GitHub issue。每个测试样本提供问题描述和仓库代码;模型必须编辑代码,使得相关的 FAIL_TO_PASS 单元测试(最初失败)通过,同时所有 PASS_TO_PASS 测试仍保持通过。该基准已成为衡量自主软件工程能力的标准,截至 2024 年 8 月 5 日,顶级代理在完整集合上达到 20%,在更易的 SWE‑bench Lite 上达到 43%。
为什么原基准需要改进
OpenAI 识别出三类系统性问题导致 SWE‑bench 低估模型性能:
- 过于具体或不相关的单元测试 – 某些
FAIL_TO_PASS测试要求的行为在 issue 描述中未提及,导致正确的解决方案被拒绝。 - 问题陈述不完整 – 模糊的问题描述使模型缺乏足够信息来生成有效的修复。
- 环境设置脆弱 – 难以复现仓库环境导致测试无论解决方案如何都失败。
一个示例是 scikit-learn__scikit-learn-14520 样本,issue 中提到 copy 参数被忽略,但所需的测试还要求出现特定的 DeprecationWarning 信息,而该信息在 issue 文本中根本未出现。若无法获取隐藏测试,代理就无法可靠地满足该要求。
SWE‑bench Verified:经人工验证的子集
为了解决这些缺陷,OpenAI 发起了大规模标注活动:
- 标注者 – 93 位专业 Python 开发者筛选了 1,699 条随机 SWE‑bench 样本。
- 标注标准 – 每个样本获得四个严重程度标签(0‑3),用于评估问题陈述不完整和单元测试公平性,并给出难度估计(经验丰富的工程师解决所需时间)。
- 共识过程 – 每个样本由三位独立标注者标记;保留最高的严重程度标签,以确保过滤的保守性。
- 过滤标准 – 任何在任一维度上严重程度标签 ≥ 2,或被标记为重大问题的样本,都被移除。
最终得到的 SWE‑bench Verified 集合包含 500 条高质量样本,不再存在上述问题。难度标注显示,约有 196 条“简单”任务预计耗时不足 15 分钟,45 条“困难”任务预计耗时超过一小时。该数据集取代了原始的 SWE‑bench 和 SWE‑bench Lite。
新评估工具
OpenAI 与 SWE‑bench 作者合作,发布了基于 Docker 的评估工具,简化了环境搭建并提升了未来基准测试的可复现性。
模型在 SWE‑bench Verified 上的表现
使用新数据集,OpenAI 对 GPT‑4o 进行了多种此前在原排行榜上表现良好的开源脚手架的评估:
- 最佳脚手架 – GPT‑4o 在 SWE‑bench Verified 上实现了 33.2% 的解答率,超过了原 SWE‑bench 上 16% 分数的 两倍以上。
- 开源脚手架改进 – Agentless 脚手架作为开源系统,在数据集清理后也将分数从 16% 翻倍至约 33%。
各难度层级的表现
在 每个难度区间 中都观察到了性能提升,而不仅仅是因为数据集中包含了更多简单任务。这表明过滤过程去除了真正不可行的样本,而不是仅仅改变了难度分布。
对 AI 准备度的影响
SWE‑bench Verified 在 OpenAI 的 Preparedness Framework 中作为更可信的度量,用于跟踪模型在中等水平的自主风险。准确的基准对于以下方面至关重要:
- 检测真实的能力提升与评估伪象之间的差异。
- 在模型接近更高自主水平时指导风险评估。
- 向社区传达对严格基准策划的需求。
OpenAI 强调了三点要点:
- 深入理解基准 – 即使是精心设计的套件也可能隐藏系统性偏差,误导模型能力的评估。
- 生态系统认知 – 外部脚手架的进步可能显著影响分数;持续的重新评估至关重要。
- 认识局限性 – 静态的、来源于公共 GitHub 的数据集可能存在数据污染,并且只覆盖了自主风险的狭窄部分,因此必须辅以其他评估手段。
数据可用性
所有标注、已验证子集以及新的 Docker 工具均已公开发布。研究人员可通过原帖提供的链接下载这些资源。
作者与致谢
该工作由 Neil Chowdhury、James Aung、Chan Jun Shern、Oliver Jaffe、Dane Sherburn、Giulio Starace、Evan Mays、Rachel Dias、Marwan Aljubeh、Mia Glaese、Carlos E. Jimenez、John Yang、Leyton Ho、Tejal Patwardhan、Kevin Liu 和 Aleksander Madry(贡献相等)完成。致谢包括原 SWE‑bench 创建者、Preparedness 团队以及众多使 SWE‑bench Verified 成为可能的标注者。
引用: OpenAI, Introducing SWE‑bench Verified, August 13 2024. URL: https://openai.com/index/introducing-swe-bench-verified
Sources
- OriginalIntroducing SWE-bench Verified