diff --git a/TODO.impl/03-headwise-muon.md b/TODO.impl/03-headwise-muon.md index 7dd3239..92c9b96 100644 --- a/TODO.impl/03-headwise-muon.md +++ b/TODO.impl/03-headwise-muon.md @@ -34,6 +34,12 @@ not an architecture change — single-variable, cheap to ablate. ## Status -- [ ] Inspect muon.py for the built module's exact API -- [ ] Implementation + tests -- [ ] Smoke run +- [x] Module built (gpu/muon.py: add_headwise_group, per-slice + Newton–Schulz via _muon_step_headwise) +- [x] Implementation + tests (tests/test_muon_headwise.py: headwise == + per-slice vanilla at h=1, differs for heterogeneous heads) +- [x] Recipe arm LAUNCHED 2026-09-29: ara-diac-small-2-1-hwmuon -> + run-014-hwmuon (2.1 recipe + headwise_muon; 40 headwise q/k + routed, 88 matrices stay whole-matrix; canonical r7 labels + e70ce991 pre-seeded, labels trusted). Watchdog armed. Gate on + landing: full-set CER vs 2.1's 4.5701. diff --git a/TODO.impl/06-sinkhorn-update.md b/TODO.impl/06-sinkhorn-update.md index bc35c52..7718d56 100644 --- a/TODO.impl/06-sinkhorn-update.md +++ b/TODO.impl/06-sinkhorn-update.md @@ -36,6 +36,17 @@ carries to the row/col normalizations here if magnitudes get small). ## Status -- [ ] Implementation -- [ ] Tests -- [ ] Optional run decision +- [x] Implementation (gpu/sinkhorn_update.py: SinkhornUpdate + + sinkhorn_balance, log-domain — the mHC NaN lesson) +- [x] Tests green on real tensors +- [x] Recipe arm LAUNCHED 2026-09-29: ara-diac-small-2-1-skembed -> + run-015-skembed (2.1 recipe + sinkhorn_embed; the 4 2D + embedding-like tensors — tied table + heads — routed from AdamW + to SinkhornUpdate at 2.6e-4 via the _engram_table_opt side-opt + hook; canonical r7 labels pre-seeded). Watchdog armed. Gate on + landing: full-set CER vs 2.1's 4.5701. +- Routing defect found while wiring: split_parameters handed + _engram.table.weight to Muon AND the Sinkhorn side-opt + (double-stepped) in the completed run-013-engram. That verdict + stands as measured; fixed so future engram/sinkhorn arms route + each tensor exactly once. diff --git a/TODO.impl/10-engram-lexical-memory.md b/TODO.impl/10-engram-lexical-memory.md index dcbaad6..9b21d9c 100644 --- a/TODO.impl/10-engram-lexical-memory.md +++ b/TODO.impl/10-engram-lexical-memory.md @@ -87,4 +87,9 @@ depth ✗✗, memory ✗ flat, on-policy ✗, routing ✗, soup ✗. 2.1 - [x] Run (launched under the standing directive, resumed 7× through preemptions; two eval traps caught: dropped-table load, wrong harness, tied-alias strictness — all fixed in PR #222) -- [x] Verdict recorded in RESULTS.md (PR #223) \ No newline at end of file +- [x] Verdict recorded in RESULTS.md (PR #223) +- Post-verdict routing defect (2026-09-29, found while wiring the + sinkhorn arm): split_parameters also handed the table to Muon — + double-stepped beside the Sinkhorn side-opt for this whole run. + The FLAT verdict stands as measured with that wiring; fixed in + interscript-ml PR #225 for future arms. \ No newline at end of file