GitHub Copilot возглавляет заряд в коммерческом программировании с помощью LLM

GitHub Copilot возглавляет заряд в коммерческом программировании с помощью LLM

5 августа 2025 г.

Аннотация и 1 введение

2. Предыдущие концептуализации интеллектуальной помощи для программистов

3. Краткий обзор больших языковых моделей для генерации кода

4. Коммерческие инструменты программирования, которые используют большие языковые модели

5. Надежность, безопасность и последствия безопасности моделей ИИ, генерирующих код,

6. Изузаение юзабилити и дизайна программирования A-ассистентного

7. Опыт отчетов и 7.1. Писать эффективные подсказки сложно

7.2 Активность программирования сдвигается в сторону проверки и незнакомой отладки

7.3. Эти инструменты полезны для шаблона и повторного использования кода

8. Неадекватность существующих метафор для программирования A-A-Advisted

8.1. Помощь ИИ в качестве поиска

8.2. Помощь ИИ в качестве компиляции

8.3. Помощь ИИ в качестве парного программирования

8.4. Отчетливый способ программирования

9. Проблемы с применением программирования конечного пользователя

9.1. Выпуск 1: Спецификация намерений, разложение проблемы и вычислительное мышление

9.2. Выпуск 2: Правильность кода, качество и (над) уверенность

9.3. Выпуск 3: Понимание и обслуживание кода

9.4. Выпуск 4: Последствия автоматизации в программировании конечных пользователей

9.5. Выпуск 5: Код без кода и дилемма прямого ответа

10. Заключение

A. Источники отчета о испытании

Ссылки

4. Коммерческие инструменты программирования, которые используют большие языковые модели

Openai Codex-это версия GPT, которая настраивается в общедоступном исходном коде (Chen, Tworek, Jun, Yuan, De Oliveira Pinto, et al., 2021). Хотя сам Codex не является инструментом, ориентированным на программист, OpenAI коммерциализировал его в виде API, на котором можно построить.

Основная коммерческая реализация Codex до сих пор была в GitHub Copilot. [5] Copilot - это расширение, которое можно установить в редакторы кодов, такие как Neovim, Jetbrains и Visual Studio Code. Copilot использует Codex, опираясь на содержимое отредактированного файла, соответствующих файлов в проекте, а также путей файлов или URL -адресов репозитории. При запуска он генерирует код в месте курсора, почти так же, как автозаполнение.

Чтобы помочь расширить ожидания разработчика в отношении возможностей Copilot помимо предыдущего стандартного использования автозаполнения, предлагаемые идиомы использования для Copilot включают в себя: написание комментария, объясняющего, что выполняет функция, и подпись функции, и позволяет копированию завершить тело функции; завершение кода шаблона; и определение испытательных случаев (рисунки 1 и 5). Программисты могут ездить на велосипеде между разными поколениями из модели, и как только конкретное завершение будет принято, его можно отредактировать, как и любой другой код.

По состоянию на 23 июня 2022 года Amazon анонсировала функцию, подобную Copilot под названием Codewhisperer, [6], которая также применяет большую языковую модель, обученную на корпусе исходного кода для создания автозаполнений на основе комментариев и кода. Маркетинговый материал описывает набор функций безопасности, таких как: обнаружение при сгенерированном коде, аналогична коду в учебном наборе, обнаружение известных уязвимостей безопасности в сгенерированном коде, и «удаление кода, который можно считать предвзятым и несправедливым» (хотя это последнее утверждение вызывает скептицизм). В настоящее время Codewhisperer не широко доступен, и, таким образом, мало что известно о его использовании на практике.

Другие коммерческие реализации функций автозаполнения A-Asististed включают Visual Studio Intellicode (Silver, 2018) (рис. 4) и табрин (рис. 3) [7]. Они более ограничены по объему, чем Copilot, и их пользовательский опыт соиззвителен для использования «традиционного» автозаполнения, то есть автозаполнения, которая обусловлена статическим анализом, синтаксисом и эвристикой. [8]. Структура модели машинного обучения, используемой этими реализациями, не раскрывается публично; Тем не менее, оба полагаются на модели, которые были обучены крупным корпусам общедоступного исходного кода.

Интересно отметить, что, несмотря на широкий спектр типов интеллектуальной помощи программиста, мы обсуждали в разделе 2 для нескольких аспектов программирования (создание, транскрипция, модификация, отладка и обучение), коммерческие реализации помощи, основанные на крупных языковых моделях до сих пор, направлены главным образом на авторизацию. Авторизм может рассматриваться как первое естественное применение модели генеративного языка, но знания о программировании в этих моделях, конечно, могут быть использованы для оказания помощи программистам в других видах деятельности.

Авторы:

(1) Advait Sarkar, Microsoft Research, Кембриджский университет (advait@microsoft.com);

(2) Эндрю Д. Гордон, Microsoft Research, Эдинбургский университет (adg@microsoft.com);

(3) Карина Негрину, Microsoft Research (cnegreanu@microsoft.com);

(4) Christian Poelitz, Microsoft Research (cpoelitz@microsoft.com);

(5) Sruti Srinivasa Ragavan, Microsoft Research (a-srutis@microsoft.com);

(6) Бен Зорн, Microsoft Research (ben.zorn@microsoft.com).


Эта статья естьДоступно на ArxivПод CC BY-NC-ND 4.0 Лицензия.

[5] https://copilot.github.com/

[6] https://aws.amazon.com/codewhisperer/features/

[7] https://www.tabnine.com/

[8] По состоянию на 15 июня 2022 года Tabnine объявила о переходе на автозаполнение, управляемое языком, которое больше напоминает способности Copilot (Weiss, 2022).


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE