Compositional Muon — partner-whitened optimizer that controls composed functional updates in attention
Compositional Muon (CM) is a Muon-family optimizer from Tilde Research that controls the update to composed functional objects — specifically the and products inside attention — rather than to each weight matrix independently. Solving the steepest-descent problem under an operator-norm constraint on the composed product gives partner-whitened update rules: each factor’s step is dynamically rescaled by the inverse Gram root of its partner, so heads whose partner has large singular values get smaller steps and vice versa. CM beats Muon at 340M and 1B/70B-token scale, and a single coupled OV update sets a new modded-nanoGPT speedrun record (2875 vs 2890 baseline).
Key claims
Section titled “Key claims”- Modern optimizers control trust regions on individual matrices (Adam: per-entry; Muon: per-matrix spectral norm), but the loss interacts with and only through the product — this “compositional gap” means the trust region is mis-located relative to where the functional change actually lives [thread §1–2].
- Bounding factor updates separately bounds only through partner norms (), so a unit-norm factor update on a head with a large-spectrum partner causes a much larger functional change than on a head with a small-spectrum partner — and vanilla Muon has no way to know this [thread §3].
- The compositional steepest-descent problem doesn’t decompose cleanly (the constraint couples the two factors). CM solves it via a “half-split” surrogate that allocates the budget equally between the two sides and solves each subproblem in closed form using the polar decomposition of the partner [thread §4–5].
- The resulting rule is partner-whitened: and symmetrically for , where . When the partner has large singular values, the update is suppressed; when small, amplified [thread §6].
- The OV branch needs a hybrid rule because V-side perturbations hit raw tokens per-head (worst case can fire independently for each head, so V is treated per-head through its partner ) while O-side perturbations sum into the shared residual stream (worst case is a single global operator, so O is orthogonalized globally after per-head scalar whitening) [thread §7].
- Full partner-whitening requires matrix square roots per head per step — expensive. Under an isotropic Gram approximation (singular values tightly clustered, which holds empirically under Muon + weight decay), ‘s scale-invariance makes the whitening factor inside collapse to a scalar, and the update reduces to standard Muon scaled by — i.e. Muon with a dynamic per-head learning rate set by the partner’s Frobenius norm [thread §8–9].
- The isotropic approximation captures nearly all gains of full CM empirically [thread §9].
- Product parameterizations have a gauge symmetry (, leaves invariant), which is a genuinely new failure mode versus single-matrix Muon: along gauge orbits the optimizer can enter a feedback loop where one factor shrinks and the other grows, making isotropic CM’s partner-Frobenius scaling imbalanced. A scalar gauge correction restores balance, though empirically the gains are small [thread §10–12].
- At 340M small-scale pretraining, CM-on-both-QK-and-OV gives the largest gains in the cleanest configuration (no RoPE, no QK-Norm). With RoPE alone, OV-only CM still wins and QK-CM helps further. With QK-Norm + RoPE, OV-CM still wins but QK-CM gains shrink — consistent with QK-Norm partially absorbing the same control [thread §13, Image 3].
- CM directly regulates per-head composed-update spectra: tracked and stay tightly controlled across heads, while under vanilla Muon the cross-head coefficient of variation is large — direct evidence the optimizer is regulating the functional step rather than just the factor step [thread §14].
- At 1B parameters / 70B tokens, both full-whitening CM and isotropic CM separate from Muon early in training and stay separated through the end; the gap is larger without QK-Norm [thread §15, Image 4].
- modded-nanoGPT speedrun: adding a single coupled OV update to the baseline reduces steps-to-threshold from 2890 to 2875 — new record on track 3 [thread §16, Image 5].
- The compositional rescaling idea transfers to AdamW (partner-rescaled AdamW improves over AdamW), but gains are smaller than the Muon version — suggesting part of the benefit is better per-head LR allocation and part is interaction with Muon’s spectral-sign step specifically [thread §17].
- CM is positioned as a new design axis (compositional viewpoint) orthogonal to the base optimizer — “compositional Shampoo” is suggested as a natural next direction. Also generalizes to RMSNorm scales, gated MLPs, and any structured composition in the network [thread §18].
Method
Section titled “Method”The thread frames optimizer design as choosing where to place the trust region. Adam puts it on individual entries; Muon on individual matrices (under the spectral norm); CM on composed functional objects (matrix products that the loss actually sees). For the QK product, the compositional steepest-descent problem is
The constraint couples the two factors through . CM solves a “half-split” surrogate that splits the budget equally between the two sides and solves each independently. Using the polar decomposition and the fact that right-multiplying by the orthogonal factor doesn’t change operator norms, each subproblem reduces to a partner-whitened spectral steepest descent that admits a closed form: .
For the OV branch, the V-side and O-side need different treatments because they hit different downstream structures (per-head raw tokens vs shared residual stream). V is treated per-head through partner ; O is orthogonalized globally across heads after per-head scalar whitening.
The full rule requires a matrix square root per partner per step (expensive). The practical version uses an isotropic Gram approximation: when partner singular values are tightly clustered (empirically the regime modern Muon + WD keeps you in), collapses to a scalar inside (scale-invariant), and the update becomes standard Muon with a per-head learning rate set by the inverse partner Frobenius norm. A gauge correction ensures the per-head LRs don’t drift along gauge orbits.
Results
Section titled “Results”- 340M small-scale pretraining: CM beats Muon across architecture settings. Largest gain in the theory-cleanest configuration (no RoPE, no QK-Norm). With RoPE only, OV-CM still wins and QK-CM on top helps further. With QK-Norm + RoPE, OV-CM still improves over Muon; QK-CM gains shrink — consistent with QK-Norm acting on the same composition [thread §13, Image 3].
- Composed-update stability (340M): tracked per head per layer is tightly controlled under CM, while vanilla Muon shows substantial cross-head variance in update norms within a layer [thread §14].
- 1B / 70B-token pretraining: both full-whitening CM and isotropic CM separate from Muon early and stay separated; gap larger without QK-Norm [thread §15, Image 4].
- modded-nanoGPT speedrun (track 3): single coupled OV update → 2875 steps to threshold vs 2890 baseline — new record [thread §16, Image 5].
- Partner-rescaled AdamW: improves over AdamW but by less than CM improves over Muon — partial portability of the compositional idea to non-Muon bases [thread §17].
Why it’s interesting
Section titled “Why it’s interesting”Compositional Muon is the third optimizer-side entry in the last two months from Tilde Research alone, and it occupies a distinct slot from Aurora: A Leverage-Aware Optimizer for Rectangular Matrices: Aurora locates Muon’s defect in tall MLP matrices (row-leverage anisotropy of the polar factor), while CM locates a defect in attention specifically (factor-level trust regions don’t see the QK and OV compositions). Both are pathology-first derivations — name a specific functional object the optimizer is mis-controlling, derive the correction — but they target non-overlapping pathologies, which raises a sharp open question for Training stability at scale: do CM (compositions) + Aurora (tall matrices) compose, or does each already saturate the same headroom?
The framing also sharpens the running disagreement between How to Set the Learning Rate for Large-Scale Pre-training? (QK-Norm makes the µP motivation stale) and Controlled LLM Training on Spectral Sphere (the optimizer is what’s missing). CM’s empirical result that QK-Norm partially absorbs QK-side CM gains but does not absorb OV-side CM gains is direct evidence that QK-Norm is locus-specific — it controls the same thing CM-QK controls but not the same thing CM-OV controls, so “normalization vs optimizer” is not a binary choice but a per-locus tradeoff.
The single coupled OV update beating the modded-nanoGPT record by ~15 steps is small in absolute terms, but it’s done with a one-line change (replace OV’s Muon step with the isotropic partner-rescaled variant). That’s the cheapest CM ablation to run on any existing training stack, and the bar to try it is low — particularly because the isotropic approximation is just “scale Muon’s per-head OV update by inverse partner Frobenius norm.” The paper and code links in the thread are empty placeholders at filing time, so this filing is the thread itself; a paper/repo follow-up should append pointers here when it lands.
See also
Section titled “See also”- Aurora: A Leverage-Aware Optimizer for Rectangular Matrices — Tilde’s previous optimizer; targets MLP up/gate row-leverage rather than QK/OV compositions — orthogonal pathology, open question whether they stack
- Training stability at scale — concept page; CM joins the optimizer-side fork alongside SSO, Newton-Muon, Aurora, MuonH
- Controlled LLM Training on Spectral Sphere — SSO; argues Muon is “half-aligned” with µP (controls updates not weights). CM argues Muon is mis-aligned in a different way (controls factors not compositions); the two diagnoses are compatible
- The Newton-Muon Optimizer — Newton-Muon right-preconditions by ; CM left/right-preconditions by partner Gram inverses. Same algebraic flavor (preconditioning under a non-trivial geometry), different motivation
- Muon is Not That Special: Random or Inverted Spectra Work Just as Well — argues Muon’s geometric story may be over-claimed (random/inverted spectra work too). CM’s gains under the same Muon-vs-others framing would be a direct test of whether the “compositions matter” story survives the same critique
- QK-Clip: Taking Muon Further on the Scaleup Journey — QK-Clip / MuonClip; another “fix Muon at the QK locus” line — but via post-hoc clipping rather than per-update partner-whitening
- MuonH (hyperball) sets new modded-NanoGPT speedrun record at 3325 steps — Keller Jordan announcing @wen_kaiyue's result — MuonH speedrun record (3325 steps) that the Aurora combined recipe beat at 3175; CM sets a different record on track 3 (2875 vs 2890)
- How to Set the Learning Rate for Large-Scale Pre-training? — empirical observation that QK-Norm subsumes µP’s motivating instability; CM’s QK-Norm-vs-no-QK-Norm ablation supports the locus-specific reading of that claim