Creación de Código Asistida por IA en Múltiples Líneas
Multi-line AI-assisted Code Authoring
February 6, 2024
Autores: 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
Resumen
CodeCompose es una herramienta de creación de código asistida por IA, impulsada por modelos de lenguaje grandes (LLMs), que ofrece sugerencias en línea a decenas de miles de desarrolladores en Meta. En este artículo, presentamos cómo escalamos el producto desde la visualización de sugerencias de una sola línea hasta sugerencias de múltiples líneas. Esta evolución requirió que superáramos varios desafíos únicos para mejorar la usabilidad de estas sugerencias para los desarrolladores.
En primer lugar, discutimos cómo las sugerencias de múltiples líneas pueden tener un efecto "desconcertante", ya que las sugerencias del LLM constantemente mueven el código existente del desarrollador, lo que de otro modo resultaría en una disminución de la productividad y la satisfacción.
En segundo lugar, las sugerencias de múltiples líneas tardan significativamente más en generarse; por lo tanto, presentamos varias inversiones innovadoras que realizamos para reducir la latencia percibida por los usuarios. Estas optimizaciones en el alojamiento del modelo aceleraron la latencia de las sugerencias de múltiples líneas en 2.5 veces.
Finalmente, realizamos experimentos con decenas de miles de ingenieros para comprender cómo las sugerencias de múltiples líneas impactan la experiencia del usuario y contrastamos esto con las sugerencias de una sola línea. Nuestros experimentos revelan que (i) las sugerencias de múltiples líneas representan el 42% de los caracteres totales aceptados (a pesar de representar solo el 16% de las sugerencias mostradas) (ii) las sugerencias de múltiples líneas casi duplicaron el porcentaje de pulsaciones de teclas ahorradas para los usuarios, del 9% al 17%. CodeCompose con sugerencias de múltiples líneas se ha implementado para todos los ingenieros en Meta, y menos del 1% de los ingenieros han optado por no recibir sugerencias de múltiples líneas.
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.