20 июля, 2024

SolusNews.com

Последние новости

Последний проект искусственного интеллекта DeepMind решает задачи программирования, как новичок

Последний проект искусственного интеллекта DeepMind решает задачи программирования, как новичок
Увеличить / Если бы ИИ попросили придумать изображение для этой статьи, что бы он подумал? матрица?

Подразделение Google DeepMind AI занималось всем, начиная с Стар Крафт мне складной белок. Так что, вероятно, неудивительно, что создатели в конечном итоге обратились к тому, что, несомненно, является личным интересом: компьютерному программированию. В выпуске Science за четверг компания описывает разработанную ею систему, которая создает код в ответ на программирование, типичное для тех, которые используются в соревнованиях по программированию среди людей.

В средней задаче система ИИ может набрать почти половину лучших участников. Но у него были некоторые трудности с масштабированием, поскольку было меньше шансов создать программу, которая работала бы над проблемами, которые обычно требовали большего количества кода. Однако тот факт, что он работает вообще без какой-либо структурной информации об алгоритмах или языках программирования, немного удивляет.

Примите вызов

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

Учитывая достаточное количество примеров программного обеспечения, которое может решить одну проблему, система ИИ, вероятно, должна быть способна вывести алгоритмическую структуру, необходимую для успеха. Но это не будет универсальным решением любых проблем; ИИ, обученный одной категории задач, потерпит неудачу, когда его попросят решить несвязанную задачу.

Чтобы сделать что-то более обобщающим, команда DeepMind рассматривала это как языковую проблему. В какой-то степени описание задачи — это выражение того, что должен делать алгоритм, а код — это выражение того же самого, только на другом языке. Таким образом, рассматриваемый ИИ состоит из двух частей: одна часть берет описание и превращает его во внутреннее представление, а вторая часть использует внутреннее представление для генерации функционального кода.

Обучение системы также проходило в два этапа. На первом этапе от системы требовалось просто обработать снимок материала на GitHub общим объемом более 700 ГБ кода. (В наши дни, когда вы можете поместить это на флэш-накопитель, это может показаться не таким уж большим, но помните, что код представляет собой просто необработанный текст, поэтому вы получаете много строк на гигабайт.) Обратите внимание, что эти данные также будут включать комментарии, который вы должны использовать. Естественный язык, чтобы объяснить, что делает соседний код, и, следовательно, должен помочь как с задачами ввода, так и с выводами.

После того, как система обучена, она проходит период адаптации. DeepMind настраивает свои собственные викторины по программированию, а затем передает результаты в систему: описание проблемы, рабочий код, неудавшийся код и тестовые примеры, используемые для его проверки.

Подобные подходы уже пробовались ранее, но DeepMind сообщает, что смогла выделить больше ресурсов на обучение. В документе говорится, что «ключевым фактором производительности AlphaCode стало увеличение количества образцов модели на порядки больше, чем в предыдущей работе».