SWE-Lancer:OpenAI发布的一个全新大模型评测基准,用来测试大模型解决真实世界软件工程的能力
在人工智能领域,语言模型的发展速度令人瞩目。从解决基础的计算机科学问题,到在国际编程竞赛中斩获金奖,短短两年间,AI技术的进步为软件工程带来了新的可能性。然而,这些模型在真实世界的软件工程任务中究竟能发挥多大的作用?它们能否通过完成实际的软件工程任务来赚取可观的收入?为了验证大模型解决真实任务的能力和水平,OpenAI发布了一个全新的大模型评测基准SWE-Lancer来评测大模型这方面的能力。

SWE-Lancer简介
SWE全称是Software Engineering。此前,业界已经有SWE-Bench来衡量大模型的软件工程能力(https://www.datalearner.com/blog/1051739376632820 )。但是,这类任务都属于self-contained(即独立的,包含完整信息的任务,简而言之就是可以独立完成的,限制在一定范围内的)。然而,现实世界中,大多数软件工程任务依赖全栈技术,需要在复杂的代码仓之间进行推理和权衡。
为了更加贴近真实时间的软件工程任务,OpenAI搜集了Upwork上现实世界中1488项自由工作者的软件工程任务,价值100万美元。这些任务涵盖了从50美元的错误修复到3.2万美元的功能实现等独立工程任务,以及模型需要在多个技术实现提案中做出选择的管理任务。
SWE-Lancer的任务均来自真实的自由职业平台Upwork,涵盖了各种难度和类型的软件工程任务。这些任务不仅包括了独立的编码任务,还涉及到了管理决策,如在多个技术提案中选择最佳方案。每个任务都附带了实际支付给自由职业工程师的金额,从而为模型的表现提供了一个市场驱动的难度梯度。这种真实世界的经济价值映射,使得SWE-Lancer不仅是一个技术评估工具,更是一个经济影响研究的平台。
软件工程领域两种不同的任务:独立贡献者软件工程任务与软件工程管理任务
OpenAI认为软件工程任务包含两种不同的软件工程(SWE)任务:
Individual Contributor (IC) SWE Tasks(独立贡献者软件工程任务)
这些任务是指模型需要像独立的软件工程师一样,直接解决具体的软件工程问题,例如修复错误(bug fixes)或实现新功能(feature implementations)。

上图是独立贡献类的任务样例。
IC任务的范围从简单的15分钟错误修复到需要数周时间完成的新功能请求。这些任务要求模型生成代码补丁来解决实际问题。
独立贡献者软件工程任务的评估方式:这些任务的解决方案通过端到端(end-to-end)测试来验证,这些测试由经验丰富的软件工程师创建,模拟真实世界的用户工作流程,并经过三重验证以确保质量和公正性。
SWE Manager Tasks(软件工程管理任务)
这些任务要求模型扮演技术领导的角色,评估多个技术实现提案,并选择最佳的解决方案。

上图是软件工程管理类的任务样例。
在这些任务中,模型需要审查由自由职业者提交的多个提案,并根据技术正确性和上下文相关性选择最佳提案。这些任务通常涉及更复杂的决策过程,需要考虑多个因素,如技术可行性、代码质量和项目需求。
管理类的任务评估方式如下:模型的选择与原始雇佣的工程经理的选择进行比较,以评估模型的决策能力。
总结一下,这两类任务:
- IC SWE Tasks:模型直接解决具体的编程问题,生成代码补丁,并通过端到端测试验证。
- SWE Manager Tasks:模型评估多个技术提案,选择最佳方案,模拟技术领导的决策过程。
这两种任务类型共同构成了 SWE-Lancer 基准测试,旨在全面评估 AI 模型在真实世界软件工程任务中的表现,包括独立开发和管理决策能力。
同时OpenAI还将这两类数据集分为开源的部分和不开源的部分。因此,SWE-Lancer共有4种不同类型的评测数据集,总结如下:
是的,并不是所有的SWE-Lancer都是公开的。30%公开给业界,70%OpenAI内部保留了。
GPT-4o、o1与Claude Sonnet 3.5在SWE-Lancer上评测结果
OpenAI公布了他们在内部测试的GPT-4o、o1与Claude Sonnet 3.5三个模型的效果,如下表:
根据上表,我们可以看到如下一些结论和洞察:
1. Claude Sonnet 3.5是全球最强的
3.5 Sonnet 是最强的模型,成功解决了 26.2% 的 IC SWE (Diamond) 任务,且它的总收入为 $58k,占 $236k 的总额的 24.5%。这表明,尽管该模型在解决此类任务时取得了最佳表现,但仍有 70% 的任务未能解决,这意味着模型仍面临相当大的挑战。
然而,奇怪的是,号称最强的推理模型o1,也依然不如Claude 3.5 Sonnet。
2. o1模型随着推理时间的增长,能力变强
o1 的表现逐步提高:当使用更高的推理努力时,pass@ 1 从 9.3% 提高到 16.5%,并且收入也从 $16k 增加到 $29k。这显示了推理努力(如计算资源的增加)对性能的明显影响。
GPT-4o 无论在 Diamond 还是 Full 数据集上,性能相对较低,特别是在 IC SWE 任务上,pass@ 1 维持在 8.0%,即使使用了用户工具,它的收入和通过率也远低于其他两个模型。
3. 大模型更适合管理类的软件工程任务
SWE Manager 任务 明显比 IC SWE 任务 更容易得到更高的通过率和收入。这是因为 SWE Manager 任务要求模型在多个解决方案中做出判断,这可能依赖于更高的上下文理解能力,而不仅仅是代码解决方案的生成。因此,能正确选择最佳方案的模型在这类任务中表现更好,赚取的收入也更高。
3.5 Sonnet 在 SWE Manager 任务 上的表现显示了模型在理解和评估方案方面的优势,尤其是在实际的商业决策环境中,这使其成为最有效的模型之一。
此外,所有模型在管理类的任务上表现都比独立贡献的任务类好。
4. 使用用户工具可以提高大模型的软件工程能力
在 IC SWE 任务 中,启用 用户工具 后,模型的表现略有提高。尽管 GPT-4o 在使用用户工具后能有小幅改善,但其总体表现依然偏低,表明它可能未能充分利用该工具的优势。
相比之下, 3.5 Sonnet 对于 用户工具 的依赖较强,它能够更好地使用工具进行调试和验证,这有助于提高任务完成的准确性。
SWE-Lancer与传统软件工程大模型评测任务的对比
OpenAI认为SWE-Lancer是一个更加贴近真实世界的大模型软件工程能力的评测基准,其主要的优势如下:
