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 года и лучше всего подходит для пользователей, сохдающих код на Python, JavaScript, TypeScript, Ruby и Go[2][3].
История
29 июня 2021 года GitHub анонсировал GitHub Copilot в качестве расширения в предварительной версии для Visual Studio Code[1][4].
26 октября 2021 года данный инструмент был выпущен в виде плагина в JetBrains Marketplace[5].
27 октября 2021 года GitHub выпустил плагин GitHub Copilot для Neovim в качестве общедоступного репозитория[6].
29 марта 2022 года было официально объявлено о доступности Copilot для Visual Studio 2022[7].
Функции
GitHub Copilot работает на основе OpenAI Codex?!, модели искусственного интеллекта, созданной OpenAI — исследовательской лабораторией искусственного интеллекта[8]. OpenAI Codex — это модифицированная производственная версия языковой модели Generative Pre-trained Transformer 3 (GPT-3), использующей глубокое обучение для создания текста, похожего на человеческий[9]. Например, при наличии задачи программирования на естественном языке Codex может сгенерировать код для её решения[10]. Она также может описывать входной код на английском языке и переводить код между языками программирования[10]. Лицензия Codex GPT-3 предоставляется исключительно Microsoft, материнской компании GitHub[11].
OpenAI Codex в Copilot обучается на выбранных общедоступных репозиториях GitHub на английском языке и другом общедоступном исходном коде[3]. Сюда входит отфильтрованный набор данных из 159 гигабайт кода Python, полученный из 54 миллионов общедоступных репозиториев GitHub[12].
Согласно собственному сайту, GitHub Copilot включает в себя вспомогательные функции для программистов, такие как преобразование комментариев в исполняемый код и автозаполнение для фрагментов кода, повторяющихся разделов кода и целых методов или функций[3][13]. В GitHub сообщают, что функция автозаполнения Copilot точна примерно в половине случаев; например, с некоторым кодом установленным по заголовку функции языка Python, Copilot правильно автозаполнил остальную часть кода тела функции в 43 % случаев с первой попытки и в 57 % случаев после десяти попыток[3].
В GitHub заявляют, что функции Copilot позволяют программистам ориентироваться в незнакомых фреймворках и языках, сокращая количество времени, затрачиваемое на чтение документации[3].
Принятие
С момента выпуска Copilot начали возникать опасения по поводу его безопасности и образовательного воздействия, а также разногласия по поводу лицензирования создаваемого им кода[2][10].
Споры о лицензировании
Хотя большая часть кода, выводимого Copilot, может быть классифицирована как преобразующая работа[англ.], в GitHub признают, что небольшая его часть скопирована дословно, что привело к опасениям относительно того факта, что полученный код недостаточно преобразован, чтобы его можно было классифицировать как добросовестное использование, и мог нарушать авторские права первоначального владельца[2]. Данный факт оставляет Copilot на непроверенном правовом основании, хотя GitHub заявляет, что «обучение моделей машинного обучения на общедоступных данных считается добросовестным использованием в сообществе машинного обучения»[2].
Официальные документы FSF
28 июля 2021 года Фонд свободного программного обеспечения (FSF) опубликовал финансируемый призыв к созданию официальных документов по философским и юридическим вопросам, связанным с Copilot[14]. Дональд Робертсон, менеджер по лицензированию и соблюдению требований FSF, заявил, что «Copilot поднимает много [...] вопросов, которые требуют более глубокого изучения»[14]. 24 февраля 2022 года в FSF объявили, что ими было получено 22 статьи по данному вопросу, и с помощью процесса анонимного обзора были выбраны для выделения 5 из них[15].
Вопросы безопасности
В документе, принятом к публикации на симпозиуме Института инженеров электротехники и электроники по безопасности и конфиденциальности в 2022 году, оценивалась безопасность кода, сгенерированного Copilot, для 25 основных уязвимостей кода MITRE (например, межсайтовый скриптинг, обход пути) в 89 различных сценариях и 1 689 программах[16]. Это было сделано по осям разнообразия слабых мест (способности реагировать на сценарии, которые могут привести к различным уязвимостям кода), разнообразия подсказок (способности реагировать на одну и ту же уязвимость кода с небольшими вариациями) и разнообразия доменов (возможности генерировать аппаратные спецификации уровня передачи регистров в Verilog)[16]. Исследование показало, что на разных языках по данным осям 39,33 % наилучших из предложений и 40,73 % от общего числа предложений приводят к созданию уязвимостей в коде. Кроме того, было обнаружено, что небольшие несемантические (вроде комментариев) изменения, внесенные в код, могут повлиять на его безопасность[16].
Вопросы образования
В документе, опубликованном в феврале 2022 года Ассоциацией вычислительной техники, оценивается влияние Codex, технологии, используемой Github Copilot, на обучение начинающих программистов[10]. В исследовании используются оценочные вопросы из вводного класса по программированию в Оклендском университете, и сравниваются ответы Codex с успеваемостью студентов[10]. Исследователи обнаружили, что Codex в среднем показал результаты лучше, в сравнении с большинством учащихся; однако его производительность снизилась на вопросах с ограничением возможностей, которые можно использовать в решении (например, условные операторы, коллекции и циклы)[10]. Учитывая данную проблему, «только 2 из 10 решений [Codex] были верны, но оба [...] нарушили установленные ограничения». В документе делается вывод о том, что Codex может быть полезен для предоставления учащимся разнообразных решений, но также может привести к чрезмерной уверенности и плагиату[10].
Планы на будущее
На своем веб-сайте GitHub заявляет, что если предварительная версия Copilot окажется успешной, они планируют коммерциализировать инструмент в будущем[3]. Кроме того, Microsoft — материнская компания GitHub — заявила о своих планах на будущее по коммерциализации Copilot как части своих продуктов Visual Studio[17].
Смотрите также
Примечания
- ↑ 1 2 Gershgorn, Dave. GitHub and OpenAI launch a new AI tool that generates its own code . The Verge (29 июня 2021). Дата обращения: 6 июля 2021.Gershgorn, Dave (29 June 2021). "GitHub and OpenAI launch a new AI tool that generates its own code". The Verge. Retrieved 6 July 2021. Ошибка в сносках?: Неверный тег
<ref>
: название «:0» определено несколько раз для различного содержимого - ↑ 1 2 3 4 GitHub's automatic coding tool rests on untested legal ground. The Verge. 2021-07-07. Дата обращения: 2021-07-11. Ошибка в сносках?: Неверный тег
<ref>
: название «Verge legal» определено несколько раз для различного содержимого - ↑ 1 2 3 4 5 6 GitHub Copilot · Your AI pair programmer . GitHub Copilot. Дата обращения: 7 апреля 2022. Ошибка в сносках?: Неверный тег
<ref>
: название «:2» определено несколько раз для различного содержимого - ↑ Introducing GitHub Copilot: your AI pair programmer (амер. англ.). The GitHub Blog (29 июня 2021). Дата обращения: 7 апреля 2022.
- ↑ GitHub Copilot - IntelliJ IDEs Plugin | Marketplace . JetBrains Marketplace. Дата обращения: 7 апреля 2022.
- ↑ https://github.com/github/copilot.vim
{{citation}}
:|title=
пропущен или пуст (справка) - ↑ GitHub Copilot now available for Visual Studio 2022 (амер. англ.). The GitHub Blog (29 марта 2022). Дата обращения: 7 апреля 2022.
- ↑ Krill, Paul. OpenAI offers API for GitHub Copilot AI model (англ.). InfoWorld (12 августа 2021). Дата обращения: 7 апреля 2022.
- ↑ OpenAI Releases GPT-3, The Largest Model So Far (амер. англ.). Analytics India Magazine (3 июня 2020). Дата обращения: 7 апреля 2022.
- ↑ 1 2 3 4 5 6 7 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. Ошибка в сносках?: Неверный тег
<ref>
: название «:1» определено несколько раз для различного содержимого - ↑ OpenAI is giving Microsoft exclusive access to its GPT-3 language model (англ.). MIT Technology Review. Дата обращения: 7 апреля 2022.
- ↑ OpenAI Announces 12 Billion Parameter Code-Generation AI Codex (англ.). InfoQ. Дата обращения: 7 апреля 2022.
- ↑ Sobania, Dominik (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 2 FSF-funded call for white papers on philosophical and legal questions around Copilot . Free Software Foundation (28 июля 2021). Дата обращения: 11 августа 2021.
- ↑ Publication of the FSF-funded white papers on questions around Copilot . Free Software Foundation (24 февраля 2022).
- ↑ 1 2 3 Заполните автора и заголовок. arXiv:[1].Pearce, Hammond; Ahmad, Baleegh; Tan, Benjamin; Dolan-Gavitt, Brendan; Karri, Ramesh (16 December 2021). "Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions". arXiv:2108.09293 [cs.CR].
- ↑ Novet, Jordan. Microsoft and OpenAI have a new A.I. tool that will give coding suggestions to software developers (англ.). CNBC (29 июня 2021). Дата обращения: 5 апреля 2022.