Новий штучний інтелект-програміс DeepMind щойно переміг приблизно 45 відсотків програмістів-людей у висококонкурентному змаганні з програмування CodeContest. Завдання для DeepMind ускладнювалося тим, що повсякденною мовою пропонувалися проблеми, і учасники мали написати програму, яка розв’яже завдання якнайшвидше.
Для людини природно розуміти опис проблеми звичайною мовою, але для штучного інтелекту це окрема складна задача.
Штучний інтелект-програміст не є чимось новим. Ще в 2021 році некомерційна дослідницька лабораторія OpenAI випустила Codex – програму, яка володіє більш ніж десятком мов програмування та налаштована на природну повсякденну мову.
Що відрізняє штучний інтелект AlphaCode від DeepMind – це те, що йому не потрібно.
На відміну від попередніх штучних інтелектів-програмістів, AlphaCode відносно наївний. Він не має жодних вбудованих знань про синтаксис чи структуру комп’ютерного коду.
AlphaCode використовує підхід «лише дані» і навчається, спостерігаючи за сегментами існуючого коду. Згодом він отримує здатність гнучко деконструювати та комбінувати фрагменти коду для вирішення нових проблем.
Під час конкурсу CodeContest штучний інтелект вирішив близько 30 відсотків проблем, перемігши майже половину конкурентів серед людей.
Рівень успіху AlphaCode може здатися мізерним, але він вирішував неймовірно складні проблеми. Наприклад, результати Codex OpenAI складають одиниці відсотків успішно вирішених задач.
Проблеми, які вирішує AlphaCode, далекі від повсякденного застосування. Їх варто сприймати більше як складний математичний турнір у школі. Також малоймовірно, що ШІ повністю візьме на себе програмування, оскільки його код пронизаний помилками. Але він може взяти на себе виконання повсякденних завдань або запропонувати готові рішення, які не під силу програмістам.
Можливо, що ще важливіше, AlphaCode прокладає шлях до нового способу розробки наступного покоління штучного інтелект-програміста. Коли AlphaCode постає перед новим набором проблем, він пропонує потенційні рішення двома мовами програмування — Python або C++.
Хоча AlphaCode ще не програмує на людському рівні, сила AlphaCode полягає в його абсолютній винахідливості. Замість того, щоб копіювати та вставляти уже існуючий код, AlphaCode створив фрагменти коду без копіювання великих фрагментів коду чи логіки.
Чого не вистачає в AlphaCode, так це будь-якого архітектурного дизайну. Комп’ютерний код добре структурований і має певний синтаксис із чітко вбудованим контекстом.
AlphaCode генерує мільйони потенційних рішень, а потім перевіряє їх на помилковість. Як саме штучний інтелект досягає цього, залишається загадкою — внутрішня робота процесу похована в його поки що незбагненному машинному «розумі».
Тому іноді AlphaCode приймає дивні рішення, наприклад генерує змінну, але не використовує її. Існує також небезпека, що він може запам’ятати невеликі шаблони з обмеженої кількості прикладів і результат цих шаблонів. Це може перетворити штучний інтелект на стохастичного папугу, який не розуміє проблеми, але може повторювати або «сліпо імітувати» ймовірні рішення.