Генерация программы из описания на естественном языке


Китайские ученые опубликовали исследование, которое является небольшим шажком к тому, чтобы ушла в небытие еще одна человеческая специальность — разработчик программного обеспечения. Ссылки: оригинал статьи (русский перевод).

Авторы исследования тренировали RNN-сеть, используя базу с короткими программами, которые писались студентами и были определены как валидные (путем запуска системой проверки заданий). Описания заданий были сокращены до такого: «найти максимальное и следующее за ним по величине число».

В результате был сгенерирован следующий код (стиль отступов и пунктуация «автора» сохранены без изменений):


Он содержит 4 ошибки, после исправления которых программа стала решать поставленную задачу.

Важно, что сгенерированный код не содержал в чистом виде ни одного из исходных примеров. В противном случае, пришлось бы признать, что таким извращенным способом удалось написать обычную систему поиска по базе кода. С помощью ccfinder были найдены наиболее близкие примеры из обучающей выборки (более 500 образцов исходного кода):

Из первого примера взята структура, из второго — наименования идентификаторов.

Интересно, что сеть сама определила синонимичность конструкций “i

Источник

artificial intelligence, deep learning, development

Читайте также