Вечером 24 января состоялась презентация новой версии искусственного интеллекта Deepmind — AlphaStar. На BlizzCon Deepmind уже провели небольшую презентацию, где рассказали основной концепт, как работает и учится ИИ; теперь же можно было посмотреть на него в действии: в спаррингах с профессиональными игроками.

В чём сложность

В шахматы, которые мы часто воспринимаем как самую сложную спортивную игру, компьютер обыграл человека уже очень давно: Deep Blue, который разработали IBM, смог победить Гарри Каспарова ещё в XX веке. Однако в шахматах полностью открытое игровое поле и конечное количество возможностей, поэтому современные компьютеры без проблем справляются с просчётом достаточной глубины, чтобы учесть все возможные варианты и отсечь проигрышные. Так что шахматы сложны для нас, потому что уже их количество опций представляет сложность для человека, который хочет просчитать их точно, а не сыграть отчасти наугад — для компьютера же это решаемая и решённая задача.

Сложнее дела обстояли с го: количество возможных ходов в этой игре в 20 раз выше, поэтому просчитать партию целиком невероятно сложно, по крайней мере за соизмеримое с обычным игровым ходом время. Поэтому, чтобы компьютер мог играть на уровне сильных игроков, ему необходимо было научиться симулировать мыслительный процесс и действовать на основе допущений по сценариям, которые, согласно опыту, чаще приводят к победе, чем к поражению. Эту задачу как раз и смогли решить Deepmind и их AlphaGo, которые в 2016 году победили корейского профессионального игрока: для этого потребовалась машина на базе 1920 процессоров и 280 графических процессоров.



Так что же StarCraft? Дело в том, что если в го существует 361 вариант действий, которые можно совершить в свой ход, то StarCraft мало того, что проходит в режиме реального времени — но и вариантов здесь несоизмеримо больше: порядка 1026. Кроме того, игра проходит в условиях неполной информации: ИИ не может знать, что делает соперник.

Как работает AlphaStar

Само собой, об этом рассказали в упрощённой для казуальной аудитории форме, но суть в том, что ИИ должен был сформировать опыт — так же, как это делает игрок. Когда мы начинали играть в StarCraft II, мы не знали, что работает, а что нет — мы могли только бесконечно пробовать разные приёмы и юнитов сравнивать их эффективность. Так же действовали и Deepmind.

В качестве стартовой базе AlphaGo «скормили» огромную базу реплеев игроков самого разного уровня: от 3500 MMR до профессионалов. Затем, получив базовую вводную информацию, ИИ отправился тренироваться: он сравнивал две стратегии, выявлял, какая из них сильнее, а затем старался подобрать новую, которая её, в свою очередь, отконтрит. Таким образом появлялось множество итераций искусственного интеллекта, которые Deepmind называет «агентами», например, агент-фотонщик, агент-любитель прокси, агент с войдреями и так далее.

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

Уровень игры AlphaStar

Внутренее поле, в котором тренировалось множество агентов, Deepmind называют Alpha-лигой, что вполне логично: соревнуясь между собой, агенты, предпочитающие разные стратегии, набирали MMR по ладдерной системе SC2, так что их можно было сравнить между собой и с работниками компании, которые сами играют в StarCraft II. Но действительно ли ИИ, у которого 7 000 MMR, сопоставим с топовыми игроками? И как сравнить, если компьютер может идеально микрить каждым юнитом?



Чтобы решить вторую задачу, AlphaStar получил искусственные ограничения: его APM держался в пределах 300, кроме того, он мог переключать экран не чаще 30 секунд за раз. Фактически первая версия AlphaStar, которую представли на презентации, постоянно видела всю карту, но действия могла совершать только внутри одного экрана, который не могла переключать слишком часто. Кроме того, время реакции на действие было ненулевым: компьютер реагировал примерно за 350 миллисекунд, что сопоставимо с реакцией человека.



Первую же задачу — сравнить ИИ с про-игроком — решили просто: пригласили про-игрока. Первый опыт был пристрелочным: в качестве спарринг-партнёра взяли TLO, а вот обучать AlphaStar для начала решили только матчапу PvP (и только на карте Catalyst и на версии BlizzCon-а). Так что это был не вполне прогеймер: у TLO за протоссов что-то около 5500. Впрочем, и это, конечно, немало.

Перед этим матчем AlphaStar тренировался внутри своей лиги в течение недели. Поскольку матчи приходили в ускоренном формате, как объяснили разработчики, в реальном времени это было бы 200 лет тренировок. Так чему же смог научиться искусственный интеллект за 200 лет PvP на одной карте?

Перед тем, как перейти к результатам — вот полезные ссылки:

Матч AlphaStar против TLO

Стоит отметить, что TLO по-зерговски кликал значительно больше своего компьютерного оппонента — за 500; однако уже в первой игре AlphaStar смог продавить его сталкерами с одной базы. В другой игре компьютер построил масс-кэрриров, в третьей — масс-дизрапторов — и в итоге взял пять игр из пяти. В его игре чувствовались недоработки — так, он не ставил стенку и неидеально отбивался от адептов и иногда недоконтраливал сталкеров, но сами по себе стратегии выглядели необычно: AlphaStar работал вне меты людей, играя в своей внутренней лиге, и иногда его решения смотрелись дико — но, на удивление, работали.

Матч AlphaStar против MaNa

После победы над TLO осталась некая недосказанность: всё-таки TLO — не протосс, и не так уж удивительно, что он оказался не готов к каким-то слишком необычным поворотам матчапа. Да, он прогеймер со стажем 8 лет, но AlphaStar тренировался в 12,5 раз дольше, и только в этом матчапе. По словам TLO, он чувствовал, что без проблем обыграл бы того же агента в серии или просто в рематче, но, естественно, в каждом сете ему противостоял новый агент, который мог сделать что угодно.

