Лучшее  🚀
27.06.2018 в 13:34 Evernews

Как ИИ OpenAI учится обыгрывать в Dota 2 профессиональных игроков

В конце июля команда OpenAI Five сразится в Dota 2 с профессиональными игроками.

Кстати, на сайте читать удобнее

Исследовательская организация OpenAI несколько лет занимается обучением ИИ, способного играть в Dota 2. Во время The International 2017 ИИ OpenAI сыграл с профессиональным игроком Dendi (тот проиграл), в этом году OpenAI попробует выставить против игроков-людей целую команду ботов.

Команда называется OpenAI Five: она состоит из пяти нейронных сетей, обращающих внимание на поведение друг друга, но в то же время действующих самостоятельно — примерно так же, как и живые игроки. За месяц до сражения с профессиональной командой разработчики рассказали, как создается и обучается OpenAI Five.

Очень много данных

Искусственный интеллект неплохо играет в шахматы или го, но Dota 2 — совсем другое дело. Она сложнее: здесь есть множество героев, артефактов и способностей, игрок должен добывать золото, уничтожать монстров и сражаться с персонажами других игроков, взаимодействуя с членами своей команды.

Средняя шахматная партия заканчивается за 40 шагов, партия в го обычно завершается за 150 шагов. В OpenAI подсчитали, что матч в Dota 2 длится примерно 45 минут, ИИ анализирует изменения семь раз в секунду — за один матч набегает около 20 тысяч «тиков».

Для каждого героя рассчитаны около 170 тысяч возможных действий, каждый тик ИИ OpenAI выбирает наиболее оптимальное действие из примерно 1000 вариантов. В шахматах число вариантов каждый ход в среднем не превышает 35, в го оно находится в районе 250.

Для анализа искусственному интеллекту доступны только те же данные, что и игроку. Система OpenAI использует Bot API и получает порядка 20 тысяч значений, описывающих ход игры. Все решения нужно принимать максимально быстро: в Dota 2 матчи проходят в режиме реального времени.

Очень много железа

Чтобы обрабатывать такой объем данных нужны серьезные вычислительные мощности. Разработчики OpenAI Five используют облачную платформу Google Cloud Platform: ИИ работает на 128 тысячах обычных процессорных ядер и 256 видеокартах Nvidia Tesla P100.

Боты анализируют информацию очень быстро: в минуту OpenAI Five совершает порядка 150-170 действий, теоретический максимум скорости — 450 действий в минуту. Время реакции у искусственного интеллекта составляет всего 80 миллисекунд — разработчики считают, что игроки-люди действуют медленнее.

За один реальный день нейронная сеть OpenAI Five эмулирует примерно 180 лет игры в Dota 2. Команда из пяти ботов ежедневно проводит в игре около 900 лет.

Как все работает

Для обучения OpenAI Five не используются матчи игроков-людей: система использует механизмы самообучения и сами изучает правила Dota 2. В первых матчах боты просто стояли на месте или ходили по карте, после нескольких часов обучения ИИ самостоятельно разобрался в концепции фарма, линий атаки и борьбы за мид.

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

Во время обучения нейронные сети OpenAI Five сражаются либо сами с собой, либо со своими предыдущими версиями. В роли положительного и отрицательного подкрепления выступают не только победы: ИИ получил специальную систему наград.

Нейронные сети получают награды за множество действий: сбор золота, убийства, нанесение последних ударов. Боты стремятся получить как можно больше наградных очков, но награды — система с нулевой суммой. Очки, полученные ботом одной команды, вычитаются у ботов другой команды: так разработчики не дают ИИ «договориться» и фармить награды друг на друге.

У ботов нет явного канала для координации атак и связи друг с другом, для улучшения взаимодействия разработчики наделили их параметром под названием «командный дух». Этот параметр определяет, какая из наград для ИИ должна быть приоритетнее — личная или командная.

Ограничения

Нынешняя версия OpenAI Five играет в Dota 2 с некоторыми ограничениями. В каждом матче участвуют две команды, состоящие из пяти одинаковых героев: это могут быть Necrophos, Sniper, Viper, Crystal Maiden или Lich. Кроме того, нельзя сканировать карту, использовать невидимость и иллюзии, применять несколько предметов, призывать саммонов и ходить на Рошана. В будущем разработчики намерены отказаться от этих ограничений.

Игры с реальными людьми

Команда ИИ OpenAI Five успела сыграть с несколькими командами, состоящими из настоящих игроков. Первым противником стала команда с 2500 MMR, состоящая из разработчиков OpenAI: 15 мая ИИ выиграл один матч и проиграл другой.

Затем, 6 июня, ИИ вновь сразился с первой командой и еще двумя группами игроков: первая команда состояла из сотрудников Valve (2500-4000 MMR), во второй были лучшие зрители, смотревшие самый первый матч OpenAI Five и Blitz, бывший профессиональный игрок в Dota 2. На этот раз ИИ выиграл все матчи.

После этого OpenAI Five поучаствовал в матчах с еще двумя командами, любительской (4200 MMR) и полу-профессиональной (5500 MMR). В каждом случае искусственный интеллект выиграл две из трех игр.

Теперь разработчики OpenAI планируют устроить сражение между OpenAI Five и профессиональной командой. Бой пройдет 5 августа.

Читать далее