ChatPaper.aiChatPaper

SWE-Fixer: Training von Open-Source LLMs für effektive und effiziente GitHub-Fehlerbehebung

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

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

Zusammenfassung

Große Sprachmodelle (LLMs) haben bemerkenswerte Fähigkeiten bei einer Vielzahl komplexer Aufgaben gezeigt. Eine bedeutende Anwendung von LLMs besteht darin, Softwaretechnik-Herausforderungen anzugehen, insbesondere bei der Lösung realer Aufgaben auf GitHub durch das Beheben von Code basierend auf den von den Benutzern gemeldeten Problemen. Viele derzeitige Ansätze stützen sich jedoch auf proprietäre LLMs, was die Reproduzierbarkeit, Zugänglichkeit und Transparenz einschränkt. Die entscheidenden Komponenten von LLMs zur Bewältigung von Softwaretechnik-Problemen und wie ihre Fähigkeiten effektiv verbessert werden können, bleiben unklar. Um diese Herausforderungen anzugehen, stellen wir SWE-Fixer vor, ein neuartiges Open-Source LLM, das entwickelt wurde, um GitHub-Probleme effektiv und effizient zu lösen. SWE-Fixer besteht aus zwei wesentlichen Modulen: einem Code-Datei-Abrufmodul und einem Code-Bearbeitungsmodul. Das Abrufmodul verwendet BM25 zusammen mit einem leichtgewichtigen LLM-Modell, um eine grob-zu-fein-Dateiabfrage zu erreichen. Anschließend nutzt das Code-Bearbeitungsmodul das andere LLM-Modell, um Patches für die identifizierten Dateien zu generieren. Um den Mangel an öffentlich verfügbaren Datensätzen zu mildern, erstellen wir einen umfangreichen Datensatz, der 110.000 GitHub-Probleme zusammen mit ihren entsprechenden Patches enthält, und trainieren die beiden Module von SWE-Fixer separat. Wir bewerten unseren Ansatz anhand der SWE-Bench Lite und Verified Benchmarks und erzielen eine Spitzenleistung unter Open-Source-Modellen mit Punktzahlen von jeweils 23,3 % und 30,2 %. Diese Ergebnisse unterstreichen die Wirksamkeit unseres Ansatzes. Wir werden unser Modell, unseren Datensatz und den Code öffentlich unter https://github.com/InternLM/SWE-Fixer zur Verfügung stellen.
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

PDF152January 10, 2025