SWE-bench Verified

义项:SWE-bench人工校验子集
SWE-bench Verified

SWE-bench Verified是SWE-bench基准的人工校验子集,由SWE-bench团队与OpenAI合作,从原数据集里筛选出500条任务,用于评测语言模型和编程智能体解决真实软件问题的能力。与完整版相比,它去掉了题面不清、单元测试不可靠的样本,因此成为比较编程模型时较常用的评测集。不过后续审计显示,其中仍有测试用例缺陷和训练数据污染问题。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

SWE-bench Verified是从SWE-bench测试集中人工筛选出的500条实例构成的子集,定位是为编程智能体和语言模型提供更可靠的评测数据。它的母集包含2294条任务,均取自公开GitHub仓库中的真实问题;Verified只保留标注者确认题面清晰、测试补丁正确、在给定信息下可解的部分[1]。

该子集由SWE-bench团队OpenAI合作完成,官方将其描述为在经过人工过滤的实例上评测的结果集合,并配套维护单独的排行榜。相比完整数据集,它的规模小、题面质量较齐整,因此在模型能力对比中被频繁引用[1]。

原理

每条实例由一个真实GitHub问题描述、一份特定提交状态下的代码库快照、一个参考修复补丁和一组单元测试组成。被测系统只能看到问题描述与代码库,看不到测试内容,需要自行定位缺陷并提交补丁;评分时在隔离环境(通常为容器)中运行测试,若FAIL_TO_PASS测试由失败转为通过、且PASS_TO_PASS测试未被破坏,该实例记为解决[2]。最终成绩以解决实例占全部实例的比例表示[1]。

构建Verified的核心环节是标注。93名有经验的Python开发者参与筛查,先由工程团队手工标注50条样本作为准入测试,标注者通过后才可参与;每条样本由3名不同标注者独立标注,取3人中的最高严重度作为合并结果。标注维度包括题面是否描述不足、FAIL_TO_PASS测试是否会误判正确解法,严重度分为0至3级,2级及以上视为有问题样本。最终凡题面或测试合并标签达到2级的样本,以及被标记其他重大问题的样本,均被剔除。

筛选完成后,难度在1至4小时及超过4小时的样本尽量全部保留,其余从剩余样本中随机抽取,凑足500条。官方也说明,因三人取最高严重度的策略偏保守,剔除过程存在较高的误删率,但换来了对保留样本质量更高的把握。

发展历程

SWE-bench最初发表于2024年的国际学习表征会议,论文题为《SWE-bench: Can Language Models Resolve Real-world Github Issues?》,作者包括Carlos E. Jimenez、John Yang、Alexander Wettig、Shunyu Yao、Kexin Pei、Ofir Press和Karthik R. Narasimhan。

2024年8月,SWE-bench团队与OpenAI的 preparedness 方向合作发布SWE-bench Verified,作为双方合作的第二部分,公布500条经真实软件工程师确认可解的题目[3]。OpenAI同步发布说明,列出标注流程与筛选统计。

官方排行榜随后为Verified单独设榜,并推出仅用bash环境的对比口径:所有模型统一由mini-SWE-agent在一个极简ReAct循环中运行,不提供额外工具或脚手架,以便在同条件下比较语言模型本身。该口径要求注明所用mini-SWE-agent版本,1.x与2.x版本因动作调用方式不同,结果不宜直接比较。

2026年2月,OpenAI发布审计结果,对其中27.6%的任务做了检查,发现59.4%存在会拒绝功能正确提交的测试用例缺陷;官方同时指出前沿模型在训练中已接触过部分题目与解法[4]。Epoch AI据此给出该基准存在缺陷的评价,认为有超过20%的题目存在影响评分的缺陷[4]。

应用

该子集主要用于比较各类AI编程系统,官方榜单收录的对象既包括简单的语言模型循环,也包括检索增强系统和多次采样加审查的复杂方案。研究机构和企业团队常用它衡量智能体框架、测试时计算扩展、best-of-N采样等编排策略的效果,以及跟踪模型迭代带来的能力变化[2]。

在实际评测中,不同评测方会对样本再做取舍。Epoch AI因网络访问、依赖版本兼容等问题排除了16条样本,改用484条运行;部分模型发布方在报告成绩时也曾使用477条或489条的口径,后续版本恢复为全部500条。这类差异说明,跨报告比较成绩时需核对所用样本数与脚手架设置。

局限

经过筛选的题目在题面清晰度上优于母集,但仍不代表真实开发场景。领域集中在少数维护良好的Python开源库,如Django、scikit-learn、sympy等,能否推广到其他语言、文档稀少的代码库或私有软件尚未确定[1]。评测只检验补丁能否通过单元测试,不涉及代码评审是否接受、集成部署是否可行等环节[1]。

测试用例本身存在缺陷。OpenAI的审计发现,被审计任务中有相当比例的测试会拒绝功能正确的提交;Epoch AI此前的评审也估计该基准的错误率在5%至10%之间[4]。测试过严会误判正确补丁,测试过松则可能被取巧方案通过,两者都会使分数偏离真实能力[4]。

污染是另一项结构性限制。由于题目与解法全部公开,静态基准难以避免模型在训练阶段已经见过相关内容;OpenAI的分析认为,该基准上的提升越来越反映训练时的接触程度,而非实际软件开发能力的进步[4]。此外,成绩对脚手架、提示、令牌预算等运行配置高度敏感,不同配置下的数字不能简单并列。

参见

  • SWE-bench —— 本词条所属的完整软件工程评测数据集。

  • OpenAI —— 与本词条构建方合作完成人工标注的机构。

  • GitHub —— 评测任务所取材的真实问题与代码仓库来源。

  • 大语言模型 —— 该子集主要评测的对象。

  • 基准测试 —— 本词条所属的评测方法类别。

词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:30:37Z

历史版本

本条目引用的词条
SWE-bench GitHub OpenAI 大语言模型 基准测试