Qwen3 4B Move Intent curve, 5,400 rows
This LoRA adapter maps one finalized English chess transcript to one canonical move-interpretation/v2 compact value or UNKNOWN. The output is Move Interpretation, not SAN. A host-owned Move Resolver checks the interpretation against chess.js; chess.js owns legality, playable identity, check, mate, and SAN.
This checkpoint is published to preserve the complete controlled data-efficiency curve. No curve point met all registered gates, so this adapter is not described as qualified.
Frozen identities
- Base:
Qwen/Qwen3-4B-Base@906bfd4b4dc7f14ee4320094d8b41684abff8539
- Dataset:
rrodolfo0/move-intent-v2-final@d146121e25e1fafdb114605f4264fef7d754521e
- Evaluator source:
db8e51ff33473125ce9733946334ae0b72315236
- Training rows: 5,400, fresh-only nested curve prefix
- Result: 269/300 strict exact; 296/300 parseable; 109/130 noisy exact; 300/300 correctly framed; 0/30
UNKNOWN false accepts
- Evidence repository:
rrodolfo0/move-intent-final-evidence@d7da912c386a7930bc0fea2cb265382b8030c178
training-receipt.json records the clean update-zero run, recipe, checkpoints, hardware, hashes, and reload result. adapter-verification.json records fresh-process reload evidence. adapter_config.json pins the exact base revision.
Use
Load this repository as a PEFT adapter on the pinned base and use the repository's chat template with thinking disabled and deterministic decoding. The grader-facing repository command is python eval.py --model <this-repo>@<immutable-sha> --eval-set <jsonl>.
Limits
The own-test panel is public and is not staff-heldout. Controlled noisy-ASR examples are synthetic text corruptions rather than transcriptions from recorded audio. The adapter does not see a board and cannot determine whether a move is legal or unique. It must not be used as a SAN generator.