Open AI в DOTA 2: о работе, обучении и дальнейшем развитии искусственного интеллекта

Одним из самых запоминающихся событий The International 7, своеобразным открытием турнира, стало представление революционного бота, разработанного командой известного апологета искусственного интеллекта Илона Маска. В финале пятого игрового дня легендарный Dendi, который, к радости фанатов, все-таки оказался на сцене TI7, в стилизованном шоу-матче сразился с творением OpenAI. В коротком интро разработчики показали еще несколько топовых игроков и комментаторов, которые испытали на себе мощь бота, а также рассказали о ключевых моментах в разработке программы. Кому и как все же удалось победить бота, есть ли у программы слабые места, что отличает проект от уже представленных миру образцов ИИ, и какие перспективы у подобных программ в целом и в Dota 2 в частности? Разработчики выпустили дневник, в котором есть ответы на все эти вопросы.

openAI dendi dota 2
full

Результаты команды на поприще Dota 2 показали, что при достаточном количестве практических экспериментов самообучение способно вознести возможности системы развития ИИ на недоступный для человека уровень.

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

Рейтинг TrueSkill (аналогично рейтингу ELO в шахматах) лучшей на данный момент версии бота достигнут с помощью симуляции игры двух программных единиц и сопоставления коэффициента побед. Рост достигался как от улучшений алгоритмов обучения программы, так и за счет полученных в результате новых навыков бота. Экспонента графика говорит о том, что каждое новое улучшение приносит все больше и больше эффективности, так как взаимодействует с уже существующей базой навыков и алгоритмов.

full

Хронология проекта

Для сравнения напомним, что из всех играющих в Dota 2 15% обладают показателем MMR ниже 1.500, у 58% (больше половины) MMR меньше 3.000 и у 99.99% (почти у всех) — ниже 7.500 MMR.

1 марта: получены первые результаты самообучения в простой среде, когда Drow Ranger училась «кайтить» запрограммированного Earthshaker.

8 марта: тестер с 1.500 MMR отчитался, что он играет быстрее и лучше, чем бот.

начало июня: этот же тестер первый раз проиграл боту.

30 июня: бот выигрывает большинство матчей против тестера с 3.000 MMR.

8 июля: программа едва выигрывает у полупрофессионального тестера с 7.500 MMR.

7 августа: бот побеждает Blitz (6.200 MMR) 3-0, Pajkatt (8.500 MMR) 2-1 и CC&C (8.900 MMR) 3-0. Все трое согласились, что Sumail все же найдет способ победить бота.

9 августа: OpenAI побеждает Arteezy (10.000 MMR) со счетом 10-0. Артур надеется, что Sumail все-таки справится с программой.

10 августа: бот обыгрывает Sumail (8.300 MMR, лучший игрок 1х1): 6-0. Спортсмен признает, что бота просто невозможно победить. Сыграв со старой версией бота от 9-го августа, он также проигрывает со счетом 1-2.

11 августа: побеждает Dendi (7.300 MMR, бывший чемпион мира, любимец публики) 2-0. При этом винрейт бота с версией от 10-го августа составил 60%.

full

Задачи Open AI в Dota 2

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

В распоряжении бота были следующие инструменты:

Обзор: бот видит только то, что видит игрок: героев, крипов, курьера и область вокруг персонажа. Бот не видит сквозь туман войны.

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

Сбор информации: бот считывает базовые показатели: здоровье юнитов и тайминг правильного добивания крипов.

Команда разработчиков задала несколько билдов, которые бот мог самостоятельно выбирать, улучшать и развивать. Тренировка блока крипов проводилась отдельно (т.к. в ней не участвовал второй бот/игрок, и программе было не у кого учиться). Бот использует обычнуют технику блокировки, просчитывая скорость передвижения крипов и свою собственную.

full

Open AI на The International 7

Подход разработчиков, основанный на постоянном обучении с помощью игры с партнером или с самим собой, позволил существенно улучшить бота во время пребывания на The International. В понедельник вечером Pajkatt победил программу, используя нестандартный билд с ранним Magic Wand. Этот билд был добавлен в список алгоритмов бота.

К полудню в среду была протестирована последняя версия программы. Бот потерял много здоровья на первой волне крипов. Разработчики подумали, что нужно откатить версию, но оказалось, что бот попросту «байтит» оппонента. Дальнейшая самопрактика позволила программе распозновать также и эту стратегию. Разработчики сохранили полученный модуль и внедрили его алгоритм для первой волны крипов к боту версии понедельника. Потом были матчи с Arteezy.

