GitHub Copilot
GitHub Copilot — инструмент с использованием искусственного интеллекта, совместно разработанный GitHub и OpenAI для помощи пользователям таких интегрированных сред разработки, как Visual Studio Code, Visual Studio, Neovim и JetBrains в автодополнении кода[1]. Инструмент был впервые анонсирован 29 июня 2021 года и до 21 июня 2022 был доступен только в виде предварительной версии. Лучше всего он подходит для пользователей, создающих код на Python, JavaScript, TypeScript, Ruby и Go[2][3].
GitHub Copilot | |
---|---|
Тип | SaaS |
Разработчики | GitHub, OpenAI |
Операционные системы | Microsoft Windows, Linux, macOS, веб |
Первый выпуск | 27 октября 2021 |
Последняя версия | 1.28.6134 |
Тестовая версия | 1.28.6136 |
Сайт | copilot.github.com |
История
править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].
См. также
правитьПримечания
править- ↑ Гершгорн, Дэйв. GitHub and OpenAI launch a new AI tool that generates its own code (англ.). The Verge (29 июня 2021). Дата обращения: 13 июня 2022. Архивировано 7 июля 2021 года.
- ↑ 1 2 Гершгорн, Дэйв (2021-07-07). "GitHub's automatic coding tool rests on untested legal ground". The Verge (англ.). Архивировано 11 июля 2021. Дата обращения: 13 июня 2022.
- ↑ 1 2 GitHub Copilot · Your AI pair programmer (англ.). GitHub Copilot. Дата обращения: 13 июня 2022. Архивировано 19 июня 2022 года.
- ↑ Gershgorn. GitHub and OpenAI launch a new AI tool that generates its own code . The Verge (29 июня 2021). Дата обращения: 6 июля 2021. Архивировано 7 июля 2021 года.
- ↑ Introducing GitHub Copilot: your AI pair programmer (англ.). The GitHub Blog (29 июня 2021). Дата обращения: 13 июня 2022. Архивировано 21 июня 2022 года.
- ↑ GitHub Copilot - IntelliJ IDEs Plugin | Marketplace (англ.). JetBrains Marketplace. Дата обращения: 7 апреля 2022. Архивировано 27 июня 2022 года.
- ↑ Neovim plugin for GitHub Copilot (англ.). GitHub (27 октября 2021). Дата обращения: 13 июня 2022. Архивировано 13 июня 2022 года.
- ↑ GitHub Copilot now available for Visual Studio 2022 (амер. англ.). The GitHub Blog (29 марта 2022). Дата обращения: 7 апреля 2022. Архивировано 14 июня 2022 года.
- ↑ GitHub Copilot is generally available to all developers (англ.). The GitHub Blog (21 июня 2022). Дата обращения: 23 июня 2022. Архивировано 23 июня 2022 года.
- ↑ Krill. OpenAI offers API for GitHub Copilot AI model (англ.). InfoWorld (12 августа 2021). Дата обращения: 7 апреля 2022. Архивировано 17 апреля 2022 года.
- ↑ OpenAI Releases GPT-3, The Largest Model So Far (англ.). Analytics India Magazine (3 июня 2020). Дата обращения: 13 июня 2022. Архивировано 4 августа 2020 года.
- ↑ 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.
- ↑ OpenAI is giving Microsoft exclusive access to its GPT-3 language model (англ.). MIT Technology Review. Дата обращения: 7 апреля 2022. Архивировано 5 февраля 2021 года.
- ↑ 1 2 3 GitHub Copilot · Your AI pair programmer . GitHub Copilot. Дата обращения: 7 апреля 2022. Архивировано 19 июня 2022 года.
- ↑ Элфорд, Энтони. OpenAI Announces 12 Billion Parameter Code-Generation AI Codex (англ.). InfoQ. Дата обращения: 13 июня 2022. Архивировано 9 июля 2022 года.
- ↑ Собания, Доминик (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.
- ↑ 1 2 "GitHub's automatic coding tool rests on untested legal ground". The Verge. 2021-07-07. Архивировано 11 июля 2021. Дата обращения: 11 июля 2021.
- ↑ 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.
- ↑ 1 2 FSF-funded call for white papers on philosophical and legal questions around Copilot . Free Software Foundation (28 июля 2021). Дата обращения: 11 августа 2021. Архивировано 11 августа 2021 года.
- ↑ Publication of the FSF-funded white papers on questions around Copilot (англ.). Free Software Foundation (24 февраля 2022). Дата обращения: 13 июня 2022. Архивировано 16 июня 2022 года.
- ↑ 1 2 3 Хаммонд Пирс, Бали Ахмад, Бенджамин Тан, Брендан Долан-Гавитт, Рамеш Карри. Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions (англ.) // arXiv:2108.09293 [cs]. — 2021. Архивировано 21 июня 2022 года.