From 6ac66ac11e41520551e30053b48e8de0bd56e03e Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Tue, 29 Sep 2026 23:41:06 +0800 Subject: [PATCH] docs(TODO.impl): recipe arms launched; engram table double-step defect recorded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 03: run-014-hwmuon launched (2.1 + headwise Muon, 40 q/k routed). 06: run-015-skembed launched (sinkhorn_embed routes the 2D embedding-likes to SinkhornUpdate via the side-opt hook). 10: post-verdict defect — the engram table was double-stepped (Muon + Sinkhorn) for the whole of run-013; verdict stands as measured, fixed in interscript-ml #225. --- TODO.impl/03-headwise-muon.md | 12 +++++++++--- TODO.impl/06-sinkhorn-update.md | 17 ++++++++++++++--- TODO.impl/10-engram-lexical-memory.md | 7 ++++++- 3 files changed, 29 insertions(+), 7 deletions(-) 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