DeepMind створила систему штучного інтелекту під назвою AlphaCode, яка, за словами компанії, "пише комп'ютерні програми на конкурентоспроможному рівні". Систему перевірили на відповідність завданням кодування, які використовуються у змаганнях серед людей, і програма виявилася серед 54% найкращих; за рейтингом сайту спортивного програмування програма отримала статус учня – шостий рівень із семи.
На думку компанії, це значний крок уперед для автономного кодування, хоча навички AlphaCode не обов'язково є репрезентативними для задач програмування, з якими стикається середній кодер.
DeepMind – британська компанія штучного інтелекту, заснована 2010-го, яку в 2014 році придбала компанія Google. У цій компанії створили нейронну мережу, що здатна навчатися грати у відеоігри подібно людині чи нейронній машині Тюрінга, що імітує короткочасну пам'ять людського мозку. Компанія потрапила на перші шпальти у 2016 році після того, як розроблена нею програма AlphaGo вперше випередила професійного гравця в ґо. У листопаді 2020 року група дослідників проєкту DeepMind повідомила, що їм вдалося досягти значних успіхів у розв'язанні задачі згортання білків методами штучного інтелекту та глибинного навчання.
Оріол Віньялс, головний науковий співробітник DeepMind, зазначає, що дослідження AlphaCode все ще перебуває на ранній стадії, але його результати наблизили компанію до створення гнучкого штучного інтелекту для вирішення складних задач кодування:
"Ми інспіровані потенціалом AlphaCode для допомоги програмістам і не-програмістам у написанні коду, підвищенні продуктивності або створенні нових способів створення програмного забезпечення".
Систему протестували на десяти завданнях, що їх вирішували 5 тисяч користувачів на сайті Codeforces (сайт, на якому проходять змагання зі спортивного програмування, що був створений і підтримується групою програмістів із Саратовського університету). Всі завдання були передані в AlphaCode у такому ж форматі, як вони даються людям. Весь процес відбувався автоматично, без відбору кращих зразків людиною. AlphaCode згенерував більше можливих відповідей і відсіяв їх, запустивши код і перевіривши висновок, як би це зробила людина. У результаті система увійшла до числа 54,3% найкращих за відповідями. DeepMind оцінює, що це дає системі рейтинг Codeforces Elo 1238, що класифікується як "зелений" рівень (учень), шостий рівень із семи – але вище "сірого" рівня новачка (Elo менше 1200).
DeepMind зазначає, що поточний набір навичок AlphaCode в даний час застосовується тільки в області програмування для змагань, але її можливості відкривають двері для створення майбутніх інструментів, які зроблять програмування доступнішим.
Над аналогічними програмами працюють багато інших компаній. Наприклад, у серпні 2021 року OpenAI випустила Codex — нову систему, яка автоматично перетворює на код прості англійські фрази. Codex базується на GPT-3.
Однак поки що системи далекі від того, щоби просто взяти на себе роботу програмістів-людей. Код, який вони виробляють, часто містить помилки, а оскільки алгоритми зазвичай навчаються на бібліотеках загальнодоступного коду, вони іноді відтворюють матеріали, захищені авторським правом.
Так, у червні 2021 року Microsoft та GitHub представили помічника програміста Copilot на базі нейромережі Codex від Open AI. Система навчена працювати з різними фреймворками та мовами програмування. У серпні вийшла вдосконалена версія Codex, яка транслює англійські фрази у програмний код.
За останні роки в розробці систем кодування штучного інтелекту було досягнуто значного прогресу, але ці системи ще далеко не готові просто взяти на себе роботу програмістів-людей. Код, який вони створюють, часто є помилковим, і оскільки системи зазвичай навчаються на бібліотеках загальнодоступного коду, вони іноді відтворюють матеріал, захищений авторським правом.
Розробники помітили, наприклад, що нейромережевий помічник Copilot генерує рядки з проектів з відкритим вихідним кодом, не зважаючи на тип ліцензії, чи замість кількох рядків потрібного коду Copilot генерує десятки рядків із цитатами та коментарями з проєктів із відкритим вихідним кодом. GitHub стверджує, що це відбувається лише у 0,1% випадків, але визнала, що під час навчання Copilot розробники використовували весь доступний у репозиторіях сервісу публічний код без урахування типу ліцензії. Потім з'ясувалося, що код Copilot приблизно в 40 відсотках містить помилки і вразливості.
Аналітики з безпеки навіть припустили, що в інтернеті можуть навмисно писати та обмінюватися кодом із прихованими бекдорами, які потім можуть бути використані для навчання програм штучного інтелекту, які вставлять ці помилки в майбутні програми.
Такі проблеми означають, що системи кодування штучного інтелекту, ймовірно, будуть повільно інтегруватися в роботу програмістів — спочатку як помічники, до чиїх пропозицій ставляться з підозрою. Іншими словами: вони мають пройти навчання. Але наразі ці програми навчаються дуже швидко.
03.02.2022