IntelliCode Compose: Code Generation Using Transformer
Alexey Svyatkovskiy, Shao Kun Deng, Shengyu Fu, Neel Sundaresan

TL;DR
IntelliCode Compose is a multilingual, transformer-based code completion tool capable of generating entire lines of syntactically correct code across multiple programming languages, improving IDE code suggestion features.
Contribution
It introduces a general-purpose, transformer-based code completion system trained on 1.2 billion lines of code, capable of predicting full code sequences in multiple languages.
Findings
Achieves 86.7% edit similarity for Python
Perplexity of 1.82 for Python code
Supports real-time code suggestions in IDEs
Abstract
In software development through integrated development environments (IDEs), code completion is one of the most widely used features. Nevertheless, majority of integrated development environments only support completion of methods and APIs, or arguments. In this paper, we introduce IntelliCode Compose a general-purpose multilingual code completion tool which is capable of predicting sequences of code tokens of arbitrary types, generating up to entire lines of syntactically correct code. It leverages state-of-the-art generative transformer model trained on 1.2 billion lines of source code in Python, , JavaScript and TypeScript programming languages. IntelliCode Compose is deployed as a cloud-based web service. It makes use of client-side tree-based caching, efficient parallel implementation of the beam search decoder, and compute graph optimizations to meet edit-time completion…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
MethodsLinear Layer · Absolute Position Encodings · Position-Wise Feed-Forward Layer · Residual Connection · Label Smoothing · Multi-Head Attention · Adam · *Communicated@Fast*How Do I Communicate to Expedia? · Dropout · Byte Pair Encoding
