OpenAI 对被广泛用于衡量 AI 编程能力的基准测试「SWE-Bench Pro」进行了详细审计,估计其中约 30% 的任务存在缺陷[1]。该公司此前曾建议社区改用这一基准,如今根据审计结果撤回了这一建议[1]。这一发布再次表明,准确衡量 AI 模型的真实能力并非易事。

SWE-Bench Pro 是什么,OpenAI 为何审计它

SWE-Bench Pro 以程序化方式从软件仓库的功能变更历史中提取任务,要求 AI 模型在不破坏现有功能的前提下,实现能够通过新测试的方案[1]。它的设计目标是通过更长的工作跨度和更贴近现实的编程任务来跟踪智能体编程能力。在公开的 731 个任务上,前沿模型的通过率在短短 8 个月内从 23.3% 跃升至 80.3%[1]。

这次审计有其先例。OpenAI 此前调查了长期作为标杆的「SWE-bench Verified」,发现其存在根本性的设计问题和数据污染(答案混入训练数据的问题),认为它已无法为软件开发能力提供有意义的信号,当时便建议社区转向 SWE-Bench Pro[1]。此次审计则是用同样的质量检查方法来检验这一替代基准[1]。

OpenAI 解释称,评测结果会用于其自身的部署与安全决策,包括基于 Preparedness Framework 的判断。如果评测本身存在缺陷,就可能造成对模型能力的错误认知,影响安全论证和研究优先级[1]。

AI 智能体与人类工程师的双重审计

审计首先通过自动过滤器分析给模型的指令、模型的解答尝试以及用于评分的测试,筛出 286 个疑似存在问题的任务[1]。随后,基于 Codex 的调查智能体对这批任务进行深入排查。这些智能体可以访问任务仓库和运行环境,能够执行测试、检查文件并调查模型常见的失败模式,最终判定由研究人员做出[1]。

与此同时,OpenAI 还组织了由资深软件工程师参与的人工标注活动。每个被标记的任务由 5 名工程师独立评审,意见分歧或置信度较低的案例会升级进行进一步审查[1]。

发现的缺陷主要分为 4 类[1]:强制要求指令中未说明的实现细节、导致功能正确的解答被判为错误的「过于严格的测试」;隐藏测试所要求的规格无法从指令中推断的「规格不完整的指令」;对目标功能检查不足、不完整的修复也能通过的「覆盖率低的测试」;以及引导模型走向与测试要求相矛盾方向的「误导性指令」[1]。

值得注意的是,人类评审员比调查智能体更倾向于将任务判定为「损坏」。在智能体标记的类别中,双方判断有 74% 重合,但对于「覆盖率低的测试」,人类在整个基准的 9.4% 任务中将其选为最主要问题,而智能体管线只有 4.1%[1]。在所有被标记的任务中,没有一个任务的人类多数意见是「未损坏」[1]。

撤回推荐,呼吁社区打造新基准

基于这些结果,OpenAI 估计 SWE-Bench Pro 约 30% 的任务已损坏,并建议模型开发者审慎看待相关成绩[1]。该公司同时撤回了此前采用这一基准的建议[1]。

OpenAI 还谈到了缺陷产生的结构性原因。开源仓库中的议题和拉取请求(变更提案)本是为人类协作而写,问题描述、合并的代码和单元测试未必能整齐地构成适合评测模型的独立任务[1]。尤其是拉取请求中包含的测试,是为验证特定变更而编写的,很难成为与实现方式无关的通用合格标准[1]。

另一方面,该公司也指出,随着模型能力的提升,如今大规模排查评测缺陷比以往容易得多[1]。OpenAI 呼吁更广泛的评测社区开发由资深软件开发者专门为测试模型能力而构建的新基准[1]。

总结

OpenAI 的审计估计 SWE-Bench Pro 约 30% 的任务存在缺陷,该公司已撤回此前采用该基准的建议[1]。通过率的快速上升并不一定意味着真实能力的提升,这对关注基准数字的人来说是一个沉重的教训。如何打造一把「没有损坏的尺子」来衡量 AI 编程能力,正在成为整个行业的课题。

出典:https://openai.com/index/separating-signal-from-noise-coding-evaluations