• Что можно приготовить из кальмаров: быстро и вкусно

    OpenAI Five из пяти алгоритмов ИИ обыграла пять команд игроков в Dota 2 от любителей до полупрофессионалов, пишут разработчики в блоге компании. По их словам, раньше боты побеждали человека только в дуэлях.

    Значение победы

    Игра в Dota 2 требует расчета большего количества действий, чем игра в шахматы или го. Партия в шахматы заканчивается в среднем за 40 ходов, в го игроки делают до 150 ходов. В Dota 2 нужно принять в среднем 20 тысяч решений до завершения матча, и OpenAI анализирует каждый четвертый фрейм в нем.

    Алгоритм различает 170 тысяч действий для каждого героя, а в течение одного наикратчайшего маневра он оценивает около 1000 возможных будущих решений. В шахматах требуется продумать 35 действий, в го - 250.

    Соперники

    Алгоритм соревновался с командами сотрудников OpenAI и Valve, а также с двумя любительскими и одной полупрофессиональной. Система выиграла в четырех случаях из пяти, еще один матч прошел вничью.

    28 июня 2018 года разработчики проведут показательный матч против самых успешных игроков.

    Навыки

    • OpenAI Five оценивает положение каждого юнита в драке, загоняет противников на свой хайграунд для защиты и зажимает его.
    • Боты готовят ловушки, как только команда людей предоставляет им пространство для маневра.
    • ИИ фокусируется на конкретном сопернике, оценивает его важность для вражеской команды и не жалеет ресурсов для его уничтожения. Алгоритм также жертвует членом своей команды или легкой линией, если это поможет получить ценную награду.
    • Боты преследуют и убивают даже тех противников, которых нет в их зоне видимости.
    • OpenAI Five быстрее переходит к средней стадии игры, поскольку нападает быстрее и эффективнее, чем соперники.
    • Система умеет отклоняться от заданной стратегии, если это нужно для быстрого достижения пика урона и получения преимущества.

    OpenAI Five совершает 150–170 действий в минуту и реагирует в среднем за 80 мс.

    Обучение

    Для каждого бота используется раздельная LSTM-сеть с долгой краткосрочной памятью, которая анализирует окружающую среду и помогает боту избегать и обходить препятствия. Всю систему тренировали с помощью расширенной версии обучающего алгоритма Proximal Policy Optimization . Она работает на 256 графических картах и 128 тысячах процессоров.

    Каждый день алгоритм проживает 180 лет игрового времени. Подобным массивом данных не обладает ни один из профессиональных игроков на планете. Каждый «агент» проводит 80 % игр против своей нынешней версии и 20 % против прошлой. Так разработчики стараются избегать проблем со стратегиями команды.

    Недостатки

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

    Пока OpenAI Five умеет играть только ограниченным количеством героев, в ее арсенале есть Necrophos, Sniper, Viper, Crystal Maiden и Lich. Система не научилась вардить, не знает о Рошане, не пользуется невидимостью или сканом. Ей запрещено покупать Divine Rapier, Bottle, Quelling Blade, Boots of Travel, Tome of Knowledge и Infused Raindrop.

    В апреле 2018 года китайская нейросеть Golaxy в го лучшего игрока в Китае Кэ Цзе. В 2017 году его же победила другая нейросеть - AlphaGo, разработанная Google.

    Команда Pain Gaming победила OpenAI Five. Матч длился 53 минуты и закончился со счетом 45-41 по фрагам в пользу ботов. Запись игры можно . Начало на 7:38:00

    Сегодня вечером, 22 августа, перед началом очередного дня плей-офф The International, в рамках шоу-активностей пройдет первый показательный матч между профессиональными игроками и ботом OpenAI Five. Информация о матчах появилась на официальном сайте Dota 2 в разделе с расписанием игр плей-офф The International. Всего OpenAI сыграет три матча за три дня с про-игроками.

    Знаменательно это событие тем, что год назад бот уже «расправился» Даниилом Ишутиным в противостоянии 1x1 solo mid mirror SF , а из комментаторов и бывших про-игроков.

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

    Итак, старые правила выглядят следующим образом:

    • пул из 18 героев в режиме Random Draft (Axe, Crystal Maiden, Death Prophet, Earthshaker, Gyrocopter, Lich, Lion, Necrophos, Queen of Pain, Razor, Riki, Shadow Fiend, Slark, Sniper, Sven, Tidehunter, Viper, или Witch Doctor);
    • без Divine Rapier, Bottle;
    • без подконтрольных существ и иллюзий;
    • матч с пятью курьерами (ими нельзя скаутить и танковать);
    • без использования скана.

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

    Разработчики заявляли, что благодаря серьезным вычислительным мощностям, огромному количеству записей и возможности запускать обучение в несколько потоков, ежедневно OpenAI имитировал до 180 лет непрерывной игры в Dota 2. Очевидно, что обучаемость этого ИИ на многие порядки ниже, даже чем у не самых «умных» животных, не говоря о собаках или высших приматах, к которым относится и человек.

    Для обучения OpenAI команда использовала собственную разработку под названием Gym (репозиторий на github , официальная документация). Эта «качалка» совместима с любой публичной библиотекой, например TensorFlow или Theano. В обучении нейросетей в рамках Gym используется классическая петля «агент-среда»:

    Разработчики заявляют, что любой желающий может использовать Gym для обучения своей нейросети игре в классические тайтлы для Atari 2600 или другие относительно простые для понимания проекты. Очевидно, что скорость обучения напрямую зависит от объема задействованных в этом ресурсов. В качестве примера разработчики OpenAI научили нейросеть играть в Montezuma’s Revenge .

    Но наибольший для нас интерес представляют второй и четвертый этапы - действие и анализ результата (награды за действие). А в контексте Dota 2 уровень вариативности просто зашкаливает, а изначально оцененные ботом действия как «правильные» на длинной дистанции могут привести к проигрышу.

    Как команда OpenAI учила ИИ играть в Dota 2 с точки зрения оборудования

    К вопросу обучения OpenAI игре в Dota 2 команда разработки подошла более чем серьезно. Полный официальный репорт в блоге проекта вы можете , мы же приведем основные выдержки по технической части и реализации без маркетинга и прочих реверансов.

    Наибольший интерес у комментаторов прошлой публикации вызывала мощность, потребляемая нейросетью OpenAI для обучения. Очевидно, что парой Ryzen дело там обойтись не могло, особенно в контексте имитации 180 лет игры в реальные сутки. При этом бот для Dota 2 - это вам не бот для шутера уровня Quake, что очень четко подметил пользователь в ответ одному из скептиков:

    Мне кажется, вы просто слабо себе представляете размеры тактического простора в доте, потому что слабо знакомы с самой игрой. Нет никаких шансов сделать ботов без привлечения нейросетей, ограничиваясь хоть сколько-нибудь вменяемыми вычислительными ресурсами. Серьезно. Это не Quake, где можно быть полным дубом в плане тактики, компенсируя это нечеловечески быстрыми выстрелами в репу из рельсы. Идеальные в плане реакции и механических скиллов боты, не умеющие играть впятером и не «чувствующие карту», обречены против сколько-нибудь умелых мясных игроков.

    Кроме того, дота - игра с неполной информацией, и это кардинально усложняет задачу. Задача «что делать, когда я вижу врага» намного проще, чем задача «что делать, когда врагов не видно» - не только для машин, но и для людей.


    Это четко понимали и разработчики OpenAI, так что для обучения ботов были задействованы тысячи виртуальных машин одновременно. Конкретно такие цифры приводит официальный блог проекта для обучения бота 1х1 Solo Mid, способного с некоторыми ограничения победить в миде Даниила Ишутина, и для обучения полноценной команды для игры 5х5:


    Это не десятичная запятая. Для обучения OpenAI в режиме 5х5 постоянно используется 128 тысяч процессорных ядер Google Cloud . Но и это еще не вся мякотка. Так как в обучении бота OpenAI используется машинное зрение (о котором мы поговорим чуть позже), в этой чудовищной конфигурации фигурирует еще 256 GPU P100 NVIDIA (Tesla accelerator).

    Согласно официальной брошюре NVIDIA, P100 обладает следующими характеристиками:

    Официальная стоимость одной P100 Tesla 12 GB PCI-E составляет около 5800$, Tesla P100 SXM2 16GB стартует от 9400$. В OpenAI используется как раз старшая модель SXM2. Нужны видеокарты не для отрисовки «графики» на виртуальных машинах, а обработки и вычисления данных, которые постоянно поступают из всех запущенных партий. Для обработки этого потока команде пришлось развернуть целую систему нод, в рамках которой и работают P100 Tesla. Видеокарты обрабатывают и вычисляют полученные данные, чтобы потом выдать усредненный по всем партиям результат и сравнить его с прошлыми показателями OpenAI.

    Подобные мощности позволяют имитировать нейросети около 60 партий в минуту, за каждую из которых нейросеть анализирует около 1,04 млн циклов агент-среда, упоминаемых ранее.

    Как OpenAI видит игру

    Деньги - пыль, если они у вас конечно же есть. Даже самые приблизительные прикидки стоимости одного дня обучения OpenAI вызывают легкий шок, а выделяемого на серверах Google Cloud тепла хватит для отопления небольшого города. Но намного интереснее, как OpenAI «видит» игру.

    Понятно, что графическая отрисовка ботам не нужна, но такие мощности используются не просто так. Бот в своих действиях опирается на стандартный API Valve для ботов , через который нейросеть получает поток данных об окружающем пространстве. API нужен для того, чтобы полученные данные прогонять через однослойную LSTM-сеть из 1024 блоков и получать, как итог, краткосрочные решения, которые согласуются с долгосрочными стратегиями, которыми располагает нейросеть.

    LSTM-сети определяют приоритет задач для бота «здесь и сейчас», а в согласовании с долгосрочной моделью поведения нейросети выбирается наиболее выгодное действие. Например, боты охотно концентрируются на ласт-хите крипов для заработка золота и опыта, что согласуется с моделью получения долгосрочной выгоды в виде предметов и последующего преимущества по игре.

    По информации от разработчиков, все партии происходят с отрисовкой событий на карте с частотой в 30 FPS. Нейросеть OpenAI постоянно анализирует каждый кадр через LSTM, на основе результата которого принимает дальнейшие решения. При этом бот имеет свои приоритеты: самому тщательному анализу подвергаются все возможные взаимодействия с окружением через специально выделенные области «зрения» бота - это квадраты 800х800, поделенные на 64 ячейки 100х100 (за размер взяты значения внутриигровой дальности действия и перемещения, а размер квадрата составляет 8х8). Вот как бот частично «видит» игру на одном конкретном кадре:


    Полный конструктор с возможность переключения действий, оценки размера квадратов и прочими возможностями «покрутить настройки» доступен в официальном блоге разработчиков в разделе Model structure

    А вот так выглядит визуализация работы LSTM-сети в плане прогнозирования игровых событий в режиме реального времени:


    Кроме LSTM и оценки ситуации «здесь и сейчас» бот OpenAI постоянно пользуется сеткой «прогнозирования» и расстановки собственных приоритетов. Вот так это выглядит для людей:

    Зеленый квадрат - область наивысшего приоритета и текущего действия бота (атака, перемещение и так далее), Светло-зеленый квадрат обладает меньшим приоритетом, но бот в любой момент может переключиться на этот сектор. Еще два серых квадрата - зоны потенциальной активности, если ничего не изменится.

    Посмотреть, как бот «видит» игру и принимает решения на основе этих четырех зон можно увидеть на видеозаписи ниже:


    Стоит отметить, что области приоритетов бота не всегда находятся рядом с моделью персонажа. При перетяжке по карте все четыре квадрата легко смещаются за несколько экранов от текущего положения бота, то есть OpenAI анализирует одновременно все игровое пространство на доступность и целесообразность каких-либо действий, а не только один экран.

    OpenAI постоянно играет сам с собой. При этом 80% ботов обучаются, а 20% используют уже отработанные тактики и стратегии. Такой подход позволяет нейросети учиться на собственных ошибках, находя уязвимые паттерны в собственно поведении и одновременно закреплять удачные модели поведения.

    Уже завтра. Люди-профессионалы против машины

    Вместо итога стоит вернуться к теме завтрашнего противостояния между профессиональными игроками и OpenAI.

    Пока неизвестны детали, однако с уверенностью можно сказать, что нейросети придется несладко. В отличие от прошлых своих противников, OpenAI столкнется с лучшими из лучших, а возможность маневрирования и командного взаимодействия в рамках шоу-матча позволит людям полностью раскрыть свой потенциал. Формат Solo Mid 1x1, конечно, крайне зрелищный, однако не раскрывает всей сути игры и крайне нетерпим к микро-ошибкам, которые люди зачастую допускают.

    Весь вопрос в том, насколько серьезно к этому противостоянию отнесутся профессионалы. При появлении какой-то дополнительной информации публикация будет обновляться.

    Будущее уже здесь. OpenAI поделилась новыми подробностями о своей работе над ботами, играющими в . И если год назад на The International 7 компания представила ИИ, который выносил лучших игроков планеты 1 на 1, то теперь она готова показать целую команду, способную соревноваться с профессиональными киберспортсменами. В блоге создатели OpenAI Five рассказали о том, что уже умеет пятерка компьютерных игроков, как она этому научилась и почему это намного сложнее, чем заставить ботов играть в шахматы или го.

    Что уже умеют OpenAI Five

    Боты умеют драться . OpenAI Five оценивает положение каждого юнита в драке, мгновенно инициирует и не дает противнику реализовать свой потенциал. Боты могут загонять людей на свой хайграунд для эффективной защиты и рассчитывать использование способностей, чтобы зажать человека в конкретной области. А еще они могут убить вас, даже если не видят.

    Они предсказывают ценность действий и байтят . После убийства одного или двух героев они понимают, что можно искать следующую цель и даже ловят «на живца».

    OpenAI Five ищет соперников в лесу . От них сложно укрыться.

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

    Они умеют фокусироваться на нужном сопернике . Боты способны по достоинству оценить важность вражеского героя и не пожалеть на него несколько ценных способностей, если это будет необходимо для победы. Например, в видео они использовали ультимейты для убийства Sniper, благодаря чему победили.

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

    Боты могут жертвовать собой . OpenAI Five способна оценить ценность героев и действий, чтобы отдать сопернику на растерзание одного героя ради более ценной награды. Например, в ролике саппорт пожертвовал собой, отводя человека от его базы и позволяя своим тиммейтам-ботам забрать последний барак.

    OpenAI знает, когда можно пожертвовать одной из линий . Например, они неоднократно отдавали сопернику свою собственную легкую линию, чтобы захватить контроль над сэйф-лейном противника, заставляя оппонентов драться в невыгодном положении. Уильям Blitz Ли рассказал, что он узнал об этой детали стратегии только через 8 лет на профессиональной сцене.

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

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

    Правда, пока умеют играть только ограниченным количеством героев . Пока что в их арсенале есть Necrophos, Sniper, Viper, Crystal Maiden и Lich. Они играют матчи против зеркального пика. Потому что не все сразу.

    OpenAI Five использует не все возможности . Пока что боты не умеют вардить, не знают о Рошане и не пользуются невидимостью или сканом. Им запрещено покупать Divine Rapier, Bottle, Quelling Blade, Boots of Travel, Tome of Knowledge, Infused Raindrop.

    Как устроен OpenAI и как ИИ проходил обучение

    180 лет - именно столько игр проводит по времени OpenAI Five каждый день . Таким массивом данных не обладает ни один из профессиональных игроков на планете. В основе OpenAI Five лежит расширенная версия Proximal Policy Optimization (). Вся эта система работает на 256 графических картах и 128 тыс. процессоров.

    Для каждого героя (бота) используется раздельная LSTM-сеть . LSTM (long short-term memory) - долгая краткосрочная память. Она является разновидностью архитектуры рекуррентных нейронных сетей (РНС). Проще говоря, создатели OpenAI Five используют модель обучения, в которой нейроны обмениваются информацией между собой. В результате обмена не только новых, но и предыдущих состояний в сети создается «память». Чтобы лучше понять устройство LSTM-сетей, советуем прочитать вот этот текст на GitHub .

    Каждая LSTM-сеть анализирует окружающую среду . То есть ландшафт, постройки, героев и многое другое. Однако не так давно боты не реагировали на некоторые способности. Например, они не обращали внимания на «шрапнель» Sniper, потому что «не видели» ее. Теперь они научились избегать и обходить ее.

    OpenAI Five накапливает опыт следующим образом : каждый «агент» проводит 80% игр против своей нынешней версии и 20% против прошлой. Так разработчики постарались избежать проблем со стратегиями команды. Если в первом матче герои бесцельно шастали по карте, то после нескольких часов обучения у них возникали такие понятия, как стадия лайнинга, фарм и борьба за мид. Через несколько дней они использовали базовые стратегии игроков: попробовать украсть баунти руну у соперника, дойти до первой вышки, чтобы пофармить, и перемещаться по карте, чтобы получить преимущество на стадии лайнинга. Постепенно ИИ учился более сложным стратегиям, как пуш всей командой.

    В распоряжении OpenAI Five было пять типов людей-соперников.

    1. Команда сотрудников OpenAI (в среднем 2,5k MMR)
    2. Лучшие зрители, которые следили за матчем сотрудников OpenAI (4-6k MMR игроки, которые не выступали в команде. Среди них англоязычный комментатор и бывший про-игрок Blitz)
    3. Команда сотрудников Valve (2-4k MMR)
    4. Любительская команда (4.2k MMR)
    5. Полупрофессиональная команда (5,5k MMR)

    15 мая OpenAI была сравнима с первым соперником, выиграв одну карту и проиграв вторую. 6 июня улучшенная версия ботов без проблем обыграла 1-3 команды. Затем создатели OpenAI попробовали провести тренировочные матчи с действующими командами. Они ожидали поражения, но выиграли две из трех игр в каждой серии.

    28 июня разработчики проведут показательный матч против топовых игроков. Игру можно будет посмотреть на Twitch.

    Сюрпризы, на которые наткнулись создатели в процессе разработки

    Боты учились медленнее, когда наградой была победа или поражение, а не убийство крипов, как в первоначальной версии для режима 1 на 1.

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

    Научиться блокировать крипов можно и без чужой помощи. Один из разработчиков оставил ботов играть 2 на 2, а сам уехал в отпуск. Он хотел посмотреть, как продолжительная тренировка повысит их мастерство. В итоге боты научились самостоятельно блокировать крипов.

    Это намного сложнее, чем шахматы или го

    Предполагает расчет огромного количества действий. Если партия в шахматы обычно заканчивается в среднем за 40 ходов (в го - до 150 ходов), то в нужно принять в среднем 20 тыс. решений. OpenAI анализирует каждый четвертый фрейм в игре.

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

    Система OpenAI дискретизирует 170 тыс. различных действий для каждого героя, а в течение одного тика она оценивает около 1000 возможных действий. В шахматах требуется оценить 35 действий, а в го - 250.

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

    OpenAI Five быстрее человека

    Во-первых, OpenAi имеет мгновенный доступ ко всей доступной информации на карте. Пока человеку вручную нужно проверить количество здоровья и маны, компьютер уже получил и проанализировал эту информацию.

    В минуту OpenAI совершает по 150-170 действий (и это еще не его максимум). Чтобы идеально попасть в тайминги, игроку-человеку нужна тренировка, а машина эта уже умеет и считает нормой. В среднем OpenAI Five реагирует за 80 мс, что быстрее человеческой реакции.

    Надеемся, что в конечном итоге эти роботы не поймут, что самый верный способ победить человека в доту - это не пустить его за компьютер.

    Разработчики продвинутого искусственного интеллекта, рассказали об эволюции своего бота с течением времени. «За месяц наша система развилась от состояния, в котором она едва могла соперничать с высокоранговыми игроками, до такого уровня, где с ней уже не могли конкурировать сильнейшие профессиональные игроки планеты », - начинает повествование сотрудник OpenAI.

    Хронология событий:

    Разработчики пояснили, что Pajkatt удалось победить противника благодаря покупке Magic Wand - бот до встречи с ним никогда не имел дела с этим предметом.

    Создатели ИИ описали некоторые тактики, которые могли запутать бота и привести к его поражению. OpenAI организовали небольшой LAN-турнир неподалеку от The International 2017 , участникам которого предлагалось любым способом одолеть ИИ. Было проведено свыше тысячи матчей и в результате выделено 3 тактики, при встрече с которыми бот мог потерпеть неудачу.

    • Отвод крипов. .
    • Покупка Orb of Venom и Wind lace. Такая сборка давала большое преимущество в скорости, за счет которого можно было быстро сделать первое убийство.
    • Прокачка Raze на первом уровне. Некоторым игрокам с высоким показателем MMR удавалось убить бота тремя-пятью точными Raze за короткий промежуток времени. Тактика требует высокого уровня мастерства.

    Следующий этап в развитии проекта - создание команды, состоящей из пяти ботов. OpenAI осознают комплексность проблемы: «1v1 - штука сложная, но 5v5 - это целый океан сложностей. Мы понимаем, что нам придется еще больше раздвинуть границы возможностей ИИ, чтобы решить эту задачу ». Создатели бота уже начали трудиться над улучшением своего искусственного интеллекта: сотрудники OpenAI скачали почти шесть миллионов реплеев с серверов Valve и сейчас занимаются их изучением с целью выявления шаблонов поведения.

    Следите за новостями у нас на и в нашей группе