Сенсация или нет? Некоторые мысли о боте OpenAI для Dota 2 [перевод]

Блог Денни Бритца, исследователя проекта Google Brain в области искусственного интеллекта.

Оригинал статьи: http://www.wildml.com/2017/08/hype-or-not-some-perspective-on-openais-dota-2-bot/
Когда я прочитал новость о боте Dota 2 от OpenAI, который победил игроков-людей на The International, киберспортивном турнире с призовым фондом более, чем 24 миллиона долларов, я аж подпрыгнул от волнения. Во-первых, я большой фанат киберспорта. Я никогда не играл в Dota 2, но я регулярно смотрю другие киберспортивные соревнования на Twitch и даже играл в полупрофессиональной команде в старшей школе. Но, что более важно, "мультиплеерная онлайн боевая арена" (MOBA) - игры, как DotA, и стратегии в режиме реального времени (RTS) как Starcraft 2, выглядят, как способы раскрытия возможностей технологий искусственного интеллекта. Эти игры требуют принятия долгосрочных стратегических рещений, кооперацию в мультиплеере, и значительно более сложное пространственное ориентирование, чем в шахматах, Го, или Атари, которые были "разгаданы" технологиями ИИ на протяжении предыдущих десятилетий. DeepMind работает на Starcraft 2 уже некоторое время, и лишь недавно выпустили исследовательскую среду. До сих пор никто из исследователей не смог совершить серьёзного прорыва. Считается, что мы в 1-2 годах от того, чтобы начать побеждать хороших игроков-людей в Starcraft 2.
Вот почему новости об OpenAI явились неким шоком. Как это возможно? Произошёл какой-то прорыв, о котором я не в курсе? Когда я начал смотреть то, что делает этот бот в Dota 2, как он тренируется, и какая там игровая среда, я пришёл к выводу, что это впечатляющее достижение, но не прорыв ИИ, как вас уверяет пресса. Вот, собственно, об этом и пост. Хочу предложить трезвое объяснение, что там действительно нового. Реальная опасность от перехайпленного прогресса Искуственного Интеллекта отлично раскрывается в следующих твитах:
Илон Маск: "OpenAI первым победил лучших игроков мира в соревновательных киберспортивных играх. Гораздо более сложные, чем традиционные настольные игры, как шахматы и Го."
"Никто не любит контроль, но всё (машины, самолёты, еда, лекарства и т.д.) опасно для общества, но регулируется. Как должен регулироваться ИИ."
Хотел бы начать с того, что ничего особо сенсационного или в корне неверного исследователи OpenAI не заявили. OpenAI традиционно был очень простым и понятным в плане ограничений вклада конкретного исследователя. Уверен, что в этом случае то же самое. OpenAI ещё не публиковали технических подробностей их решения, поэтому легче перейти к ошибочным заблуждениям людей, которые "не в теме".
Посмотрим сложность задачи, которую решает бот для DotA 2 на самом деле. Как она соотносится с чем-то вроде AlphaGo?

  • 1-на-1 несоизмерим с 5-на-5. В обычной DotA 2 команда из 5 человек играет против другой команды из 5 человек. Эти игры требуют высокоуровневой стратегии, коммуникации в команде и координации, и обычно занимают около 45 минут. Игры 1-на-1 сильно ограничены. Два игрока идут по одной линии и стараются убить друг друга. Обычно это занимает несколько минут. Победить оппонента в 1-на-1 требует механического скилла и краткосрочной тактики, но там нет чего-либо вроде долгосрочного планирования или координации, что является своеобразным вызовом для технологий ИИ в современном виде. Кстати, число полезных действий, которые можно использовать, даже меньше, чем в игре в Го. Эффективное состояние пространства (представление игрока о том, что конкретно происходит в игре), если рассматривать с точки зрения "мозгов", также меньше, чем в Го.
  • Боты имеют доступ к большей информации. Бот OpenAI (скорее всего) разработан на базе API бота игры, который даёт доступ ко всей информации, к которой люди доступа не имеют. Даже если исследователи OpenAI имеют ограниченный доступ к каким-то видам информации, то у бота всё-равно больше информации, чем у людей. Например, способность может нанести урон врагу в определённом радиусе, человек смотрит на экран и рассчитывает примерное расстояние до оппонента. Это требует практики. Бот знает точное расстояние и может принять немедленное решение о том, использовать способность или нет. Иметь доступ ко всем видам численной информации - это большое преимущество. По сути, во время игры вы можете наблюдать, как бот применяет способности на максимальной дистанции несколько раз.
  • Время реакции. Боты реагируют мгновенно, чего не могут люди. Учитывая информационное преимущество, всё это - очередное большое преимущество. Например, когда оппонент покинет радиус способности, бот сразу же её отменит. 
  • Обучение игре на одном специфическом герое. Там есть 100 разных героев с разными встроенными способностями и сильными сторонами. Единственный персонаж, на котором играет бот, это Shadow Fiend, обычно наносит немедленные атаки (в то время, как использование более сложных способностей требует некоторого времени) и преимущество в том, что бот знает точные дистанции и имеет быстрое время реакции - в этом бот хорош.
  • Жёсткие ограничения. Бот не тренирован игре "с нуля". Подбор предметов жёстко прописан, как и некоторые техники, как стоппинг крипов, которые нужны для победы. Выходит, что бота учат в основном взаимодействию с противником. Учитывая, что игра 1-на-1 - это игра механического скилла, неудивительно, что бот обыгрывает игроков-людей. И, учитывая жёстко ограниченное пространство, искуственно ограниченный набор возможных действий, и ничего для долгосрочных планирований или координации, я пришёл к выводу, что задачи значительно легче, чем победа над человеком в игре Го. Мы не сделали существенного прогресса в алгоритмах ИИ потому, что наши алгоритмы такие умные - это работает, потому что наши исследователи умно ставят задачу и ставят её решение в условиях конкретных ограничений нынешних технологий. Время тренировки для бота, как они сказали, около двух недель, напрашивается тот же вывод. AlphaGo потребовалось несколько месяцев широкомасштабной тренировки на вычислительных кластерах от Google. Мы немного продвинулись в плане прогресса с тех пор, но нет ничего такого, что увеличивало бы вычислительные способности на порядок.

