Sul Pretraining per il Completamento del Codice a Livello di Progetto
On Pretraining for Project-Level Code Completion
October 15, 2025
Autori: Maksim Sapronov, Evgeniy Glukhov
cs.AI
Abstract
Il pretraining a livello di repository è comunemente utilizzato per consentire ai grandi modelli linguistici per il codice di sfruttare il contesto a livello di intera codebase. Ciò migliora la loro capacità di generare completamenti di codice accurati e consapevoli del contesto. In questo lavoro, investigiamo come diverse strategie di elaborazione del repository influenzino l'apprendimento in contesto in OpenCoder, un modello da 1,5 miliardi di parametri. Estendiamo la sua finestra contestuale da 4.096 a 16.384 token addestrandolo su ulteriori 1 miliardo di token di dati curati a livello di repository. Nonostante si basi su un dataset più piccolo rispetto ai modelli concorrenti (che spesso utilizzano centinaia di miliardi di token), il nostro modello raggiunge prestazioni comparabili sul benchmark Long Code Arena. Scopriamo che varie tecniche di elaborazione del repository producono risultati altrettanto forti, con il guadagno principale derivante dall'adattamento a un nuovo parametro di scaling per l'embedding posizionale rotatorio (RoPE). Infine, dimostriamo che un approccio di addestramento più semplice a livello di file, con la lunghezza originale della sequenza, rimane altamente efficace, aprendo la ricerca sui completamenti di codice a livello di repository a contesti con risorse di dati e calcolo più limitate.
English
Repository-level pretraining is commonly used to enable large language models
for code to leverage codebase-wide context. This enhances their ability to
generate accurate and context-aware code completions. In this work, we
investigate how different repository-processing strategies affect in-context
learning in OpenCoder, a 1.5B-parameter model. We extend its context window
from 4,096 to 16,384 tokens by training on additional 1B tokens of curated
repository-level data. Despite relying on a smaller dataset than competing
models (which often use hundreds of billions of tokens), our model achieves
comparable performance on the Long Code Arena benchmark. We find that various
repository-processing techniques yield similarly strong results, with the
primary gain coming from adapting to a new rotary positional embedding (RoPE)
scaling parameter. Finally, we show that a simpler file-level training approach
at the original sequence length remains highly effective, opening up
repository-level code completion research to settings with more constrained
data and compute resources.