О предобучении для проектного завершения кода
On Pretraining for Project-Level Code Completion
October 15, 2025
Авторы: Maksim Sapronov, Evgeniy Glukhov
cs.AI
Аннотация
Предварительное обучение на уровне репозитория широко используется для того, чтобы крупные языковые модели, работающие с кодом, могли учитывать контекст всей кодовой базы. Это повышает их способность генерировать точные и контекстно-зависимые завершения кода. В данной работе мы исследуем, как различные стратегии обработки репозитория влияют на обучение в контексте в модели OpenCoder, содержащей 1,5 миллиарда параметров. Мы расширяем её контекстное окно с 4096 до 16 384 токенов, обучая модель на дополнительных 1 миллиарде токенов тщательно отобранных данных уровня репозитория. Несмотря на использование меньшего набора данных по сравнению с конкурирующими моделями (которые часто используют сотни миллиардов токенов), наша модель демонстрирует сопоставимую производительность на бенчмарке Long Code Arena. Мы обнаруживаем, что различные методы обработки репозитория дают схожие результаты, при этом основной прирост производительности достигается за счёт адаптации к новому параметру масштабирования ротационных позиционных эмбеддингов (RoPE). Наконец, мы показываем, что более простой подход к обучению на уровне файлов с исходной длиной последовательности остаётся высокоэффективным, что открывает исследования в области завершения кода на уровне репозитория для условий с ограниченными данными и вычислительными ресурсами.
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.