После практик с Артуром (10-0 в пользу бота), была переработана модель блокировки крипов, что позволило показателям бота улучшится на единицу в системе TrueSkill.

Перед матчами с Sumail, которые должны были пройти в четверг, в процессе самотренировки показатель вырос еще на две единицы. Sumail отметил, что бот научился использовать Raze вне обзора противника, если тот купил Magic Wand. Таким образом программа не давала противнику зарядить артефакт. Об этой внутриигровой механике в тот момент не знали даже сами разработчики.

Arteezy также сыграл против тестера-полупрофессионала (7.500 MMR). Артур доминировал всю игру, но тестер смог удивить его, используя стратегию, которой он научился у бота. Arteezy отметил, что такой сценарий однажды против него разыграл  Paparazi, но этот подход серьезно отличался от стандартной игры на Shadow Fiend.

Pajkatt победил бота версии от понедельника с помощью Magic Wand и Fairy Fire, которые дали необходимую для победы регенерацию в процессе боя. Обычно, программа отлично просчитывала вероятность победы при размене, но бот впервые играл против билда с ранним Magic Wand.

full

Слепые пятна ИИ

Несмотря на то, что Sumail назвал программу непобедимой, бот все еще может быть дезориентирован в ситуациях, в которых он раньше не оказывался. Программа была доступна на The International, где игроки провели более тысячи матчей с установкой победить OpenAI любой ценой.

Слабые места бота можно условно разделить на три архетипа:

Махинации с крипами: например, можно уводить вражеских крипов с линии сразу после их появления (между второй и третьей вышками на центральной линии), оставляя башню бота без защиты.

Orb of Venom + Wind Lace: сборка дает солидное преимущество по скорости на первом уровне и, при правильном использовании, позволяет быстро пролить первую кровь. С помощью полученного буста необходимо суметь убить бота во второй раз.

Raze 1 уровня: требует виртуозного навыка, но несколько 6-7K игроков умудрились убить бота 1 уровня, попав прокастом способности из 3-5 раз.

Устранить эти слабые места не составит труда, точно так же, как и в случае с багом Pajkatt. Но с точки зрения игры 5х5, где нет ограничительных правил (как, например, в 1х1, где игра идет только на средней линии) — это уже никакие не баги или злоупотребления, и боту понадобится система, которая сможет справиться с новыми или нестандартными ситуациями, с которыми программа сталкивается впервые.

full

Создание полноценной команды Open AI

Формат 1х1 непростой, но 5х5 это океан возможностей. Для успешного решения необходимо раздвинуть границы возможностей OpenAI.

Отличным инструментом для начала стало клонирование поведения игроков. В Dota 2 проводится около миллиона матчей в день. Повторы этих матчей содержатся в базе Valve две недели. Разработчики загружали каждый повтор уровня «very high skill» с ноября прошлого года и получили базу в 5.8 миллионов игр (в каждой из которых участвовало 10 человек при средней продолжительности в 45 минут). Для анализа был использован сервис OpenDota, который позже получил взнос от разработчиков бота в размере 12 тысяч долларов  — финальная цель создателей сайта по сбору средств для проекта в течение 10 лет.

У команды разработчиков есть множество идей, идет набор увлеченных ИИ экспертов-инженеров и исследователей. Также озвучены благодарности Microsoft Azure и Valve за помощь в этой инициативе. Судя по всему, разработчики всерьез намерены взрастить целую команду сверх-ботов, способных выигрывать стандартные Dota2-матчи так же легко, как это делает OpenAI в формате 1 на 1. 

full

Что же отличает OpenAI от обычного бота или тех программ, которые вот уже много лет обыгрывают гроссмейстеров в шахматах? Суть этого бота в том, что его действия не прописывает команда разработчиков — она лишь создает и улучшает алгоритм его обучения. Свой код, поведение, тактику и микро-игру программа создает самостоятельно. Именно поэтому проект привлек такое внимание широкой общественности и гордо именуется искусственным интеллектом.

Кто знает, возможно через пару лет мы увидим шоу-матч нового формата — сильнейшие представители профессиональной сцены против полноценной команды под управлением OpenAI?

Оставьте комментарий