Штучний інтелект навчився писати програми

Штучний інтелект навчився писати програми

Дослідники з компанії Microsoft Research і Кембріджського університету створили систему штучного інтелекту під назвою DeepCoder, яка вже здатна самостійно писати не дуже складні програми, які вирішують завдання на зразок типових задач для змагань з програмування.

Подальший розвиток цього напряму може привести до того, що створенням комп’ютерних програм зможуть займатися люди, абсолютно нічого не розуміють в програмуванні. Для цього їм потрібно лише описати  завдання, дотримуючись набору певних правил.

Система DeepCoder використовує технологію, так звану програмним синтезом. Вона бере готові ділянки коду, витягнуті з коду інших програм, і з’єднує їх у власну послідовність, з огляду на список вхідних і вихідних даних кожного фрагмента коду. Відзначимо, що подібний підхід широко використовується і людьми-програмістами, які використовують для цього свої власні розробки, здебільшого, і чужі – в більш рідкісних випадках.

Одним з основних перевага підходу автоматизованого програмного синтезу є те, що штучний інтелект має можливість для складання власної програми вибрати або найбільш ефективні ділянки вихідного коду, або ділянки, найкраще підходять для даного конкретного випадку. Більш того, штучний інтелект може використовувати такі прийоми і методи, які ніколи б не використовували люди в силу особливостей людського мислення.

Принцип роботи системи DeepCoder в чомусь подібний до принципу роботи системи, розробленої в 2015 році фахівцями з Массачусетського технологічного інституту , яка виправляє помилки в програмах , замінюючи ділянки коду, працездатними ділянками, узятими з інших програм.

Однією з найважливіших складових частин системи DeepCoder є система, яка виробляє пошук по всіх загальнодоступним баз вихідних кодів, сортування коду, оцінку його оптимальності, функціональності і повноцінності. І з цією роботою система DeepCoder справляється набагато швидше, ніж інші подібні системи, створені раніше.

Система DeepCoder здатна створити нескладну працездатну програму за частки секунди, в той час, як іншим системам, які виробляють послідовну перевірку різних комбінацій ділянок коду, потрібно на таку ж дію час, що обчислюється хвилинами і годинами. Це відбувається тому, що система DeepCoder постійно вивчає, які ділянки коду працюють і як вони роблять свою справу. І система постійно покращує свої навички в цій справі у міру збільшення кількості вирішених нею завдань.

В даний час можливості системи DeepCoder вельми і вельми скромні, вона здатна вирішувати завдання і складати програми, що складаються з кількох рядків коду. Але, при правильному підході до програмування , ці кілька рядків можуть містити в собі рішення досить складних завдань.

Читаючи все вищесказане, можна відчути занепокоєння з приводу того, що в майбутньому програмісти, завдяки появі подібних систем, можуть залишитися без роботи. Однак, це зовсім не так, завдяки таким системам саме програмісти будуть звільнені від необхідності робити тяжку, одноманітну і рутинну роботу з програмування будь-яких типових функцій. А час, що звільнився вони зможуть направити на виконання більш складних робіт.