Satori-SWE: Escalonamento Evolutivo em Tempo de Teste para Engenharia de Software Eficiente em Amostras
Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering
May 29, 2025
Autores: Guangtao Zeng, Maohao Shen, Delin Chen, Zhenting Qi, Subhro Das, Dan Gutfreund, David Cox, Gregory Wornell, Wei Lu, Zhang-Wei Hong, Chuang Gan
cs.AI
Resumo
Modelos de linguagem (LMs) apresentam bom desempenho em benchmarks padronizados de codificação, mas enfrentam dificuldades em tarefas reais de engenharia de software, como resolver problemas no GitHub no SWE-Bench, especialmente quando os parâmetros do modelo são inferiores a 100B. Embora modelos menores sejam preferíveis na prática devido ao seu menor custo computacional, melhorar seu desempenho continua sendo um desafio. As abordagens existentes dependem principalmente de ajuste fino supervisionado (SFT) com dados de alta qualidade, que são caros para serem curados em escala. Uma alternativa é o escalonamento em tempo de teste: gerar múltiplas saídas, pontuá-las usando um verificador e selecionar a melhor. Embora eficaz, essa estratégia geralmente requer amostragem excessiva e pontuação custosa, limitando sua aplicação prática. Propomos o Escalonamento Evolutivo em Tempo de Teste (EvoScale), um método eficiente em amostragem que trata a geração como um processo evolutivo. Ao refinar iterativamente as saídas por meio de seleção e mutação, o EvoScale desloca a distribuição de saída para regiões de maior pontuação, reduzindo o número de amostras necessárias para encontrar soluções corretas. Para reduzir a sobrecarga de amostragem e seleção repetidas, treinamos o modelo para evoluir autonomamente usando aprendizado por reforço (RL). Em vez de depender de verificadores externos no momento da inferência, o modelo aprende a auto-melhorar as pontuações de suas próprias gerações ao longo das iterações. Avaliado no SWE-Bench-Verified, o EvoScale permite que nosso modelo de 32B, Satori-SWE-32B, iguale ou supere o desempenho de modelos com mais de 100B de parâmetros, utilizando poucas amostras. Código, dados e modelos serão totalmente disponibilizados como código aberto.
English
Language models (LMs) perform well on standardized coding benchmarks but
struggle with real-world software engineering tasks such as resolving GitHub
issues in SWE-Bench, especially when model parameters are less than 100B. While
smaller models are preferable in practice due to their lower computational
cost, improving their performance remains challenging. Existing approaches
primarily rely on supervised fine-tuning (SFT) with high-quality data, which is
expensive to curate at scale. An alternative is test-time scaling: generating
multiple outputs, scoring them using a verifier, and selecting the best one.
Although effective, this strategy often requires excessive sampling and costly
scoring, limiting its practical application. We propose Evolutionary Test-Time
Scaling (EvoScale), a sample-efficient method that treats generation as an
evolutionary process. By iteratively refining outputs via selection and
mutation, EvoScale shifts the output distribution toward higher-scoring
regions, reducing the number of samples needed to find correct solutions. To
reduce the overhead from repeatedly sampling and selection, we train the model
to self-evolve using reinforcement learning (RL). Rather than relying on
external verifiers at inference time, the model learns to self-improve the
scores of its own generations across iterations. Evaluated on
SWE-Bench-Verified, EvoScale enables our 32B model, Satori-SWE-32B, to match or
exceed the performance of models with over 100B parameters while using a few
samples. Code, data, and models will be fully open-sourced.