CodeCompose: AI支援型コード作成の大規模産業展開
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
要旨
大規模言語モデル(LLMs)の台頭により、ソフトウェア開発におけるこの技術の多様な応用が可能となった。特に、生成型LLMsは、コード作成中に文やコードブロック全体を提案できるAIベースのコード作成ツールを効果的に駆動することが示されている。本論文では、Meta社内で開発および展開されたAI支援型コード作成ツールであるCodeComposeを紹介する。CodeComposeは、生成能力と双方向性を統合したInCoder LLMに基づいている。我々はCodeComposeを拡張し、10以上のプログラミング言語と複数のコーディング環境において、Meta社内の数万人の開発者にサービスを提供している。
大規模な産業環境でこのようなツールを展開する際に生じるユーザーエクスペリエンスとメトリクスに関する独自の課題について議論する。これらの課題に対処するためのCodeComposeのモデルとシステムアーキテクチャに関する設計決定の経験を提示する。最後に、CodeComposeの大規模展開から得られたメトリクスを紹介し、15日間の期間においてMeta社内のコード作成エクスペリエンスに与えた影響を示す。この期間中、CodeComposeは450万件の提案を行った。定量的なメトリクスからは、(i) CodeComposeが複数の言語にわたって22%の受容率を達成していること、(ii) CodeComposeのユーザーがタイプしたコードの8%がCodeComposeからのコード提案を受け入れたものであることが明らかとなった。定性的なフィードバックでは、CodeComposeに対する91.5%の肯定的な評価が得られた。コード作成を支援するだけでなく、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.