Поэтому Deepmind повысили ставки и позвали настоящего протосса — да, не такого мастера матчапа, как Classic, Stats или sOs, но всё же одного из лучших — MaNa. Между матчами прошла неделя, которую ИИ провёл в AlphaStar — добавив, таким образом, ещё 200 лет к своему и так внушительному опыту PvP.

Надо сказать, что прогресс между матчами чуствовался. Главное, что бросилось в глаза — что AlphaStar стал намного больше полагаться на сталкеров и на безошибочное микро: он, в лучших традициях жанра MOBA, наказывал соперника за малейший неверный шаг вперёд или неаккуратное отступление, забирая юнитов чётко фокусированным огнём. Так, первую игру MaNa проиграл пушу сталкеров: ИИ бесстрашно поднялся на рампу, отфокусил сентри, окружил иммортала и не испугался контратаки оракулом, безошибочно рассчитав шансы. Как сказал MaNa, соперник-человек, по его опыту, никогда не пошёл бы в такую атаку.

Затем MaNa сыграл надёжнее, выйдя в имморталов, однако AlphaStar умудрился раксонтролить 8 имморталов масс-сталкерами, управляя раздельными частями армии и в итоге напав с трёх сторон. Ещё в одной — без шансов перемикрил соперника фениксами. Интересно, что он даже поставил второй старгейт, когда MaNa контрил его сталкерами и архонами, и действительно успешно отбился. Итог, как и с TLO — 0:5; и хотя можно повздыхать о лучших протоссах мира, факт остаётся фактом: AlphaStar действительно отлично играет в StarCraft.

Матч AlphaStar с ограничением считываемой информации

Единственный микро-осадок — что стратегия с масс-сталкерами и блинк-микро в нескольких местах всё же слишком нечеловеческая — невозможная для человека, а значит, результат может быть не совсем релевантным. Ведь Deemind вовсе не пытаются победить человека — они пытаются научить искусственный интеллект принимать решения в условиях огромного количество вариантов и ограниченной информации, а StarCraft вообще и матч против человека в частности — лишь средство, чтобы измерить результаты.


График внутреннего MMR обычного агента (красный) и агента с ограничением камеры (синий)

Поэтому AlphaStar ограничили ещё сильнее: теперь он мог считывать информацию не со всей открытой карты (как бы удалив экран на максимум), а только в пределах одного экрана, как обычный игрок. В качестве компенсации он получил дополнительное время на тренировку. Матч MaNa с этим агентом прошёл в прямом эфире — правда, поскольку специальная версия StarCraft II, в которой работает AlphaStar, не поддерживает обсерверов, посмотреть её можно было только от лица MaNa.



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

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

Особенности игры AlphaStar

ИИ не прекращает строить рабов на мейне, если собирается выходить на вторую базу

Обычные игроки обычно останавливаются на 22 (16 на минералах), однако ИИ свободно строил до 24 и иногда даже выше, чтобы потом сразу перевести их на натурал — даже если сама вторая база не очень ранняя. Интересно, что в последнем матче MaNa решил перенять этот приём — возможно, если его станут использовать и другие игроки, он получит название в честь AlphaStar?

Если ИИ играет в дизрапторов, он не прекращает их строить

Обычные игроки обычно делают 5-6 дизрапторов — у ИИ, который играл с TLO, их было около 15. При этом он иногда ошибался и наносил урон по своим войскам — но в основном страдали всё же войска соперника.

ИИ не боится рамп и форсфилдов

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

ИИ предпочитает убить первым оракулом двух сентрей, а не рабочих

То ли его так впечатлили форсфилды, то ли дело в разведке. Хотя обсервера над натуралом в финальной игре он игнорировал долго.

ИИ строит по 4-5 обсерверов и летает ими вместе

То ли в Alpha League все фокусят обсерверов и абузят дарков, то ли AlphaStar — фанат F2.

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

Выводы и дальнейшие планы

Без сомнения, результаты, достигнутые искусственным интеллектом всего за пару недель (реального времени) обучения — потрясающие. Не стоит забывать, что сейчас его искусственно ограничивают, чтобы максимально честно сверить его способность принимать решения (а только это важно) с человеческими. И с одной стороны нельзя не восхититься тому, как это делаем мы внутри всего одной черепной коробки (а не виртуальных серверов гугл с множеством видеокарт), с другой — нет сомнений, что можно ограничения снять, и тогда победить AlphaStar будет невозможно. Такой ИИ сможет выполнять самые разные задачи, особенно такие, где ошибки вызывает именно человеческий фактор: усталость, дефицит внимания, личные отвлевающие факторы и так далее.

При этом Deepmind, в отличие от IBM после их победы над Каспаровым, не считают свою миссию в StarCraft II выполненной и будут обучать AlphaStar игре за другие расы. Как сказал один из разработчиков: в конце концов это даст нам ответ на извечный вопрос: какая раса в игре самая сильная. Впрочем, чтобы проводить зрелищные матчи с реальными игроками, наверное, нужно всё же играть серию с одним и тем же агентом — либо и прогеймеры должны иметь возможность менять игрока, причём так, чтобы ИИ не знал, кто будет играть дальше.

Не уверен, правда, что существующая архитектура позволяет сделать именно одного агента разноплановым игроком, а главное — что это соответствует целям Deepmind. Ведь StarCraft — лишь среда для развития самообучающихся систем и хороший пиар-трамплин, а вовсе не самоцель этой работы. И всё же приятно, что именно StarCraft наряду с шахматами и го, похоже, войдёт в историю развития искусственного интеллекта как самый сложный игровой челлендж, который только можно было принять.

Оригинальный отчёт от Deepmind (на английском)