SWE-Fixer: Treinando LLMs de Código Aberto para uma Resolução Efetiva e Eficiente de Problemas no 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

Resumo

Os Modelos de Linguagem de Grande Escala (LLMs) têm demonstrado uma notável proficiência em uma variedade de tarefas complexas. Uma aplicação significativa dos LLMs é lidar com desafios de engenharia de software, especialmente na resolução de tarefas do mundo real no GitHub ao corrigir código com base nos problemas relatados pelos usuários. No entanto, muitas abordagens atuais dependem de LLMs proprietários, o que limita a reprodutibilidade, acessibilidade e transparência. Os componentes críticos dos LLMs para lidar com problemas de engenharia de software e como suas capacidades podem ser aprimoradas de forma eficaz permanecem incertos. Para enfrentar esses desafios, apresentamos o SWE-Fixer, um novo LLM de código aberto projetado para resolver de forma eficaz e eficiente problemas do GitHub. O SWE-Fixer é composto por dois módulos essenciais: um módulo de recuperação de arquivos de código e um módulo de edição de código. O módulo de recuperação utiliza o BM25 juntamente com um modelo LLM leve para alcançar a recuperação de arquivos de forma grosseira a refinada. Posteriormente, o módulo de edição de código utiliza o outro modelo LLM para gerar patches para os arquivos identificados. Em seguida, para mitigar a falta de conjuntos de dados publicamente disponíveis, compilamos um extenso conjunto de dados que inclui 110 mil problemas do GitHub juntamente com seus patches correspondentes, e treinamos os dois módulos do SWE-Fixer separadamente. Avaliamos nossa abordagem nos benchmarks SWE-Bench Lite e Verified, alcançando desempenho de ponta entre os modelos de código aberto, com pontuações de 23,3% e 30,2%, respectivamente. Esses resultados destacam a eficácia de nossa abordagem. Disponibilizaremos nosso modelo, conjunto de dados e código publicamente em 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