ChatPaper.aiChatPaper

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已被证明可以有效地支持基于人工智能的代码编写工具,能够在编写代码过程中建议整个语句或代码块。在本文中,我们介绍了CodeCompose,这是一个在Meta内部开发和部署的人工智能辅助代码编写工具。CodeCompose基于InCoder LLM,将生成能力与双向性相结合。我们已经将CodeCompose扩展到为Meta的数万名开发人员提供服务,涵盖10多种编程语言和多个编码界面。 我们讨论了在大规模工业环境中部署此类工具时出现的用户体验和指标方面的独特挑战。我们分享了在为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.
PDF20December 15, 2024