Когда я прочитал новости о победе бота OpenAI в Dota 2 над игроками-людьми на The International, турнире с призовым фондом в $24 млн, я прыгал от восторга. Я большой фанат киберспорта. Хотя я никогда не играл в Dota 2, но регулярно смотрю другие турниры на Twitch, и даже играл полупрофессионально в старшей школе.
Но, что более важно, игры жанра MOBA (многопользовательская онлайновая боевая арена) вроде Dota 2, и стратегии реального времени, как StarCraft 2, рассматриваются пока как лежащие за пределами текущих техник искусственного интеллекта. Эти игры требуют долгосрочного стратегического принятия решений, кооперации с другими игроками, и обладают значительно более сложными состояниями и полями действия в отличие от шахмат, го или Atari, которые «решили» с помощью техник ИИ за последнее десятилетие.
DeepMind работают над StarCraft 2 уже некоторое время и недавно сделали общедоступной исследовательскую среду. Пока никто из исследователей не смог совершить значительных прорывов. Считается, что мы, по крайней мере, в одном-двух годах от победы над хорошими игроками-людьми в StarCraft 2.
Поэтому новость о победе OpenAI и произвела такой шок. Как такое может быть? Неужели я пропустил серьезные прорывы? Я начал внимательнее исследовать то, что делал бот Dota 2, как его тренировали, в какой игровой среде он находился. Я пришел к выводу, что это впечатляющее достижение, но не прорыв в ИИ, в который хотела бы верить пресса. Я бы хотел предложить трезвое объяснение того, что же нового произошло. Существует реальная угроза слишком радужного описания успехов в разработке ИИ, которую легко можно заметить в твитах вроде этих:
OpenAI first ever to defeat world’s best players in competitive eSports. Vastly more complex than traditional board games like chess & Go.
— Elon Musk (@elonmusk) August 12, 2017
Nobody likes being regulated, but everything (cars, planes, food, drugs, etc) that’s a danger to the public is regulated. AI should be too.
— Elon Musk (@elonmusk) August 12, 2017
Стоит отметить, что ажиотаж и неверные суждения не являются ошибкой исследователей из OpenAI. Проект традиционно был очень прямолинеен и явно сообщал об ограничениях в их исследованиях. Уверен, что в этот раз произойдет то же. Пока OpenAI не опубликовал технически деталей решения, поэтому людям не из этой сферы легко прийти к неверным выводам.
Давайте начнем с того, что поймем насколько сложной была проблема, которую бот Dota 2 решал. Как она сравнивается с чем-то вроде AlphaGo?
- 1 на 1 нельзя сравнивать с 5 на 5. Стандартный формат для Dota 2 – противостояние двух команд из пяти человек. Такая игра требует высокоуровневой стратегии, командной коммуникации и координации и обычно занимает около 45 минут. Игры 1 на 1 гораздо более ограничены. Два игрока двигаются по одному пути и пытаются друг друга убить. Такая игра обычно заканчивается в течение нескольких минут (играется до двух смертей – ред.). Для победы требуются механические навыки и краткосрочная тактика и никаких навыков вроде долгосрочного планирования и координации, которые трудно достичь текущим инструментам ИИ. По факту, количество полезные действий, которые вы можете совершить, меньше чем в го. Текущее состояние пространства (представление игрока о происходящем в игре в данный момент), если его представить умным образом, тоже будет меньше чем в го.
- У ботов есть доступ к большему количеству информации. Бот OpenAI был построен (вероятней всего) на базе API игры для ботов. Это дает им доступ к любого рода информации, которой нет у людей. Даже если исследователи OpenAI ограничили доступ к определенным видам данных, у ботов все равно будет более точная информация. К примеру, определенный навык может действовать на противника только на определенном расстоянии. Человек должен посмотреть на экран и оценить текущее расстояние до противника. Это требует практики. Бот же знает точное расстояние и может принять моментальное решение о том, использовать навык или нет. Наличие доступа к точной цифровой информации – серьезное преимущество. Во время игры на The International можно несколько раз наблюдать использование ботом навыков на максимальной дистанции.
- Скорость реакции. Боты могут реагировать моментально, люди – нет. В паре с информационным преимуществом, описанным выше, бот становится еще сильнее. К примеру, как только противник оказывается вне зоны действия навыка, бот может сразу отменить его.
- Обучение на одном конкретном герое. В Dota 2 более 100 персонажей с разными навыками и сильным сторонами. Единственный герой, которым учился играть бот, это Shadow Fiend. Для него характерны моментальные атаки (а не более комплексные навыки действующие определенное время) и важно хорошо рассчитывать точную дистанцию для противника и иметь быструю реакцию – именно то, в чем силен бот.
- Запрограммированные ограничения. Бота не обучали с нуля, когда он не знал об игре ничего. Выбор предметов был запрограммирован, как и некоторые техники вроде блокировки крипов, которые были необходимы для победы. Похоже на то, что обучался он в первую очередь взаимодействию с оппонентом.
Учитывая, что игра 1 на 1 требует больше механических навыков, не удивительно, что бот победил игроков-людей. А принимая во внимание серьезно ограниченную среду, искусственно урезанный набор возможных действий и отсутствие необходимости долгосрочного планирования, я прихожу к выводу, что:
Эта проблема была значительно проще, чем победа над чемпионом в го. Мы не достигали неожиданного прогресса из-за того, что наши алгоритмы ИИ были столь умны. Это происходило потому, что наши исследователи умеют ставить проблему именно так, чтобы обойти ограничения текущих техник.
Обучения у бота заняло около двух недель, что подтверждает мои догадки. AlphaGo потребовалось несколько месяцев высокораспределенного крупномасштабного обучения на GPU-кластерах Google. С тех пор мы добились некоторого прогресса, но не того, который бы сократил вычислительные мощности на порядок.
Но, хватит критики. Вокруг проекта может быть слишком много ажиотажа, но в ней все-таки есть и очень крутые и удивительные вещи. Очевидно, что потребовался большой объем инженерной работы и организации партнерств, чтобы все реализовать.
- Важный шаг для ИИ и киберспорта. Наличие сложной среды вроде Dota 2 и StarCraft 2 для тестирования техник ИИ крайне важно. Если мы убедим киберспортивное сообщество и паблишеров, что можем принести ценность, применяя техники ИИ к играм, мы можем получить много поддержки. Это приведет и к более быстрому прогрессу в области ИИ.
- Частично обозримая среда. Хотя детали того, как исследователи OpenAI работали с API пока не ясны, человек мог видеть только то, что есть на экране. Это означает, что в отличие от го или шахмат, мы находимся в частично обозримой среде (больше похоже на покер). У нас нет доступа ко всей информации о текущем состоянии игры. Такие проблемы значительно сложнее решить. Это активная зона исследования, которая требует прогресса. Но, трудно сказать, насколько частная обозримость в матчах 1 на 1 в Dota 2 играет роль.