SWE-Fixer: Entrenamiento de LLM de código abierto para una resolución eficaz y eficiente de problemas en GitHub
SWE-Fixer: Training Open-Source LLMs for Effective and Efficient GitHub Issue Resolution
January 9, 2025
Autores: Chengxing Xie, Bowen Li, Chang Gao, He Du, Wai Lam, Difan Zou, Kai Chen
cs.AI
Resumen
Los Modelos de Lenguaje Grandes (LLMs) han demostrado una notable eficacia en una variedad de tareas complejas. Una aplicación significativa de los LLMs es abordar desafíos de ingeniería de software, especialmente al resolver tareas del mundo real en GitHub al corregir código basado en los problemas reportados por los usuarios. Sin embargo, muchos enfoques actuales dependen de LLMs propietarios, lo que limita la reproducibilidad, accesibilidad y transparencia. Los componentes críticos de los LLMs para abordar problemas de ingeniería de software y cómo se pueden mejorar efectivamente sus capacidades siguen siendo poco claros. Para hacer frente a estos desafíos, presentamos SWE-Fixer, un LLM de código abierto novedoso diseñado para resolver de manera efectiva y eficiente problemas en GitHub. SWE-Fixer consta de dos módulos esenciales: un módulo de recuperación de archivos de código y un módulo de edición de código. El módulo de recuperación emplea BM25 junto con un modelo LLM ligero para lograr una recuperación de archivos de código de grueso a fino. Posteriormente, el módulo de edición de código utiliza el otro modelo LLM para generar parches para los archivos identificados. Luego, para mitigar la falta de conjuntos de datos públicamente disponibles, compilamos un extenso conjunto de datos que incluye 110K problemas de GitHub junto con sus parches correspondientes, y entrenamos los dos módulos de SWE-Fixer por separado. Evaluamos nuestro enfoque en los benchmarks SWE-Bench Lite y Verified, logrando un rendimiento de vanguardia entre los modelos de código abierto con puntajes del 23.3% y 30.2%, respectivamente. Estos resultados resaltan la eficacia de nuestro enfoque. Pondremos nuestro modelo, conjunto de datos y código a disposición del público en https://github.com/InternLM/SWE-Fixer.
English
Large Language Models (LLMs) have demonstrated remarkable proficiency across
a variety of complex tasks. One significant application of LLMs is in tackling
software engineering challenges, particularly in resolving real-world tasks on
GitHub by fixing code based on the issues reported by the users. However, many
current approaches rely on proprietary LLMs, which limits reproducibility,
accessibility, and transparency. The critical components of LLMs for addressing
software engineering issues and how their capabilities can be effectively
enhanced remain unclear. To address these challenges, we introduce SWE-Fixer, a
novel open-source LLM designed to effectively and efficiently resolve GitHub
issues. SWE-Fixer comprises two essential modules: a code file retrieval module
and a code editing module. The retrieval module employs BM25 along with a
lightweight LLM model to achieve coarse-to-fine file retrieval. Subsequently,
the code editing module utilizes the other LLM model to generate patches for
the identified files. Then, to mitigate the lack of publicly available
datasets, we compile an extensive dataset that includes 110K GitHub issues
along with their corresponding patches, and train the two modules of SWE-Fixer
separately. We assess our approach on the SWE-Bench Lite and Verified
benchmarks, achieving state-of-the-art performance among open-source models
with scores of 23.3% and 30.2%, respectively. These outcomes highlight the
efficacy of our approach. We will make our model, dataset, and code publicly
available at https://github.com/InternLM/SWE-Fixer.Summary
AI-Generated Summary