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

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

Хронология событий:

Разработчики пояснили, что Pajkatt удалось победить противника благодаря покупке Magic Wand - бот до встречи с ним никогда не имел дела с этим предметом.

Создатели ИИ описали некоторые тактики, которые могли запутать бота и привести к его поражению. OpenAI организовали небольшой LAN-турнир неподалеку от The International 2017 , участникам которого предлагалось любым способом одолеть ИИ. Было проведено свыше тысячи матчей и в результате выделено 3 тактики, при встрече с которыми бот мог потерпеть неудачу.

  • Отвод крипов. .
  • Покупка Orb of Venom и Wind lace. Такая сборка давала большое преимущество в скорости, за счет которого можно было быстро сделать первое убийство.
  • Прокачка Raze на первом уровне. Некоторым игрокам с высоким показателем MMR удавалось убить бота тремя-пятью точными Raze за короткий промежуток времени. Тактика требует высокого уровня мастерства.

Следующий этап в развитии проекта - создание команды, состоящей из пяти ботов. OpenAI осознают комплексность проблемы: «1v1 - штука сложная, но 5v5 - это целый океан сложностей. Мы понимаем, что нам придется еще больше раздвинуть границы возможностей ИИ, чтобы решить эту задачу ». Создатели бота уже начали трудиться над улучшением своего искусственного интеллекта: сотрудники OpenAI скачали почти шесть миллионов реплеев с серверов Valve и сейчас занимаются их изучением с целью выявления шаблонов поведения.

Следите за новостями у нас на и в нашей группе

Команда Pain Gaming победила OpenAI Five. Матч длился 53 минуты и закончился со счетом 45-41 по фрагам в пользу ботов. Запись игры можно . Начало на 7:38:00

Сегодня вечером, 22 августа, перед началом очередного дня плей-офф The International, в рамках шоу-активностей пройдет первый показательный матч между профессиональными игроками и ботом OpenAI Five. Информация о матчах появилась на официальном сайте Dota 2 в разделе с расписанием игр плей-офф The International. Всего OpenAI сыграет три матча за три дня с про-игроками.

Знаменательно это событие тем, что год назад бот уже «расправился» Даниилом Ишутиным в противостоянии 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. Очевидно, что обучаемость этого ИИ на многие порядки ниже, даже чем у не самых «умных» животных, не говоря о собаках или высших приматах, к которым относится и человек.

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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


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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

8 марта: тестер с 1.500 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%.

Задачи Open AI в Dota 2

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

Значение победы

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

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

Соперники

Алгоритм соревновался с командами сотрудников OpenAI и Valve, а также с двумя любительскими и одной полупрофессиональной. Система выиграла в четырех случаях из пяти, еще один матч прошел вничью.

28 июня 2018 года разработчики проведут показательный матч против самых успешных игроков.

Навыки

  • OpenAI Five оценивает положение каждого юнита в драке, загоняет противников на свой хайграунд для защиты и зажимает его.
  • Боты готовят ловушки, как только команда людей предоставляет им пространство для маневра.
  • ИИ фокусируется на конкретном сопернике, оценивает его важность для вражеской команды и не жалеет ресурсов для его уничтожения. Алгоритм также жертвует членом своей команды или легкой линией, если это поможет получить ценную награду.
  • Боты преследуют и убивают даже тех противников, которых нет в их зоне видимости.
  • OpenAI Five быстрее переходит к средней стадии игры, поскольку нападает быстрее и эффективнее, чем соперники.
  • Система умеет отклоняться от заданной стратегии, если это нужно для быстрого достижения пика урона и получения преимущества.

OpenAI Five совершает 150–170 действий в минуту и реагирует в среднем за 80 мс.

Обучение

Для каждого бота используется раздельная LSTM-сеть с долгой краткосрочной памятью, которая анализирует окружающую среду и помогает боту избегать и обходить препятствия. Всю систему тренировали с помощью расширенной версии обучающего алгоритма Proximal Policy Optimization . Она работает на 256 графических картах и 128 тысячах процессоров.

Каждый день алгоритм проживает 180 лет игрового времени. Подобным массивом данных не обладает ни один из профессиональных игроков на планете. Каждый «агент» проводит 80 % игр против своей нынешней версии и 20 % против прошлой. Так разработчики стараются избегать проблем со стратегиями команды.

Недостатки

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

Пока OpenAI Five умеет играть только ограниченным количеством героев, в ее арсенале есть Necrophos, Sniper, Viper, Crystal Maiden и Lich. Система не научилась вардить, не знает о Рошане, не пользуется невидимостью или сканом. Ей запрещено покупать Divine Rapier, Bottle, Quelling Blade, Boots of Travel, Tome of Knowledge и Infused Raindrop.

В апреле 2018 года китайская нейросеть Golaxy в го лучшего игрока в Китае Кэ Цзе. В 2017 году его же победила другая нейросеть - AlphaGo, разработанная Google.

Статьи по теме: