SWE-smith: Escalando datos para agentes de ingeniería de software
SWE-smith: Scaling Data for Software Engineering Agents
April 30, 2025
Autores: John Yang, Kilian Leret, Carlos E. Jimenez, Alexander Wettig, Kabir Khandpur, Yanzhe Zhang, Binyuan Hui, Ofir Press, Ludwig Schmidt, Diyi Yang
cs.AI
Resumen
A pesar de los avances recientes en los Modelos de Lenguaje (LMs) para la ingeniería de software, la recopilación de datos de entrenamiento sigue siendo un desafío significativo. Los conjuntos de datos existentes son pequeños, con un máximo de miles de instancias de entrenamiento provenientes de 11 o menos repositorios de GitHub. Los procedimientos para curar dichos conjuntos de datos suelen ser complejos, requiriendo cientos de horas de trabajo humano; además, los entornos de ejecución asociados ocupan varios terabytes de almacenamiento, lo que limita severamente su escalabilidad y usabilidad. Para abordar este problema, presentamos SWE-smith, una novedosa canalización para generar datos de entrenamiento en ingeniería de software a gran escala. Dado cualquier código base en Python, SWE-smith construye un entorno de ejecución correspondiente y luego sintetiza automáticamente cientos o miles de instancias de tareas que rompen las pruebas existentes en el código base. Utilizando SWE-smith, creamos un conjunto de datos de 50k instancias obtenidas de 128 repositorios de GitHub, un orden de magnitud más grande que todos los trabajos anteriores. Entrenamos SWE-agent-LM-32B, logrando una tasa de resolución Pass@1 del 40.2% en el benchmark SWE-bench Verified, lo que representa el estado del arte entre los modelos de código abierto. Hacemos público SWE-smith (procedimiento de recopilación, instancias de tareas, trayectorias, modelos) para reducir la barrera de entrada en la investigación de sistemas LM para la ingeniería de software automatizada. Todos los recursos están disponibles en 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.Summary
AI-Generated Summary