GitHub Copilot

Эта статья входит в число готовых статей
Материал из «Знание.Вики»
GitHub Copilot
Логотип программы
Разработчик GitHub, OpenAI
Операционная система Microsoft Windows, Linux, macOS, веб
Последняя версия 1.28.6134 ()
Тестовая версия 1.28.6136 ()
Сайт copilot.github.com

GitHub Copilot — передовое программное решение, базирующееся на технологиях искусственного интеллекта. Этот инновационный продукт — результат совместных усилий команд GitHub и OpenAI, нацеленный на оптимизацию процесса программирования в популярных средах разработки. Copilot интегрируется с Visual Studio Code, Visual Studio, Neovim и продуктами JetBrains, предлагая разработчикам интеллектуальное автодополнение кода.

Дебют GitHub Copilot состоялся 29 июня 2021 года, когда инструмент был представлен в режиме ограниченного доступа. Почти год спустя, 21 июня 2022 года, Copilot стал доступен широкой аудитории. Особую эффективность инструмент демонстрирует при работе с такими языками программирования, как Python, JavaScript, TypeScript, Ruby и Go, существенно повышая продуктивность разработчиков, использующих эти технологии.

История

Эволюция GitHub Copilot характеризуется серией ключевых этапов в его развитии и распространении. Начальной точкой стало 29 июня 2021 года, когда GitHub представил предварительную версию Copilot как расширение для Visual Studio Code[1]. Спустя четыре месяца, 26 октября, инструмент интегрировали в экосистему JetBrains, сделав доступным через JetBrains Marketplace.

На следующий день, 27 октября 2021 года, разработчики GitHub расширили функциональность Copilot, выпустив плагин для текстового редактора Neovim. Этот релиз был опубликован в открытом репозитории, обеспечивая свободный доступ сообществу разработчиков.

Весной следующего года, а именно 29 марта 2022, GitHub официально анонсировал поддержку Copilot в Visual Studio 2022, расширяя аудиторию пользователей этого инновационного инструмента. Кульминацией процесса разработки стало 21 июня 2022 года, когда Copilot вышел из стадии бета-тестирования. С этого момента инструмент стал общедоступным на основе подписки, открывая новую эру в области автоматизированной разработки программного обеспечения.

Функции

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

Процесс обучения OpenAI Codex в составе Copilot базируется на анализе тщательно отобранных общедоступных репозиториев GitHub, содержащих код на английском языке, а также иных открытых источников программного кода. Особое внимание уделяется языку Python: в обучающую выборку входит специально подготовленный массив данных объёмом 159 гигабайт, извлечённый из 54 миллионов публичных репозиториев GitHub.

Официальный сайт GitHub Copilot декларирует широкий спектр вспомогательных функций, призванных оптимизировать работу программистов. Среди них — автоматическая трансформация комментариев в исполняемый код, интеллектуальное автодополнение фрагментов кода, включая повторяющиеся секции и целые функции или методы. Согласно данным GitHub, точность автодополнения Copilot достигает впечатляющих показателей: при работе с Python-функциями инструмент корректно генерирует тело функции в 43 % случаев с первой попытки, увеличивая этот показатель до 57 % после десяти итераций.

Разработчики GitHub подчёркивают, что функционал Copilot существенно упрощает освоение новых фреймворков и языков программирования, значительно сокращая время, необходимое для изучения документации. Это позволяет программистам сфокусироваться на решении творческих задач, делегируя рутинные операции искусственному интеллекту.

Принятие

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

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

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

Данная ситуация поставила GitHub Copilot в зону правовой неопределенности. Тем не менее, представители GitHub отстаивают позицию, согласно которой обучение моделей машинного обучения на основе общедоступных данных рассматривается сообществом специалистов по машинному обучению как пример добросовестного использования. Это утверждение, однако, не снимает всех вопросов и оставляет пространство для дальнейших юридических и этических дебатов.

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

