SaraCoder: Orchestrating Semantic and Structural Cues for Profit-Oriented Repository-Level Code Completion
2508.10068v1
cs.SE, cs.CL, cs.IR, cs.PL
2025-08-16
Авторы:
Xiaohan Chen, Zhongying Pan, Quan Feng, Yu Tian, Shuqun Yang, Mengru Wang, Lina Gong, Yuxia Geng, Piji Li, Xiang Chen
Резюме на русском
## Контекст
Современные системы подсчета кода хорошо успешно решают задачи в локальной области кода, но сталкиваются с рядом проблем при работе на уровне репозитория. Наиболее значимыми проблемами являются следующие:
1. **Semantic misguidance**: Отсутствие глубокого понимания семантических отношений между фрагментами кода приводит к результатам, которые не только не подходят по смыслу, но и порождают нежелательную редундантность и монотонность.
2. **External symbol ambiguity**: Невозможность точно определить внешние символы приводит к ситуациям, когда рекомендации кода не только неудобны, но и могут стать неприемлемыми в контексте задачи.
3. **Text-similarity bias**: Использование только текстовых синтаксических сигналов приводит к ограниченности в результатах и к снижению их качества.
`Saracoder` - это система, которая предлагает новый подход к решению этих проблем, ориентируясь на **semantic and structural cues** (семантические и структурные признаки). Эта система использует **Hierarchical Feature Optimization** для активной извлечения и систематического оптимизации результатов поиска, а также **External-Aware Identifier Disambiguator** для решения внешней символьной неоднозначности.
## Метод
Проект `Saracoder` основывается на **Hierarchical Feature Optimization**, разработанном для решения проблем семантического и структурного размышления в коде. Методология включает следующие компоненты:
1. **Hierarchical Feature Optimization Module**:
- Извлекает глубокие семантические отношения между фрагментами кода.
- Выполняет поиск и удаление дубликатов, при этом используя **Novel Graph-Based Metric**, который определяет важность топологических редакций.
- Выполняет ре-ранжирование результатов для максимального баланса между **релевантностью** и **разнообразием**.
2. **External-Aware Identifier Disambiguator**:
- Улучшает точность поиска и рекомендации кода путем **dependency analysis**.
- Обеспечивает решение внешней неоднозначности в символьных связях, работая на уровне **cross-file** и **cross-repository**.
Элементы этого фреймворка сочетаются для создания системы, которая не только предлагает более точные рекомендации, но и делает их более уникальными и релевантными в контексте задач репозитория.
## Результаты
Работа была проверена на **CrossCodeEval** и **RepoEval-Updated**, крупных датасетах для оценки результатов поиска в коде. Основные результаты:
- **Improved relevance and diversity**: Сравнительное тестирование показало, что `Saracoder` превосходит существующие базы, демонстрируя статистически значимую улучшенность показателей качества рекомендаций.
- **Addressing external symbol ambiguity**: Тестирование системы показало, что решение внешней символьной неоднозначности (External-Aware Identifier Disambiguator) позволяет повысить точность рекомендаций при работе с внешними символами.
- **Cross-Language Performance**: Результаты проверки показали, что `Saracoder` демонстрирует высокую эффе
Abstract
Retrieval-augmented generation (RAG) for repository-level code completion
commonly relies on superficial text similarity, leading to results plagued by
semantic misguidance, redundancy, and homogeneity, while also failing to
resolve external symbol ambiguity. To address these challenges, we introduce
Saracoder, a Hierarchical Feature-Optimized retrieval framework. Its core
Hierarchical Feature Optimization module systematically refines candidates by
distilling deep semantic relationships, pruning exact duplicates, assessing
structural similarity with a novel graph-based metric that weighs edits by
their topological importance, and reranking results to maximize both relevance
and diversity. Furthermore, an External-Aware Identifier Disambiguator module
accurately resolves cross-file symbol ambiguity via dependency analysis.
Extensive experiments on the challenging CrossCodeEval and RepoEval-Updated
benchmarks demonstrate that Saracoder significantly outperforms existing
baselines across multiple programming languages and models. Our work proves
that systematically refining retrieval results across multiple dimensions
provides a new paradigm for building more accurate and robust repository-level
code completion systems.