SWE-bench: Can Language Models Resolve Real-World GitHub Issues?
基本信息
- arXiv 编号:arXiv:2310.06770v3 [cs.CL]
- 作者:Carlos E. Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, Karthik Narasimhan
- 提交日期:2023 年 10 月 10 日(v1);最后修订于 2024 年 11 月 11 日(v3)
- 发表信息:ICLR 2024
- 主题分类:Computation and Language (cs.CL);Artificial Intelligence (cs.AI);Software Engineering (cs.SE)
- 资源:数据、代码与排行榜见 swebench.com
摘要
语言模型的发展速度已超出我们对其进行有效评估的能力,而研究其能力前沿对模型的未来发展至关重要。作者认为,真实世界的软件工程任务为评估下一代语言模型提供了丰富、可持续且具有挑战性的测试平台。为此,论文提出 SWE-bench——一个包含 2,294 个软件工程问题的评估框架,问题取自 12 个流行 Python 仓库中真实的 GitHub issue 及其对应的 pull request。
在该任务设定下,给定一个代码库和待解决问题(issue)的描述,语言模型需要编辑代码库以解决该问题。解决 SWE-bench 中的问题往往需要同时理解并协调多个函数、类乃至多个文件之间的改动,这要求模型能够与执行环境交互、处理极长的上下文,并进行远超传统代码生成任务的复杂推理。
评估结果显示,无论是当前最先进的商业模型,还是作者微调的模型 SWE-Llama,都只能解决最简单的问题。表现最好的模型 Claude 2 仅能解决 1.96% 的问题。论文指出,在 SWE-bench 上取得的进展,是迈向更实用、更智能、更自主的语言模型的重要一步。
关键要点
- 任务形式:代码库 + issue 描述 → 模型编辑代码库以修复问题
- 数据规模:2,294 个问题,来自 12 个 Python 仓库的真实 GitHub issue 与 PR
- 能力要求:跨函数/类/文件协调修改、与执行环境交互、长上下文处理、复杂推理
- 评估结果:最佳模型 Claude 2 仅解决 1.96% 的问题;微调模型 SWE-Llama 亦只能处理最简单的问题