В конце июля 2021 года Фонд свободного программного обеспечения (FSF) инициировал спонсируемый проект по созданию аналитических материалов, посвящённых этическим и правовым аспектам использования GitHub Copilot[5]. Эта инициатива была вызвана множеством вопросов, возникших в связи с внедрением данной технологии. Дональд Робертсон, занимающий пост менеджера по лицензированию и соблюдению нормативных требований в FSF, подчеркнул необходимость тщательного анализа проблематики, связанной с Copilot.

К началу 2022 года проект привлёк значительное внимание исследователей. 24 февраля FSF сообщил о получении 22 научных работ, посвящённых различным аспектам функционирования Copilot. Для обеспечения объективности оценки был организован процесс анонимного рецензирования, по результатам которого экспертное жюри отобрало пять наиболее значимых статей для дальнейшего изучения и публикации.

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

На симпозиуме Института инженеров электротехники и электроники, посвящённом вопросам безопасности и конфиденциальности, в 2022 году был представлен научный труд, анализирующий степень защищённости программного кода, созданного с помощью GitHub Copilot. Исследование охватило 25 ключевых уязвимостей, определённых MITRE, включая такие распространённые проблемы, как межсайтовый скриптинг и обход директорий[6]. Анализ проводился на основе 89 различных сценариев, что в совокупности привело к генерации 1 689 программных образцов.

Методология исследования базировалась на трёх основных критериях:

  • разнообразие уязвимостей (оценка реакции системы на различные типы потенциальных брешей в безопасности);
  • вариативность входных данных (анализ отклика на минимальные изменения в описании одной и той же уязвимости);
  • многообразие прикладных областей (включая способность Copilot создавать спецификации аппаратного обеспечения на уровне регистровых передач в языке Verilog).

Результаты исследования выявили значительный процент потенциально опасного кода: 39,33 % лучших предложений и 40,73 % всех сгенерированных вариантов содержали уязвимости различной степени серьёзности. Примечательно, что даже незначительные изменения в исходных данных, не влияющие на семантику кода (например, модификация комментариев), могли существенно повлиять на уровень безопасности генерируемого программного продукта.

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

В феврале 2022 года Ассоциация вычислительной техники опубликовала исследование, анализирующее воздействие технологии Codex, лежащей в основе Github Copilot[7], на образовательный процесс начинающих программистов. Методология исследования базировалась на сравнительном анализе ответов, генерируемых Codex, с результатами студентов, обучающихся на вводном курсе программирования в Оклендском университете.

Результаты эксперимента показали, что в среднем Codex демонстрирует более высокие показатели, чем большинство обучающихся. Однако эффективность системы существенно снижалась при решении задач с ограниченным набором допустимых инструментов, таких как условные операторы, коллекции данных и циклические конструкции. В частности, при таких ограничениях «лишь 2 из 10 решений оказались корректными, причём оба вышли за рамки установленных ограничений».

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

Примечания

  1. GitHub представляет виртуального помощника для разработки Visual Studio. osp.ru. Дата обращения: 17 декабря 2024.
  2. ИИ-помощник Copilot от GitHub — как новый инструмент повлияет на работу программистов. habr.com. Дата обращения: 17 декабря 2024.
  3. GitHub Copilot: он не стоит таких рисков. habr.com. Дата обращения: 17 декабря 2024.
  4. Программист - юрист подал в суд на GITHUB COPILOT за нарушение лицензииCE. digitalocean.ru. Дата обращения: 17 декабря 2024.
  5. FSF призывает обсудить юридические и этические аспекты сервиса GitHub Copilot. osp.ru. Дата обращения: 17 декабря 2024.
  6. Upto 40 Percent Of GitHub Copilot Generated Code May Be Insecure. analyticsindiamag.com. Дата обращения: 17 декабря 2024.
  7. Важные исследования в области AI в 2022 году. habr.com. Дата обращения: 17 декабря 2024.