brianward92 commited on
Commit
ee84263
·
verified ·
1 Parent(s): b7addd3

Model card

Browse files
Files changed (1) hide show
  1. README.md +77 -0
README.md CHANGED
@@ -1,3 +1,80 @@
1
  ---
2
  license: apache-2.0
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
+ tags:
4
+ - magic-the-gathering
5
+ - draft
6
+ - game-ai
7
+ - zero-shot
8
+ - model-evaluation
9
+ - reproducibility
10
  ---
11
+
12
+ # DraftFM: zero-shot drafting of unseen Magic: The Gathering sets
13
+
14
+ DraftFM is a pick model for *Magic: The Gathering* drafting that represents
15
+ every card as a frozen vector of public information (structured Scryfall
16
+ features plus a sentence embedding of the rules text), with no card- or
17
+ set-specific parameters. It can therefore score a set the moment its card
18
+ list goes public, before any human has drafted it.
19
+
20
+ - **Paper:** [DraftFM: Zero-Shot Drafting of Unseen *Magic: The Gathering*
21
+ Sets from Public Card Features](https://github.com/brianward92/mtga/blob/main/paper/draftfm.pdf)
22
+ (Brian Ward, 2026; arXiv submission in progress)
23
+ - **Code:** https://github.com/brianward92/mtga
24
+ - **Per-pick prediction archive:** [brianward92/draftfm-frozen-eval](https://huggingface.co/datasets/brianward92/draftfm-frozen-eval)
25
+
26
+ ## Headline results
27
+
28
+ Trained on 149.4M picks from 28 [17Lands](https://www.17lands.com) sets:
29
+
30
+ | Evaluation | Result |
31
+ |---|---|
32
+ | Three held-out dev sets, top-1 agreement with high-win-rate players | 54.3% |
33
+ | Same, as a fraction of a model trained directly on each set (pre-registered normalized score) | 78.6% |
34
+ | **MSH frozen evaluation** (licensed-IP set, untouched by training or tuning; single pre-registered pass over its first public snapshot) | **57.0% top-1**, 87.7% top-3, log-loss 1.132, ECE 0.005 |
35
+
36
+ The deployed recipe, F-full, has 1.6M parameters.
37
+
38
+ ## What is in this repository
39
+
40
+ | Path | Contents |
41
+ |---|---|
42
+ | `runs/<run_id>/best.pt` | The 14 pinned PyTorch checkpoints evaluated in the paper: F-dev, F-full, scaling rungs s1–s16, and ablations (no-text, no-context, proportional, top-filter, no-UB) |
43
+ | `onnx/` | ONNX exports of the deployed model (fdev-20260704, f-full-20260705) |
44
+ | `run_manifest.json` | Role → run_id → checkpoint sha256. The authoritative pins: `make_paper_tables.py` refuses mismatched or missing runs |
45
+ | `frozen_battery.json` | The pre-registered evaluation battery (protocol v1.1), frozen before the MSH snapshot download |
46
+ | `ledger.jsonl` | Append-only experiment ledger |
47
+ | `paper-data/runs/` | Run-level JSONs (configs, per-epoch metrics, eval summaries) consumed by `scripts/make_paper_tables.py` |
48
+
49
+ Every checkpoint's sha256 is recorded in `run_manifest.json`; verify after
50
+ download. The frozen protocol, including the pre-registration chronology and
51
+ the post-day-one MSH ceiling, is documented in
52
+ [`docs/eval_protocol.md`](https://github.com/brianward92/mtga/blob/main/docs/eval_protocol.md).
53
+
54
+ ## Reproducing the paper tables
55
+
56
+ ```bash
57
+ git clone https://github.com/brianward92/mtga
58
+ cd mtga
59
+ python -m venv .venv && .venv/bin/pip install -r requirements-foundation.txt
60
+ # place this repo's paper-data/runs/ at paper/data/runs/
61
+ .venv/bin/python scripts/make_paper_tables.py
62
+ ```
63
+
64
+ To re-score picks or run the battery, set `MTGA_DATA_ROOT` to a directory
65
+ with this repository's `runs/` under `foundation/` and see
66
+ `scripts/run_frozen_eval.py`.
67
+
68
+ ## Data and licensing
69
+
70
+ The code is Apache-2.0 (see the GitHub repository's LICENSE and NOTICE).
71
+ Training and evaluation data derive from 17Lands public datasets
72
+ (CC BY 4.0; "Data from 17Lands.com") and Scryfall bulk data. No raw
73
+ third-party data is redistributed here: the checkpoints, exports, and
74
+ manifests are self-generated artifacts. Unofficial Fan Content per the
75
+ Wizards of the Coast Fan Content Policy; not approved or endorsed by
76
+ Wizards. *Magic: The Gathering* is a trademark of Wizards of the Coast LLC.
77
+
78
+ ## Contact
79
+
80
+ Brian Ward — brian.ward.92@gmail.com