Разработали ИИ, способный дать фору средним программистам
Компания DeepMind создала платформу искусственного интеллекта AlphaCode, не только отчасти способную программировать вместо человека, но и готовую делать это на «конкурентоспособном» уровне. Дочернее предприятие Alphabet протестировало систему на задачах, используемых в состязаниях программистов-людей. Выяснилось, что по результатам испытаний ИИ входит в число 54 %, справившихся с задачами лучше всех. Результат стал большим шагом вперёд на пути к созданию автономных систем программирования, хотя навыки AlphaCode не обязательно соответствуют задачам, стоящим перед среднестатистическим кодером.
По данным DeepMind, исследования пока находятся на ранней стадии, но уже сейчас понятно, что программа может автономно решать задачи по программированию, до недавних пор доступные только людям. В компании рассчитывают, что в долгосрочной перспективе ИИ будет помогать разработчикам писать код, улучшая производительность сотрудников и предлагая новые способы разработки программного обеспечения. AlphaCode протестировали на платформе Codeforces, на которой еженедельно публикуются задачи по программированию и рейтинг программистов. Задачи отличаются от тех, с которыми может столкнуться программист, создавая, например, коммерческое приложение. Они более «самодостаточны» и требуют широких знаний как алгоритмов, так и теоретических концепций информатики. Для их решения требуется комбинированный подход, поскольку программисту необходимо разбираться в логике, математике и собственно программировании.
Одним из примеров является задание, в котором необходимо найти способ преобразовать одну строку произвольно повторяющихся букв s и t в другую строку тех же символов, используя ограниченное число нажатий клавиш. При этом конкурсанты не могут, например, просто печатать новые буквы вместо старых — вместо этого нужно воспользоваться клавишей Backspace и удалить несколько букв исходной строки. Задание относится к примерам средней сложности, слева на изображении содержится её описание, справа — образцы. Десять подобных задач поручили выполнить AlphaCode точно так же, как их поручают выполнить людям. ИИ сгенерировал некоторое количество возможных решений и отсеял непригодные, запуская код и проверяя результат — так же, как это сделал бы программист.
10 задач, предложенных AplphaCode, выполнялись 5 тысячами программистами на сайте Codeforces. Работа ИИ попала в лучшие 54,3 % ответов, а по данным DeepMind это обеспечивает AlphaCode рейтинг Codeforces Elo на уровне 1238. Таким образом, ИИ вошёл в число лучших 28 % программистов, соревновавшихся на площадке за последние полгода. В DeepMind отмечают, что текущие навыки AlphaCode применимы только на площадках для соревнований программистов, но в теории новая система позволяет создавать инструменты, способные сделать программирование более доступным и, когда-нибудь, полностью автоматизированным. Известно, что над аналогичными решениями работают многие другие компании.
Большой прогресс был достигнут в последние годы, но все эти системы пока далеки от того, чтобы занять место программистов-людей. Выпускаемый ИИ код часто полон багов, а поскольку такие системы обычно обучаются на библиотеках общедоступного кода, иногда они воспроизводят фрагменты, защищённые авторским и смежными правами. Более того, в одном из исследований выяснилось, что программа Copilot, разработанная репозиторием кода GitHub, создавала код, 40 % которого содержало уязвимости. Специалисты по информационной безопасности даже предположили, что злоумышленники могут намеренно писать и выкладывать в общий доступ код с бэкдорами, который позже будет использоваться для тренировки ИИ-систем, в результате обречённых допускать ошибки в своих будущих решениях. Перечисленные проблемы означают, что системы ИИ-программирования, скорее всего, будут медленно интегрироваться в работу обычных программистов до тех пор, пока не «заслужат» доверие. Другими словами, им ещё предстоит учиться и учиться. Но делают это они очень быстро.