Perché Personalizzare gli Strumenti di Completamento del Codice Basati sul Deep Learning è Importante
Why Personalizing Deep Learning-Based Code Completion Tools Matters
March 18, 2025
Autori: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Abstract
Gli strumenti di completamento del codice basati sul deep learning (DL) hanno trasformato lo sviluppo software consentendo una generazione avanzata di codice. Questi strumenti sfruttano modelli addestrati su grandi quantità di codice provenienti da numerosi repository, catturando schemi di codifica generali. Tuttavia, l'impatto del fine-tuning di questi modelli per organizzazioni o sviluppatori specifici, al fine di migliorare le loro prestazioni su tali soggetti, rimane inesplorato. In questo lavoro, colmiamo questa lacuna presentando solide evidenze empiriche che rispondono a questa domanda. Più specificamente, consideriamo 136 sviluppatori di due organizzazioni (Apache e Spring), due architetture di modelli (T5 e Code Llama) e tre dimensioni di modelli (60M, 750M e 7B parametri addestrabili). I modelli T5 (60M, 750M) sono stati pre-addestrati e sottoposti a fine-tuning su oltre 2.000 progetti open-source, escludendo i dati delle organizzazioni in esame, e confrontati con versioni sottoposte a fine-tuning su dataset specifici per organizzazione e sviluppatore. Per il modello Code Llama (7B), abbiamo confrontato le prestazioni del modello già pre-addestrato disponibile pubblicamente online con lo stesso modello sottoposto a fine-tuning tramite fine-tuning efficiente in termini di parametri su dataset specifici per organizzazione e sviluppatore. I nostri risultati mostrano che esiste un miglioramento nelle capacità di previsione fornito sia da un fine-tuning aggiuntivo specifico per organizzazione che per sviluppatore, con il primo particolarmente performante. Tale scoperta si generalizza attraverso (i) le due organizzazioni in esame (ovvero Apache e Spring) e (ii) modelli di dimensioni completamente diverse (da 60M a 7B parametri addestrabili). Infine, dimostriamo che i modelli DL sottoposti a fine-tuning su un dataset specifico per organizzazione raggiungono le stesse prestazioni di completamento dei modelli di codice pre-addestrati utilizzati così come sono e che sono circa 10 volte più grandi, con conseguenti risparmi in termini di costi di distribuzione e inferenza (ad esempio, GPU più piccole necessarie).
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).