中文

CodeMonkeys:缩放软件工程的测试时间计算

机器学习 2025-02-04 v2

摘要

缩放测试时间计算是提高大语言模型能力的有前景的方向之一。然而,测试时间计算可以以多种方式进行缩放,有效地组合不同方法仍是活跃的研究领域。本文聚焦于解决来自 SWE-bench 数据集的真实世界 GitHub 问题的情境。我们的系统命名为 CodeMonkeys,允许模型通过联合生成和运行测试脚本来修改代码库。我们为每个问题抽取大量这样的多轮轨迹,以生成一组候选修改。这种方法让我们可以通过增加每个轨迹的迭代次数来缩放“串行”测试时间计算,通过增加每个问题的轨迹数量来缩放“并行”测试时间计算。With并行缩放,我们可以在多个下游样本之间摊薄 upfront 成本,通过让大语言模型读取每个文件来识别相关代码库上下文。为了在候选修改之间进行选择,我们结合使用基于模型生成的测试进行投票,并使用一个最终的多轮轨迹进行选择。总体而言,CodeMonkeys 使用约 2300 美元的预算成功解决了来自 SWE-bench Verified 的 57.4%的问题。我们的选择方法还可用于组合来自不同来源的候选。通过从现有最佳 SWE-bench Verified 提交版本中抽取的编辑组成的集合中进行选择,得分达到了 66.2%,并在各自独立的情况下超过了集合中最好的成员。我们完全公开了代码和数据,地址为 https://scalingintelligence.stanford.edu/pubs/codemonkeys。

关键词

引用

@article{arxiv.2501.14723,
  title  = {CodeMonkeys: Scaling Test-Time Compute for Software Engineering},
  author = {Ryan Ehrlich and Bradley Brown and Jordan Juravsky and Ronald Clark and Christopher Ré and Azalia Mirhoseini},
  journal= {arXiv preprint arXiv:2501.14723},
  year   = {2025}
}