SWE-Lancer:OpenAI发布的一个全新大模型评测基准,用来测试大模型解决真实世界软件工程的能力

标签:#SWE-Lancer##大模型评测##大模型评测基准# 时间:2025/02/19 21:40:31 作者:小木

在人工智能领域,语言模型的发展速度令人瞩目。从解决基础的计算机科学问题,到在国际编程竞赛中斩获金奖,短短两年间,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种不同类型的评测数据集,总结如下:

评测类型 任务数量 任务价值 (USD) 任务描述
IC SWE (Diamond) 237 236,300 个体贡献者软件工程任务,包括修复漏洞、实现新功能等,使用端到端测试进行评估。公开的评估集部分。
IC SWE (Full) 764 414,775 个体贡献者软件工程任务,包括修复漏洞、实现新功能等,使用端到端测试进行评估。全量评估集部分。
SWE Manager (Diamond) 265 264,500 软件工程管理任务,模型需要选择最佳的解决方案,评估基于原始雇佣的工程经理的选择。公开的评估集部分。
SWE Manager (Full) 724 585,225 软件工程管理任务,模型需要选择最佳的解决方案,评估基于原始雇佣的工程经理的选择。全量评估集部分。

是的,并不是所有的SWE-Lancer都是公开的。30%公开给业界,70%OpenAI内部保留了。

GPT-4o、o1与Claude Sonnet 3.5在SWE-Lancer上评测结果

OpenAI公布了他们在内部测试的GPT-4o、o1与Claude Sonnet 3.5三个模型的效果,如下表:

Model User Tool Dataset Reasoning Effort pass@1 Dollars Earned / Total Earn Rate
GPT-4o Yes IC SWE (Diamond) N/A 8.0% $14k / $236k 6.0%
o1 Yes IC SWE (Diamond) Low 9.3% $16k / $236k 6.8%
o1 Yes IC SWE (Diamond) Medium 15.6% $24k / $236k 9.9%
o1 Yes IC SWE (Diamond) High 16.5% $29k / $236k 12.1%
3.5 Sonnet Yes IC SWE (Diamond) N/A 26.2% $58k / $236k 24.5%
GPT-4o No IC SWE (Diamond) N/A 8.0% $17k / $236k 7.2%
o1 No IC SWE (Diamond) High 13.1% $23k / $236k 9.7%
GPT-4o Yes IC SWE (Full) N/A 8.6% $29k / $415k 6.9%
o1 Yes IC SWE (Full) High 20.3% $78k / $415k 18.9%
3.5 Sonnet Yes IC SWE (Full) N/A 21.1% $89k / $415k 21.5%
GPT-4o N/A SWE Manager (Diamond) N/A 37.0% $125k / $265k 47.1%
o1 N/A SWE Manager (Diamond) High 41.5% $137k / $265k 51.8%
3.5 Sonnet N/A SWE Manager (Diamond) N/A 44.9% $150k / $265k 56.8%
GPT-4o N/A SWE Manager (Full) N/A 38.7% $275k / $585k 47.0%
o1 N/A SWE Manager (Full) High 46.3% $302k / $585k 51.6%
3.5 Sonnet N/A SWE Manager (Full) High 47.0% $314k / $585k 53.7%

根据上表,我们可以看到如下一些结论和洞察:

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@ 19.3% 提高到 16.5%,并且收入也从 16k 增加到 29k。这显示了推理努力(如计算资源的增加)对性能的明显影响。

GPT-4o 无论在 Diamond 还是 Full 数据集上,性能相对较低,特别是在 IC SWE 任务上,pass@ 1 维持在 8.0%,即使使用了用户工具,它的收入和通过率也远低于其他两个模型。

3. 大模型更适合管理类的软件工程任务

SWE Manager 任务 明显比 IC SWE 任务 更容易得到更高的通过率和收入。这是因为 SWE Manager 任务要求模型在多个解决方案中做出判断,这可能依赖于更高的上下文理解能力,而不仅仅是代码解决方案的生成。因此,能正确选择最佳方案的模型在这类任务中表现更好,赚取的收入也更高。

3.5 SonnetSWE Manager 任务 上的表现显示了模型在理解和评估方案方面的优势,尤其是在实际的商业决策环境中,这使其成为最有效的模型之一。

此外,所有模型在管理类的任务上表现都比独立贡献的任务类好。

4. 使用用户工具可以提高大模型的软件工程能力

IC SWE 任务 中,启用 用户工具 后,模型的表现略有提高。尽管 GPT-4o 在使用用户工具后能有小幅改善,但其总体表现依然偏低,表明它可能未能充分利用该工具的优势。

相比之下, 3.5 Sonnet 对于 用户工具 的依赖较强,它能够更好地使用工具进行调试和验证,这有助于提高任务完成的准确性。

SWE-Lancer与传统软件工程大模型评测任务的对比

OpenAI认为SWE-Lancer是一个更加贴近真实世界的大模型软件工程能力的评测基准,其主要的优势如下:

SWE-Lancer优势 详情描述
真实世界的任务与经济价值 任务均来自真实的自由职业平台Upwork,涵盖了各种难度和类型的软件工程任务,每个任务都附带了实际支付给自由职业工程师的金额,从而为模型的表现提供了一个市场驱动的难度梯度。
端到端测试的引入 是第一个使用由专业工程师创建的端到端测试的基准,相比仅依赖单元测试,这些测试更全面、更能反映真实世界,且经过三轮验证以确保质量和公正性。
多样化的任务类型 任务涵盖了应用逻辑、用户界面/用户体验开发等多个类别,其中应用逻辑任务占了大部分,涉及前端事件处理、DOM交互等核心全栈概念,还有相当比例的任务涉及用户界面和用户体验的开发。
高难度与高价值 任务难度较高,平均解决时间长达26天,涉及多个文件和代码行的修改。这些任务的经济价值也相当可观,35%的任务价值超过1000美元,34%的任务价值在500到1000美元之间。
数据收集与验证的严谨性 100名专业软件工程师参与了任务的审查和验证,确保每个任务都清晰、具体且可执行。对于高价值任务,经验丰富的工程师团队进行了多轮验证,确保环境配置正确、测试覆盖全面。
管理任务的引入 不仅包括了独立的编码任务,还涉及到了管理决策,如在多个技术提案中选择最佳方案,这使得模型需要具备更强的决策能力和对整个技术栈的理解。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
Back to Top