ARTICLE / ai
SWE-bench 被停报:看编码榜单先查基准
OpenAI 在 2026 年 2 月停止报告 SWE-bench Verified 分数。几个月后,它又审计了作为替代方案的 SWE-Bench Pro,估计约 30% 的任务存在缺陷。
对还在看榜单做技术选型的人,这两个数字指向同一个问题:编码基准的分数能不能代表真实能力,不只看模型得了多少,还要看题目和测试本身是否可靠,以及模型是否在训练中接触过相关材料。
74.9% 到 80.9%:放缓的分数引出审计
OpenAI 的文章首先提到,SWE-bench Verified 上前沿模型的水平在最近六个月从 74.9% 提升到 80.9%。增幅放缓后,问题随之出现:剩下那些没解出的题,是模型能力不足,还是数据集本身存在问题?
OpenAI 审计了 138 道 o3 在 64 次独立运行中没有稳定解出的题,每道题至少由六名有经验的软件工程师独立审阅;只要有一位专家标记问题,再交给另一个团队复核。
结果显示,138 道题中有 59.4% 存在测试设计或问题描述上的实质缺陷,足以让这些题对最强模型或人而言都极难、甚至无法完成。
其中,35.5% 是测试过窄,强制要求特定实现细节,功能正确的提交也可能被判错;18.8% 是测试过宽,检查了问题描述中没有要求的额外功能;其余 5.1% 属于未能归入上述两类的问题。
一个 pylint 任务中,原始 PR 引入了 get_annotation,测试也直接导入这个名称,但题目描述从未提到它。模型实现了功能,却可能因为缺少这个特定函数名而失败。另一个 sympy 任务的原始 PR 修复了 nthroot_mod 的三个独立 issue,题目描述只覆盖其中一个,测试却覆盖三个;模型按描述修好一个,仍可能失败。
这些缺陷不是随机噪声。测试越窄、描述与测试错位越严重,模型就越需要猜中题目没有明确要求的实现细节,而不是仅按描述完成功能。
第二个问题:训练材料与测试题重合
SWE-bench 的题目来自 12 个开源 Python 仓库中已经解决的 issue,而相关代码库和发布说明公开、广泛使用,也常被模型厂商用于训练。题目、原始修复和测试因此都可能出现在训练数据中。
OpenAI 在实验中测试的前沿模型,都能够复现原始人工修复补丁,也就是作为标准答案的 gold patch,或逐字复现某些题目的具体描述。OpenAI 据此判断,这些模型在训练中至少接触过部分题目或答案。
他们还设计了一套自动化探针:把题目 ID、描述、gold patch 和 PR 测试交给 GPT-5,让它在十五轮对话中变换系统提示、用户提示、前置补全和引导策略,并根据前一轮结果调整策略,逐步套出任务细节。
在这套测试中,GPT-5.2 给出一小段题目描述后,就输出了确切的 gold patch,包括准确的类名、方法名和新引入的提前返回条件。Gemini 3 Flash 只拿到题目 ID,也能逐字输出题目描述和 gold patch 中的内容,包括用于校验用户名的正则表达式和改动的确切行号。
OpenAI 自己的模型也出现了类似情况。GPT-5.2 解开了 31 道被认定为几乎不可能完成的题;其中一个 Django 任务的测试要求题目未提及的新参数 edit_only,而模型的思维链中出现了相关发布说明的信息,并正确指出该参数在 Django 4.1 中引入。
这不能把每一分提升都归因于污染。OpenAI 没有量化污染贡献了多少分数,其能够支持的判断是:至少有一部分提升可能反映模型在训练期接触该基准的程度,因此 Verified 的分数已不能可靠代表真实软件开发能力的进步。这也是 OpenAI 停报该分数的原因。
替代方案也经过了审计
SWE-Bench Pro 的设计目标是让任务覆盖更长的时间跨度、更接近真实的 agentic 编码。它包含更长、更现实的任务,但在 731 个任务的公开子集上,前沿模型通过率在八个月里从 23.3% 升至 80.3%。
OpenAI 随后采用数据点分析流水线检查模型尝试记录、任务元数据和失败轨迹,批量筛出可能存在缺陷的任务;每道被标记的题再经过多轮调查 agent 复核,并由五名资深软件工程师独立评审,分歧再升级调查。
流水线标记出 200 道有问题的题,占 27.4%;人工标注识别出 249 道,占 34.1%。问题主要有四类:测试过严且强制了提示未要求的具体实现,提示遗漏了隐藏测试要求且无法合理推断的内容,测试覆盖不足导致不完整修复也能通过,以及提示与测试要求相反。
综合这些结果,OpenAI 估计约 30% 的 SWE-bench Pro 任务存在缺陷。这也说明,换到一个更新、更贴近真实任务的基准,并不能自动消除测量误差。
OpenAI 的审计还展示了一种分工:用 agent 扩大数据质量检查的规模,再由工程师复核关键判断。前者适合批量筛查,后者负责处理分歧和确认题意是否公平。
看榜单时,多检查一层
SWE-bench Verified 最初由专家审查 1,699 道题、每题由三人独立评审,筛出 500 道任务。它比原始版更干净,但后续审计仍发现残留缺陷。
这给看编码榜单的人提出三个具体问题。
第一,基准最近是否经过审计? 审计覆盖了哪些任务,坏题比例是多少,这些信息决定分数能支持多强的判断。对 OpenAI 推荐的 SWE-bench Pro,也不能跳过这一步。
第二,题目是否可能进入训练数据? 来源于公开仓库、发布说明和公开题解的任务都有暴露风险。污染检查、严格的训练数据过滤,以及用 canary string 等方式标记公开数据,都是降低风险的手段。
第三,私有任务能否降低污染风险? OpenAI 正在投入由领域专家私下编写任务的基准,例如 GDPVal;这种任务减少公开暴露,但成本也更高。降低污染风险的一条关键路线,是使用模型未接触的数据或私有原创任务,并配合训练数据过滤等配套措施,而不是只有唯一解法。
基准分数也需要检查有效期
SWE-bench Verified 从 2024 年成为广泛使用的标准指标,到 2026 年被评测方停报,只用了不到两年。SWE-Bench Pro 接手后,公开子集的通过率从 23.3% 升至 80.3%,但约三成任务仍有缺陷。
因此,看到编码模型的新分数时,更有用的判断不是只看它涨了多少,而是看这个数字经过谁验证、题目是否公平、模型是否可能见过相关材料。分数仍然有用,但它需要审计记录和污染控制一起支撑,才足以帮助技术选型。