/ Модель

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

Библиотека
pytorch
Опубликована
14 июл 2026

pkm-cabt-ppo

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

Набор PPO-агентов с самообучением для игры в Pokémon TCG в движке cabt, с весами, специализированными под конкретные колоды.

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

Бенчмарки

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

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

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

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

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

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

TomatoCream/pkm-cabt-ppo — набор небольших policy/value-сетей для игры в Pokémon Trading Card Game в движке cabt из kaggle_environments. Модели разработаны с использованием PyTorch и обучены методом PPO с самообучением; для агента 00_basic также описана экспертная итерация с целями от IS-MCTS и их дистилляцией в сеть.

Сеть использует указательную политику: кодирует состояние поля и каждый доступный легальный вариант действия, затем оценивает варианты относительно состояния и выбирает действие из списка переменной длины. Составные решения выполняются последовательным выбором, включая специальный вариант STOP. Размер сети — около 0,5 млн параметров; в репозитории есть контрольные точки и экспорт policy.npz для инференса на NumPy без PyTorch.

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

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

  • запуск игрового агента Pokémon TCG в движке cabt
  • выбор легальных ходов в пошаговой партии Pokémon TCG
  • эксперименты с PPO и самообучением в карточной игре
  • инференс игрового агента через NumPy в ограниченной среде Kaggle

Ограничения

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

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

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

Открыть на Hugging Face

pkm-cabt-ppo — self-play agents for the Pokémon TCG (cabt engine)

Policy/value networks trained by PPO self-play to play the Pokémon Trading Card Game inside the kaggle_environments cabt engine.

Code: https://github.com/jibai-devs/pkm

Model

A pointer-style policy/value network. The engine hands the agent a variable-length list of legal options each decision, so the network cannot use a fixed action head:

  • The board state is embedded into a vector h.
  • Each option is embedded into o_i and scored against h (plus a summary of the options already picked this decision), giving a softmax over the variable-length option list.
  • Multi-select decisions decompose into sequential picks. A learned STOP row is appended to the option list, becomes legal once minCount picks are made, and ends the sequence when chosen. A decision's log-prob is the sum of its picks'.

Sizes: card embedding 32, attack embedding 16, option-type embedding 8, option encoding 64, hidden 128. Roughly 0.5M parameters — small, because the hard part here is the action space, not capacity.

Files

FileWhat it is
policy.npznumpy export of the 02_dragapult net — torch-free inference
02_dragapult/ppo_latest.ptPPO checkpoint, 10,000 iterations (default agent)
01_psychic/ppo_latest.ptPPO checkpoint, 1,000 iterations
00_basic/ppo_latest.ptPPO checkpoint, 200 iterations
00_basic/exit_latest.ptexpert-iteration (IS-MCTS distillation) checkpoint
*/deck.csvthe 60-card deck each agent was trained on
*/ppo_train.csvper-iteration training metrics

policy.npz exists because the Kaggle submission bundle has a ~197 MiB cap and torch does not fit. pkm/rl/numpy_policy.py replays the same forward pass in numpy, so the shipped agent runs on numpy alone.

The weights are deck-specific. Card identity is embedded, and each agent self-played only against its own deck — load a checkpoint with the wrong deck and it will play badly. The matching deck.csv is in each directory.

Results

Evaluation win rate against a random-legal-move agent, at the final iteration:

AgentIterationsEval win rateGames
02_dragapult10,000100%20
01_psychic1,00095%20
00_basic200~80% (as documented in-repo)—

These are self-play agents measured against random, on a 20-game eval, against their own deck. That is a low bar and a small sample: read them as "training is working," not as a strength rating. No head-to-head vs. IS-MCTS or vs. human play is reported here.

Usage

from huggingface_hub import hf_hub_download

npz  = hf_hub_download("TomatoCream/pkm-cabt-ppo", "policy.npz")
ckpt = hf_hub_download("TomatoCream/pkm-cabt-ppo", "02_dragapult/ppo_latest.pt")
deck = hf_hub_download("TomatoCream/pkm-cabt-ppo", "02_dragapult/deck.csv")

Load the torch checkpoint with the network from the repo:

import torch
from pkm.rl.model import PolicyValueNet

model = PolicyValueNet()
model.load_state_dict(torch.load(ckpt, map_location="cpu", weights_only=True))
model.eval()

Or run torch-free, the way the Kaggle submission does, via pkm/rl/numpy_policy.py against policy.npz.

Training

PPO self-play with checkpoint-pool opponent sampling and potential-based reward shaping on the prize differential. 00_basic additionally has an expert-iteration checkpoint: IS-MCTS with determinization (for imperfect information) generates targets, which are distilled back into the network.

just train 200 16 deck/01_psychic.csv   # PPO self-play
just exit-train                         # expert iteration
just export                             # -> policy.npz

Limitations

  • Deck-specific, as above; no multi-deck or opponent-pool generalization yet.
  • Evaluated only against a random agent on a small sample.
  • Tied to the cabt engine's observation schema; the encoder assumes it.

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

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

GPU в ailist

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

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

RL-агенты не запускаются как сервис инференса.

Ревизия весов
2310d0b

0 моделей