Full Line Code Completion: Bringing AI to Desktop

Anton Semenkin, Vitaliy Bibaev, Yaroslav Sokolov, Kirill Krylov, Alexey Kalina +12 more
5/14/2024
cs.SEcs.LG

No confident code implementation found for this paper. 2 possible matches can be shown below.

Abstract

In recent years, several industrial solutions for the problem of multi-token code completion appeared, each making a great advance in the area but mostly focusing on cloud-based runtime and avoiding working on the end user's device. In this work, we describe our approach for building a multi-token code completion feature for the JetBrains' IntelliJ Platform, which we call Full Line Code Completion. The feature suggests only syntactically correct code and works fully locally, i.e., data querying and the generation of suggestions happens on the end user's machine. We share important time and memory-consumption restrictions, as well as design principles that a code completion engine should satisfy. Working entirely on the end user's device, our code completion engine enriches user experience while being not only fast and compact but also secure. We share a number of useful techniques to meet the stated development constraints and also describe offline and online evaluation pipelines that allowed us to make better decisions. Our online evaluation shows that the usage of the tool leads to 1.3 times more Python code in the IDE being produced by code completion. The described solution was initially started with a help of researchers and was then bundled into all JetBrains IDEs where it is now used by millions of users. Thus, we believe that this work is useful for bridging academia and industry, providing researchers with the knowledge of what happens when complex research-based solutions are integrated into real products.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 2 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{semenkin2024full,
  title  = {Full Line Code Completion: Bringing AI to Desktop},
  author = {Anton Semenkin and Vitaliy Bibaev and Yaroslav Sokolov and Kirill Krylov and Alexey Kalina and Anna Khannanova and Danila Savenkov and Darya Rovdo and Igor Davidenko and Kirill Karnaukhov and Maxim Vakhrushev and Mikhail Kostyukov and Mikhail Podvitskii and Petr Surkov and Yaroslav Golubev and Nikita Povarov and Timofey Bryksin},
  year   = {2024},
  eprint = {2405.08704},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2405.08704v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2405.08704.svg)](https://codeofpaper.com/paper/2405.08704)

Discussion