SWE-bench Verified
SWE-bench Verified是SWE-bench基准的人工校验子集,由SWE-bench团队与OpenAI合作,从原数据集里筛选出500条任务,用于评测语言模型和编程智能体解决真实软件问题的能力。与完整版相比,它去掉了题面不清、单元测试不可靠的样本,因此成为比较编程模型时较常用的评测集。不过后续审计显示,其中仍有测试用例缺陷和训练数据污染问题。
定义
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: Evaluating AI on Real-World Software Engineering [引用日期2026-10-29]
- What is SWE-bench? | AI21 [引用日期2026-10-29]
- SWE-bench:基于语言模型的软件问题修复基准项目 [引用日期2026-10-29]
- SWE-bench Verified – Benchmark review [引用日期2026-10-29]