Competitive self-play: как ИИ учится, играя против себя
Обучение через игру с собственными копиями вывело агентов на сверхчеловеческий уровень в го, шахматах и Dota 2. Разбираем, как работает self-play, где он ломается и сколько это стоит.

В 2017 году AlphaGo Zero обошла версию, победившую Ли Седоля, со счётом 100:0, не увидев ни одной партии живого человека. Она тренировалась, играя сама с собой — начав со случайных ходов и за трое суток дойдя до уровня, недостижимого для людей. Тот же приём — competitive self-play, обучение через соревнование агента с собственными копиями — стоит за победами OpenAI Five в Dota 2 и за AlphaStar в StarCraft II. Идея звучит просто: не нужен учитель, если у тебя есть равный по силе противник, которым можешь стать ты сам. На практике это способ, который легко ломается и стоит миллионы долларов на вычисления.
Что такое self-play и почему он работает
Классическое обучение с подкреплением упирается в среду с фиксированной сложностью: агент осваивает её и перестаёт улучшаться. В соревновательной игре сложность создаёт сам противник. Если противник — это вы вчерашний, то по мере вашего роста растёт и он. Получается движущаяся мишень: планка поднимается ровно настолько, чтобы обучение не останавливалось.
Это то, что исследователи называют автоматической программой обучения (curriculum): агенту не задают вручную последовательность задач от простого к сложному. Она возникает сама из динамики «догони и перегони». Ранние копии играют плохо, и победа над ними лёгкая. Поздние — почти непобедимы, и каждый выигранный процент даётся кровью.
Главный трюк self-play не в том, что агент играет против себя. А в том, что противник всегда примерно равен по силе — и это удерживает обучение в узкой зоне, где оно максимально эффективно.
Сигнал вознаграждения предельно скупой
В большинстве соревновательных сред награда бинарна: победа или поражение в конце эпизода. Это удобно — не нужно вручную придумывать, за что хвалить агента в середине партии. И это же главная боль: между первым ходом и результатом могут пройти сотни или тысячи действий, и понять, какое из них было решающим, тяжело. Задача распределения вознаграждения (credit assignment) в self-play стоит особенно остро.
Три ловушки, в которые проваливается наивный self-play
Если просто заставить агента играть против своей последней версии, всё разваливается по нескольким сценариям.
- Забывание. Агент осваивает стратегию, побеждающую текущего противника, но «забывает», как противостоять более старым тактикам. Через сотни итераций он проигрывает своей же версии месячной давности.
- Циклы. Стратегия A бьёт B, B бьёт C, C бьёт A — как в камень-ножницы-бумага. Агент бесконечно ходит по кругу, не становясь сильнее в среднем.
- Коллапс разнообразия. Обе играющие копии сходятся к одной узкой линии игры и перестают исследовать альтернативы. Против неожиданного соперника такой агент беспомощен.
Против забывания и циклов работает пул прошлых версий. Вместо игры только с последней копией агент сражается со случайной выборкой из архива своих предыдущих состояний. AlphaStar использовала лигу агентов с разными ролями — были «эксплойтеры», чья единственная задача — находить слабости у основного агента и заставлять его их закрывать.
Сколько это стоит
Self-play прожорлив. Число сыгранных партий измеряется миллионами, а иногда сотнями миллионов, и каждая требует прогона модели. Ниже — порядок величин по публично раскрытым проектам. Точные цифры компании раскрывали не всегда, поэтому воспринимайте их как ориентир масштаба, а не как прайс-лист.
| Проект | Игра | Что заявлялось |
|---|---|---|
| AlphaGo Zero | Го | Обучение с нуля до сверхчеловеческого уровня за несколько суток на кластере TPU |
| AlphaZero | Го, шахматы, сёги | Один алгоритм для трёх игр, обучение измерялось часами на большом парке TPU |
| OpenAI Five | Dota 2 | Игра шла эквивалентом сотен лет матчей в сутки за счёт массового параллелизма |
| AlphaStar | StarCraft II | Лига агентов, обучавшихся параллельно недели напролёт |
Вывод простой: competitive self-play даёт результаты, недостижимые другими методами, но входной билет — это доступ к вычислениям, которого нет у большинства лабораторий и почти ни у кого из индивидуальных исследователей. Именно поэтому громкие результаты вышли из DeepMind и OpenAI, а не из университетских групп.
Где self-play выходит за пределы игр
Соревновательная схема применима везде, где есть две стороны с противоположными интересами. Генеративно-состязательные сети (GAN) — по сути тоже self-play: генератор и дискриминатор соревнуются, и оба улучшаются от давления друг на друга. В робототехнике два агента могут спорить за один ресурс, вырабатывая устойчивые к неожиданностям навыки. В безопасности ИИ обсуждают схему «дебатов», где две модели аргументируют противоположные позиции, а человек оценивает, кто убедительнее.
Но переносить успех из игр на открытые задачи трудно. Игра даёт чёткие правила, честный счёт и симулятор, в котором можно провести миллион партий за копейки. В реальном мире симулятора часто нет, а награда неоднозначна. Там, где нельзя дёшево сыграть миллион раз, магия self-play быстро тускнеет.
Как выглядит цикл обучения по шагам
- Инициализировать агента случайными или слабыми параметрами.
- Сыграть партии текущей версии против выборки из пула прошлых версий.
- По результатам обновить параметры — усилить действия, которые вели к победе.
- Периодически добавлять снимок текущего агента в пул противников.
- Замерять силу против фиксированного набора оппонентов, чтобы отследить реальный прогресс, а не иллюзию от игры против самого себя.
- Повторять, пока прирост силы не остановится.
Пятый шаг критичен. Внутренний счёт «я против себя» всегда болтается около 50 на 50 — это не говорит ни о чём. Прогресс виден только на внешнем, независимом бенчмарке.
Competitive self-play — не универсальный ключ, а точный инструмент для узкого класса задач: соревновательных, симулируемых, с ясным исходом. Там он даёт результаты, которых не даёт ничто другое. За его пределами каждая из трёх ловушек — забывание, циклы, коллапс — ждёт того, кто решит, что достаточно просто натравить модель на её собственную копию.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: DeepMind — AlphaGo Zero and AlphaZero research, OpenAI — OpenAI Five
Частые вопросы
Чем self-play отличается от обычного обучения с подкреплением?
Почему агент играет против старых своих версий, а не только против последней?
Можно ли применить self-play вне игр?
Нужны ли для self-play огромные вычислительные ресурсы?
Как понять, что агент реально стал сильнее, а не просто гоняет мяч сам с собой?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.