SWE-smith: Scalabilità dei Dati per Agenti di Ingegneria del Software
SWE-smith: Scaling Data for Software Engineering Agents
April 30, 2025
Autori: John Yang, Kilian Leret, Carlos E. Jimenez, Alexander Wettig, Kabir Khandpur, Yanzhe Zhang, Binyuan Hui, Ofir Press, Ludwig Schmidt, Diyi Yang
cs.AI
Abstract
Nonostante i recenti progressi nei Modelli Linguistici (LMs) per l'ingegneria del software, la raccolta di dati di addestramento rimane un punto critico significativo. I dataset esistenti sono di piccole dimensioni, con al massimo migliaia di istanze di addestramento provenienti da 11 o meno repository GitHub. Le procedure per curare tali dataset sono spesso complesse, richiedendo centinaia di ore di lavoro umano; inoltre, gli ambienti di esecuzione associati occupano diversi terabyte di spazio di archiviazione, limitando gravemente la loro scalabilità e usabilità. Per affrontare questo problema, introduciamo SWE-smith, una pipeline innovativa per generare dati di addestramento per l'ingegneria del software su larga scala. Dato qualsiasi codebase Python, SWE-smith costruisce un corrispondente ambiente di esecuzione, quindi sintetizza automaticamente centinaia o migliaia di istanze di task che interrompono i test esistenti nel codebase. Utilizzando SWE-smith, abbiamo creato un dataset di 50k istanze provenienti da 128 repository GitHub, un ordine di grandezza più grande rispetto a tutti i lavori precedenti. Abbiamo addestrato SWE-agent-LM-32B, raggiungendo un tasso di risoluzione Pass@1 del 40.2% sul benchmark SWE-bench Verified, lo stato dell'arte tra i modelli open source. Rendiamo open source SWE-smith (procedura di raccolta, istanze di task, traiettorie, modelli) per abbassare la barriera di ingresso alla ricerca nei sistemi LM per l'ingegneria del software automatizzata. Tutte le risorse sono disponibili su https://swesmith.com.
English
Despite recent progress in Language Models (LMs) for software engineering,
collecting training data remains a significant pain point. Existing datasets
are small, with at most 1,000s of training instances from 11 or fewer GitHub
repositories. The procedures to curate such datasets are often complex,
necessitating hundreds of hours of human labor; companion execution
environments also take up several terabytes of storage, severely limiting their
scalability and usability. To address this pain point, we introduce SWE-smith,
a novel pipeline for generating software engineering training data at scale.
Given any Python codebase, SWE-smith constructs a corresponding execution
environment, then automatically synthesizes 100s to 1,000s of task instances
that break existing test(s) in the codebase. Using SWE-smith, we create a
dataset of 50k instances sourced from 128 GitHub repositories, an order of
magnitude larger than all previous works. We train SWE-agent-LM-32B, achieving
40.2% Pass@1 resolve rate on the SWE-bench Verified benchmark, state of the art
among open source models. We open source SWE-smith (collection procedure, task
instances, trajectories, models) to lower the barrier of entry for research in
LM systems for automated software engineering. All assets available at
https://swesmith.com.