10M-модель против 75M: урок Faynt для ИИ-агентов

10M-модель против 75M: урок Faynt для ИИ-агентов

Представьте, что младшая модель обыгрывает старшую в два с лишним раза чаще. Не в лабораторном тесте на скорость, а в живом поединке, где соперник отвечает за 16 миллисекунд. Именно это произошло в новой работе о Faynt, семействе Transformer-политик для Super Smash Bros. Melee.

Модель на 10 миллионов параметров выиграла 240 из 244 зеркальных матчей против четырнадцати релизов, включая всех пять специалистов по персонажам. Версия на 75 миллионов параметров при том же числе противников выиграла только 149 из 244. Меньшая сеть оказалась заметно сильнее большей, и разбор причин этого переворота полезен каждому, кто обучает собственных агентов.

Что такое Faynt и что она делает

Faynt это набор Transformer-политик, которые управляют персонажем в Super Smash Bros. Melee, файтинге 2001 года с жёсткими требованиями к точности управления. Каждая политика выдаёт последовательность команд геймпада по кадрам, опираясь на структурированное состояние игры. Финальные версии на 10M и 75M параметров обучены на примерно 840 тысячах ранжированных человеческих реплеев.

Ключевая особенность: одна и та же сеть управляет всеми 26 персонажами. Не отдельная модель на каждого бойца, а единый чекпоинт, который переключается между персонажами без переобучения. Это отличает Faynt от специалистов вроде MIMIC, где на каждого персонажа тренируется своя сеть.

Политика предсказывает два числа на каждый кадр: комбинацию кнопок и положения стиков. Кнопочная часть кодируется в 728 категорий, основная рукоятка стика в 85 позиций. Архитектура использует причинный Transformer с grouped-query attention, RMSNorm, ротационными позиционными эмбеддингами и SwiGLU-слоями.

Почему игра в файтинг это честный тест

Smash Bros. Melee требовательна к управлению так, как мало какие среды для обучения с подкреплением. Здесь важны точная работа стиком, контроль отмены анимаций и реакция на действия соперника за доли секунды. Технический уровень про-игроков настолько высок, что ещё ранние работы показали: RL-агенты уровня Slippi-AI способны конкурировать с профессионалами.

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

Три этапа обучения: от имитации к подкреплению

Разработка Faynt шла в три последовательных стадии, и это важно для понимания результата. Сначала было предобучение методом поведенческого клонирования на 839 942 реплеях, что дало 17,84 миллиарда валидных переходов. Затем последовало обучение с учителем по курикулуму, где отбор реплеев смещался в сторону побед игроков высокого ранга. Последним этапом стало обучение с подкреплением через PPO.

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

Отбор данных в постобучении опирается на два независимых сигнала: ранг игрока и исход матча. Мастера выигрывают 61% игр против diamond-игроков и 66,2% против platinum. Эти метки извлекаются прямо из реплеев, а не размечаются вручную.

Что показал анализ масштабирования

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

Экстраполяция подобранного закона масштабирования дала вычислительно оптимальные размеры от 1,76 до 4,21 миллиона параметров для протестированных бюджетов. Показатель роста числа параметров от бюджета составил 0,631, то есть вычислительные оптимумы лежат заметно ниже даже десяти миллионов параметров.

Когда пришло время выбирать финальные конфигурации, решающим фактором стал бюджет. На сто долларов оптимальной оказалась 10M на A100 с горизонтом в 74,88 миллиарда целей, на двести долларов 75M на RTX PRO 6000 с 24,98 миллиарда целей. Дополнительная деталь: оптимизатор Muon снизил loss на 1,65% относительно AdamW, и этот выбор применялся на всех стадиях.

Как младшая модель обошла старшую

Здесь начинается самое интересное. До обучения с подкреплением картина выглядела логично: 75M выигрывала 69 из 152 игр, а 10M проигрывала чаще. Но после обучения с учителем расстановка сломалась. Обученная 10M выигрывала уже 69,7% игр, тогда как предобученная 75M только 45,4%.

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

Исследователи специально построили взвешенную метрику: 90% веса на мастеров-победителей и 10% на diamond-победителей. Эта метрика выстроила модели в том же порядке, что и винрейт. Обычный NLL такой порядок не давал.

Как менялась игра по стадиям

Постобучение изменило поведение обеих моделей измеримо. Получаемый урон на минуту упал со 106,4 до 95,8 у старшей версии, а наносимый вырос со 122,1 до 151,4. Доля жизней, потерянных при уроне 50% и ниже, у 10M снизилась с 20,9% до 13,5%.

