Full Line Code Completion: Bringing AI to Desktop

要約

近年、マルチトークンコード補完の問題に対するいくつかの産業用ソリューションが登場し、それぞれがこの分野で大きな進歩を遂げていますが、そのほとんどはクラウドベースのランタイムに焦点を当てており、エンドユーザーのデバイスでの作業を回避しています。
この作業では、フルライン コード補完と呼ばれる、JetBrains の IntelliJ プラットフォーム用のマルチトークン コード補完機能を構築するためのアプローチについて説明します。
この機能は構文的に正しいコードのみを提案し、完全にローカルで動作します。つまり、データのクエリと提案の生成はエンド ユーザーのマシンで行われます。
私たちは、時間とメモリ消費に関する重要な制限と、コード補完エンジンが満たすべき設計原則を共有します。
エンド ユーザーのデバイス上で完全に動作するコード補完エンジンは、高速かつコンパクトなだけでなく安全でもありながら、ユーザー エクスペリエンスを豊かにします。
明示された開発制約を満たすための多くの有用なテクニックを共有し、より適切な意思決定を可能にするオフラインおよびオンラインの評価パイプラインについても説明します。
オンライン評価によると、このツールを使用すると、コード補完によって IDE で 1.3 倍多くの Python コードが生成されることがわかりました。
説明されているソリューションは、当初研究者の協力を得て開始され、その後すべての JetBrains IDE にバンドルされ、現在では何百万ものユーザーによって使用されています。
したがって、この研究は学術界と産業界の橋渡しに役立ち、複雑な研究​​ベースのソリューションが実際の製品に統合されたときに何が起こるかについての知識を研究者に提供できると私たちは信じています。

要約(オリジナル)

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.

arxiv情報

著者 Anton Semenkin,Vitaliy Bibaev,Yaroslav Sokolov,Kirill Krylov,Alexey Kalina,Anna Khannanova,Danila Savenkov,Darya Rovdo,Igor Davidenko,Kirill Karnaukhov,Maxim Vakhrushev,Mikhail Kostyukov,Mikhail Podvitskii,Petr Surkov,Yaroslav Golubev,Nikita Povarov,Timofey Bryksin
発行日 2024-10-07 17:23:25+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.LG, cs.SE パーマリンク