Satori-SWE: Scalatura Evolutiva in Tempo di Test per un'Ingegneria del Software Efficiente nei Campioni
Satori-SWE: Evolutionary Test-Time Scaling for Sample-Efficient Software Engineering
May 29, 2025
Autori: 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
Abstract
I modelli linguistici (LM) ottengono buoni risultati nei benchmark di codifica standardizzati, ma incontrano difficoltà nelle attività di ingegneria del software del mondo reale, come la risoluzione di issue su GitHub in SWE-Bench, specialmente quando i parametri del modello sono inferiori a 100B. Sebbene i modelli più piccoli siano preferibili nella pratica a causa del loro costo computazionale inferiore, migliorarne le prestazioni rimane una sfida. Gli approcci esistenti si basano principalmente sul fine-tuning supervisionato (SFT) con dati di alta qualità, che sono costosi da curare su larga scala. Un'alternativa è il ridimensionamento al momento del test: generare più output, valutarli utilizzando un verificatore e selezionare il migliore. Sebbene efficace, questa strategia richiede spesso un campionamento eccessivo e una valutazione costosa, limitandone l'applicazione pratica. Proponiamo Evolutionary Test-Time Scaling (EvoScale), un metodo efficiente dal punto di vista del campionamento che tratta la generazione come un processo evolutivo. Affinando iterativamente gli output attraverso selezione e mutazione, EvoScale sposta la distribuzione degli output verso regioni con punteggi più alti, riducendo il numero di campioni necessari per trovare soluzioni corrette. Per ridurre il sovraccarico derivante dal campionamento e dalla selezione ripetuti, addestriamo il modello a auto-evolversi utilizzando l'apprendimento per rinforzo (RL). Invece di affidarsi a verificatori esterni al momento dell'inferenza, il modello impara a migliorare autonomamente i punteggi delle proprie generazioni attraverso le iterazioni. Valutato su SWE-Bench-Verified, EvoScale consente al nostro modello da 32B, Satori-SWE-32B, di eguagliare o superare le prestazioni di modelli con oltre 100B parametri utilizzando pochi campioni. Codice, dati e modelli saranno completamente open-source.
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.