SWE-Fixer: Addestramento di LLM open-source per una risoluzione efficace ed efficiente delle problematiche su GitHub

SWE-Fixer: Training Open-Source LLMs for Effective and Efficient GitHub Issue Resolution

January 9, 2025
Autori: Chengxing Xie, Bowen Li, Chang Gao, He Du, Wai Lam, Difan Zou, Kai Chen
cs.AI

Abstract

I Large Language Models (LLM) hanno dimostrato una notevole competenza in una varietà di compiti complessi. Una significativa applicazione degli LLM è affrontare le sfide dell'ingegneria del software, in particolare risolvendo compiti reali su GitHub correggendo il codice basandosi sui problemi segnalati dagli utenti. Tuttavia, molti approcci attuali si basano su LLM proprietari, il che limita la riproducibilità, l'accessibilità e la trasparenza. I componenti critici degli LLM per affrontare i problemi dell'ingegneria del software e come le loro capacità possano essere efficacemente potenziate rimangono poco chiari. Per affrontare queste sfide, presentiamo SWE-Fixer, un nuovo LLM open-source progettato per risolvere in modo efficace ed efficiente i problemi su GitHub. SWE-Fixer è composto da due moduli essenziali: un modulo di recupero file di codice e un modulo di modifica del codice. Il modulo di recupero utilizza BM25 insieme a un modello LLM leggero per ottenere un recupero di file da grezzo a fine. Successivamente, il modulo di modifica del codice utilizza l'altro modello LLM per generare patch per i file identificati. Successivamente, per mitigare la mancanza di set di dati pubblicamente disponibili, abbiamo compilato un ampio set di dati che include 110.000 problemi di GitHub insieme alle relative patch e addestrato i due moduli di SWE-Fixer separatamente. Valutiamo il nostro approccio sui benchmark SWE-Bench Lite e Verified, ottenendo prestazioni all'avanguardia tra i modelli open-source con punteggi del 23,3% e del 30,2%, rispettivamente. Questi risultati evidenziano l'efficacia del nostro approccio. Metteremo il nostro modello, set di dati e codice a disposizione pubblicamente su 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

PDF142January 10, 2025