Система для экспериментов с искусственным интеллектом в реальных играх и приложениях

Проект OpenAI, учреждённый рядом известных инвесторов (Илон Маск (Tesla, PayPal, SpaceX), Джессика Ливингстон (YCombinator), Питер Тиль (Clarium Capital), Рид Хоффман (LinkedIn), компании Amazon и Infosys) с целью развития общедоступных проектов в области искусственного интеллекта, представил платформу Universe, предназначенную для оценки работы систем искусственного интеллекта и проведения тренировки систем машинного обучения в среде, построенной на основе реальных компьютерных игр и приложений. Код проекта написан на языке Python и распространяется под лицензией MIT.

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

Помимо предоставления агентам возможности активных действий в различных приложениях система также может применяться как окружение для тренировки систем машинного обучения. В процессе работы агента человек может подключиться к сеансу для отслеживания активности интеллектуального агента и корректировки его действий. Подготовка окружения сводится к запуску приложения в специально подготовленном контейнере на базе системы Docker и подключения интеллектуального агента при помощи написания скрипта на языке Python. Контейнер с приложением и агент разделены и могут выполняться на отдельных машинах.

Кроме VNC для связи окружения и агента применяется протокол WebSocket, через который передаётся служебная информация о наградах/достижениях, диагностические данные и управляющие сообщения. Интересно, что необходимая для организации обратной связи информация о достижениях в играх может собираться путём привлечения OCR для разбора текста на экране. В случае работы агента с браузером работа пока сосредоточена на обучении взаимодействия с применением типовых кнопок, списков и форм ввода. В качестве одной из целей на будущее упоминается желание научить агента отыскивать в сети неизвестные ему сведения, управлять электронной перепиской и работой с календарём.

Взаимодействие агента с окружением организуется с использованием штатного программного интерфейса Gym, ранее подготовленного проектом OpenAI для создания и сравнения алгоритмов обучения с подкреплением. Если в прошлом алгоритмы на Gem требовали разработки специальных окружений, то Universe даёт возможность организовать работу Gem-скриптов с любыми приложениями без их индивидуальной адаптации. Для взаимодействия с программами на уровне трансляции вывода экрана и симуляции устройств ввода Universe предоставляет универсальный пошаговый интерфейс, позволяющий принимать решения через заданные промежутки времени. В простейшем случае интерфейсный скрипт для создания окружения и запуска агента сводится к следующему коду:

   import gym
   import universe # регистрируем окружения Universe в Gym

   env = gym.make('flashgames.DuskDrive-v0') # идентификатор окружения Universe (в нашем примере Flash-игра DuskDrive)
   env.configure(remotes=1)  # автоматически создаём локальный контейнер Docker
   observation_n = env.reset()

   while True:
     # простейший агент, нажимающий клавишу вверх 60 раз в секунду
     action_n = [[('KeyEvent', 'ArrowUp', True)] for _ in observation_n]
     observation_n, reward_n, done_n, info = env.step(action_n)
     env.render()

Для запуска контейнера можно использовать команду

   $ docker run --privileged --cap-add=SYS_ADMIN --ipc=host \
       -p 5900:5900 -p 15900:15900 quay.io/openai/universe.flashgames

Первый выпуск Universe предоставляет около тысячи готовых окружений, среди которых разнообразные Flash-игры, браузерные задачи и игры, подобные slither.io и GTA V. Сотни из окружений пригодны для проведения обучения с подкреплением и почти все могут использоваться для оценки работы таких алгоритмов. Окружения снабжены стартовыми сценариями, автоматизирующими начальный этап настройки (например, открытие сайта или выбор режима в меню) для приведения состояния программы к готовности для запуска агента. Об участии в подготовке окружений на базе платформы Universe уже объявили компании EA, Valve, Microsoft, NVIDIA и несколько десятков производителей компьютерных игр.