CodeCompose: Un'implementazione industriale su larga scala dell'autore di codice assistito dall'IA
CodeCompose: A Large-Scale Industrial Deployment of AI-assisted Code Authoring
May 20, 2023
Autori: Vijayaraghavan Murali, Chandra Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan
cs.AI
Abstract
L'ascesa dei grandi modelli linguistici (LLM) ha aperto la strada a varie applicazioni di questa tecnologia nello sviluppo del software. In particolare, i LLM generativi si sono dimostrati efficaci nel potenziare strumenti di creazione del codice basati sull'intelligenza artificiale, in grado di suggerire intere istruzioni o blocchi di codice durante la scrittura. In questo articolo presentiamo CodeCompose, uno strumento di creazione del codice assistito dall'IA sviluppato e implementato internamente presso Meta. CodeCompose si basa sul modello LLM InCoder, che combina capacità generative con la bidirezionalità. Abbiamo scalato CodeCompose per servire decine di migliaia di sviluppatori in Meta, supportando oltre 10 linguaggi di programmazione e diverse interfacce di codifica.
Discutiamo le sfide uniche in termini di esperienza utente e metriche che emergono quando si implementano tali strumenti in contesti industriali su larga scala. Presentiamo la nostra esperienza nel prendere decisioni di progettazione riguardanti il modello e l'architettura del sistema per CodeCompose, affrontando queste sfide. Infine, presentiamo le metriche della nostra implementazione su larga scala di CodeCompose, che mostrano il suo impatto sull'esperienza di creazione del codice interna a Meta in un periodo di 15 giorni, durante il quale CodeCompose ha generato 4,5 milioni di suggerimenti. Le metriche quantitative rivelano che (i) CodeCompose ha un tasso di accettazione del 22% in diversi linguaggi e (ii) l'8% del codice digitato dagli utenti di CodeCompose deriva dall'accettazione dei suoi suggerimenti. Il feedback qualitativo indica una ricezione positiva schiacciante del 91,5% per CodeCompose. Oltre ad assistere nella creazione del codice, CodeCompose sta introducendo altri effetti positivi collaterali, come incoraggiare gli sviluppatori a generare più documentazione nel codice e aiutarli nella scoperta di nuove API.
English
The rise of large language models (LLMs) has unlocked various applications of
this technology in software development. In particular, generative LLMs have
been shown to effectively power AI-based code authoring tools that can suggest
entire statements or blocks of code during code authoring. In this paper we
present CodeCompose, an AI-assisted code authoring tool developed and deployed
at Meta internally. CodeCompose is based on the InCoder LLM that merges
generative capabilities with bi-directionality. We have scaled up CodeCompose
to serve tens of thousands of developers at Meta, across 10+ programming
languages and several coding surfaces.
We discuss unique challenges in terms of user experience and metrics that
arise when deploying such tools in large-scale industrial settings. We present
our experience in making design decisions about the model and system
architecture for CodeCompose that addresses these challenges. Finally, we
present metrics from our large-scale deployment of CodeCompose that shows its
impact on Meta's internal code authoring experience over a 15-day time window,
where 4.5 million suggestions were made by CodeCompose. Quantitative metrics
reveal that (i) CodeCompose has an acceptance rate of 22% across several
languages, and (ii) 8% of the code typed by users of CodeCompose is through
accepting code suggestions from CodeCompose. Qualitative feedback indicates an
overwhelming 91.5% positive reception for CodeCompose. In addition to assisting
with code authoring, CodeCompose is also introducing other positive side
effects such as encouraging developers to generate more in-code documentation,
helping them with the discovery of new APIs, etc.