OpenAI Five — система искусственного интеллекта, разработанная исследовательской организацией OpenAI для игры в Dota 2 в формате командных матчей пять на пять. Система использовала обучение с подкреплением и самообучение посредством игры против собственных предыдущих версий; её агенты обучались без использования данных о действиях людей. OpenAI представила OpenAI Five в июне 2018 года как развитие своего более раннего проекта по созданию агента для одиночных матчей Dota 2.
13 апреля 2019 года OpenAI Five победила со счётом 2:0 команду OG, победителя The International 2018. Это стало первым случаем, когда система искусственного интеллекта победила действующих чемпионов мира по киберспортивной дисциплине.
История
Предшествующий проект Работа OpenAI над агентами для Dota 2 стала публичной в 2017 году. Первоначальная система была предназначена не для полноценной командной игры, а для матчей один на один на центральной линии, в которых оба участника управляли героем Shadow Fiend. Агент обучался преимущественно посредством игры против собственных копий, не используя записи матчей профессиональных игроков. В августе 2017 года на турнире The International 2017 он победил нескольких профессиональных игроков, включая Артура «Arteezy» Бабаева и Сумаила «SumaiL» Хассана, а во время публичной демонстрации выиграл серию до двух побед у Данила «Dendi» Ишутина со счётом 2:0.
Возможности первого агента были существенно ограничены по сравнению с полной версией Dota 2: он играл только одним героем и только в формате 1×1. После демонстрации OpenAI объявила следующей целью создание системы, способной участвовать в полноценных матчах пять на пять и взаимодействовать с другими агентами как единая команда.
OpenAI Five и The International 2018 25 июня 2018 года OpenAI представила OpenAI Five — систему из пяти агентов, способных совместно играть одной командой. К этому времени система уже побеждала команды игроков-любителей и полупрофессионалов.
5 августа 2018 года OpenAI провела публичный тест OpenAI Five перед выступлением на The International. Система выиграла первые две игры серии против команды из пяти высокорейтинговых игроков, четверо из которых ранее выступали профессионально; третью игру выиграла команда людей после того, как состав героев OpenAI Five был выбран зрителями с целью создать для системы неблагоприятные условия.
На The International 2018 в Ванкувере OpenAI Five провела два показательных матча против профессиональных игроков. В первом система встретилась с бразильской командой paiN Gaming и проиграла после примерно 50 минут игры. Во втором матче ей противостояла сборная известных китайских профессиональных игроков; OpenAI Five также потерпела поражение.
Победа над OG и OpenAI Five Arena
Следующая крупная публичная демонстрация состоялась 13 апреля 2019 года в Сан-Франциско. В серии до двух побед OpenAI Five встретилась с OG, победителем The International 2018. Система выиграла обе игры и завершила серию со счётом 2:0.
После матча с OG OpenAI организовала онлайн-эксперимент OpenAI Five Arena, позволив пользователям Dota 2 играть с системой или против неё через Интернет. С 18 по 21 апреля 2019 года OpenAI Five участвовала в десятках тысяч игр с пользователями. В соревновательном режиме система выиграла 7215 из 7257 матчей, то есть 99,4 %, проиграв 42 игры.
В декабре 2019 года исследователи OpenAI опубликовали работу Dota 2 with Large Scale Deep Reinforcement Learning, в которой обобщили устройство системы, процесс её обучения и результаты экспериментов.
Архитектура и обучение
Архитектура
OpenAI Five получала сведения о состоянии игры не из изображения на экране, а в виде структурированных данных через API ботов Dota 2, предоставленный Valve. Наблюдения включали доступные игроку сведения о героях, других юнитах, зданиях, предметах и состоянии карты. При этом система учитывала туман войны и не получала скрытых от команды данных противника. В ранней версии 2018 года состояние игры представлялось приблизительно 20 тысячами числовых значений; решение о следующем действии принималось каждый четвёртый игровой кадр.
Каждым из пяти героев управляла отдельная копия одной и той же нейронной сети с общими параметрами, но собственным скрытым состоянием. Для того чтобы агенты могли выполнять разные действия, входные данные содержали информацию о том, каким именно героем управляет конкретная копия сети. Итоговая архитектура, описанная исследователями в 2019 году, использовала однослойную сеть LSTM с 4096 блоками. Полученное LSTM-представление передавалось функции ценности и нескольким выходным слоям, отвечавшим за выбор типа действия, цели и других его параметров; на LSTM приходилось около 84 % параметров модели. В опубликованном в июне 2018 года описании OpenAI Five использовалась LSTM с 1024 блоками.
Прямого канала связи между пятью агентами в системе не существовало. Координация возникала в процессе совместного обучения. Разработчики использовали параметр, названный ими «командным духом» (), который определял соотношение между индивидуальным вознаграждением каждого агента и средним вознаграждением всей команды. В ходе обучения его значение постепенно повышалось, увеличивая долю командного вознаграждения по отношению к индивидуальному.
Обучение с подкреплением и self-play OpenAI Five обучалась с помощью масштабированной версии алгоритма обучения с подкреплением (PPO). Обучение начиналось со случайно инициализированных параметров; система не использовала записи матчей людей для имитации их действий и не применяла поиск по дереву вариантов, характерный для ряда других игровых систем искусственного интеллекта. Вместо этого агенты совершенствовали свою стратегию посредством игры против собственных копий ().
Чтобы уменьшить вероятность так называемого «коллапса стратегии», при котором новая версия агента могла забывать способы противодействия более старым стратегиям, около 80 % тренировочных матчей проводились против текущей версии OpenAI Five, а оставшиеся 20 % — против сохранённых предыдущих версий системы. Вознаграждение агента учитывало не только исход матча, но и промежуточные показатели игрового состояния, в том числе изменение общего количества ресурсов, убийства, смерти и другие события.
Одной из задач разработчиков было обучение принятию решений с последствиями, проявлявшимися через несколько минут. В ходе обучения коэффициент дисконтирования будущего вознаграждения увеличивался: в описанной в 2018 году версии условный период полураспада значения будущего вознаграждения вырос приблизительно с 46 секунд до пяти минут. По мнению разработчиков, это позволяло агентам предпочитать долгосрочные стратегические преимущества немедленной краткосрочной выгоде.
Вычислительная инфраструктура Для обучения OpenAI разработала распределённую систему Rapid, в которой большое число процессов одновременно запускало экземпляры Dota 2 и собирало игровой опыт, после чего вычислительные узлы выполняли обновление параметров нейронной сети посредством синхронного градиентного спуска. Летом 2018 года обучение выполнялось с использованием 256 графических процессоров и около 128 тысяч процессорных ядер; система накапливала за сутки опыт, эквивалентный приблизительно 180 годам игры.
В итоговой системе обучение продолжалось в течение десяти месяцев. Распределённая инфраструктура обрабатывала пакеты примерно из двух миллионов игровых кадров каждые две секунды, а к апрелю 2019 года OpenAI Five накопила около 45 тысяч лет моделируемого игрового опыта.
Из-за обновлений Dota 2 и изменений архитектуры OpenAI Five разработчики создали набор методов переноса уже обученных параметров на изменённую модель, получивший название surgery («хирургия»). Эти методы позволяли продолжать обучение с минимальной потерей достигнутого качества после изменения входных данных, структуры модели или правил игры. За десять месяцев обучения подобные операции проводились в среднем примерно раз в две недели.
Особенности игры
Условия и ограничения Условия, в которых играла OpenAI Five, менялись по мере разработки системы. В первой публично описанной версии 2018 года обе команды были ограничены одинаковым набором из пяти героев — Necrophos, Sniper, Viper, Crystal Maiden и Lich. Были отключены установка вардов, сражение с Рошаном, невидимость, призываемые существа и иллюзии, сканирование карты, а также использование ряда предметов. Кроме того, каждый из пяти героев имел собственного неуязвимого курьера, которого запрещалось использовать для разведки или блокирования урона.
К августу 2018 года разработчики добавили поддержку вардов и Рошана, отказались от зеркального выбора героев и расширили доступный набор до 18 персонажей. Перед выступлением на The International 2018 пять неуязвимых курьеров были заменены одним обычным командным курьером. По данным OpenAI, наличие отдельного курьера у каждого героя ранее способствовало формированию характерной агрессивной стратегии: агенты постоянно получали восстанавливающие здоровье и ману предметы и могли продолжать давление на соперника, не возвращаясь на базу. Разработчики отказались от этого правила после критики со стороны игрового сообщества, поскольку оно существенно отличалось от обычной Dota 2.
В окончательной версии системы 2019 года поддерживались 17 из 117 существовавших на тот момент героев. Вторым существенным ограничением оставалось отсутствие механик, позволявших одному игроку временно управлять несколькими юнитами: OpenAI Five не использовала Illusion Rune, Helm of the Dominator, Manta Style и Necronomicon. Разработчики объясняли это дополнительной технической сложностью реализации управления несколькими юнитами. Набор героев был сокращён с 18 до 17 после существенного изменения способностей Lich в версии Dota 2 7.20; эксперименты с наборами до 25 героев проводились, однако за оставшееся до финального матча время эти версии не достигли уровня игры основной системы.
Не все игровые решения принимались непосредственно нейронной сетью. В окончательной версии заданной вручную логикой по-прежнему определялись порядок изучения способностей и покупки части предметов, управление командным курьером и некоторые операции с инвентарём. По словам исследователей, эти элементы сохранялись главным образом вследствие исторического развития проекта; управление всё большим числом игровых действий постепенно передавалось обучаемой модели.
Скорость реакции Чтобы преимущество OpenAI Five не сводилось к недостижимой для человека скорости управления, разработчики искусственно ограничивали частоту её реакции. В ранних экспериментах 2018 года задержка составляла около 80 мс, однако перед OpenAI Five Benchmark её увеличили до 200 мс. В окончательной системе агент мог реагировать на появление новой информации через 167—267 мс, в среднем примерно через 217 мс. Для сравнения, в научной работе разработчики приводили типичное время простой зрительной реакции человека около 250 мс, отмечая, что реальная реакция во время партии в Dota 2, вероятно, медленнее. Ars Technica также отмечала, что скорость реакции системы была намеренно ограничена, чтобы её результат не объяснялся исключительно сверхчеловеческими рефлексами.
Стиль игры В процессе обучения OpenAI Five самостоятельно освоила ряд приёмов, характерных для игры людей: распределение по линиям, получение золота и опыта, перемещение героев между линиями, нападения на изолированных противников и совместные атаки всей команды. Уже в 2018 году система предпочитала сравнительно рано объединять героев и атаковать башни, стремясь перевести преимущество в контроль карты прежде, чем противник успевал подготовить ответные действия. В матчах OpenAI Five Benchmark Ars Technica характеризовала её игру как ориентированную на выполнение командных целей, давление на башни и поддержание высокого темпа, благодаря которому соперники не успевали накопить необходимые уровни и предметы.