Шрифт:
Интервал:
Закладка:
Гром среди ясного неба грянул 24 января 2019 г., когда в блоге DeepMind появилась статья[1985] под заголовком «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 опубликовал твит[1986], в котором сказал: «Поверьте, очень трудно играть против такого противника, как AlphaStar, который играет совсем не так, как человек, и с которым у вас нет предыдущего опыта. AlphaStar невероятно впечатляющий и, по моему мнению, небывалый игровой ИИ».
Одна идея, найденная AlphaStar (перепроизводство зондов для добычи ресурсов), оказалась новой для игрового сообщества и была тут же принята игроками на вооружение (например, MaNa применил её уже в четвёртой игре против AlphaStar)[1987], [1988].
Версия бота, одолевшая 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 мог совершать клики по карте с хирургической точностью, в то время как люди испытывают на себе механические ограничения со стороны устройств ввода, таких как компьютерные мыши[1989]. Также AlphaStar мог заниматься микроменеджментом битв, оптимально перенося огонь с одной цели на другую за доли секунды, что нереально для человеческой реакции.
В ответ на критику разработчики из DeepMind ввели более строгие ограничения на скорость, снизив её до 22 действий за 5 секунд. Несмотря на новый лимит, после 44 дней обучения AlphaStar сумел пробиться в элитную группу, получить звание GrandMaster (при игре за каждую из трёх игровых рас) и войти в число 0,15% лучших игроков на серверах Battle.net.
В ноябре 2019 г. AlphaStar со счётом 4 : 1 одолел одного из сильнейших игроков мира — финна Йоону Соталу, известного под ником Serral. Впрочем, Serral играл не на своём оборудовании, что в мире профессионального StarCraft обычно является заметной форой[1990]. Несмотря на успехи AlphaStar, пока преждевременно говорить о сверхчеловеческом уровне его игры, но то, что бот играет как минимум на уровне наиболее опытных профессионалов, уже ни у кого не вызывает сомнения.
Обычно разработчики стратегий, подобных StarCraft, внимательно следят за балансом игры и оперативно корректируют характеристики юнитов, рас и других игровых объектов, если вдруг выясняется, что какие-то из них дают игрокам слишком большие преимущества над соперниками. Проблема заключается в том, что баланс основывается именно на человеческих возможностях управления юнитами, а они ограничены не только скоростью отдаваемых команд, но и, например, возможностью точно выделить нужный юнит в свалке сражения, выждать строго определённый промежуток времени между кликами, быстро переключаться между несколькими участками карты и так далее. Потенциально это позволяет машине склонить баланс в свою сторону благодаря её нечеловеческим способностям. Сложно объективно измерить конкретное преимущество, которое получает в результате машина, но игроки не раз отмечали ситуации, когда, по их мнению, AlphaStar выигрывал именно за счёт сверхчеловеческого микроконтроля[1991], [1992]. Впрочем, у проигравших всегда находятся оправдания, вопрос лишь в том, насколько они убедительны. В целом создатели AlphaStar стремились ограничить возможности машины таким образом, чтобы сделать их максимально приближёнными к человеческим и избежать любых обвинений в нечестной игре. Но, как мне кажется, даже если бы были приняты абсолютно все возможные меры, хор критических голосов вряд ли стал бы существенно тише.
Для обучения AlphaStar используется масштабируемая система с различными типами распределённых «воркеров» (подсистем, отвечающих за выполнение тех или иных повторяющихся подзадач). Одновременное проведение 16 000 матчей обеспечивается за счёт параллельной работы 16 акторов [actor], осуществляющих выполнение [inference] управляющих ботами нейронных сетей. Каждый актор работает на выделенном для него TPU третьей версии (содержащем восемь тензорных ядер). Экземпляры игры выполняются на CPU (в моменте задействуется эквивалент примерно 4200 физических ядер), но при этом запросы к акторам объединяются в пакеты для более эффективного использования TPU. Акторы по сети отправляют последовательности