TopG / COMPATIBILITY.md
RGPalgrave's picture
Ship the checkpoint/code compatibility table with the weights
04a0448 verified
|
Raw History Blame Contribute Delete
1.62 kB

Checkpoint ↔ code compatibility

A representation change breaks old checkpoints. This file records which code loads which arm.

arms conditioning PER_SITE_DIM COND_DIM load with
A_*, B_*, C_*, D_*, E_long*, F_scout, G_100* pre-WP-018 62 948 commit 203c036 or earlier
H_pq* and later WP-018 (+ per-shell SPECIFIED bit) 68 1020 commit 74dae8f or later

Loading a pre-WP-018 checkpoint with current code raises:

size mismatch for site_proj.0.weight: copying a param with shape torch.Size([256, 62])
from checkpoint, the shape in current model is torch.Size([256, 68])

That is the correct, loud failure — not a corrupted download.

How this happened, and the rule it earns

WP-018 added a SPECIFIED bit per shell so a user could ask for fewer than six shells. That is a change to the input representation, and it silently invalidated 16 of 19 trained arms for inference. It surfaced only when a control experiment tried to feed a shallow query to a full-query model and torch raised a size mismatch.

RULE: a change to the conditioning or token representation is a BREAKING change. It must (a) be recorded in the checkpoint's own metadata, (b) be checked on load with a message that names the commit to use, and (c) appear in this table before the change is committed.

⚠ arm_meta.json records tokenizer_version and vocab_hash but not a conditioning version — which is why nothing caught this at load time. Adding one is the fix; until then, this table is the source of truth.