全球领先的AI研究机构OpenAI于近日发布了全新的大模型代码能力评估基准——SWE-Lancer。这一基准旨在更真实地反映软件工程师在实际工作中面临的复杂任务,尤其是涉及全栈开发和技术栈间交互的任务。
SWE-Lancer基准包括1488个来自Upwork平台上的真实开发任务,总价值高达100万美元。如果一个大模型能够完美解决所有这些任务,理论上它可以达到人类软件工程师的百万年薪水平。然而,首批测试结果显示,即便是最先进的大模型,距离这一目标仍有较大差距。
SWE-Lancer的独特之处
SWE-Lancer基准的一个重要创新在于其采用了端到端测试方法。相比传统的单元测试,端到端测试能够模拟真实用户的工作流程,验证应用程序的完整行为。例如,对于一个价值1000美元的开发任务,模型需要修复一个导致用户头像在“分享代码”页面和个人资料页面不一致的漏洞。传统单元测试只能验证头像上传和显示的独立功能,而端到端测试则会模拟用户登录、上传头像、切换账户以及查看不同页面的完整流程,确保整个交互过程的连贯性和正确性。
端到端测试的重要性
端到端测试的另一个重要特点是其对真实场景的还原能力。许多软件问题并非孤立出现,而是与系统的其他部分相互作用。例如,一个看似简单的漏洞可能涉及到多个组件的协同工作,或与数据库、网络状态等外部因素相关。通过模拟真实用户的行为,端到端测试能够捕捉到这些复杂的交互关系,从而更准确地评估模型的解决方案是否真正解决了问题。此外,SWE-Lancer引入了一个重要模块——用户工具,允许模型在本地运行应用程序并模拟用户行为,进一步增强了测试的真实性。
SWE-Lancer数据集详情
SWE-Lancer数据集包含1488个来自Upwork平台上Expensify开源库的真实软件开发任务,分为独立贡献者任务和软件工程管理任务两大类。独立开发任务共有764个,价值414,775美元,主要模拟个体软件工程师的职责,如实现功能、修复漏洞等。软件管理任务有724个,价值585,225美元,要求模型扮演软件工程经理的角色,从多个解决方案中挑选最佳方案。例如,在一个关于在iOS上实现图像粘贴功能的任务中,模型需要从不同提案中选择最适宜的方案。
首批测试结果分析
OpenAI使用了GPT-4、Claude 3.5和其他模型进行了初步测试。结果显示,即使是表现最好的Claude 3.5,在独立开发任务中的通过率也仅为26.2%,仅能正确解决不到三分之一的任务。在软件工程管理任务中,Claude 3.5的表现稍好,通过率达到44.9%。相比之下,GPT-4在独立开发任务中的通过率仅为8%,在管理任务中的通过率为37.0%。值得注意的是,模型在不同任务类型和难度级别上的表现存在显著差异。在价值较低、相对简单的任务中,模型的通过率相对较高;而在高价值、复杂任务中,通过率则明显下降。
网友热议
这一基准测试引发了广泛讨论。有网友表示,现在竟然需要测试大型语言模型是否能成为百万富翁,这简直令人难以置信。但也有人认为,这种基于全栈问题的测试方式更加贴近实际开发工作,能够更准确地评估模型的能力。将测试任务与市场价值和开发工作的日常现实联系起来,无疑是一个天才之举,使得评估更加具有现实意义。