Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering
Guangtao Zeng, Maohao Shen, Delin Chen, Zhenting Qi, Subhro Das, Dan Gutfreund, David Cox, Gregory Wornell, Wei Lu, Zhang-Wei Hong, Chuang Gan
TL;DR
Satori-SWE introduces Evolutionary Test-Time Scaling (EvoScale) to dramatically improve sample-efficient inference for small language models on real-world SWE tasks. By treating patch generation as an evolutionary process and coupling it with a two-stage mutation-focused SFT plus large-scale RL with potential-based reward shaping, EvoScale guides iterative refinements toward high-quality code patches without relying on costly external verifiers. The approach yields a 32B model whose performance rivals 100B+ models on SWE-bench Verified while using far fewer samples and training data, highlighting practical gains in cost and efficiency. This work demonstrates a viable path to deploying capable SWE assistants in resource-constrained settings and lays groundwork for future agent-based extensions and trajectory-level optimization.
Abstract
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.
