CodeCompose: Крупномасштабное промышленное внедрение ИИ-ассистированного создания кода Автор
CodeCompose: A Large-Scale Industrial Deployment of AI-assisted Code Authoring
May 20, 2023
Авторы: Vijayaraghavan Murali, Chandra Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan
cs.AI
Аннотация
Рост крупных языковых моделей (LLM) открыл множество возможностей для применения этой технологии в разработке программного обеспечения. В частности, генеративные LLM доказали свою эффективность в создании инструментов для написания кода на основе ИИ, которые могут предлагать целые выражения или блоки кода в процессе написания. В данной статье мы представляем CodeCompose — инструмент для написания кода с поддержкой ИИ, разработанный и внедренный внутри компании Meta. CodeCompose основан на модели InCoder LLM, которая объединяет генеративные возможности с двунаправленностью. Мы масштабировали CodeCompose для обслуживания десятков тысяч разработчиков в Meta, поддерживая более 10 языков программирования и несколько сред разработки.
Мы обсуждаем уникальные проблемы, связанные с пользовательским опытом и метриками, которые возникают при внедрении таких инструментов в крупных промышленных условиях. Мы делимся опытом принятия решений по проектированию модели и архитектуры системы для CodeCompose, которые позволяют решать эти проблемы. Наконец, мы представляем метрики из нашего масштабного внедрения CodeCompose, демонстрирующие его влияние на процесс написания кода внутри Meta за 15-дневный период, в течение которого CodeCompose сделал 4,5 миллиона предложений. Количественные метрики показывают, что (i) уровень принятия предложений CodeCompose составляет 22% для нескольких языков, и (ii) 8% кода, написанного пользователями CodeCompose, было создано путем принятия предложений от инструмента. Качественные отзывы указывают на ошеломляющие 91,5% положительного восприятия CodeCompose. Помимо помощи в написании кода, CodeCompose также способствует другим положительным эффектам, таким как стимулирование разработчиков к созданию большего количества документации в коде, помощь в открытии новых 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.