SECLLGApr 12, 2022

InCoder: A Generative Model for Code Infilling and Synthesis

BerkeleyCMUUW
arXiv:2204.05999v3872 citationsh-index: 116
Originality Highly original
AI Analysis

This addresses the need for more flexible code generation tools for developers, offering a novel approach to code infilling with zero-shot capabilities.

The paper tackles the problem of code generation and editing by introducing InCoder, a unified generative model that performs program synthesis and infilling, achieving substantial performance improvements on tasks like type inference and comment generation through bidirectional context conditioning.

Code is seldom written in a single left-to-right pass and is instead repeatedly edited and refined. We introduce InCoder, a unified generative model that can perform program synthesis (via left-to-right generation) as well as editing (via infilling). InCoder is trained to generate code files from a large corpus of permissively licensed code, where regions of code have been randomly masked and moved to the end of each file, allowing code infilling with bidirectional context. Our model is the first generative model that is able to directly perform zero-shot code infilling, which we evaluate on challenging tasks such as type inference, comment generation, and variable re-naming. We find that the ability to condition on bidirectional context substantially improves performance on these tasks, while still performing comparably on standard program synthesis benchmarks in comparison to left-to-right only models pretrained at similar scale. The InCoder models and code are publicly released. https://sites.google.com/view/incoder-code-models

Code Implementations3 repos
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes