Многострочное создание кода с помощью ИИ
Multi-line AI-assisted Code Authoring
February 6, 2024
Авторы: 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
Аннотация
CodeCompose — это инструмент для написания кода с поддержкой ИИ, основанный на больших языковых моделях (LLM), который предоставляет встроенные подсказки десяткам тысяч разработчиков в Meta. В этой статье мы рассказываем, как мы масштабировали продукт от отображения однострочных подсказок до многострочных. Это развитие потребовало преодоления нескольких уникальных проблем, связанных с улучшением удобства использования таких подсказок для разработчиков.
Во-первых, мы обсуждаем, как многострочные подсказки могут вызывать «раздражающий» эффект, поскольку предложения LLM постоянно перемещают существующий код разработчика, что может снижать продуктивность и удовлетворенность.
Во-вторых, генерация многострочных подсказок занимает значительно больше времени; поэтому мы представляем несколько инновационных решений, которые мы внедрили для снижения воспринимаемой задержки для пользователей. Эти оптимизации хостинга моделей ускорили задержку многострочных подсказок в 2,5 раза.
Наконец, мы провели эксперименты с участием десятков тысяч инженеров, чтобы понять, как многострочные подсказки влияют на пользовательский опыт, и сравнили их с однострочными. Наши эксперименты показывают, что (i) многострочные подсказки составляют 42% от общего числа принятых символов (несмотря на то, что они составляют только 16% от отображаемых подсказок), (ii) многострочные подсказки почти удвоили процент сэкономленных нажатий клавиш для пользователей — с 9% до 17%. Многострочный CodeCompose был внедрен для всех инженеров в Meta, и менее 1% инженеров отказались от использования многострочных подсказок.
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.