ChatPaper.aiChatPaper

CodeMonkeys: Масштабирование вычислений во время тестирования для инженерии программного обеспечения

CodeMonkeys: Scaling Test-Time Compute for Software Engineering

January 24, 2025
Авторы: Ryan Ehrlich, Bradley Brown, Jordan Juravsky, Ronald Clark, Christopher Ré, Azalia Mirhoseini
cs.AI

Аннотация

Масштабирование вычислений во время тестирования - это многообещающая стратегия для улучшения возможностей LLM. Однако масштабирование вычислений во время тестирования можно осуществлять различными способами, и эффективное сочетание различных подходов остается активной областью исследований. В данной работе мы исследуем эту проблему в контексте решения реальных проблем GitHub из набора данных SWE-bench. Наша система, названная CodeMonkeys, позволяет моделям итеративно редактировать кодовую базу, совместно генерируя и запуская тестовый скрипт наряду с их черновым редактированием. Мы выбираем множество таких многоходовых траекторий для каждой проблемы, чтобы создать коллекцию кандидатов на редактирование. Этот подход позволяет нам масштабировать "последовательные" вычисления во время тестирования путем увеличения числа итераций на каждой траектории и "параллельные" вычисления во время тестирования путем увеличения числа траекторий на каждую проблему. С параллельным масштабированием мы можем амортизировать начальные затраты на несколько последующих выборок, что позволяет нам определить соответствующий контекст кодовой базы, используя простой метод, позволяющий LLM прочитать каждый файл. Для выбора между кандидатами на редактирование мы комбинируем голосование с использованием тестов, сгенерированных моделью, с окончательной многоходовой траекторией, посвященной выбору. В целом, CodeMonkeys решает 57,4% проблем из SWE-bench Verified с бюджетом примерно 2300 долларов США. Наш метод выбора также может быть использован для объединения кандидатов из разных источников. Выбор среди ансамбля редактирований из существующих лучших представленных в SWE-bench Verified подтверждений дает результат 66,2% и превосходит лучшего участника ансамбля по отдельности. Мы полностью публикуем наш код и данные на 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