Control Models for In-IDE Code Completion
Aral de Moor, Yana Hrynevich, Hleb Badzeika, Vladyslav Furda, Marko Kojic, Artem Savelev, Kostadin Cvejoski, Darya Rovdo, Ekaterina Garanina
TL;DR
This paper addresses misalignment between LLM-powered code completion and developer flow by introducing control models that gate and filter in-editor suggestions using in-IDE telemetry and code context. It evaluates two architectures—gradient-boosting on tabular data and transformer-based classifiers that incorporate code context—across offline datasets and live A/B tests in JetBrains IDEs, reporting around 0.20 of completions avoided without harming user experience and with improved acceptance and cancellation metrics. The work discusses the practical challenges of latency, privacy, and integration for transformer-based approaches, and demonstrates that lightweight boosting models can achieve meaningful gains while remaining deployable. It also outlines directions for long-term productivity metrics, user personalisation, and potential end-to-end reinforcement learning approaches. Overall, the results highlight the potential of control models to enable smarter in-IDE AI integration and point to concrete paths for improving efficiency and user satisfaction.
Abstract
We introduce control models for LLM-powered code completion in JetBrains IDEs: ML classifiers which trigger inference and filter the generated suggestions to better align them with users and reduce unnecessary requests. To this end, we evaluate boosting- and transformer-based architectures on an offline dataset of real code completions with n=98 users. We further evaluate the offline classification performance of our boosting-based approach on a range of syntactically diverse languages; and perform an A/B study in a production environment where they improve completion efficiency and quality metrics. With this study, we hope to demonstrate the potential in using auxiliary models for smarter in-IDE integration of LLM-driven features, highlight fruitful future directions, and open problems.
