SWE-Fixer : Entraînement de LLM open source pour une résolution efficace et efficiente des problèmes GitHub
SWE-Fixer: Training Open-Source LLMs for Effective and Efficient GitHub Issue Resolution
January 9, 2025
Auteurs: Chengxing Xie, Bowen Li, Chang Gao, He Du, Wai Lam, Difan Zou, Kai Chen
cs.AI
Résumé
Les grands modèles de langage (LLM) ont démontré une remarquable compétence dans une variété de tâches complexes. Une application significative des LLM est de relever les défis de l'ingénierie logicielle, en particulier en résolvant des tâches du monde réel sur GitHub en corrigeant du code basé sur les problèmes signalés par les utilisateurs. Cependant, de nombreuses approches actuelles reposent sur des LLM propriétaires, ce qui limite la reproductibilité, l'accessibilité et la transparence. Les composants critiques des LLM pour traiter les problèmes d'ingénierie logicielle et comment leurs capacités peuvent être efficacement améliorées restent flous. Pour relever ces défis, nous présentons SWE-Fixer, un nouveau LLM open-source conçu pour résoudre efficacement et efficacement les problèmes de GitHub. SWE-Fixer comprend deux modules essentiels : un module de récupération de fichiers de code et un module d'édition de code. Le module de récupération utilise BM25 ainsi qu'un modèle LLM léger pour réaliser une récupération de fichiers de manière grossière à fine. Ensuite, le module d'édition de code utilise l'autre modèle LLM pour générer des correctifs pour les fichiers identifiés. Ensuite, pour pallier le manque d'ensembles de données publiquement disponibles, nous compilons un ensemble de données étendu comprenant 110 000 problèmes GitHub ainsi que leurs correctifs correspondants, et formons les deux modules de SWE-Fixer séparément. Nous évaluons notre approche sur les benchmarks SWE-Bench Lite et Verified, atteignant des performances de pointe parmi les modèles open-source avec des scores de 23,3 % et 30,2 % respectivement. Ces résultats soulignent l'efficacité de notre approche. Nous rendrons notre modèle, notre ensemble de données et notre code publiquement disponibles sur 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