/ Модель

Характеристики

Лицензия
MIT
Библиотека
flax
Опубликована
4 июл 2026

ludus-boom-league

Обучение с подкреплением

Набор Flax-агентов PPO, обученных через self-play для выбора действий в соревновательной игре Boom.

0скачиваний за 30 дней0лайковвеса обновлены4 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

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

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Ludus Boom — набор PPO-агентов для игры Boom на платформе Ludus, разработанный для соревнования и обучения через игру с самим собой. В репозитории представлены действующий чемпион лиги и пять поколений агентов, сохранённых в формате Flax; продвижение поколений зависело от статистически значимой победы над предыдущим чемпионом.

Архитектура ActorCritic обрабатывает наблюдение игрового поля 32×18 двумя свёрточными слоями, объединяет его с векторным наблюдением и передаёт в общий слой размером 256. Модель выдаёт оценки для 2305 действий с маскированием недопустимых вариантов и отдельную оценку состояния. Агенты обучались методом PPO с рандомизацией колод, self-play и игрой против выборки прошлых поколений.

Модель предназначена для выбора ходов в Boom, а не для диалога или генерации текста. Для использования нужны игровое окружение Ludus/Boom, JAX и код архитектуры из репозитория ludus. Лицензия — MIT. В README приведены результаты сравнений поколений, но они не гарантируют силу агента против произвольных стратегий; опубликованные метрики охватывают ограниченный набор соперников.

Сценарии применения

  • выбор хода агентом в Boom
  • создание игрового бота для Ludus
  • оценка стратегии в детерминированной симуляции Boom
  • сравнение поколений игровых агентов через self-play

Ограничения

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

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Ludus Boom — self-play league agents

PPO agents for Boom, the real-time lane-battler of the Ludus competition platform (a deterministic pure-JAX engine: int32 fixed-point state, bit-identical replays, ~5M env-steps/s on one RTX 3090).

Files

filewhat
champion.msgpackcurrent league champion (serialized Flax params)
gen_0..4.msgpackthe founding lineage — each promoted only by beating the previous champion in seat-swapped mirrored pairs with a Wilson 95% lower bound > 0.5
standings.jsonfull lineage with per-generation gate results and anchor win-rates
league.jsonlappend-only league event log (training, gates, promotions)

Architecture

ActorCritic from baselines/ppo_selfplay.py in the repo: two conv layers (24, 48, stride 2) over the 32×18 board observation + a dense branch for the vector observation, merged into a 256-unit trunk with a 2305-way masked action head (noop + card-slot × tile) and a value head.

Training protocol

Generational self-play league with CI-gated promotion. Each generation trains PPO (deck-randomized both seats — mixed decks fixed an earlier deck-specialist failure) and must beat the reigning champion with statistical significance to be promoted. Later generations add an elixir-overflow penalty (passivity bleeds reward) and opponent-pool training (half the updates vs frozen sampled past generations).

Founding lineage (win-rate vs previous champion; anchors vs scripted rule_v0):

genvs championvs rule_v0
0founder43.0%
185.2% (CI ≥ 80.3)47.7%
271.9% (CI ≥ 66.1)64.8%
364.1% (CI ≥ 58.0)69.5%
4promoted~78%

Usage

from flax.serialization import from_bytes
from baselines.ppo_selfplay import ActorCritic   # github.com/SuuTTT/ludus
import jax, jax.numpy as jnp
from boom.engine import H, W, OBS_C, OBS_VEC

net = ActorCritic()
tmpl = net.init(jax.random.PRNGKey(0),
                jnp.zeros((1, H, W, OBS_C), jnp.float32),
                jnp.zeros((1, OBS_VEC), jnp.float32))
params = from_bytes(tmpl, open("champion.msgpack", "rb").read())

Or upload any of these files straight to a running Ludus platform's /submit page and fight them in the browser.

Boom is an original game: mechanics-inspired by the lane-battler genre with original names and art; numeric stats are unprotectable facts.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · flax

Нельзя запустить

JAX/Flax-модели рантайм не загружает.

Ревизия весов
bb16d91

0 моделей