ChatPaper.aiChatPaper

CodeMonkeys: Dimensionando o Tempo de Teste de Computação para Engenharia de Software

CodeMonkeys: Scaling Test-Time Compute for Software Engineering

January 24, 2025
Autores: Ryan Ehrlich, Bradley Brown, Jordan Juravsky, Ronald Clark, Christopher Ré, Azalia Mirhoseini
cs.AI

Resumo

A escalabilidade do cálculo em tempo de teste é um eixo promissor para melhorar as capacidades de LLM. No entanto, o cálculo em tempo de teste pode ser escalado de várias maneiras, e combinar efetivamente diferentes abordagens continua sendo uma área ativa de pesquisa. Aqui, exploramos esse problema no contexto da resolução de problemas reais do GitHub a partir do conjunto de dados SWE-bench. Nosso sistema, chamado CodeMonkeys, permite que os modelos editem iterativamente uma base de código gerando e executando em conjunto um script de teste ao lado de sua edição preliminar. Amostramos muitas dessas trajetórias de múltiplas etapas para cada problema a fim de gerar uma coleção de edições candidatas. Essa abordagem nos permite escalar o cálculo em tempo de teste "serial" aumentando o número de iterações por trajetória e o cálculo em tempo de teste "paralelo" aumentando o número de trajetórias por problema. Com a escalabilidade paralela, podemos diluir os custos iniciais entre várias amostras subsequentes, permitindo-nos identificar o contexto relevante da base de código usando o método simples de permitir que um LLM leia cada arquivo. Para selecionar entre as edições candidatas, combinamos a votação usando testes gerados pelo modelo com uma trajetória de múltiplas etapas final dedicada à seleção. No geral, o CodeMonkeys resolve 57,4% dos problemas do SWE-bench Verificado usando um orçamento de aproximadamente 2300 USD. Nosso método de seleção também pode ser usado para combinar candidatos de diferentes fontes. A seleção de um conjunto de edições das principais submissões Verificadas do SWE-bench existentes obtém uma pontuação de 66,2% e supera o melhor membro do conjunto por si só. Disponibilizamos integralmente nosso código e dados em https://scalingintelligence.stanford.edu/pubs/codemonkeys.
English
Scaling test-time compute is a promising axis for improving LLM capabilities. However, test-time compute can be scaled in a variety of ways, and effectively combining different approaches remains an active area of research. Here, we explore this problem in the context of solving real-world GitHub issues from the SWE-bench dataset. Our system, named CodeMonkeys, allows models to iteratively edit a codebase by jointly generating and running a testing script alongside their draft edit. We sample many of these multi-turn trajectories for every issue to generate a collection of candidate edits. This approach lets us scale "serial" test-time compute by increasing the number of iterations per trajectory and "parallel" test-time compute by increasing the number of trajectories per problem. With parallel scaling, we can amortize up-front costs across multiple downstream samples, allowing us to identify relevant codebase context using the simple method of letting an LLM read every file. In order to select between candidate edits, we combine voting using model-generated tests with a final multi-turn trajectory dedicated to selection. Overall, CodeMonkeys resolves 57.4% of issues from SWE-bench Verified using a budget of approximately 2300 USD. Our selection method can also be used to combine candidates from different sources. Selecting over an ensemble of edits from existing top SWE-bench Verified submissions obtains a score of 66.2% and outperforms the best member of the ensemble on its own. We fully release our code and data at https://scalingintelligence.stanford.edu/pubs/codemonkeys.

Summary

AI-Generated Summary

PDF102January 28, 2025