ChatPaper.aiChatPaper

Rédaction de code assistée par IA multi-lignes

Multi-line AI-assisted Code Authoring

February 6, 2024
Auteurs: Omer Dunay, Daniel Cheng, Adam Tait, Parth Thakkar, Peter C Rigby, Andy Chiu, Imad Ahmad, Arun Ganesan, Chandra Maddila, Vijayaraghavan Murali, Ali Tayyebi, Nachiappan Nagappan
cs.AI

Résumé

CodeCompose est un outil de rédaction de code assisté par l'intelligence artificielle, alimenté par des modèles de langage de grande taille (LLMs), qui propose des suggestions en ligne à des dizaines de milliers de développeurs chez Meta. Dans cet article, nous présentons comment nous avons fait évoluer le produit pour passer de suggestions sur une seule ligne à des suggestions sur plusieurs lignes. Cette évolution nous a obligés à surmonter plusieurs défis uniques afin d'améliorer l'utilisabilité de ces suggestions pour les développeurs. Premièrement, nous discutons de l'effet « déstabilisant » que peuvent avoir les suggestions multi-lignes, car les propositions du LLM déplacent constamment le code existant du développeur, ce qui pourrait autrement entraîner une baisse de productivité et de satisfaction. Deuxièmement, les suggestions multi-lignes prennent significativement plus de temps à générer ; nous présentons donc plusieurs innovations que nous avons mises en œuvre pour réduire la latence perçue par les utilisateurs. Ces optimisations d'hébergement des modèles ont permis de réduire la latence des suggestions multi-lignes par un facteur de 2,5. Enfin, nous avons mené des expériences auprès de dizaines de milliers d'ingénieurs pour comprendre comment les suggestions multi-lignes impactent l'expérience utilisateur et les comparer aux suggestions sur une seule ligne. Nos expériences révèlent que (i) les suggestions multi-lignes représentent 42 % des caractères acceptés au total (bien qu'elles ne représentent que 16 % des suggestions affichées) et (ii) les suggestions multi-lignes ont presque doublé le pourcentage de frappes économisées pour les utilisateurs, passant de 9 % à 17 %. CodeCompose avec suggestions multi-lignes a été déployé auprès de tous les ingénieurs de Meta, et moins de 1 % des ingénieurs ont choisi de désactiver cette fonctionnalité.
English
CodeCompose is an AI-assisted code authoring tool powered by large language models (LLMs) that provides inline suggestions to 10's of thousands of developers at Meta. In this paper, we present how we scaled the product from displaying single-line suggestions to multi-line suggestions. This evolution required us to overcome several unique challenges in improving the usability of these suggestions for developers. First, we discuss how multi-line suggestions can have a 'jarring' effect, as the LLM's suggestions constantly move around the developer's existing code, which would otherwise result in decreased productivity and satisfaction. Second, multi-line suggestions take significantly longer to generate; hence we present several innovative investments we made to reduce the perceived latency for users. These model-hosting optimizations sped up multi-line suggestion latency by 2.5x. Finally, we conduct experiments on 10's of thousands of engineers to understand how multi-line suggestions impact the user experience and contrast this with single-line suggestions. Our experiments reveal that (i) multi-line suggestions account for 42% of total characters accepted (despite only accounting for 16% for displayed suggestions) (ii) multi-line suggestions almost doubled the percentage of keystrokes saved for users from 9% to 17%. Multi-line CodeCompose has been rolled out to all engineers at Meta, and less than 1% of engineers have opted out of multi-line suggestions.
PDF102December 15, 2024