Оставить заявку

Искусственный интеллект научили программировать

Про программистов любят говорить, что они ленивые. Разработчики любят максимально автоматизировать свой рабочий процесс. А недавно OpenAI анонсировали продукт, который автоматизирует для программистов написание кодаGitHub Copilot.

GitHub Copilot ― это расширение для VIsual Studio Code. Оно работает на новой системе искусственного интеллекта от OpenAI ― Codex. Copilot способен понимать гораздо больше контекста, чем большинство других помощников по программированию. Строка документации, комментарий, имя функции или сам код ― GitHub Copilot использует предоставленный вами контекст и синтезирует соответствующий код.

Сейчас продукт находится в закрытом тестировании и особенно хорошо работает с Python, JavaScript, TypeScript, Ruby и Go. Но он понимает десятки языков и сможет помочь практически во всём.

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

А точно всё хорошо?

К GitHub Copilot есть несколько вопросов, из-за которых не стоит сразу после релиза интегрировать эту систему в свою работу.

  1. Кто владеет кодом, который написали с помощью GitHub Copilot?
    На официальном сайте в FAQ разработчики говорят, что код принадлежит тому, кто его написал. Ведь GitHub Copilot работает с открытым исходным кодом и только на основе него генерирует что-то своё.
    Но там есть пометка, что в 0.1% он может допустить использование какого-то кода в идентичном виде. То есть, вы можете случайно использовать код, который защищен каким-то авторским правом. А так как этот код принадлежит вам, то и ответственность упадёт на ваши плечи.
  2. Будет ли разработчик развиваться при работе с GitHub Copilot?
    Сейчас программист большую часть времени тратит не на написание самого кода, а на решение задачи.
    Но если на основе комментария GitHub Copilot будет просто выдавать какое-то решение, то чем это отличается от простого копирования с GitHub или StackOverflow? С этими сервисами вам хотя бы нужно приложить усилия и найти что-то в интернете. Да и код со StackOverflow вряд ли будет чем-то точно нужным для вас. Он будет просто направлять вас в нужном направлении. А с GitHub Copilot вы просто получаете почти готовый результат без особых усилий.
  3. Мой код в безопасности?
    На официальном сайте в FAQ есть такие строчки: «Все данные передаются и надежно хранятся. <…> Проверка собранного исходного кода будет преимущественно автоматической, и другие люди смогут его читать только для  улучшения модели или обнаружения злоупотреблений.»
    То есть, если вы будете создавать проект, который защищен NDA, то код из него будет сохранен где-то ещё, помимо вас и клиента. Более того, его функционал (с вероятностью в 0,1%) могут использовать другие разработчики, которым GitHub Copilot предложит его в подсказке.
  4. Пишет ли GitHub Copilot идеальный код?
    Нет!
    И это официальный ответ на сайте продукта. Код, который создаёт GitHub Copilot, не всегда может работать или даже иметь какой-то смысл. Там же разработчики говорят, что продукт ещё надо тестировать и проверять.
    Таким образом, использование GitHub Copilot приведёт к появлению большого количества плохого и/или небезопасного кода. Безопаснее будет просто копировать код с GitHub или StackOverflow, ведь там хотя бы видно оценки и голоса за ту или иную разработку.

Что в итоге?

Как бы много недостатков не было у этого продукта, это всё ещё отличная технология, которая повлияет на IT-индустрию. А в лучшую или худшую сторону ― это уже вопрос времени.