29.03.2024

Microsoft создала алгоритм, который пишет код. Программисты напряглись?

Летом 2021 года Microsoft представила тестовую версию Github Copilot — нейросетевого ассистента программиста. Алгоритм помогает создавать код в том числе по описанию на английском языке. Рассказываем, как он работает.

Microsoft создала алгоритм, который пишет код

GPT-3 + Github = Copilot

Технология основана на GPT-3 — нейросетевой модели обработки естественного языка, которая обучена на 570 ГБ текстов на английском языке. Алгоритм способен дополнять и генерировать текстовые фрагменты.

На основе GPT-3 появилась ИИ-система OpenAI Codex, транслирующая естественный язык в программный. Microsoft взяла Codex и совместила модель с миллионами строк кода из репозиториев открытого ПО Github — получился Github Copilot. Его работа выглядит примерно так:

Технология функционирует в трёх режимах:

  • генерация кода на основе контекста и задания, описанного на естественном языке;
  • рекомендации продолжения функций на основе контекста и стиля конкретного программиста;
  • автоматическое заполнение повторяющихся фрагментов кода.

Microsoft заявляет, что Copilot удачно генерирует тела функций в 43% случаев с первой попытки. Программисты, использующие Copilot, соглашаются с рекомендациями алгоритма в 35% случаев.

Почему Copilot так успешен

Github Copilot создавали на основе репозиториев открытого кода. Обычно программисты оставляют текстовые комментарии, которые описывают, что делает тот или иной фрагмент кода. Это помогло быстро и качественно обучить нейросеть.

Скажем, если попросить Copilot написать функцию для запроса курса Bitcoin на языке Python, то алгоритм выдаст уже кем-то найденное решение. Иными словами, Copilot не знает самого языка программирования, но владеет миллионами примеров его использования.

Microsoft создала алгоритм, который пишет код

Однако опора на репозитории открытого кода несёт в себе и уязвимости. Неопытные программисты нередко оставляют в коде приватные данные: номера телефонов, пароли к базам данным, API-ключи. Также Copilot может выдать решение, которое задействует уже устаревшую программную библиотеку.

Стоит ли программистам бояться ИИ-конкурента?

Даже Microsoft называет свою технологию ассистентом разработчика. Copilot способен выдавать неоптимальные или вовсе ошибочные решения, так что финальное слово остаётся за человеком. Со сложными задачами ИИ тоже не справляется. Сейчас основная польза Copilot состоит в том, что система избавляет программистов от необходимости гуглить уже существующие алгоритмы.

Возможно, процесс программирования будет сведён к составлению ТЗ. Всё остальное выполнит искусственный интеллект.

Поделиться ссылкой: