CodeCompose: Een grootschalige industriële implementatie van AI-ondersteund code schrijven Auteur
CodeCompose: A Large-Scale Industrial Deployment of AI-assisted Code Authoring
May 20, 2023
Auteurs: Vijayaraghavan Murali, Chandra Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan
cs.AI
Samenvatting
De opkomst van grote taalmodelen (LLM's) heeft diverse toepassingen van deze technologie in softwareontwikkeling mogelijk gemaakt. Met name generatieve LLM's zijn effectief gebleken in het aandrijven van AI-gebaseerde codeerhulpmiddelen die volledige statements of codeblokken kunnen voorstellen tijdens het schrijven van code. In dit artikel presenteren we CodeCompose, een AI-ondersteund codeerhulpmiddel dat intern bij Meta is ontwikkeld en geïmplementeerd. CodeCompose is gebaseerd op het InCoder LLM, dat generatieve mogelijkheden combineert met bidirectionele functionaliteit. We hebben CodeCompose opgeschaald om tienduizenden ontwikkelaars bij Meta te ondersteunen, over meer dan 10 programmeertalen en verschillende codeeromgevingen.
We bespreken unieke uitdagingen op het gebied van gebruikerservaring en metriek die ontstaan bij het implementeren van dergelijke hulpmiddelen in grootschalige industriële omgevingen. We delen onze ervaringen met het maken van ontwerpbeslissingen over het model en de systeemarchitectuur van CodeCompose die deze uitdagingen aanpakken. Tot slot presenteren we metriek uit onze grootschalige implementatie van CodeCompose die de impact ervan op de interne codeerervaring bij Meta laten zien over een periode van 15 dagen, waarin CodeCompose 4,5 miljoen suggesties heeft gedaan. Kwantitatieve metriek laten zien dat (i) CodeCompose een acceptatiegraad van 22% heeft over verschillende talen, en (ii) 8% van de code die door gebruikers van CodeCompose wordt getypt, afkomstig is uit het accepteren van codesuggesties van CodeCompose. Kwalitatieve feedback wijst op een overweldigend positieve ontvangst van 91,5% voor CodeCompose. Naast het ondersteunen bij het schrijven van code, introduceert CodeCompose ook andere positieve neveneffecten, zoals het stimuleren van ontwikkelaars om meer documentatie in de code te genereren en hen te helpen bij het ontdekken van nieuwe API's, enzovoort.
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.