CodeCompose: Un Despliegue Industrial a Gran Escala de Creación de Código Asistida por IA
CodeCompose: A Large-Scale Industrial Deployment of AI-assisted Code Authoring
May 20, 2023
Autores: Vijayaraghavan Murali, Chandra Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan
cs.AI
Resumen
El auge de los modelos de lenguaje de gran escala (LLMs, por sus siglas en inglés) ha desbloqueado diversas aplicaciones de esta tecnología en el desarrollo de software. En particular, se ha demostrado que los LLMs generativos son efectivos para impulsar herramientas de creación de código basadas en IA que pueden sugerir declaraciones completas o bloques de código durante la escritura de código. En este artículo presentamos CodeCompose, una herramienta de creación de código asistida por IA desarrollada e implementada internamente en Meta. CodeCompose se basa en el LLM InCoder, que combina capacidades generativas con bidireccionalidad. Hemos escalado CodeCompose para servir a decenas de miles de desarrolladores en Meta, abarcando más de 10 lenguajes de programación y varias superficies de codificación.
Discutimos desafíos únicos en términos de experiencia de usuario y métricas que surgen al implementar este tipo de herramientas en entornos industriales a gran escala. Presentamos nuestra experiencia en la toma de decisiones de diseño sobre el modelo y la arquitectura del sistema para CodeCompose que abordan estos desafíos. Finalmente, presentamos métricas de nuestra implementación a gran escala de CodeCompose que muestran su impacto en la experiencia interna de creación de código de Meta durante un período de 15 días, en el que CodeCompose realizó 4.5 millones de sugerencias. Las métricas cuantitativas revelan que (i) CodeCompose tiene una tasa de aceptación del 22% en varios lenguajes, y (ii) el 8% del código escrito por los usuarios de CodeCompose proviene de la aceptación de sugerencias de código de esta herramienta. Los comentarios cualitativos indican una abrumadora recepción positiva del 91.5% para CodeCompose. Además de asistir en la creación de código, CodeCompose también está introduciendo otros efectos positivos, como fomentar que los desarrolladores generen más documentación en el código y ayudarlos en el descubrimiento de nuevas APIs, entre otros.
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.