Skip to content

feat: recipe arms — headwise Muon + Sinkhorn embedding update - #225

Merged
ronaldtse merged 1 commit into
mainfrom
feat/recipe-arms-hwmuon-skembed
Sep 29, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
feat/recipe-arms-hwmuon-skembed

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

What

Two single-variable recipe arms off 2.1 (run-007, 4.5701) — the DeepSeek-V4.1-Flash levers measured on our stack (TODO.impl/03 and /06's "landed awaiting run" items):

  • headwise Muon (ara-diac-small-2-1-hwmuon): per-slice Newton–Schulz on Q/K projections (headwise_muon flag existed; this is its first recipe run) → run-014-hwmuon
  • Sinkhorn embedding update (ara-diac-small-2-1-skembed): new sinkhorn_embed flag routes the 2D embedding-like tensors (tied table, prediction heads) from AdamW to SinkhornUpdate via the existing _engram_table_opt side-opt hook → run-015-skembed

Code

  • muon.embed_named: the 2D embedding-like selector, extracting the predicate split_parameters already used so both share one classification. Specs assert the MECE contract: exactly split's 2D AdamW set, never Muon's; 1D layer norms excluded.
  • Engram routing bug fix: split_parameters was handing _engram.table.weight to Muon while the Sinkhorn side-opt also stepped it — double-stepped in the completed run-013-engram (its FLAT verdict stands as measured with that wiring; this corrects future engram arms).

Run protocol

Canonical r7 labels (sha e70ce991) pre-seeded into both out dirs; labels_complete trusted. Launch: modal run --detach src/gpu/modal_distill.py::main --spec ara-diac-small-2-1-hwmuon --epochs 6 (and ...-skembed), gate each vs 4.5701 full-set at eval.

Two single-variable arms off the 2.1 recipe (run-007, 4.5701),
DeepSeek-V4.1-Flash sec 2.5 / Alg 1:

- ara-diac-small-2-1-hwmuon: head-wise Muon on Q/K (existing flag,
  first recipe run) -> run-014-hwmuon
- ara-diac-small-2-1-skembed: sinkhorn_embed routes the 2D
  embedding-like tensors (tied table, prediction heads) from AdamW to
  SinkhornUpdate via the existing side-opt hook -> run-015-skembed

muon.embed_named extracts the 2D embedding-like predicate so the
selector and split_parameters share one classification (specs cover
the MECE contract: exactly split's 2D AdamW set, never Muon's).

Also fixes an engram-side routing bug: split_parameters handed
_engram.table.weight to Muon while the side-opt stepped it too —
double-stepped in run-013-engram. Tables are now excluded from
muon_params (that run's FLAT verdict stands as measured; this corrects
future engram arms).
@ronaldtse
ronaldtse merged commit 0ca2c63 into main Sep 29, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant