论文标题
Intellicode撰写:使用变压器代码生成代码
IntelliCode Compose: Code Generation Using Transformer
论文作者
论文摘要
在通过集成开发环境(IDE)的软件开发中,代码完成是使用最广泛的功能之一。然而,大多数集成开发环境仅支持完成方法和API或参数的完成。 在本文中,我们介绍了Intellicode构成$ - $ $的通用多语言代码完成工具,该工具能够预测任意类型的代码令牌的序列,从而生成最多的整个语法正确代码。它利用了在Python,$ C \#$,JavaScript和Typescript编程语言中以12亿行源代码进行培训的最新生成变压器模型。 Intellicode组合被部署为基于云的Web服务。它利用基于客户端的基于树的缓存,有效的光束搜索解码器并行实现,并计算图形优化,以满足Visual Studio Code IDE和Azure Notebook中的编辑时间完成建议要求。 我们的最佳模型的平均编辑相似性为$ 86.7 \%$,Python编程语言的困惑为1.82。
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, $C\#$, 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 suggestion requirements in the Visual Studio Code IDE and Azure Notebook. Our best model yields an average edit similarity of $86.7\%$ and a perplexity of 1.82 for Python programming language.