Downloads · 30 days
3
6% of all-time downloads
itxtx/yahtzee-rl-checkpoints
yahtzee-rl-checkpoints is a reinforcement learning model from itxtx. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. It is set up for flax. The card lists the license as mit.
This repository hosts trained checkpoints for YahtzeeRL, a JAX/Flax/RLax self-play Yahtzee agent using Stochastic MuZero-style MCTS.
Downloads · 30 days
3
6% of all-time downloads
All-time downloads
53
Public
Repo size
29.2 MB
Likes
0
Public
Click a slice to open those files.
Other30.2 MB · 100%
From the Hugging Face model README
This repository hosts trained checkpoints for YahtzeeRL, a JAX/Flax/RLax self-play Yahtzee agent using Stochastic MuZero-style MCTS.
The current published checkpoint is a competitive two-player, head-to-head agent trained on simplified standard Yahtzee scoring: 13 categories plus upper bonus, without Joker rules or extra Yahtzee bonuses.
The best competitive checkpoint is:
win_loss_margin_32simsrun4/step_011800
This checkpoint should be treated as the default competitive agent. A later
checkpoint, step_012800, regressed in direct greedy-policy comparison.
Install the Hugging Face CLI, then download the checkpoint folder into the project's expected local checkpoint path:
hf download itxtx/yahtzee-rl-checkpoints \
--local-dir checkpoints/win_loss_margin_32simsrun4
The checkpoint directory includes the run-level config.json plus Orbax
checkpoint folders such as step_011800/. The YahtzeeRL loader needs both the
step folder and the adjacent config.json.
Clone and install the code:
git clone https://github.com/itxtx/yahtzeeRL.git
cd yahtzeeRL
uv sync
Evaluate the checkpoint against the hand-written heuristic baseline:
uv run python -m yahtzee_rl.evaluate \
--agent-a mcts \
--checkpoint-a checkpoints/win_loss_margin_32simsrun4/step_011800 \
--agent-b heuristic \
--num-games 512 \
--sims-a 32
Play against the checkpoint:
uv run python -m yahtzee_rl.play_cli \
--checkpoint checkpoints/win_loss_margin_32simsrun4/step_011800 \
--num-simulations 32
Best competitive checkpoint versus heuristic:
Agent A: mcts@step_11800
Agent B: heuristic
games: 512
A win: 0.811 | B win: 0.186 | draw: 0.004
mean score A: 204.28 | B: 164.48 | margin: 39.80
Search versus the same checkpoint's greedy policy head:
mcts@step_11800 vs greedy@step_11800, 512 games, sims=64:
A win 0.494 | B win 0.492 | draw 0.014 | margin +0.96
mcts@step_11800 vs greedy@step_11800, 512 games, sims=128:
A win 0.525 | B win 0.471 | draw 0.004 | margin +0.26
mcts@step_11800 vs greedy@step_11800, 512 games, sims=256:
A win 0.508 | B win 0.486 | draw 0.006 | margin -0.58
Checkpoint regression check:
Agent A: greedy@step_11800
Agent B: greedy@step_12800
games: 512
A win: 0.553 | B win: 0.436 | draw: 0.012
mean score A: 209.03 | B: 201.90 | margin: 7.13
These results suggest that step_011800 is the best competitive checkpoint
from the observed runs, and that the greedy policy has already absorbed most of
the useful shallow/medium search behavior.
The checkpoint was trained for two-player competitive play with margin-shaped terminal rewards:
sign(score_margin) * (1 - 0.25) + 0.25 * tanh(score_margin / 50)
Training uses self-play, replay-buffer minibatches, and policy/value targets derived from MCTS search.
This checkpoint is intended for:
step_011800
should be preserved as the default checkpoint unless a new run beats it in
direct evaluation.A separate score-maximizing agent would likely need a different terminal reward, for example:
tanh((own_score - 200) / 50)
That should be evaluated by greedy mean score over at least 1k games rather than head-to-head win rate.