¿Por qué es importante personalizar las herramientas de completado de código basadas en aprendizaje profundo?
Why Personalizing Deep Learning-Based Code Completion Tools Matters
March 18, 2025
Autores: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Resumen
Las herramientas de completado de código basadas en aprendizaje profundo (DL) han transformado el desarrollo de software al permitir la generación avanzada de código. Estas herramientas aprovechan modelos entrenados con grandes cantidades de código provenientes de numerosos repositorios, capturando patrones generales de programación. Sin embargo, el impacto de ajustar finamente estos modelos para organizaciones o desarrolladores específicos con el fin de mejorar su rendimiento en dichos contextos sigue sin explorarse. En este trabajo, abordamos esta brecha presentando evidencia empírica sólida que responde a esta pregunta. Más específicamente, consideramos 136 desarrolladores de dos organizaciones (Apache y Spring), dos arquitecturas de modelos (T5 y Code Llama) y tres tamaños de modelos (60M, 750M y 7B parámetros entrenables). Los modelos T5 (60M, 750M) fueron preentrenados y ajustados finamente en más de 2,000 proyectos de código abierto, excluyendo los datos de las organizaciones estudiadas, y se compararon con versiones ajustadas finamente en conjuntos de datos específicos de la organización y del desarrollador. Para el modelo Code Llama (7B), comparamos el rendimiento del modelo preentrenado disponible públicamente en línea con el mismo modelo ajustado finamente mediante ajuste fino eficiente en parámetros en conjuntos de datos específicos de la organización y del desarrollador. Nuestros resultados muestran que existe una mejora en las capacidades de predicción proporcionada tanto por un ajuste fino adicional específico de la organización como del desarrollador, siendo el primero particularmente eficiente. Este hallazgo se generaliza tanto en (i) las dos organizaciones estudiadas (es decir, Apache y Spring) como en (ii) modelos de magnitudes completamente diferentes (desde 60M hasta 7B parámetros entrenables). Finalmente, demostramos que los modelos DL ajustados finamente en un conjunto de datos específico de la organización logran el mismo rendimiento de completado que los modelos de código preentrenados utilizados sin ajustes y que son aproximadamente 10 veces más grandes, lo que conlleva ahorros en términos de costos de implementación e inferencia (por ejemplo, GPUs más pequeñas necesarias).
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