Ладно, довольно критики. Работа, может, немного перехайплена прессой, но в этом есть и пара действительно крутых и удивительных вещей. И, понятно, что большое количество сложных инженерных работ и построение партнёрства смогли помочь случиться этому событию.

  • Обучение полностью через самостоятельную игру. Боту не нужны никаких данные для тренировок. Он не учится у людей, которые что-либо показывают. Он стартует абсолютно рандомно и играет по сути против себя же. В этой технике нет ничего нового, но удивительно (по крайней мере, для меня) что бот учится у людей тому, что они уже используют, как изложено тут https://news.ycombinator.com/item?id=14996448 и тут https://www.reddit.com/r/MachineLearning/comments/6t58ks/n_openai_bot_beat_best_dota_2_players_in_1v1_at/dli3zpp/ . Не знаю достаточно о Dota 2, чтобы это осуждать, но думаю, что это очень круто. Может, бот научится другим техникам, о которых люди даже не подозревают. Это всё то же самое, что и в AplhaGo, где люди начинают изучение с его интуитивных ходов и улучшают свой навык игры. (Обновление: это подтверждено https://news.ycombinator.com/item?id=15001521 , некоторые техники жёстко запрограммированны, поэтому непонятно, чему именно он учится).
  • Серьёзный шаг для ИИ + киберспорта. Имея соревновательные площадки, как Dota 2 и Starcraft 2, тестировать новые технологии ИИ очень важно. Если мы сможем убедить сообщество кибеспорта и разработчиков, что мы можем внести вклад с применением технологий ИИ в играх, можем ожидать много обратной поддержки, и это сможет дать толчок в развитии прогресса ИИ.
  • Частично наблюдаемая среда. В то время, как детали взаимодействия исследователей OpenAI и API непонятны, человек видит только то, что есть на экране и имеет ограниченный обзор. Это означает, что в играх, как Го, или шахматы, или Атари (и во многом, как в Покере) мы находимся в частично наблюдаемой среде - у нас нет доступа ко всей информации о текущем состоянии игры. Некоторые проблемы иногда трудно решать, и активная среда исследования сильно нуждается в прогрессе. Не ясно и то, насколько важна частично наблюдаемая среда в 1-на-1 матче по Dota - там не нужно слишком многого для выработки стратегии.

Да, и неплохо было бы почитать технический отчёт OpenAI о том, что использовалось при его построении.