ChatPaper.aiChatPaper

CodeMonkeys: Skalierung der Rechenleistung zur Testzeit für Softwaretechnik

CodeMonkeys: Scaling Test-Time Compute for Software Engineering

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

Zusammenfassung

Die Skalierung der Rechenleistung zur Testzeit ist eine vielversprechende Möglichkeit, um die Fähigkeiten von LLM zu verbessern. Allerdings kann die Rechenleistung zur Testzeit auf verschiedene Weisen skaliert werden, und die effektive Kombination verschiedener Ansätze bleibt ein aktives Forschungsgebiet. Hier untersuchen wir dieses Problem im Kontext der Lösung realer GitHub-Probleme aus dem SWE-bench-Datensatz. Unser System, namens CodeMonkeys, ermöglicht es Modellen, iterativ eine Codebasis zu bearbeiten, indem sie gemeinsam ein Testskript generieren und ausführen, neben ihrer Entwurfsbearbeitung. Wir sampeln viele dieser Multi-Turn-Trajektorien für jedes Problem, um eine Sammlung von Kandidatenbearbeitungen zu generieren. Dieser Ansatz ermöglicht es uns, die "serielle" Rechenleistung zur Testzeit zu skalieren, indem wir die Anzahl der Iterationen pro Trajektorie erhöhen, und die "parallele" Rechenleistung zur Testzeit zu skalieren, indem wir die Anzahl der Trajektorien pro Problem erhöhen. Mit paralleler Skalierung können wir Anfangskosten über mehrere nachgelagerte Proben amortisieren, was es uns ermöglicht, relevante Codebasis-Kontexte zu identifizieren, indem wir einem LLM einfach erlauben, jede Datei zu lesen. Um zwischen Kandidatenbearbeitungen auszuwählen, kombinieren wir Abstimmungen unter Verwendung von modellgenerierten Tests mit einer abschließenden Multi-Turn-Trajektorie, die der Auswahl gewidmet ist. Insgesamt löst CodeMonkeys 57,4% der Probleme aus SWE-bench Verified mit einem Budget von ungefähr 2300 USD. Unsere Auswahlmethode kann auch verwendet werden, um Kandidaten aus verschiedenen Quellen zu kombinieren. Die Auswahl über ein Ensemble von Bearbeitungen aus bestehenden Top-SWE-bench-Verified-Einreichungen erzielt eine Punktzahl von 66,2% und übertrifft das beste Mitglied des Ensembles allein. Wir veröffentlichen unseren Code und unsere Daten vollständig unter 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