Downloads · 30 days
17
16% of all-time downloads
Tagashy/wyrmling-110M-mtg-dsl
wyrmling-110M-mtg-dsl is a text generation model from Tagashy. Use it when you need the model to write or continue text. The card lists the license as mit.
wyrmling is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. © Wizards of the Coast LLC. Card data p…
Downloads · 30 days
17
16% of all-time downloads
All-time downloads
105
Public
Parameters
118M
941 MB on disk
Likes
0
Public
Click a slice to open those files.
.pt470 MB · 50%
From the Hugging Face model README
wyrmling is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. © Wizards of the Coast LLC. Card data provided by Scryfall. Not affiliated with either.
wyrmling is a tiny decoder-only language model built entirely from scratch — its own architecture, its own tokenizer, no inherited weights — for exactly one task: translating a structured card intent into the mtg-compiler DSL, a typed s-expression representation of Magic card mechanics. It speaks no English. The full story is in the blog series Teaching a model to write Magic cards by building the compiler first, especially article 4 (shadowing).
This is the 110M headline model. The size-ladder rung is wyrmling-225M-mtg-dsl — same recipe, same data, and (see below) no better.
| checkpoint | params | dims | layers | notes |
|---|---|---|---|---|
wyrmling-110M (v8f-p28) | 118M | d768 | 14 | this repo — the headline model |
wyrmling-225M (v8f-p28) | 226M | d1024 | 16 | size-ladder rung; same recipe, same data |
Architecture: SwiGLU MLP, RoPE, QK-norm, untied embeddings, logit soft-cap. Optimizer: Muon + AdamW. Tokenizer: custom BPE, ~12k vocabulary, trained only on intent→DSL text so DSL concepts land as single semantically-loaded tokens.
One held-out v8 test (5,051 cards), free decode, matched generation budgets,
Wald 95% CI (docs/finetune/CROSS_TIER_EVAL.md in the repo):
| model | parse | canonical-exact | dsl_sim | tree_sim |
|---|---|---|---|---|
| wyrmling-110M | 91.6% | 45.6% ±1.4 | 0.865 | 0.777 |
| wyrmling-225M | 93.1% | 45.1% ±1.4 | 0.863 | 0.775 |
Doubling parameters buys nothing here — the model is data-starved, not capacity-starved. That flat line is the point of the release.
Input is a structured brief (not free prose), output is DSL:
Type: Artifact | Colors: W, R | Cost: {1}{W}{R} | Stats: 1/1
Concept: A creature that gains power and toughness when equipped, and
gains deathtouch if it is a Human and equipped. It costs {2} to equip.
(card_abilities
(static (pt-mod (selector :type CREATURE :states (list EQUIPPED)) +1 +1))
(static (gain-ability (it) (DEATHTOUCH))
:condition (is-type :keyword AS :subtype HUMAN :subject-ref EQUIPPED_CREATURE))
(keyword EQUIP :cost ((mana "{2}"))))
Validate/render outputs with the MIT-licensed compiler in the repo.
config.json # WyrmlingHFConfig (vLLM plugin, MTG-E83)
model.safetensors # verbatim weight dump (embed.weight, blocks.N.attn.qkv.weight, …)
tokenizer.json # custom BPE, 12,034 entries incl. added tokens
tokenizer_config.json
wyrmling-sft-final.pt # original {config, model} training checkpoint
The .pt loads with the compiler repo's TorchGCDGenerator.from_checkpoint()
(grammar-constrained decoding); the safetensors + config load through the
repo's vLLM plugin (src/wyrmling/). Neither is a stock transformers
architecture — you need the compiler repo either way.
Previously distributed as the wyrmling-110M/ subfolder of
Tagashy/wyrmling-mtg-dsl.
Split into per-variant repos so each model has its files at the repo root.