|
Download README.md from danbrooks/draftzero-fdn-exp1: direct link, hf CLI and curl.
- Browser
- Download file 4.78 kB
-
https://huggingface.co/danbrooks/draftzero-fdn-exp1/resolve/main/README.md
- Command line
-
hf download hf://danbrooks/draftzero-fdn-exp1/README.md
-
curl -L -o README.md https://huggingface.co/danbrooks/draftzero-fdn-exp1/resolve/main/README.md
4.78 kB
| license: cc-by-4.0 | |
| tags: | |
| - reinforcement-learning | |
| - magic-the-gathering | |
| - alphazero | |
| - mcts | |
| - self-play | |
| - xmage | |
| - 17lands | |
| # DraftZero experiment #1: one agent for all of MTG Foundations limited | |
| One [MageZero](https://github.com/WillWroble/MageZero) agent trained by self-play to play | |
| **any** Foundations (FDN) limited deck, instead of one agent per deck. Every game drew both | |
| decks at random from 28,366 top-player decks built from 17lands data. | |
| This release has the checkpoints, the full deck pool, every game played, and the report. | |
| It's a **baseline and a set of pretrained opponents** for anyone training limited agents, | |
| not a strong player. | |
| ## Results | |
| | Measure | Result | | |
| |---|---| | |
| | Training | 2,507 games over 34 generations, one RunPod L40S, ~34 h, ~$28 | | |
| | Gen 33 vs raw search (same search, no network), final eval | **110/197 (55.8%, 95% CI 49–63%)** | | |
| | Gen 33 vs gen 10, final eval | **96/196 (49.0%, 95% CI 42–56%)**: training plateaued around gen 10 | | |
| | All milestone evals vs raw search, pooled | 137/238 (57.6%, 95% CI 51–64%) | | |
| | Card-value agreement with 17lands (Spearman ρ, commons, gens 10+) | 0.28 | | |
| The network adds a modest edge over raw search. It isn't yet strong enough for its | |
| self-play card statistics to be trusted: premium removal plays at 45–46% against 58% on | |
| 17lands. The full analysis is in [`report.md`](report.md). | |
| ## Contents | |
| | Path | What | | |
| |---|---| | |
| | `checkpoints/gen33.pt.gz` | Final checkpoint | | |
| | `checkpoints/gen10.pt.gz` | Where strength plateaued, and the final eval's second opponent | | |
| | `checkpoints/gen0.pt.gz` | First trained checkpoint, from 96 heuristic-search bootstrap games | | |
| | `decks/FDN_top_player_decks.tar.gz` | All 31,516 decks as XMage `.dck` files, plus `decks.jsonl` (per-deck cards, colors, player win-rate bucket) | | |
| | `decks/decks.tsv` | Train/eval split, by draft: 28,366 train, 3,150 eval | | |
| | `decks/eval_pairs_milestone.tsv` | The fixed 40-game eval (20 deck pairs × both seatings) played at every milestone | | |
| | `decks/eval_pairs_final.tsv` | The 200 raw-search games of the final eval (100 pairs, 192 decks) | | |
| | `run/games.jsonl` | Every game: both decks, colors, cards drawn, winner | | |
| | `run/metrics.jsonl` | Every metric the loop logged, per generation | | |
| | `run/final_eval.json`, `run/deck_records.tsv`, `run/run.json` | Final eval, per-deck records, run configuration and provenance | | |
| | `dashboards/` | The run's training dashboard and format dashboard (open `index.html`) | | |
| | `report.md` | The experiment report | | |
| ## Using the checkpoints | |
| The model is MageZero's 2-layer transformer (d_model 512). Each checkpoint carries its own | |
| feature vocabulary. Playing games with them needs three things: | |
| | Needed | Where | | |
| |---|---| | |
| | MageZero **0.1.0**: upstream v0.1.0-alpha plus 7 fork commits | `pip install "magezero @ git+https://github.com/danieljbrooks/MageZero@bcc76de"` | | |
| | The **action vocabulary** the policy heads index into | [`assets/vocab/FDN_SPG.tsv`](https://github.com/danieljbrooks/draft-zero/blob/exp1-fdn-generalist/assets/vocab/FDN_SPG.tsv) in draft-zero; point `MZ_ACTION_VOCAB` at it | | |
| | The **generalist XMage build**: upstream XMage plus one commit that emits actions in that vocabulary | [`danieljbrooks/mage`](https://github.com/danieljbrooks/mage), branch [`exp1-fdn-generalist`](https://github.com/danieljbrooks/mage/tree/exp1-fdn-generalist) (commit `5a32441c` on WillWroble/mage `2f35d9f7`) | | |
| Whether the checkpoints load under MageZero v0.2.0 is untested. None of this has been run | |
| end to end outside the training harness yet. | |
| The training harness is [draft-zero](https://github.com/danieljbrooks/draft-zero) (MIT), tag | |
| [`exp1-fdn-generalist`](https://github.com/danieljbrooks/draft-zero/tree/exp1-fdn-generalist). | |
| ## Data and license | |
| Every deck, and every human reference number in the report, comes from | |
| **[17lands](https://www.17lands.com/)**' public FDN Premier Draft game data | |
| ([public datasets](https://www.17lands.com/public_datasets)), which 17lands licenses under | |
| [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). The pool is every deck whose | |
| player sits in the ≥60% win-rate bucket. This release is also **CC BY 4.0**. If you use it, | |
| credit 17lands, and this release. | |
| ## Credits | |
| - **[17lands](https://www.17lands.com/)** for the public data, and the players who share it. | |
| - **Will Wroble** for [MageZero](https://github.com/WillWroble/MageZero), and for advice on | |
| this run. | |
| - **[chrismaghuhn](https://github.com/chrismaghuhn)** for advice on compute and on | |
| performance ([WillWroble/MageZero#3](https://github.com/WillWroble/MageZero/issues/3)). | |
| - The **[XMage](https://github.com/magefree/mage)** project for the rules engine. | |
| Author: Daniel Brooks. Run `2026-09-22_02-46-01`, report written 2026-09-23. | |