能够语言模型取代程序员吗?来自普林斯顿大学和芝加哥大学的研究人员引入了SWE-bench:一种评估框架,通过GitHub上解决实际问题来测试机器学习模型

普林斯顿大学和芝加哥大学研究人员引入SWE-bench:通过GitHub案例测试机器学习模型是否能取代程序员?

评估语言模型在解决现实世界软件工程挑战中的能力对于它们的进展至关重要。SWE-bench 是一个创新的评估框架,利用 Python 代码库的 GitHub 问题和拉取请求来评估这些模型解决编码任务和问题解决能力。令人惊讶的是,研究结果表明,即使是最先进的模型也只能处理简单的问题。这表明在语言模型中进一步实现实用和智能的软件工程解决方案的需求迫切。

虽然之前的研究已经引入了语言模型的评估框架,但它们通常需要更多的灵活性,解决现实世界软件工程任务的复杂性。值得注意的是,现有的代码生成基准需要捕捉到这些挑战的深度。普林斯顿大学和芝加哥大学的研究人员提出的 SWE-bench 框架将重点放在了解决现实世界软件工程问题上,如补丁生成和复杂上下文推理,为增强具有软件工程能力的语言模型提供了更现实和更全面的评估。这在软件工程的机器学习领域尤为重要。

由于语言模型广泛应用于商业应用中,为评估它们的能力而建立健壮的基准测试的需求变得显而易见。现有的基准测试需要对具有现实世界任务的语言模型进行挑战。软件工程任务通过其复杂性和通过单元测试的可验证性提供了一个引人注目的挑战。SWE-bench 利用 GitHub 的问题和解决方案创建了一个实用的基准测试,以在软件工程上下文中评估语言模型,推动现实世界适用性和持续更新。

他们的研究包括来自 GitHub 的 2,294 个现实世界软件工程问题。语言模型通过编辑代码库来解决函数、类和文件之间的问题。模型输入包括任务说明、问题文本、检索到的文件、示例补丁和提示。模型的性能在两种上下文设置下进行评估: 稀疏检索和理想检索。

评估结果表明,即使是 Claude 2 和 GPT-4 等最先进的模型也难以解决现实世界的软件工程问题,最佳上下文检索方法的通过率仅为 4.8% 和 1.7%。当处理更长上下文的问题时,模型的表现更差,并对上下文变化表现出敏感性。他们的模型往往生成较短且格式不良的补丁文件,突显了处理复杂代码任务的挑战。

随着语言模型的进展,这篇论文强调了在实际的现实世界场景中对它们进行全面评估的重要性。评估框架 SWE-bench 作为一个具有挑战性和现实性的测试平台,用于评估下一代语言模型在软件工程背景下的能力。评估结果揭示了即使是最先进的语言模型在处理复杂软件工程挑战上的当前限制。他们的贡献强调了开发更实用、智能和自主的语言模型的必要性。

研究人员提出了几个推进 SWE-bench 评估框架的途径。他们的研究建议扩大基准测试的软件工程问题范围,探索高级的检索技术和多模态学习方法可以提高语言模型的性能。解决理解复杂代码更改的限制和改进生成格式良好的补丁文件被视为未来探索的重要领域。这些步骤旨在为语言模型在现实世界软件工程场景中创建一个更全面和有效的评估框架。