Por Que a Personalização de Ferramentas de Conclusão de Código Baseadas em Aprendizado Profundo é Importante
Why Personalizing Deep Learning-Based Code Completion Tools Matters
March 18, 2025
Autores: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Resumo
Ferramentas de conclusão de código baseadas em deep learning (DL) transformaram o desenvolvimento de software ao permitir a geração avançada de código. Essas ferramentas utilizam modelos treinados em grandes quantidades de código de diversos repositórios, capturando padrões gerais de codificação. No entanto, o impacto do ajuste fino desses modelos para organizações ou desenvolvedores específicos, a fim de melhorar seu desempenho nesses contextos, permanece inexplorado. Neste trabalho, preenchemos essa lacuna apresentando evidências empíricas sólidas que respondem a essa questão. Mais especificamente, consideramos 136 desenvolvedores de duas organizações (Apache e Spring), duas arquiteturas de modelos (T5 e Code Llama) e três tamanhos de modelos (60M, 750M e 7B parâmetros treináveis). Os modelos T5 (60M, 750M) foram pré-treinados e ajustados em mais de 2.000 projetos de código aberto, excluindo os dados das organizações em estudo, e comparados com versões ajustadas em conjuntos de dados específicos das organizações e dos desenvolvedores. Para o modelo Code Llama (7B), comparamos o desempenho do modelo já pré-treinado disponível publicamente online com o mesmo modelo ajustado via ajuste fino eficiente em parâmetros em conjuntos de dados específicos das organizações e dos desenvolvedores. Nossos resultados mostram que há um aumento nas capacidades de previsão proporcionado tanto por um ajuste fino adicional específico da organização quanto por um ajuste fino específico do desenvolvedor, com o primeiro sendo particularmente eficiente. Tal descoberta se generaliza para (i) as duas organizações em estudo (ou seja, Apache e Spring) e (ii) modelos de magnitudes completamente diferentes (de 60M a 7B parâmetros treináveis). Por fim, mostramos que modelos DL ajustados em um conjunto de dados específico da organização alcançam o mesmo desempenho de conclusão de modelos de código pré-treinados usados diretamente e que são aproximadamente 10 vezes maiores, com consequente economia em termos de custos de implantação e inferência (por exemplo, GPUs menores necessárias).
English
Deep learning (DL)-based code completion tools have transformed software
development by enabling advanced code generation. These tools leverage models
trained on vast amounts of code from numerous repositories, capturing general
coding patterns. However, the impact of fine-tuning these models for specific
organizations or developers to boost their performance on such subjects remains
unexplored. In this work, we fill this gap by presenting solid empirical
evidence answering this question. More specifically, we consider 136 developers
from two organizations (Apache and Spring), two model architectures (T5 and
Code Llama), and three model sizes (60M, 750M, and 7B trainable parameters). T5
models (60M, 750M) were pre-trained and fine-tuned on over 2,000 open-source
projects, excluding the subject organizations' data, and compared against
versions fine-tuned on organization- and developer-specific datasets. For the
Code Llama model (7B), we compared the performance of the already pre-trained
model publicly available online with the same model fine-tuned via
parameter-efficient fine-tuning on organization- and developer-specific
datasets. Our results show that there is a boost in prediction capabilities
provided by both an organization-specific and a developer-specific additional
fine-tuning, with the former being particularly performant. Such a finding
generalizes across (i) the two subject organizations (i.e., Apache and Spring)
and (ii) models of completely different magnitude (from 60M to 7B trainable
parameters). Finally, we show that DL models fine-tuned on an
organization-specific dataset achieve the same completion performance of
pre-trained code models used out of the box and being sim10times larger,
with consequent savings in terms of deployment and inference cost (e.g.,
smaller GPUs needed).Summary
AI-Generated Summary