ChatPaper.aiChatPaper

TreeRanker: Быстрая и независимая от модели система ранжирования для предложений кода в IDE

TreeRanker: Fast and Model-agnostic Ranking System for Code Suggestions in IDEs

August 4, 2025
Авторы: Daniele Cipollone, Egor Bogomolov, Arie van Deursen, Maliheh Izadi
cs.AI

Аннотация

Автодополнение на уровне токенов является одной из наиболее важных функций в современных интегрированных средах разработки (IDE). Оно помогает разработчикам, предлагая соответствующие идентификаторы и API во время написания кода. Хотя предложения обычно формируются на основе статического анализа, их полезность во многом зависит от того, как они ранжируются, поскольку правильные предсказания, скрытые глубоко в списке, редко замечаются пользователями. Большинство современных систем полагаются на ручные эвристики или легковесные модели машинного обучения, обученные на логах пользователей, которые можно улучшить для более точного учета контекстной информации и обобщения между проектами и стилями программирования. В данной работе мы предлагаем новый подход к ранжированию статических предложений с использованием языковых моделей в легковесном и модельно-независимом стиле. Наш метод организует все допустимые предложения в префиксное дерево и выполняет один жадный проход декодирования для сбора оценок на уровне токенов по всему дереву. Это позволяет обеспечить точное ранжирование с учетом токенов без необходимости использования поиска по лучу, инженерии промптов или адаптации моделей. Подход является быстрым, архитектурно-независимым и совместимым с уже развернутыми моделями для автодополнения кода. Эти результаты демонстрируют практичный и эффективный путь интеграции языковых моделей в уже существующие инструменты IDE, что в конечном итоге обеспечивает более умную и отзывчивую помощь разработчикам.
English
Token-level code completion is one of the most critical features in modern Integrated Development Environments (IDEs). It assists developers by suggesting relevant identifiers and APIs during coding. While completions are typically derived from static analysis, their usefulness depends heavily on how they are ranked, as correct predictions buried deep in the list are rarely seen by users. Most current systems rely on hand-crafted heuristics or lightweight machine learning models trained on user logs, which can be further improved to capture context information and generalize across projects and coding styles. In this work, we propose a new scoring approach to ranking static completions using language models in a lightweight and model-agnostic way. Our method organizes all valid completions into a prefix tree and performs a single greedy decoding pass to collect token-level scores across the tree. This enables a precise token-aware ranking without needing beam search, prompt engineering, or model adaptations. The approach is fast, architecture-agnostic, and compatible with already deployed models for code completion. These findings highlight a practical and effective pathway for integrating language models into already existing tools within IDEs, and ultimately providing smarter and more responsive developer assistance.
PDF12August 6, 2025