«На редкость адекватный код», «немного пугает», «безумно полезный» — такие отзывы оставляют программисты, попробовавшие Copilot от GitHub — искусственный интеллект, который переводит естественный язык в код. Эта разработка базируется на новой системе искусственного интеллекта, разработанного OpenAI — той самой компанией, которая создала прекрасно замаскированную под человека машину и так долго опасалась давать кому-либо доступ к ней.
OpenAI прогремела на весь мир со своим продвинутым алгоритмом обработки естественного языка несколько лет назад. Тогда спонсируемая Илоном Маском некоммерческая исследовательская организация рассказала о революционной ИИ-системе, которая умеет дописывать сюжеты новостей и литературные произведения на английском языке. Опираясь всего на несколько строчек, искусственный интеллект дописывал текст так, что он стилистически и тематически соответствовал исходному образцу.
С тех пор алгоритмы обработки улучшились, ИИ натренировался и теперь умеет создавать тексты, практически неотличимые от того, что пишет человек. В OpenAI эту систему, которая носит название GPT-3, считают чересчур опасной: в неправильных руках она может оказаться слишком опасным оружием.
Тем не менее это не мешает OpenAI открывать ограниченный доступ к GPT-3 проверенным партнерам. А Microsoft так и вовсе договорилась об эксклюзивных правах на использование нейросетевого алгоритма.
По сути, Copilot — это и есть тот самый конечный продукт, который получил свое воплощение благодаря GPT-3. Это виртуальный напарник программиста, нейросетевой помощник, который обучен разным языкам программирования и фреймворкам. Он анализирует код, который пишет программист, и в зависимости от контекста предлагает вставить целые строки или функции.
Покупку подписки на Copilot сравнивают с серьезным бустом производительности разработчика. Как если бы его Dell за $700 заменили на MacBook Pro за $2500
When Github Copilot comes out of beta, and has a enterprise pricing plan, orgs which can afford it will basically be straight away paying for developer producitivity worth its weight in gold.
Very much like buying $2500 Macbook Pros for devs vs handing them $700 Dells. pic.twitter.com/dDAaOfDdIU
— Arnav Gupta (@championswimmer) December 5, 2021
GitHub — это самый большой сборник открытого исходного кода в интернете. Принадлежит он Microsoft. На основе многих миллиардов строк кода, которые разные программисты со всего мира хранят на GitHub, и натренирована система Copilot.
GPT-3 пытались подружить с программистским кодом, однако эти попытки были, мягко говоря, не очень успешными: точность — около 0%. Взяв за основу один алгоритм, разработчики сделали и натренировали другой — OpenAI Codex, способный переводить естественный язык в код. Он-то и лежит в основе Copilot.
Сама фишка реализована в качестве плагина для редактора кода Microsoft Visual Studio Code, поддерживает несколько самых популярных языков программирования, но широкой общественности пока не доступна. В настоящее время Copilot находится в стадии технического тестирования, доступ — только по инвайтам.
В августе разработчики OpenAI устроили презентацию, где показали, как алгоритм учитывает контекст своей работы, в режиме чата отвечает на команды программиста, корректирует свой код. К примеру, один из разработчиков пишет: «Скажи „Hello, world!“» — и алгоритм выводит фразу «Hello, world!». На просьбу повторить фразу пять раз, используя цикл for, алгоритм пять раз распечатывает фразу в консоль, а на демонстрационном экране выводится код, который был сгенерирован ИИ для этой операции.
Обычным человеческим языком разработчики просят сперва сверстать «Hello, world!» в веб-страницу, а потом запустить локальный сервер для размещения этой страницы. Алгоритм генерирует код, программист набирает адрес в браузере и попадает на простейшую страницу.
«Такого рода вещи — это неинтересная часть программирования», — активно жестикулируя, поясняет разработчик OpenAI. По его мнению, алгоритм берет на себя всю скучную часть программирования, тогда как программист может выкроить больше времени на самое интересное — понимание проблемы, ее декомпозицию и решение с помощью кода.
Работа с Copilot выглядит с одной стороны впечатляюще, а с другой — пугающе. IT-отрасль для многих казалась тихой гаванью, спокойствие в которой способна нарушить лишь ядерная зима. Но Copilot словно звоночек из будущего: машины совсем скоро могут отжать работу не только у водителей и кассиров, но и у своих создателей. Ты просто пишешь, что хочешь получить, а ИИ пишет код за тебя. Делает то, что должен делать программист.
И речь не только про вывод на экран классической «Hello, world!». Copilot справляется и с алгоритмами, и с довольно редкими задачами с итерацией по массивам с уникальными условиями.
Стоит ли программистам бояться Copilot? Во-первых, они справедливо замечают, что это не первый искусственный помощник для «парного программирования». Уже несколько лет существует Tabnine — ИИ-ассистент, который умеет автоматически завершать начатую юзером строку. Правда, Copilot может генерировать целые многострочные функции, документацию и комментарии, тесты.
Но Copilot способен снизить порог входа в программирование. Пользователю этой фичи не обязательно помнить или даже знать определенный синтаксис языка или реализацию той или иной фичи, порой достаточно лишь точного описания того, что хочет юзер. Это как потенциально снизит порог входа, так и поможет сэкономить время при программировании, когда не придется долго гуглить типовые блоки кода. Есть надежда, что Copilot останется новым и хорошим инструментом, ускоряющим разработку.
Во-вторых, Copilot обучается на общедоступном коде под различными лицензиями, что ведет к юридическим проблемам для тех, кто использует подсказки искусственного интеллекта. В некоторых случаях использование подсказок в коде может стать нарушением лицензии, что потребует переаттестацию работы программиста по лицензии, совместимой с GPL. То есть возникают вопросы касательно авторского права: Copilot может побуждать разработчиков к копированию работ с открытым исходным кодом, защищенных авторским правом. В коммерческой же разработке малейшие сомнения на этот счет могут остановить компании от внедрения такого инструмента в свои процессы.
Разработчики Copilot заверяют, что код, написанный с помощью ИИ, «принадлежат вам, и вы несете за это ответственность». А «обучение моделей машинного обучения на общедоступных данных считается добросовестным использованием в сообществе машинного обучения».
Впрочем, это извращает всю идею открытого исходного кода.
В-третьих, Copilot не всегда пишет достаточно хороший код. Алгоритм обучали на общедоступном коде с GitHub. Туда сгружают свои проекты не только самые крутые программисты, но и начинающие, достаточно посредственные. А потому в целом получается нечто среднее, что не всегда в принципе нужно и полезно юзеру. К тому же модель ИИ не может поспевать за всеми нововведениями языков, а некоторые предложения могут быть устаревшими.
В целом программисты, с которыми удалось обсудить эту тему, делали упор на то, что больше времени в их работе уходит не на само написание кода, а на проектирование, отладку и поддержку. Когда кто-то, пускай даже самый продвинутый ИИ, пишет код вместо тебя, можно столкнуться с ситуацией, что объем этого кода существенно вырастет, и тогда будет много возни с его правкой и отладкой.
Все это похоже на отговорки. Конечно, в мгновение ока одна умная нейросеть не перевернет многотонную индустрию. Однако ей придется реагировать на появление с одной стороны полезного, а с другой — враждебного инструмента. Он может поднять производительность программиста, избавить от поисков типовых блоков кода в Google, но навряд ли будет полезен далекому от программирования человеку, который не способен провести отладку и дебаг. Однако с Copilot уровень абстракции в общении человека и машины заметно повышается.
Код пишет код, роботы собирают роботов. Немного грустно наблюдать за тем, как человек становится все бесполезнее.
Наш канал в Telegram. Присоединяйтесь!
Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро
Перепечатка текста и фотографий Onlíner без разрешения редакции запрещена. ng@onliner.by