Некоммерческая организация OpenAI, одним из основателей которой был Илон Маск, рассказала про команду из пяти нейросетей, обученных играть в стратегию Dota 2 — причем делать это почти на профессиональном уровне. Для этого потребовались огромные вычислительные мощности и тысячи виртуальных лет тренировок. Оно и понятно: Dota 2 во многих отношениях сильно сложнее шахмат или го.
Го — очень сложная игра. Dota 2 сложнее
Dota 2 — одна из самых популярных компьютерных игр современности. Это стратегия в реальном времени, где две команды игроков воюют за контроль над территорией на ограниченной карте. Каждый из десяти игроков управляет своим героем: его нужно «прокачивать», убивая монстров и вражеских персонажей, и собирать для него предметы, дающие бонусы.
Сложность Dota 2 — в ее вариативности. Доступных героев в игре больше сотни, у каждого свои характеристики, сильные и слабые стороны. В OpenAI подсчитали: средний матч длится около 45 минут, это 80 тысяч кадров игры (по 30 кадров в секунду). Их алгоритмы анализируют каждый четвертый кадр, то есть по 20 тысяч шагов за игру. В шахматах, для сравнения, партии обычно длятся меньше 40 шагов, в го — меньше 150. При этом на каждом шаге алгоритму нужно выбрать одно из примерно тысячи возможных действий для героя и принимать решения молниеносно; в шахматах и го можно подумать, а среднее количество доступных действий на каждом шаге — десятки и сотни.
Что еще за го?
Еще одна сложность: в Dota 2 игровое поле закрыто «туманом войны», поэтому игроки не могут увидеть, что делают их соперники — только то, что происходит вокруг их собственных персонажей и союзников. В тех же шахматах и го стратегия соперника видна в любой момент. Ах да, еще для Dota 2 каждые две недели выходит обновление, слегка меняющее геймплей.
При этом умение играть в стратегии вроде Dota 2 и Starcraft лучше людей считается одним из важнейших этапов в развитии искусственного интеллекта: условия тут сильнее приближены к реальному миру, чем в шахматах или го. Поэтому в OpenAI работают над ботами, которые совершенствуются в Dota 2.
900 лет тренировок в день
Первую демонстрацию такого бота компания провела в 2017 году: тогда нейросети удалось обыграть профессиональных игроков в матчах один на один. После этого OpenAI занялась развитием сразу пяти ботов, которые смогли бы побеждать в классическом режиме против пяти живых игроков.
Компьютерная команда получила название OpenAI Five. Алгоритмы развиваются с помощью самообучения: изначально они ничего не знают о стратегиях игры (им, например, не показывали записи игр людей), но с каждым новым матчем программы приобретают новые знания. Так, во время первых игр герои бесцельно ходили по карте. Через несколько часов тренировки они уже начали понимать основные концепции игры — линии атаки (их в Dota 2 три), фарминг (убийство слабых монстров для накопления золота) и битву на миде — в центре карты. Через несколько дней OpenAI Five начали обучаться базовым стратегиям, которые используют живые игроки.
Во время тренировок боты играют сами с собой и с прошлыми версиями себя. За один астрономический день каждая из пяти нейросетей симулирует 180 лет игры (получается по 900 лет на команду в день). Для таких расчетов приходится использовать мощную облачную систему — 128 тысяч процессорных ядер и 256 видеокарт. Как следствие, OpenAI Five умеет принимать решения очень быстро: боты делают по 150-170 действий в минуту, а на то, чтобы принять решение на каждом из 20 тысяч шагов партии, тратят в среднем всего 80 миллисекунд. Как говорят в OpenAI, это меньше, чем уходит на принятие решения у игроков-людей.
Как OpenAI Five играет в Dota 2
OpenAI
Время реакции важнее во время игры один на один, пишут в OpenAI; в классическом же режиме многое зависит от командной работы. Здесь каждая из пяти нейросетей работает почти независимо от остальных: они не общаются друг с другом, но следят за общим параметром, который назвали «командный дух». Этот параметр определяет, какие задачи для героя будут важнее — его собственные или командные.
Чтобы успешно обучаться, нейросети нужно знать, каким был результат ее действий — положительным или отрицательным. Для этого OpenAI выработали систему «наград»: за полученный опыт, заработанное золото, нанесенные удары и так далее герой получает очки. Его цель — получить больше очков. Но чтобы противоборствующие боты не вступали во взаимовыгодные отношения, разработчики вычитают из «награды» героя очки, заработанные его соперником.
Первые победы
В мае и июне 2018 года OpenAI провела серию игр, в которых OpenAI Five противостояла командам из живых людей. И нейросети показали удивительно хорошие результаты!
В первую команду, с которой сразились боты, вошли пять лучших игроков в Dota 2 среди сотрудников OpenAI. Это не очень сильная команда, и в середине мая OpenAI Five выиграла один матч и проиграла другой. А всего через три недели боты смогли обыграть не только эту команду, но и две другие: в одной был Blitz, бывший профессиональный игрок в Dota 2, теперь популярный стример, а в другой — сотрудники Valve, издателя стратегии. Эти успехи примечательны тем, что в новых командах были люди, играющие лучше 90-99% всех игроков Dota 2.
Наконец, OpenAI устроили для своих ботов две сессии по три матча против любительской и полупрофессиональной команд. Оба раза OpenAI Five удалось неожиданно выиграть две из трех игр.
Чтобы достичь профессионального уровня, команде нейросетей приходится много развиваться: упомянутые выше игры проходили при ряде ограничений, которые дают компьютерам фору. Так, все команды состояли из одного и того же набора из пяти героев, а игрокам не разрешалось использовать заклинания невидимости и иллюзии и надевать определенные артефакты.
Разработчики обещают улучшить алгоритмы, чтобы не пришлось вводить эти ограничения. 28 июля OpenAI проведет прямую трансляцию игры своей виртуальной команды против профессионалов. Следить за ней можно будет на Twitch.