OpenAI 对 SWE-Bench Pro 进行了详细审计,并估计大约 30% 的任务存在问题。SWE-Bench Pro 原本希望用更长、更真实的软件修改任务改进 SWE-bench Verified,但从真实仓库自动构造评测时,仍可能出现描述不完整、测试不可靠或参考补丁与目标不一致等问题。
坏任务怎样污染分数
代码智能体评测通常要求模型读取仓库、实现功能并通过新增测试。如果测试本身错误,优秀模型可能因为做了正确修改而失败;反过来,模型也可能通过迎合测试而获得分数,却没有真正实现需求。
当问题任务占比达到不可忽略的程度,榜单差异就不一定代表模型真实能力差异。尤其两个模型只相差几个百分点时,结果可能被任务噪声、运行环境和评分脚本放大。
企业内部评测应该怎么做
公开 benchmark 仍有参考价值,但不能直接替代自己的任务集。建议至少增加四类检查:
- 人工复核失败样本,区分模型失败、环境失败和任务缺陷。
- 对同一任务重复运行,观察智能体结果方差。
- 除测试通过率外,检查代码质量、回归风险和修改范围。
- 使用来自真实工作流、经过脱敏的内部任务。
还需要固定依赖、容器镜像、工具权限和超时时间,否则评测难以复现。
不要只优化一个数字
如果团队只追求 SWE-Bench 分数,提示词、工具和策略可能逐渐针对评测集过拟合。生产环境更关心的是任务完成率、人工返工时间、错误修改率、Token 成本和执行耗时。
这次审计的核心提醒是:评测本身也是软件,需要版本控制、测试和人工维护。模型能力越接近,评测数据的质量越决定结论是否可信。与其转发排行榜,不如建立能解释每次成功与失败的内部评测流程。