Главная » Хабрахабр » Завтра пройдет первый матч между OpenAI и профессионалами Dota 2. Разбираемся, как работает бот

Завтра пройдет первый матч между OpenAI и профессионалами Dota 2. Разбираемся, как работает бот

Информация о матчах появилась на официальном сайте Dota 2 в разделе с расписанием игр плей-офф The International. Завтра вечером, перед началом очередного дня плей-офф The International, в рамках шоу-активностей пройдет первый показательный матч между профессиональными игроками и ботом OpenAI Five. Первая игра состоится в среду, 22 августа, примерно в 18:30-19:00 по МСК (точное время пока не указано). Всего OpenAI сыграет три матча за три дня с про-игроками. Проследить за противостоянием ботов и профессионалов можно на официальной русскоязычной и англоязычной трансляции на Twitch.

Знаменательно это событие тем, что год назад бот уже «расправился» Даниилом Ишутиным в противостоянии 1x1 solo mid mirror SF, а несколько недель назад одолел «сборную солянку» из комментаторов и бывших про-игроков.

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

Итак, старые правила выглядят следующим образом:

  • пул из 18 героев в режиме Random Draft (Axe, Crystal Maiden, Death Prophet, Earthshaker, Gyrocopter, Lich, Lion, Necrophos, Queen of Pain, Razor, Riki, Shadow Fiend, Slark, Sniper, Sven, Tidehunter, Viper, или Witch Doctor);
  • без Divine Rapier, Bottle;
  • без подконтрольных существ и иллюзий;
  • матч с пятью курьерами (ими нельзя скаутить и танковать);
  • без использования скана.

В комментариях к нашей прошлой публикации на эту тему разгорелось множество споров о методах обучения нейросетей. На этот раз мы принесли немного наглядных материалов о том, как работает бот OpenAI и как это выглядит с точки зрения людей.
Разработчики заявляли, что благодаря серьезным вычислительным мощностям, огромному количеству записей и возможности запускать обучение в несколько потоков, ежедневно OpenAI имитировал до 180 лет непрерывной игры в Dota 2. Очевидно, что обучаемость этого ИИ на многие порядки ниже, даже чем у не самых «умных» животных, не говоря о собаках или высших приматах, к которым относится и человек.

Эта «качалка» совместима с любой публичной библиотекой, например TensorFlow или Theano. Для обучения OpenAI команда использовала собственную разработку под названием Gym (репозиторий на github, официальная документация). В обучении нейросетей в рамках Gym используется классическая петля «агент-среда»:

Очевидно, что скорость обучения напрямую зависит от объема задействованных в этом ресурсов. Разработчики заявляют, что любой желающий может использовать Gym для обучения своей нейросети игре в классические тайтлы для Atari 2600 или другие относительно простые для понимания проекты. В качестве примера разработчики OpenAI научили нейросеть играть в Montezuma’s Revenge.

А в контексте Dota 2 уровень вариативности просто зашкаливает, а изначально оцененные ботом действия как «правильные» на длинной дистанции могут привести к проигрышу. Но наибольший для нас интерес представляют второй и четвертый этапы — действие и анализ результата (награды за действие).

Как команда OpenAI учила ИИ играть в Dota 2 с точки зрения оборудования

К вопросу обучения OpenAI игре в Dota 2 команда разработки подошла более чем серьезно. Полный официальный репорт в блоге проекта вы можете прочитать тут, мы же приведем основные выдержки по технической части и реализации без маркетинга и прочих реверансов.

Очевидно, что парой Ryzen дело там обойтись не могло, особенно в контексте имитации 180 лет игры в реальные сутки. Наибольший интерес у комментаторов прошлой публикации вызывала мощность, потребляемая нейросетью OpenAI для обучения. При этом бот для Dota 2 — это вам не бот для шутера уровня Quake, что очень четко подметил пользователь yea в ответ одному из скептиков:

Нет никаких шансов сделать ботов без привлечения нейросетей, ограничиваясь хоть сколько-нибудь вменяемыми вычислительными ресурсами. Мне кажется, вы просто слабо себе представляете размеры тактического простора в доте, потому что слабо знакомы с самой игрой. Это не Quake, где можно быть полным дубом в плане тактики, компенсируя это нечеловечески быстрыми выстрелами в репу из рельсы. Серьезно. Идеальные в плане реакции и механических скиллов боты, не умеющие играть впятером и не «чувствующие карту», обречены против сколько-нибудь умелых мясных игроков.

Задача «что делать, когда я вижу врага» намного проще, чем задача «что делать, когда врагов не видно» — не только для машин, но и для людей. Кроме того, дота — игра с неполной информацией, и это кардинально усложняет задачу.

Это четко понимали и разработчики OpenAI, так что для обучения ботов были задействованы тысячи виртуальных машин одновременно. Конкретно такие цифры приводит официальный блог проекта для обучения бота 1х1 Solo Mid, способного с некоторыми ограничения победить в миде Даниила Ишутина, и для обучения полноценной команды для игры 5х5:

Это не десятичная запятая. Для обучения OpenAI в режиме 5х5 постоянно используется 128 тысяч процессорных ядер Google Cloud. Но и это еще не вся мякотка. Так как в обучении бота OpenAI используется машинное зрение (о котором мы поговорим чуть позже), в этой чудовищной конфигурации фигурирует еще 256 GPU P100 NVIDIA (Tesla accelerator).

Согласно официальной брошюре NVIDIA, P100 обладает следующими характеристиками:

В OpenAI используется как раз старшая модель SXM2. Официальная стоимость одной P100 Tesla 12 GB PCI-E составляет около 5800$, Tesla P100 SXM2 16GB стартует от 9400$. Для обработки этого потока команде пришлось развернуть целую систему нод, в рамках которой и работают P100 Tesla. Нужны видеокарты не для отрисовки «графики» на виртуальных машинах, а обработки и вычисления данных, которые постоянно поступают из всех запущенных партий. Видеокарты обрабатывают и вычисляют полученные данные, чтобы потом выдать усредненный по всем партиям результат и сравнить его с прошлыми показателями OpenAI.

Подобные мощности позволяют имитировать нейросети около 60 партий в минуту, за каждую из которых нейросеть анализирует около 1,04 млн циклов агент-среда, упоминаемых ранее.

Как OpenAI видит игру

Деньги — пыль, если они у вас конечно же есть. Даже самые приблизительные прикидки стоимости одного дня обучения OpenAI вызывают легкий шок, а выделяемого на серверах Google Cloud тепла хватит для отопления небольшого города. Но намного интереснее, как OpenAI «видит» игру.

Бот в своих действиях опирается на стандартный API Valve для ботов, через который нейросеть получает поток данных об окружающем пространстве. Понятно, что графическая отрисовка ботам не нужна, но такие мощности используются не просто так. API нужен для того, чтобы полученные данные прогонять через однослойную LSTM-сеть из 1024 блоков и получать, как итог, краткосрочные решения, которые согласуются с долгосрочными стратегиями, которыми располагает нейросеть.

Например, боты охотно концентрируются на ласт-хите крипов для заработка золота и опыта, что согласуется с моделью получения долгосрочной выгоды в виде предметов и последующего преимущества по игре. LSTM-сети определяют приоритет задач для бота «здесь и сейчас», а в согласовании с долгосрочной моделью поведения нейросети выбирается наиболее выгодное действие.

Нейросеть OpenAI постоянно анализирует каждый кадр через LSTM, на основе результата которого принимает дальнейшие решения. По информации от разработчиков, все партии происходят с отрисовкой событий на карте с частотой в 30 FPS. Вот как бот частично «видит» игру на одном конкретном кадре: При этом бот имеет свои приоритеты: самому тщательному анализу подвергаются все возможные взаимодействия с окружением через специально выделенные области «зрения» бота — это квадраты 800х800, поделенные на 64 ячейки 100х100 (за размер взяты значения внутриигровой дальности действия и перемещения, а размер квадрата составляет 8х8).


Полный конструктор с возможность переключения действий, оценки размера квадратов и прочими возможностями «покрутить настройки» доступен в официальном блоге разработчиков в разделе Model structure

А вот так выглядит визуализация работы LSTM-сети в плане прогнозирования игровых событий в режиме реального времени:

Кроме LSTM и оценки ситуации «здесь и сейчас» бот OpenAI постоянно пользуется сеткой «прогнозирования» и расстановки собственных приоритетов. Вот так это выглядит для людей:

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

Посмотреть, как бот «видит» игру и принимает решения на основе этих четырех зон можно увидеть на видеозаписи ниже:

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

При этом 80% ботов обучаются, а 20% используют уже отработанные тактики и стратегии. OpenAI постоянно играет сам с собой. Такой подход позволяет нейросети учиться на собственных ошибках, находя уязвимые паттерны в собственно поведении и одновременно закреплять удачные модели поведения.

Уже завтра. Люди-профессионалы против машины

Вместо итога стоит вернуться к теме завтрашнего противостояния между профессиональными игроками и OpenAI.

В отличие от прошлых своих противников, OpenAI столкнется с лучшими из лучших, а возможность маневрирования и командного взаимодействия в рамках шоу-матча позволит людям полностью раскрыть свой потенциал. Пока неизвестны детали, однако с уверенностью можно сказать, что нейросети придется несладко. Формат Solo Mid 1x1, конечно, крайне зрелищный, однако не раскрывает всей сути игры и крайне нетерпим к микро-ошибкам, которые люди зачастую допускают.

При появлении какой-то дополнительной информации публикация будет обновляться. Весь вопрос в том, насколько серьезно к этому противостоянию отнесутся профессионалы.


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

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Триумф и трагедия «Бурана»

В полностью автоматическом режиме он совершил 2 витка вокруг Земли и успешно приземлился спустя 205 минут. Ровно 30 лет назад с космодрома Байконур на ракете-носителе «Энергия» в свой единственный полёт отправился корабль «Буран». Это стало несомненным триумфом советской космонавтики, впервые ...

[Из песочницы] Несертифицированный GPS-трекер из Китая. Законно ли в России?

Иностранные интернет-магазины завалены разнообразными устройствами, оснащёнными GPS, GSM-модулями, позволяющими отслеживать местоположение наблюдаемого объекта и управлять устройством посредством SMS и мобильных приложений. И, конечно же, большинство из них не сертифицированы и запрещены для ввоза/использования в России. Простой обыватель, услышав слова «несертифицированный» ...