stringtranslate.com

GitHub Copilot

GitHub Copilot — это инструмент автодополнения кода и автоматического программирования, разработанный GitHub и OpenAI , который помогает пользователям интегрированных сред разработки (IDE) Visual Studio Code , Visual Studio , Neovim и JetBrains с помощью автодополнения кода. [1] В настоящее время это программное обеспечение для генеративного искусственного интеллекта, доступное по подписке для индивидуальных разработчиков и предприятий, было впервые анонсировано GitHub 29 июня 2021 года и лучше всего подходит для пользователей, кодирующих на Python , JavaScript , TypeScript , Ruby и Go . [2] В марте 2023 года GitHub объявил о планах по «Copilot X», который будет включать в себя чат-бота на основе GPT-4 , а также поддержку голосовых команд в Copilot. [3]

История

29 июня 2021 года GitHub анонсировал GitHub Copilot для технической предварительной версии в среде разработки Visual Studio Code. [1] [4] GitHub Copilot был выпущен как плагин на торговой площадке JetBrains 29 октября 2021 года. [5] 27 октября 2021 года GitHub выпустил плагин GitHub Copilot Neovim в качестве публичного репозитория. [6] 29 марта 2022 года GitHub анонсировал доступность Copilot для среды IDE Visual Studio 2022. [7] 21 июня 2022 года GitHub анонсировал, что Copilot вышел из «технической предварительной версии» и доступен в качестве сервиса на основе подписки для индивидуальных разработчиков. [8]

GitHub Copilot — это эволюция плагина «Bing Code Search» для Visual Studio 2013, который был проектом Microsoft Research, выпущенным в феврале 2014 года. [9] Этот плагин интегрирован с различными источниками, включая MSDN и Stack Overflow, для предоставления высококачественных контекстно-релевантных фрагментов кода в ответ на запросы на естественном языке. [10]

Функции

При наличии проблемы программирования на естественном языке Copilot способен генерировать код решения. [11] Он также способен описывать входной код на английском языке и переводить код между языками программирования. [11]

Согласно информации на веб-сайте, GitHub Copilot включает в себя вспомогательные функции для программистов, такие как преобразование комментариев кода в исполняемый код и автодополнение для фрагментов кода, повторяющихся разделов кода и целых методов и/или функций . [2] [12] GitHub сообщает, что функция автодополнения Copilot точна примерно в половине случаев; например, с некоторым кодом заголовка функции Python Copilot правильно автодополнил остальную часть кода тела функции в 43% случаев с первой попытки и в 57% случаев после десяти попыток. [2]

GitHub утверждает, что функции Copilot позволяют программистам ориентироваться в незнакомых фреймворках и языках программирования, сокращая время, которое пользователи тратят на чтение документации . [2]

Выполнение

GitHub Copilot изначально работал на базе OpenAI Codex [ 13] , который представляет собой модифицированную производственную версию Generative Pre-trained Transformer 3 (GPT-3), языковой модели, использующей глубокое обучение для создания текста, похожего на человеческий. [14] Модель Codex дополнительно обучена на гигабайтах исходного кода на дюжине языков программирования.

OpenAI Codex от Copilot обучается на выборке англоязычных, общедоступных репозиториев GitHub и других общедоступных исходных кодах. [2] Сюда входит отфильтрованный набор данных из 159 гигабайт кода Python, полученного из 54 миллионов общедоступных репозиториев GitHub. [15]

GPT-3 от OpenAI лицензирован исключительно для Microsoft , материнской компании GitHub . [16]

В ноябре 2023 года Copilot Chat был обновлен для использования модели GPT-4 от OpenAI . [17]

Прием

После выпуска Copilot возникли опасения относительно его безопасности и образовательного воздействия, а также споры о лицензировании кода, который он производит. [18] [11] [19]

Споры о лицензировании

Хотя генеральный директор GitHub Нат Фридман заявил в июне 2021 года, что «обучение систем МО на публичных данных является добросовестным использованием » [20], в коллективном иске, поданном в ноябре 2022 года, это было названо «чистой спекуляцией», и утверждалось, что «ни один суд не рассматривал вопрос о том, является ли «обучение систем МО на публичных данных добросовестным использованием»». [21] В иске от юридической фирмы Joseph Saveri Law Firm, LLP оспаривается законность Copilot по нескольким пунктам, начиная от нарушения договора с пользователями GitHub и заканчивая нарушением конфиденциальности в соответствии с CCPA за предоставление персональных данных . [22] [21]

GitHub признает, что небольшая часть выходных данных инструмента может быть скопирована дословно, что привело к опасениям, что выходной код недостаточно преобразующий, чтобы классифицироваться как добросовестное использование, и может нарушать авторские права первоначального владельца. [18] В июне 2022 года организация Software Freedom Conservancy объявила, что прекратит любое использование GitHub в своих собственных проектах, [23] обвинив Copilot в игнорировании лицензий на код, используемых в обучающих данных. [24] В сообщении службы поддержки клиентов GitHub заявила, что «обучение моделей машинного обучения на общедоступных данных считается добросовестным использованием в сообществе машинного обучения», [21] но в коллективном иске это было названо «ложным» и дополнительно отмечено, что «независимо от уровня принятия этой концепции в «сообществе машинного обучения», в соответствии с федеральным законом это незаконно». [21]

Белые книги FSF

28 июля 2021 года Фонд свободного программного обеспечения (FSF) опубликовал финансируемый призыв к представлению официальных документов по философским и юридическим вопросам, касающимся Copilot. [25] Дональд Робертсон, менеджер по лицензированию и соблюдению требований FSF, заявил, что «Copilot поднимает много [...] вопросов, которые требуют более глубокого изучения». [25] 24 февраля 2022 года FSF объявил, что получил 22 статьи по этой теме и, используя анонимный процесс рецензирования, выбрал 5 статей для освещения. [26]

Проблемы конфиденциальности

Служба Copilot основана на облаке и требует постоянной связи с серверами GitHub Copilot. [27] Эта непрозрачная архитектура вызвала опасения по поводу телеметрии и анализа данных отдельных нажатий клавиш. [28] [29]

Проблемы безопасности при прямом использовании выходных данных модели без контроля или тестирования

В статье, принятой к публикации на симпозиуме IEEE по безопасности и конфиденциальности в 2022 году, оценивалась безопасность кода, сгенерированного Copilot для 25 основных перечислений уязвимостей кода MITRE (например, межсайтовый скриптинг, обход пути) по 89 различным сценариям и 1689 программам. [19] Это было сделано по осям разнообразия уязвимостей (его способность реагировать на сценарии, которые могут привести к различным уязвимостям кода), разнообразия подсказок (его способность реагировать на одну и ту же уязвимость кода с небольшими вариациями) и разнообразия доменов (его способность генерировать спецификации оборудования на уровне передачи регистров в Verilog ). [19] Исследование показало, что по этим осям на нескольких языках 39,33% основных предложений и 40,73% от общего числа предложений привели к уязвимостям кода. Кроме того, они обнаружили, что небольшие, несемантические (т. е. комментарии) изменения, внесенные в код, могут повлиять на безопасность кода. [19]

Проблемы образования

В статье, опубликованной Ассоциацией вычислительной техники в феврале 2022 года , оценивается влияние Codex, технологии, используемой GitHub Copilot, на образование начинающих программистов. [11] В исследовании используются оценочные вопросы из вводного курса программирования в Университете Окленда , и сравниваются ответы Codex с успеваемостью студентов. [11] Исследователи обнаружили, что Codex в среднем показал лучшие результаты, чем большинство студентов; однако его производительность снизилась в вопросах, которые ограничивали то, какие функции можно было использовать в решении (например, условные операторы , коллекции и циклы ). [11] Учитывая этот тип проблемы, «только два из 10 решений [Codex] дали правильный результат, но оба [...] нарушили [ограничение]». В статье делается вывод, что Codex может быть полезен для предоставления учащимся различных решений, но также может привести к чрезмерной зависимости и плагиату. [11]

Смотрите также

Ссылки

  1. ^ ab Gershgorn, Dave (29 июня 2021 г.). «GitHub и OpenAI запускают новый инструмент ИИ, который генерирует собственный код». The Verge . Получено 6 июля 2021 г. .
  2. ^ abcde "GitHub Copilot · Ваш парный программист ИИ". GitHub Copilot . Получено 7 апреля 2022 г. .
  3. ^ "GitHub Copilot получает нового помощника в стиле ChatGPT, который поможет разработчикам писать и исправлять код". The Verge . 22 марта 2023 г. Получено 5 сентября 2023 г.
  4. ^ "Представляем GitHub Copilot: ваш программист AI pair". Блог GitHub . 29 июня 2021 г. Получено 7 апреля 2022 г.
  5. ^ "GitHub Copilot - IntelliJ IDEs Plugin | Marketplace". JetBrains Marketplace . Получено 7 апреля 2022 г.
  6. ^ Copilot.vim, GitHub, 7 апреля 2022 г. , получено 7 апреля 2022 г.
  7. ^ "GitHub Copilot теперь доступен для Visual Studio 2022". Блог GitHub . 29 марта 2022 г. Получено 7 апреля 2022 г.
  8. ^ "GitHub Copilot доступен всем разработчикам". Блог GitHub . 21 июня 2022 г. Получено 21 июня 2022 г.
  9. ^ Лардинойс, Фредерик (17 февраля 2014 г.). «Microsoft запускает Smart Visual Studio Add-On для поиска фрагментов кода». TechCrunch . Получено 5 сентября 2023 г. .
  10. ^ "Bing Code Search". Microsoft Research . 11 февраля 2014 г. Получено 5 сентября 2023 г.
  11. ^ abcdefg Финни-Энсли, Джеймс; Денни, Пол; Беккер, Бретт А.; Лакстон-Рейли, Эндрю; Пратер, Джеймс (14 февраля 2022 г.). «Роботы наступают: изучение последствий кодекса OpenAI для вводного программирования». Австралазийская конференция по компьютерному образованию . ACE '22. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 10–19. doi : 10.1145/3511861.3511863 . ISBN 978-1-4503-9643-1. S2CID  246681316.
  12. ^ Собания, Доминик; Швайм, Дирк; Ротлауф, Франц (2022). «Комплексный обзор синтеза программ с эволюционными алгоритмами». Труды IEEE по эволюционным вычислениям . 27 : 82–97. doi :10.1109/TEVC.2022.3162324. ISSN  1941-0026. S2CID  247721793.
  13. ^ Крилл, Пол (12 августа 2021 г.). «OpenAI предлагает API для модели GitHub Copilot AI». InfoWorld . Получено 7 апреля 2022 г. .
  14. ^ "OpenAI выпускает GPT-3, самую большую модель на сегодняшний день". Analytics India Magazine . 3 июня 2020 г. Получено 7 апреля 2022 г.
  15. ^ "OpenAI объявляет о создании ИИ-кода с 12 миллиардами параметров". InfoQ . Получено 7 апреля 2022 г. .
  16. ^ «OpenAI предоставляет Microsoft эксклюзивный доступ к своей языковой модели GPT-3». MIT Technology Review . Получено 7 апреля 2022 г.
  17. ^ "GitHub Copilot – обновление от 30 ноября · Журнал изменений GitHub". 30 ноября 2023 г.
  18. ^ abcd Пирс, Хаммонд; Ахмад, Балиг; Тан, Бенджамин; Долан-Гавитт, Брендан; Карри, Рамеш (16 декабря 2021 г.). «Спите за клавиатурой? Оценка безопасности кода GitHub Copilot». arXiv : 2108.09293 [cs.CR].
  19. ^ Nat Friedman [@natfriedman] (29 июня 2021 г.). «В целом: (1) обучение систем МО на общедоступных данных является добросовестным использованием» ( Tweet ). Архивировано из оригинала 30 июня 2021 г. Получено 23 февраля 2023 г. – через Twitter .
  20. ^ abcd Баттерик, Мэтью (3 ноября 2022 г.). "GitHub Copilot litigation" (PDF) . githubcopilotlitigation.com . Юридическая фирма Джозефа Савери. Архивировано из оригинала 3 ноября 2022 г. . Получено 12 февраля 2023 г. .
  21. ^ Винсент, Джеймс (8 ноября 2022 г.). «Судебный процесс, который может переписать правила авторского права на ИИ». The Verge . Получено 7 декабря 2022 г. .
  22. ^ «Откажитесь от GitHub: время пришло!». Software Freedom Conservancy . Получено 8 сентября 2022 г.
  23. ^ «Если программное обеспечение — мой второй пилот, кто его программировал?». Software Freedom Conservancy . Получено 8 сентября 2022 г.
  24. ^ ab "FSF-финансируемый призыв к представлению официальных документов по философским и юридическим вопросам вокруг Copilot". Free Software Foundation. 28 июля 2021 г. Получено 11 августа 2021 г.
  25. ^ «Публикация финансируемых FSF официальных документов по вопросам, связанным с Copilot». Free Software Foundation. 24 февраля 2022 г.
  26. ^ "GitHub Copilot - Ваш парный программист ИИ". GitHub . Получено 18 октября 2022 г. .
  27. ^ "CoPilot: Privacy & DataMining". GitHub . Получено 18 октября 2022 г.
  28. ^ Столлман, Ричард . «Кому на самом деле служит этот сервер?». gnu.org . Получено 18 октября 2022 г.

Внешние ссылки