Самое показательное изменение касается устойчивости к раннему отставанию. До постобучения младшая модель выигрывала лишь 7,3% партий, в которых теряла первую жизнь. После курикулума и дистилляции винрейт в такой позиции вырос до 41,3%. Это уже не точность предсказания следующего кадра, а игровая стратегия целиком.

Цифры финального бенчмарка

После обучения с подкреплением разрыв стал ещё заметнее. На поддерживаемых персонажах соперников 10M выиграла 240 из 244 зеркальных матчей, это 98,4%. 75M при том же условии взяла 149 из 244.

Против одного и того же специалиста с 21-кадровой задержкой 75M выигрывала 2 из 12 игр, а 10M все 12 из 12. Против специалиста на Falco разница тоже резкая: 1 из 12 против 11 из 12. В отдельном тесте против приватного zero-delay чекпоинта Slippi-AI модель на 10M выиграла все 68 игр, из них 61 без потери единой жизни.

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

Урок о том, когда размер модели не решает

Faynt показывает границу, которую многие команды переходят интуитивно. Увеличение параметров помогает на этапе имитации: 75M стабильно даёт более низкий loss предсказания контроллера, 0,74146 против 0,76896 у десятимиллионной на лучших чекпоинтах. Больше параметров значит лучшее запоминание закономерностей в человеческих реплеях.

Но как только начинается обучение на исход игры, преимущество размера размывается. 10M получает больше RL-опыта: 1 950 шагов против 980 у 75M, с другими настройками KL-штрафов и горизонтов. И этого хватает, чтобы компенсировать четырёхкратную разницу в параметрах.

Авторы объясняют это тем, что RL ограничен зеркальными матчами Fox. То есть политика осваивает глубокую игровую стратегию на одном персонаже, а затем переносит её на остальных 25 через общие веса. Размер сети здесь не узкое место: узкое место в количестве и качестве опыта подкрепления.

Тонкости, которые легко упустить

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

Первое: сравнение честное по времени реакции. Соперники Slippi-AI сохраняют задержку в 18, 21 или 24 кадра, а Faynt работает с нулевой добавленной задержкой. Авторы честно признают: они не изолировали вклад задержки и частоты решений в итоговый результат. Это делает победу ещё более убедительной, но оставляет вопрос об открытом.

Второе: политика укладывается в бюджет кадра. Игра идёт на 60 кадрах в секунду, значит на решение отводится 16,67 мс. Оптимизированный цикл на GPU T4 тратит в среднем 5,2 мс для 10M и 8,7 мс для 75M. Без оптимизации стандартный путь PyTorch не укладывается ни в один кадр ни на одной протестированной GPU. Ускорение дала запись шага в CUDA-граф и отказ от синхронизации хоста с устройством.

Третье: авторы наблюдали нестабильность обучения. Градиентные нормы взлетали с медианы около 0,07 до 5–6 с выбросами выше 30, и финальный 75M-прогон пришлось остановить на 449 миллионах целей. Стабильность модели оказалась не менее важным критерием отбора чекпоинта, чем минимальный loss.

Почему это важно за пределами игр

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

Главный вывод прост: метрика самого обучения не равна метрике результата. Модель, которая точнее воспроизводит средний человеческий пример, может проигрывать модели, которая учится на лучших примерах и получает больше опыта собственных решений. Общий loss предсказания стоит рядом с метрикой игровой силы, а не вместо неё.

Второй вывод касается отбора данных. Курикулум по рангу и исходу матча дал модели то, чего не давало простое увеличение. 90% усилий на мастеров-победителей сдвинули политику заметнее, чем лишние миллионы параметров.

Часто задаваемые вопросы

Почему 10M-модель выиграла у 75M, если у неё хуже loss?

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

Что такое Faynt в двух словах?

Faynt это семейство Transformer-политик для Super Smash Bros. Melee. Одна сеть управляет всеми 26 персонажами, а обучение идёт в три этапа: имитация человеческих реплеев, обучение с учителем на победах мастеров и обучение с подкреплением через PPO.

Нужно ли теперь обучать только маленькие модели?

Нет. Размер помогал на этапе имитации, где 75M давала более низкий loss. Преимущество исчезло там, где решающим стал опыт подкрепления и качество обучающих примеров. Вывод не «маленькие лучше», а «сравнивайте размер по конечной метрике, а не по промежуточной».

Итог

Faynt переворачивает привычную логику масштабирования на примере файтинга. Модель на 10M параметров обыграла 75M-версию, четырнадцать релизов Slippi-AI и приватный zero-delay чекпоинт, выиграв 68 из 68 игр. Причина не в волшебстве меньшего размера, а в трёх вещах: строгом отборе победных примеров, большом объёме опыта подкрепления и оптимальном бюджете вычислений.

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

← Все записи