[控场AI]
· 4 分钟阅读· 2,335 字

SWE-Race基准测试:188个真实并发Bug考验AI编程智能体

SWE-Race基准测试:188个真实并发Bug考验AI编程智能体

SWE-Race用188个真实Python并发Bug评测AI编程智能体,GLM-5.3 Flash以85%领先,难题才是真正分水岭。

SWE-Race是一个专注于并发缺陷的AI编程基准,从约100个Python项目的真实PR中提取了188个竞态条件、死锁、任务取消异常等类型的Bug。评测在无网络的隔离容器中进行,仓库被削减至单一commit以防止模型从git历史获取答案,并对约11000条智能体命令进行了全面审计。测试结果显示GLM-5.3 Flash单次尝试得分85%,GPT-5.6 Luna得分81%,但模型间的真实差距几乎完全集中在困难任务上——简单任务各模型得分均接近100%,而难题部分分差悬殊。团队还对数据污染进行了统计检验,发现较早Bug解决率高出约9个百分点,但置信区间跨零,结论保持审慎。该项目已在Hugging Face开源,提供了一套可复现、抗污染的高难度编程评测范式。

并发Bug为何成为AI编程的试金石

当前的AI编程基准测试大多聚焦于相对孤立的功能实现或常见的逻辑错误,但真实工程中最棘手的问题往往藏在并发代码里。竞态条件(race condition)、死锁(deadlock)、任务取消异常(cancellation issue)这类问题难以稳定复现,调试成本高,连资深工程师都头疼。SWE-Race 正是针对这一痛点推出的新基准。

据该项目在 Reddit 机器学习社区的发布说明,团队从约 100 个 Python 项目中已合并的 PR 里提取了 188 个真实的并发缺陷。这些都不是人为构造的玩具问题,而是开发者在实际维护中真正修复过的 Bug,因此更能反映编程智能体在生产环境下的能力水平。

竞态条件是指多个线程或协程在没有适当同步机制的情况下并发访问共享资源,最终结果依赖于调度顺序的不确定性。死锁则发生在两个或多个执行单元互相等待对方释放资源,导致程序永久阻塞。任务取消异常(cancellation issue)在 Python 的 asyncio 生态中尤为常见——当协程被取消时,若未正确处理 CancelledError,可能导致资源泄漏或状态不一致。这三类问题的共同特征是非确定性:它们在本地开发环境中往往沉默,只在特定的负载或时序下才会触发,这使得传统的单元测试很难覆盖,也让 AI 模型难以通过简单的代码模式匹配来识别和修复。

严谨的评测协议:防作弊是核心设计

这套基准最值得称道的地方在于其对数据污染(contamination)和作弊路径的防范。每个任务由项目自带的测试用例进行评分,运行在无网络连接的容器中,并且仓库被削减到单个 commit,使得智能体无法从 git 历史中直接找回修复方案。

团队对智能体运行的全部约 11000 条命令做了审查,发现 69 次尝试访问网络的操作全部失败。其中 GLM 模型甚至尝试了 50 次通过 pip 下载它正在修复的那个库的已修复版本——这一细节恰恰暴露了开放环境下模型可能走的捷径,也印证了隔离沙箱的必要性。

评测协议遵循 DeepSWE 的 100 步设定。此外,有一半任务是私有的,用于交叉验证。目前公开集与私有集上三个模型的得分表现一致,说明结果具备可信度。

数据污染(data contamination)是当前大模型基准测试中最核心的信效度威胁之一。当训练语料中包含测试集的题目或答案时,模型的高分可能只反映记忆能力而非真实推理能力。对于 GitHub 上的开源 Bug 修复来说,这一风险尤其突出——所有 PR 的 diff 都是公开的,模型完全可能在预训练阶段"见过"正确答案。将仓库削减到单个 commit(剥离 git 历史)的设计,从工程层面切断了模型通过 git log 或 git show 直接检索修复内容的可能性,是针对这一作弊路径的直接防御。DeepSWE 的 100 步协议则限定了智能体的最大操作步数,防止通过穷举尝试规避难度。

三款模型的较量:差距藏在难题里

测试涉及三个模型,结果呈现出有趣的格局。在每个任务只尝试一次的条件下,GLM-5.3 Flash 得分 85%;在尝试两到三次的情况下得分 82%,这与 GPT-5.6 Luna 的 81% 处于误差范围之内。排行榜现在为每个分数标注了尝试次数和置信区间,这种透明度在同类基准中并不多见。

真正拉开差距的是难题部分。大约一半的任务对所有模型来说都很简单,得分接近 100%;而另一半难题上,三个模型分别拿到 50%、45% 和 23%。换句话说,模型之间的能力差异几乎完全由困难任务决定。这也提醒我们:单看总分容易被大量简单任务稀释,真正有区分度的是那些硬骨头。

关于数据污染的审慎结论

由于每个修复都公开存在于 GitHub 上,团队特别关注训练数据污染的可能性。他们将较早的 Bug(2026 年之前)与规模相近的较新 Bug 做了对比,发现较早的问题被解决的概率高出约 9 个百分点。

不过团队保持了难得的克制:这一差异的置信区间跨越了零点,意味着目前还不能据此下定论。这种不急于得出结论、如实呈现统计不确定性的态度,恰恰是基准测试应有的科学素养。

置信区间跨越零点,在统计学上意味着观测到的 9 个百分点差异在当前样本量下无法排除偶然性——即"零效应"仍是一个合理的假设。这并不代表污染不存在,而是说现有数据不足以支持强结论。正确的科学态度是:报告观测值和不确定性区间,留待更大规模的验证。相比之下,许多基准测试论文倾向于只报告点估计而隐去置信区间,或在区间较宽时仍做出肯定性表述。SWE-Race 团队在此处的克制,与其整体设计中对方法论严谨性的重视一脉相承。

对AI编程评测的启示

SWE-Race 的价值不仅在于一组排行榜数字,更在于它提供了一套可复现、抗污染、针对高难度场景的评测范式。并发缺陷作为软件工程中最难自动化处理的类别之一,为衡量编程智能体的真实能力提供了更有说服力的标尺。

团队已将任务数据集开源在 Hugging Face 上,完整的智能体运行记录也可在其官网查阅。项目方同时向社区征集反馈,并询问接下来应该测试哪些模型。对于关注 AI 编程能力边界的开发者和研究者而言,这是一个值得持续追踪的开放项目。

数据来源:Reddit 机器学习社区发布帖,数据集见 Hugging Face(evaligo/swe-race),结果详见 labs.evaligo.com/swe-race。

分享:

相关推荐