Impact-driven Context Filtering For Cross-file Code Completion
2508.05970v1
cs.SE, cs.AI
2025-08-12
Авторы:
Yanzhou Li, Shangqing Liu, Kangjie Chen, Tianwei Zhang, Yang Liu
Резюме на русском
#### Контекст
Инструменты автоматической подсказки кода, такие как cross-file code completion, становятся важной частью процесса разработки программного обеспечения. Эти инструменты используются для ускорения разработки, уменьшения числа ошибок и улучшения производительности разработчиков. Однако, существуют проблемы, связанные с точностью и эффективностью подсказок. Одна из них — неточность в выборе и использовании контекста из других файлов. Это приводит к нежелательным рекомендациям и ухудшению качества выдачи. Необходимо развитие методов, которые позволят более точно определить и использовать полезные части контекста.
#### Метод
Мы предлагаем новую методологию, основанную на ретриев-аугментированной генерации (RAG), которая объединяет в себе контекст из вложенных файлов и ранее написанного кода. Мы используем возможности глубокого обучения для построения модели, которая может оценивать вклад каждого отдельного фрагмента кода в общую точность рекомендации. Для этого мы разработали метрику, основанную на вероятностях, для оценки того, насколько каждый фрагмент кода полезен для рекомендации. Мы также создали новый датасет, где каждый фрагмент помечен как полезный (positive), нейтральный (neutral) или вредный (negative).
#### Результаты
Мы провели эксперименты на двух открытых бенчмарках: RepoEval и CrossCodeLongEval. Модель CODEFILTER, которая основывается на нашем подходе, показала существенное улучшение точности рекомендаций в сравнении с моделями, не использующими фильтрацию контекста. Мы также отметили, что модель CODEFILTER уменьшает длину входного последовательности (prompt), что улучшает эффективность вычислений. Мы также отметили, что наш подход обладает значительной генерализуемостью и работает хорошо со многими моделями различных архитектур.
#### Значимость
Наш подход может быть применен в различных сферах, где требуется точное и эффективное подсказывание кода. Например, в системах автоматической поддержки разработчиков, системах анализа кода и системах помощи в написании кода. Он позволяет улучшить точность и эффективность кода, а также обеспечивает более четкую атрибуцию каждого фрагмента кода, что может помочь в исследовании и улучшении качества моделей.
#### Выводы
Мы установили, что наш подход приводит к значительным улучшениям в точности рекомендации и эффективности вычислений в cross-file code completion. Будущие исследования будут сфокусированы на улучшении принципов фильтрации контекста, на расширении области применения модели и на дополнительной оптимизации производительности. Мы планируем также расширить наш датасет, чтобы включить более разнообразные задачи и задачу с многомодельным подходом.
Abstract
Retrieval-augmented generation (RAG) has recently demonstrated considerable
potential for repository-level code completion, as it integrates cross-file
knowledge with in-file preceding code to provide comprehensive contexts for
generation. To better understand the contribution of the retrieved cross-file
contexts, we introduce a likelihood-based metric to evaluate the impact of each
retrieved code chunk on the completion. Our analysis reveals that, despite
retrieving numerous chunks, only a small subset positively contributes to the
completion, while some chunks even degrade performance. To address this issue,
we leverage this metric to construct a repository-level dataset where each
retrieved chunk is labeled as positive, neutral, or negative based on its
relevance to the target completion. We then propose an adaptive retrieval
context filtering framework, CODEFILTER, trained on this dataset to mitigate
the harmful effects of negative retrieved contexts in code completion.
Extensive evaluation on the RepoEval and CrossCodeLongEval benchmarks
demonstrates that CODEFILTER consistently improves completion accuracy compared
to approaches without filtering operations across various tasks. Additionally,
CODEFILTER significantly reduces the length of the input prompt, enhancing
computational efficiency while exhibiting strong generalizability across
different models. These results underscore the potential of CODEFILTER to
enhance the accuracy, efficiency, and attributability of repository-level code
completion.
Ссылки и действия
Дополнительные ресурсы: