GitHub Copilot

Перейти к навигацииПерейти к поиску

GitHub Copilot
Логотип программы GitHub Copilot
ТипSaaS
РазработчикиGitHub, OpenAI
Операционные системы Microsoft Windows, Linux, macOS, веб
Первый выпуск27 октября 2021
Последняя версия1.28.6134
Тестовая версия1.28.6136
Сайтcopilot.github.com

GitHub Copilot — инструмент с использованием искусственного интеллекта, совместно разработанный GitHub и OpenAI для помощи пользователям таких интегрированных сред разработки, как Visual Studio Code, Visual Studio, Neovim и JetBrains в автодополнении кода[1]. Инструмент был впервые анонсирован 29 июня 2021 года и до 21 июня 2022 был доступен только в виде предварительной версии. Лучше всего он подходит для пользователей, создающих код на Python, JavaScript, TypeScript, Ruby и Go[2][3].

История

29 июня 2021 года GitHub анонсировал GitHub Copilot в качестве расширения в предварительной версии для Visual Studio Code[4][5].

26 октября 2021 года данный инструмент был выпущен в виде плагина в JetBrains Marketplace[6].

27 октября 2021 года GitHub выпустил плагин GitHub Copilot для Neovim в качестве общедоступного репозитория[7].

29 марта 2022 года было официально объявлено о доступности Copilot для Visual Studio 2022[8].

21 июня появилось официальное объявление о выходе Copilot из предварительного тестирования и доступности его для всех желающих по подписочной системе[9].

Функции

GitHub Copilot работает на основе OpenAI Codex[англ.], модели искусственного интеллекта, созданной OpenAI — исследовательской лабораторией искусственного интеллекта[10]. OpenAI Codex — это модифицированная производственная версия языковой модели Generative Pre-trained Transformer 3 (GPT-3), использующей глубокое обучение для создания текста, похожего на человеческий[11]. Например, при наличии задачи программирования на естественном языке Codex может сгенерировать код для её решения[12]. Она также может описывать входной код на английском языке и переводить код между языками программирования[12]. Лицензия Codex GPT-3 предоставляется исключительно Microsoft, материнской компании GitHub[13].

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

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

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

Принятие

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

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

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

Официальные документы FSF

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

Вопросы безопасности

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

Вопросы образования

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

См. также

Примечания

  1. Гершгорн, Дэйв. GitHub and OpenAI launch a new AI tool that generates its own code (англ.). The Verge (29 июня 2021). Дата обращения: 13 июня 2022. Архивировано 7 июля 2021 года.
  2. 1 2 GitHub Copilot · Your AI pair programmer (англ.). GitHub Copilot. Дата обращения: 13 июня 2022. Архивировано 19 июня 2022 года.
  3. Gershgorn. GitHub and OpenAI launch a new AI tool that generates its own code. The Verge (29 июня 2021). Дата обращения: 6 июля 2021. Архивировано 7 июля 2021 года.
  4. Introducing GitHub Copilot: your AI pair programmer (англ.). The GitHub Blog (29 июня 2021). Дата обращения: 13 июня 2022. Архивировано 21 июня 2022 года.
  5. GitHub Copilot - IntelliJ IDEs Plugin | Marketplace (англ.). JetBrains Marketplace. Дата обращения: 7 апреля 2022. Архивировано 27 июня 2022 года.
  6. Neovim plugin for GitHub Copilot (англ.). GitHub (27 октября 2021). Дата обращения: 13 июня 2022. Архивировано 13 июня 2022 года.
  7. GitHub Copilot now available for Visual Studio 2022 (амер. англ.). The GitHub Blog (29 марта 2022). Дата обращения: 7 апреля 2022. Архивировано 14 июня 2022 года.
  8. GitHub Copilot is generally available to all developers (англ.). The GitHub Blog (21 июня 2022). Дата обращения: 23 июня 2022. Архивировано 23 июня 2022 года.
  9. Krill. OpenAI offers API for GitHub Copilot AI model (англ.). InfoWorld (12 августа 2021). Дата обращения: 7 апреля 2022. Архивировано 17 апреля 2022 года.
  10. OpenAI Releases GPT-3, The Largest Model So Far (англ.). Analytics India Magazine (3 июня 2020). Дата обращения: 13 июня 2022. Архивировано 4 августа 2020 года.
  11. 1 2 3 4 5 Финни-Энсли, Джеймс (2022-02-14). "The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming". Australasian Computing Education Conference. Association for Computing Machinery: 10—19. doi:10.1145/3511861.3511863. ISBN 978-1-4503-9643-1.
  12. OpenAI is giving Microsoft exclusive access to its GPT-3 language model (англ.). MIT Technology Review. Дата обращения: 7 апреля 2022. Архивировано 5 февраля 2021 года.
  13. 1 2 3 GitHub Copilot · Your AI pair programmer. GitHub Copilot. Дата обращения: 7 апреля 2022. Архивировано 19 июня 2022 года.
  14. Элфорд, Энтони. OpenAI Announces 12 Billion Parameter Code-Generation AI Codex (англ.). InfoQ. Дата обращения: 13 июня 2022. Архивировано 9 июля 2022 года.
  15. Собания, Доминик (2022). "A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms". IEEE Transactions on Evolutionary Computation: 1. doi:10.1109/TEVC.2022.3162324. ISSN 1941-0026. Архивировано 1 апреля 2022. Дата обращения: 13 июня 2022.
  16. 1 2 "GitHub's automatic coding tool rests on untested legal ground". The Verge. 2021-07-07. Архивировано 11 июля 2021. Дата обращения: 11 июля 2021.
  17. 1 2 Finnie-Ansley, James (2022-02-14). "The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming". Australasian Computing Education Conference. Association for Computing Machinery: 10—19. doi:10.1145/3511861.3511863. ISBN 978-1-4503-9643-1.
  18. 1 2 FSF-funded call for white papers on philosophical and legal questions around Copilot. Free Software Foundation (28 июля 2021). Дата обращения: 11 августа 2021. Архивировано 11 августа 2021 года.
  19. Publication of the FSF-funded white papers on questions around Copilot (англ.). Free Software Foundation (24 февраля 2022). Дата обращения: 13 июня 2022. Архивировано 16 июня 2022 года.
  20. 1 2 3 Хаммонд Пирс, Бали Ахмад, Бенджамин Тан, Брендан Долан-Гавитт, Рамеш Карри. Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions (англ.) // arXiv:2108.09293 [cs]. — 2021. Архивировано 21 июня 2022 года.