SWE-bench大模型评测基准介绍:测试大模型在真实软件工程任务中的能力
随着大语言模型(LLM)的快速发展,它们在自然语言处理(NLP)、代码生成等领域的表现已达到前所未有的高度。然而,现有的代码评测基准(如 HumanEval)通常侧重于自包含的、较短的代码生成任务,而未能充分模拟真实世界的软件开发环境。为弥补这一空白,研究者提出了一种全新的评测基准——SWE-Bench,旨在测试 LLM 在真实软件工程问题中的能力。

SWE-Bench 由普林斯顿大学和芝加哥大学的研究者提出,并将在 ICLR 2024 会议上发表。该基准聚焦于GitHub 上的实际软件开发问题,其核心任务是让 LLM 解决真实的bug 修复和功能改进问题。具体而言,SWE-Bench 包含 2,294 个任务实例,每个任务都来源于 12 个流行的开源 Python 代码库,涉及真实的GitHub issue 和Pull Request(PR)。
与传统的代码生成评测不同,SWE-Bench 具有以下关键特性:
SWE-Bench 的任务构建流程分为三个主要阶段:
数据收集:
属性筛选:
执行筛选:
最终,这一过程筛选出了 2,294 个高质量任务实例,涵盖广泛的软件工程问题,如API 变更、性能优化、错误修复等。
在 SWE-Bench 评测中,每个 LLM 需要完成如下任务:
研究者评测了多个最先进的大语言模型,包括 Claude 2、GPT-4、ChatGPT-3.5 和 SWE-Llama(一个基于 CodeLlama 微调的开源模型)。结果显示:
此外,实验结果表明:
为进一步探索开源 LLM 在 SWE-Bench 任务上的能力,研究者基于 CodeLlama 进行了微调,并推出了 SWE-Llama(7B 和 13B 版本)。
训练数据:
SWE-Llama 结果:
SWE-Bench 的评测结果揭示了当前 LLM 在软件工程领域的多个挑战:
长上下文理解能力不足:
跨文件、跨模块的推理能力薄弱:
代码质量与可读性问题:
SWE-Bench 作为首个基于真实 GitHub 代码库的大模型评测基准,为 LLM 在软件工程领域的能力提供了严苛的测试环境。实验结果表明,即使是当前最先进的 LLM,其在真实软件开发中的应用仍然面临重大挑战。
未来的研究方向:
SWE-Bench 的推出,标志着 LLM 在软件工程领域评测迈入了一个更具挑战性的阶段。未来,随着大模型的不断进步,我们或许能见证真正能够解决复杂软件工程问题的 AI 代码助手的诞生。