CodeRAG: Finding Relevant and Necessary Knowledge for Retrieval-Augmented Repository-Level Code Completion
2509.16112v1
cs.CL, cs.IR, cs.SE
2025-09-23
Авторы:
Sheng Zhang, Yifan Ding, Shuquan Lian, Shun Song, Hui Li
Резюме на русском
#### Контекст
Repository-level code completion предсказывает незавершенный код, основываясь на более широкой информации из репозитория. Несмотря на прогрессы в области Code Large Language Models (code LLMs), эти методы сталкиваются с проблемами, такими как неэффективная конструкция запросов, однопутевое поисковое восстановление и несоответствие между кодовым ретрайвером и кодовым LLM. Эти недостатки приводят к ухудшению точности и эффективности результатов. Многопутевые подходы и более глубокая интеграция ретрайвера и кодового LLM могут улучшить результаты. Наша мотивация заключается в разработке методологии, которая максимально эффективно идентифицирует и использует необходимую и актуальную информацию из репозитория для повышения качества результатов repository-level code completion.
#### Метод
Мы предлагаем CodeRAG — рамочный подход, состоящий из трёх ключевых компонентов. **Log probability guided query construction** позволяет создавать запросы на основе лог-вероятностей, что улучшает выбор информации из репозитория. **Multi-path code retrieval** вводит многопутевое поисковое восстановление, чтобы увеличить широту возможных результатов. **Preference-aligned BestFit reranking** применяет предпочтения пользователя для оптимизации списка полученных результатов. Метод использует предварительно обученные code LLMs для работы. Этот многоуровневый подход устраняет проблемы, связанные с традиционным подходом, и обеспечивает более точные и связанные с контекстом результаты.
#### Результаты
Мы провели эксперименты на двух бенчмарках: ReccEval и CCEval. Наши результаты показывают, что CodeRAG существенно превосходит состояние технологии в области repository-level code completion. Мы сравнили показатели, такие как BLEU, ROUGE и METEOR, получив значительное улучшение по сравнению с альтернативными методами. Кроме того, CodeRAG продемонстрировал лучшие результаты в задачах восстановления кода, сохраняя высокую скорость работы и качество. Эти результаты свидетельствуют о том, что наш подход эффективен в решении существующих проблем и может быть применен в реальных сценариях.
#### Значимость
CodeRAG может быть применен в различных сферах, включая программирование, автоматизацию разработки и автоматическое поддержание кодовых репозиториев. Он обеспечивает более точные и адаптивные результаты, позволяя разработчикам экономить время и увеличивать производительность. Отличительные особенности — усовершенствованный подход к построению запросов, многопутевое восстановление и статистический анализ предпочтений — делают CodeRAG более универсальным и мощным. Мы видим потенциал для дальнейшего использования в системах с автоматическим кодовым редактированием и предсказанием кода.
#### Выводы
Наша работа исследовала новый подход
Abstract
Repository-level code completion automatically predicts the unfinished code
based on the broader information from the repository. Recent strides in Code
Large Language Models (code LLMs) have spurred the development of
repository-level code completion methods, yielding promising results.
Nevertheless, they suffer from issues such as inappropriate query construction,
single-path code retrieval, and misalignment between code retriever and code
LLM. To address these problems, we introduce CodeRAG, a framework tailored to
identify relevant and necessary knowledge for retrieval-augmented
repository-level code completion. Its core components include log probability
guided query construction, multi-path code retrieval, and preference-aligned
BestFit reranking. Extensive experiments on benchmarks ReccEval and CCEval
demonstrate that CodeRAG significantly and consistently outperforms
state-of-the-art methods. The implementation of CodeRAG is available at
https://github.com/KDEGroup/CodeRAG.
Ссылки и действия
Дополнительные ресурсы: