Перейти к содержанию

6.2.3.7 Игры с неполной информацией: стратегии реального времени

Материал из Охота на электроовец: Большая Книга Искусственного Интеллекта

Впрочем, как бы ни велико было пространство состояний настольных и карточных игр, оно не идёт ни в какое сравнение с пространством состояний компьютерных стратегий реального времени. Например, в игре StarCraft при размере карты 128 × 128 консервативная оценка числа состояний для 400 юнитов (персонажей) на карте составляет[1] (128 × 128)400 ≈ ≈ 101685, при этом коэффициент ветвления игрового дерева (рассчитываемый как число возможных действий одного юнита в степени числа активных юнитов) находится в пределах от 1050 до 10200 (в шахматах порядка 35). Ещё десять лет назад мало кто мог помыслить о том, что машины вскоре смогут без заметной форы соперничать с людьми в подобных играх. Конечно, мир StarCraft или других подобных игр по своей сложности всё ещё безнадёжно далёк от реального мира, но это определённо гигантский скачок вперёд по сравнению с классическими настольными играми.

Внимание разработчиков систем игрового ИИ в эру глубокого обучения оказалось приковано к двум популярным стратегиям реального времени: Dota 2 и StarCraft II.

Dota 2 — многопользовательская онлайновая боевая арена (multiplayer online battle arena, MOBA): две команды по пять человек сражаются на большой карте, защищая свои базы и атакуя противников. Турниры по Dota 2 славятся в мире киберспорта рекордными призовыми фондами.

В 2016 г. компания OpenAI начала разработку собственного бота для игры в Dota 2. Выбор в пользу этой игры был сделан не только из-за её популярности, но и в силу наличия версии игры для Linux, а также открытого программного интерфейса приложения (Application programming interface, API), что позволяло существенно упростить процесс разработки бота. 11 августа 2017 года бот OpenAI в прямом эфире играл против одного из наиболее известных игроков в Dota 2 — Даниила Ишутина. Бот одержал победу в двух партиях из двух.

Для обучения бота, сердцем которого служит нейронная сеть на базе LSTM из 1024 блоков, было использовано 60 000 ядер CPU и 256 GPU Nvidia Tesla K80, предоставленных облачным сервисом Microsoft Azure. Один день обучения при использовании таких колоссальных вычислительных мощностей соответствовал 300 годам игрового времени, в течение которого бот играл сам с собой. При этом использовался алгоритм обучения с подкреплением, получивший название «оптимизация на базе аппроксимации политики» (Proximal Policy Optimization, PPO)[2]. Процесс обучения длился две недели.

На вход LSTM-сети бота поступают доступные ему сведения об игровом мире (характеристики юнита, его позиция и направление, информация об атаках, дистанции до других персонажей и т. д.), упакованные в массив из 20 000 чисел[3]. На выходе сети формируется вектор, описывающий действие, которое необходимо предпринять персонажу[4].

Добившись успеха в игре один на один, исследователи из OpenAI перешли к командному варианту игры (пять на пять). Результатом их труда стал бот под названием OpenAI Five. В этот раз для обучения использовались ресурсы Google Cloud Platform — 128 000 ядер CPU и 256 GPU Tesla P100. Это позволило симулировать 180 игровых лет за один день расчётов (900 лет, если считать время каждого из персонажей по отдельности).

К июню 2018 г. боты OpenAI Five научились играть в команде и смогли одержать несколько побед над командами любителей и полупрофессиональных игроков[5]. На чемпионате The International 2018 OpenAI Five сыграли два матча против профессиональных команд, один против бразильской paiN Gaming (входящей в двадцатку сильнейших в мире), другой против команды Big God, состоящей из прославленных китайских игроков. Первый матч продолжался 51 минуту (против обычных 45 минут). Сначала боты казались дезориентированными, но к середине игры смогли превзойти людей по количеству убийств и собранного золота. Впрочем, победу всё же одержали люди: в ходе последней битвы профессионалы смогли разрушить базу противника. Игроки из Big God смогли управиться с противником за 45 минут.

Хотя боты и проиграли оба матча, представители OpenAI заявили об успехе предприятия, поскольку игра с одними из лучших игроков в Dota 2 позволила исследователям проанализировать и скорректировать алгоритмы системы на будущее. Следующая публичная демонстрация игры OpenAI Five состоялась в апреле 2019 г., когда команда ботов выиграла в Сан-Франциско серию игр «до двух побед» против чемпионов The International 2018 — европейской команды OG. Игры транслировались в прямом эфире[6]. В том же месяце было организовано четырёхдневное онлайн-мероприятие, в ходе которого все желающие могли попытать счастья в игре против ботов. В итоге из 42 729 игр боты выиграли 38 654 (чуть более 90%).

Исследователи компании DeepMind, в свою очередь, сконцентрировали усилия на StarCraft II. В отличие от Dota 2 игроки в StarCraft II оперируют не отдельными персонажами, а целыми воюющими друг с другом армиями, в которых может быть более сотни юнитов, а также игровой экономикой, подразумевающей добычу ресурсов, строительство зданий и производство новых отрядов.

С 2010 г. в Университете Сечжона (Sejong University, 세종대학교) в Сеуле проходят регулярные соревнования по StarCraft с участием людей и машин. Надо отметить, что это весьма респектабельное мероприятие, которое проводится при поддержке различных коммерческих и общественных организаций, например Института инженеров электротехники и электроники (Institute of Electrical and Electronics Engineers, IEEE) — крупнейшей в мире ассоциации технических специалистов, насчитывающей более 423 000 членов в более чем 160 странах мира.

В 2017 г., после первых успехов бота OpenAI в Dota 2, StarCraft воспринимался многими как надёжный бастион человеческого превосходства в мире компьютерных игр. В конце октября 2017 г. на очередном турнире в Sejong профессиональный игрок в StarCraft Сон Бён-гу сразился с четырьмя ботами в первую версию StarCraft и одержал бесспорную победу со счётом 4 : 0. Данные боты разрабатывались как командами разработчиков из крупных корпораций, так и отдельными энтузиастами.

В августе 2017 г. DeepMind и Blizzard выпустили инструменты разработки ботов для StarCraft II. Также было опубликовано 65 000 записей игр. Учёный-информатик и менеджер турниров StarCraft Дэвид Черчилль предположил, что ботам понадобится пять лет, чтобы победить людей, сделав, однако, оговорку, что AlphaGo в своё время смогла опередить все прогнозы. Технический обозреватель журнала Wired Том Саймонит заявил: «Никто не ожидает, что робот победит в ближайшее время. Но когда это произойдёт, это будет гораздо большим достижением, чем завоевание го DeepMind».

Гром среди ясного неба грянул 24 января 2019 г., когда в блоге DeepMind появилась статья[7] под заголовком «AlphaStar: освоение стратегической игры реального времени StarCraft II» (AlphaStar: Mastering the Real-Time Strategy Game StarCraft II). Из неё общественность узнала, что в серии тестовых матчей, состоявшихся 19 декабря, AlphaStar — бот, созданный разработчиками из DeepMind, — победил со счётом 5 : 0 Гжегожа MaNa Коминча из команды Team Liquid, одного из сильнейших профессиональных игроков StarCraft в мире, а также, с таким же счётом, товарища MaNa по команде Дарио TLO Вюнша, который, правда, играл с AlphaStar не «своей» расой — во всех играх матча игроки использовали расу протоссов, в то время как TLO последние годы играет на профессиональных турнирах главным образом за зергов. В ответ на обвинения в том, что MaNa играл в матче недостаточно хорошо (некоторые комментаторы заявляли, что отдельные партии были скорее не выиграны AlphaStar, а проиграны MaNa), TLO опубликовал твит[8], в котором сказал: «Поверьте, очень трудно играть против такого противника, как AlphaStar, который играет совсем не так, как человек, и с которым у вас нет предыдущего опыта. AlphaStar невероятно впечатляющий и, по моему мнению, небывалый игровой ИИ».

Одна идея, найденная AlphaStar (перепроизводство зондов для добычи ресурсов), оказалась новой для игрового сообщества и была тут же принята игроками на вооружение (например, MaNa применил её уже в четвёртой игре против AlphaStar)[9], [10].

Версия бота, одолевшая MaNa и TLO, использовала программный интерфейс игры для получения данных о текущем положении в игре. Фактически AlphaStar одновременно «смотрел» на все видимые области карты, что многие эксперты сочли недопустимым преимуществом бота по отношению к игрокам-людям. Поэтому DeepMind разработала версию AlphaStar, которая взаимодействовала с игрой так же, как это делают люди, то есть самостоятельно принимая решения о том, когда и куда перемещать камеру. Эту версию бота, которая обучалась в течение недели, MaNa смог одолеть в демонстрационном матче 24 января.

«Я был впечатлён, увидев, что AlphaStar проворачивает продвинутые ходы и различные стратегии практически в каждой игре, используя очень человеческий стиль игры, которого я не ожидал… из-за этого игра предстала в совершенно новом свете. Мы все с нетерпением ждём, что будет дальше», — сказал MaNa.

Ещё одним источником претензий к игре AlphaStar стала скорость выполнения ботом действий. Лучшие игроки StarCraft могут довольно быстро отдавать команды своим юнитам, тот же MaNa в своём матче с AlphaStar осуществлял в среднем 390 действий в минуту (Actions per minute, APM) (т. е. более шести действий в секунду!). Многие из таких действий не требуют предварительных сложных расчётов, и, например, в момент сражения больших армий AlphaStar теоретически мог бы легко выполнять тысячи действий в минуту, что находится далеко за пределами возможностей любого игрока-человека. Чтобы избежать этого и сделать соревнование более честным, специалисты DeepMind ввели жёсткие лимиты на количество действий бота. В матчах с MaNa AlphaStar использовал следующие ограничения: максимум 600 APM в течение 5 секунд, 400 в течение 15 секунд, 320 в течение 30 секунд и 300 в течение минуты. Однако 5 секунд — довольно долгий период для StarCraft II. При таких ограничениях AlphaStar мог совершить 50 действий уже в первую секунду или по 15 действий в секунду в течение трёх секунд, что всё-таки заметно выше, чем у профессиональных игроков-людей. При этом AlphaStar мог совершать клики по карте с хирургической точностью, в то время как люди испытывают на себе механические ограничения со стороны устройств ввода, таких как компьютерные мыши[11]. Также AlphaStar мог заниматься микроменеджментом битв, оптимально перенося огонь с одной цели на другую за доли секунды, что нереально для человеческой реакции.

В ответ на критику разработчики из DeepMind ввели более строгие ограничения на скорость, снизив её до 22 действий за 5 секунд. Несмотря на новый лимит, после 44 дней обучения AlphaStar сумел пробиться в элитную группу, получить звание GrandMaster (при игре за каждую из трёх игровых рас) и войти в число 0,15% лучших игроков на серверах Battle.net.

В ноябре 2019 г. AlphaStar со счётом 4 : 1 одолел одного из сильнейших игроков мира — финна Йоону Соталу, известного под ником Serral. Впрочем, Serral играл не на своём оборудовании, что в мире профессионального StarCraft обычно является заметной форой[12]. Несмотря на успехи AlphaStar, пока преждевременно говорить о сверхчеловеческом уровне его игры, но то, что бот играет как минимум на уровне наиболее опытных профессионалов, уже ни у кого не вызывает сомнения.

Обычно разработчики стратегий, подобных StarCraft, внимательно следят за балансом игры и оперативно корректируют характеристики юнитов, рас и других игровых объектов, если вдруг выясняется, что какие-то из них дают игрокам слишком большие преимущества над соперниками. Проблема заключается в том, что баланс основывается именно на человеческих возможностях управления юнитами, а они ограничены не только скоростью отдаваемых команд, но и, например, возможностью точно выделить нужный юнит в свалке сражения, выждать строго определённый промежуток времени между кликами, быстро переключаться между несколькими участками карты и так далее. Потенциально это позволяет машине склонить баланс в свою сторону благодаря её нечеловеческим способностям. Сложно объективно измерить конкретное преимущество, которое получает в результате машина, но игроки не раз отмечали ситуации, когда, по их мнению, AlphaStar выигрывал именно за счёт сверхчеловеческого микроконтроля[13], [14]. Впрочем, у проигравших всегда находятся оправдания, вопрос лишь в том, насколько они убедительны. В целом создатели AlphaStar стремились ограничить возможности машины таким образом, чтобы сделать их максимально приближёнными к человеческим и избежать любых обвинений в нечестной игре. Но, как мне кажется, даже если бы были приняты абсолютно все возможные меры, хор критических голосов вряд ли стал бы существенно тише.

Для обучения AlphaStar используется масштабируемая система с различными типами распределённых «воркеров» (подсистем, отвечающих за выполнение тех или иных повторяющихся подзадач). Одновременное проведение 16 000 матчей обеспечивается за счёт параллельной работы 16 акторов [actor], осуществляющих выполнение [inference] управляющих ботами нейронных сетей. Каждый актор работает на выделенном для него TPU третьей версии (содержащем восемь тензорных ядер). Экземпляры игры выполняются на CPU (в моменте задействуется эквивалент примерно 4200 физических ядер), но при этом запросы к акторам объединяются в пакеты для более эффективного использования TPU. Акторы по сети отправляют последовательности наблюдений, действий и вознаграждений центральному воркеру, использующему 128 ядер TPU для обновления весов нейронной сети. Архитектура сети довольно сложна и включает в себя блоки LSTM (с механизмом внимания), свёрточные и развёрточные слои (в том числе с перепрыгивающими соединениями), а также слои трансформеров (о них мы будем говорить немного позже)[15].

На сегодняшний день AlphaStar является, по всей видимости, наиболее сложной системой игрового ИИ, созданной человеком, и представляет собой настоящий памятник человеческому разуму и вдохновенному труду исследователей, бросивших вызов сложнейшим проблемам современной науки и технологии.

  1. Ontañón S., Synnaeve G., Uriarte A., Richoux F., Churchill D., Preuss M. (2013). A Survey of Real-Time Strategy Game AI Research and Competition in StarCraft / IEEE Transactions on Computational Intelligence and AI in Games, Vol. 5, No. 4, pp. 293—311 // https://doi.org/10.1109/TCIAIG.2013.2286295
  2. Schulman J., Klimov O., Wolski F., Dhariwal P., Radford A. (2017). Proximal Policy Optimization / OpenAI blog, July 20, 2017 // https://openai.com/blog/openai-baselines-ppo/
  3. Chan B., Tang J., Pondé H., Raiman J., Wolski F., Petrov M., Zhang S., Dennison C., Farhi D., Sidor S., Dębiak P., Pachocki J., Brockman G. (2018). OpenAI Five: Our team of five neural networks, OpenAI Five, has started to defeat amateur human teams at Dota 2 / OpenAI blog // https://openai.com/blog/openai-five/
  4. Matiisen T. (2018). The use of Embeddings in OpenAI Five / Computational Neuroscience Lab, Institute of Computer Science, University of Tartu, September 9, 2018 // https://neuro.cs.ut.ee/the-use-of-embeddings-in-openai-five/
  5. Chan B., Tang J., Pondé H., Raiman J., Wolski F., Petrov M., Zhang S., Dennison C., Farhi D., Sidor S., Dębiak P., Pachocki J., Brockman G. (2018). OpenAI Five: Our team of five neural networks, OpenAI Five, has started to defeat amateur human teams at Dota 2 / OpenAI blog // https://openai.com/blog/openai-five/
  6. OpenAI Five Defeats Dota 2 World Champions (2019) / OpenAI blog, April 15, 2019 // https://openai.com/blog/openai-five-defeats-dota-2-world-champions/
  7. Vinyals O., Babuschkin I., Chung J., Mathieu M., Jaderberg M., Czarnecki W., Dudzik A., Huang A., Georgiev P., Powell R., Ewalds T., Horgan D., Kroiss M., Danihelka I., Agapiou J., Oh J., Dalibard V., Choi D., Sifre L., Sulsky Y., Vezhnevets S., Molloy J., Cai T., Budden D., Paine T., Gulcehre C., Wang Z., Pfaff T., Pohlen T., Yogatama D., Cohen J., McKinney K., Smith O., Schaul T., Lillicrap T., Apps C., Kavukcuoglu K., Hassabis D., Silver D. (2019). AlphaStar: Mastering the Real-Time Strategy Game StarCraft II / DeepMind blog, 24 Jan 2019 // https://deepmind.com/blog/alphastar-mastering-real-time-strategy-game-starcraft-ii/
  8. Wünsch D. (2019) / Twitter // https://twitter.com/liquidtlo/status/1088524496246657030
  9. Solimito S. (2019). Is Alphastar really impressive? // https://medium.com/@stefano.solimito/is-alphastar-really-impressive-31ab02bf0882
  10. Kosker S. (2019). Künstliche Intelligenz gegen Mensch: DeepMind AlphaStar // https://stefankosker.com/alphastar-starcraft-deepmind-kuenstliche-intelligenz/#Prominente_Meinungen_zu_AlphaStar
  11. Lee T. B. (2019). An AI crushed two human pros at StarCraft—but it wasn’t a fair fight / Ars Technica // https://arstechnica.com/gaming/2019/01/an-ai-crushed-two-human-pros-at-starcraft-but-it-wasnt-a-fair-fight/
  12. SoulDrivenOlives (2019). DeepMind's PR regarding Alphastar is unbelievably bafflingg / Reddit // https://www.reddit.com/r/MachineLearning/comments/dr2vir/d_deepminds_pr_regarding_alphastar_is/
  13. Lee T. B. (2019). An AI crushed two human pros at StarCraft—but it wasn’t a fair fight. Superhuman speed and precision helped a StarCraft AI defeat two top players / Ars Technica, 1/30/2019 // https://arstechnica.com/gaming/2019/01/an-ai-crushed-two-human-pros-at-starcraft-but-it-wasnt-a-fair-fight/
  14. u/SoulDrivenOlives (2019).[D] An analysis on how AlphaStar's superhuman speed is a band-aid fix for the limitations of imitation learning / Reddit // https://www.reddit.com/r/MachineLearning/comments/ak3v4i/d_an_analysis_on_how_alphastars_superhuman_speed/
  15. Vinyals O., Babuschkin I., Czarnecki W. M., Mathieu M., Dudzik A., Chung J., Choi D. H., Powell R., Ewalds T., Georgiev P., Oh J., Horgan D., Kroiss M., Danihelka I., Huang A., Sifre L., Cai T., Agapiou J. P., Jaderberg M., Vezhnevets A. S., Leblond R., Pohlen T., Dalibard V., Budden D., Sulsky Y., Molloy J., Paine T. L., Gulcehre C., Wang Z., Pfaff T., Wu Y., Ring R., Yogatama D., Wünsch D., McKinney K., Smith O., Schaul T., Lillicrap T., Kavukcuoglu K., Hassabis D., Apps C., Silver D. (2019). Grandmaster level in StarCraft II using multi-agent reinforcement learning / Nature, Vol. 575, pp. 350–354 (2019) // https://doi.org/10.1038/s41586-019-1724-z
Loading comments...