MUON+: Towards More Effective Muon via One Additional Normalization Step for LLM Pre-training
Organizations: University of California at Santa Barbara
Abstract
Muon has recently emerged as a strong optimizer for large language model pre-training, orthogonalizing the momentum matrix via Newton--Schulz polar iterations. A natural intuition is that polar iterations, by flattening the singular spectrum to all ones, should also eliminate column- and row-wise norm imbalance in the update. We show that this is not true in practice: practical polar steps can substantially amplify the imbalance. We term this the post-polar imbalanced update problem, and prove that such imbalance tightens the second-order term in a blockwise descent analysis, weakening Muon's per-step descent guarantee. Motivated by this analysis, we propose Muon+, a one-line fix that inserts a single normalization step after polar orthogonalization. Muon+ adds no optimizer state. Across pre-training experiments on GPT and LLaMA models from 60M to 7B parameters, spanning both compute-optimal budgets and extended token-to-parameter ratios up to approximately 200, Muon+ consistently outperforms Muon in terms of training and validation perplexity, leading to significant overall pre-training speedup.
Figures & tables
| Model | Param (M) | Train Tokens (B) | Muon | Muon+ |
|---|---|---|---|---|
| GPT-Small | 124 | 3.0 | 29.66 | 27.64 (-2.02) |
| GPT-Base | 362 | 7.2 | 21.70 | 19.98 (-1.72) |
| GPT-Large | 774 | 15.5 | 17.82 | 16.91 (-0.91) |
| GPT-Huge (bf16) | 6,654 | 20.0 | 15.90 | 14.69 (-1.21) |
| Model | Param (M) | Train Tokens (B) | AdamW | Muon | Muon+ |
|---|---|---|---|---|---|
| LLaMA-60M | 58 | 1.1 | 33.10 | 25.75 | 25.25 (-0.50) |
| LLaMA-130M | 134 | 2.2 | 23.64 | 19.06 | 18.65 (-0.41) |
| LLaMA-350M | 368 | 6.4 | 16.18 | 14.02 | 13.41 (-0.61) |
| LLaMA-1B | 1339 | 13.1 | 14.38 | 10.68 | 10.31 (-0.37) |
| LLaMA-7B (bf16) | 6,738 | 19.8 | – | 10.54 | 10.12 (-0.42) |
| Model | Param (M) | Train Tokens (B) | Muon | Muon+ |
|---|---|---|---|---|
| GPT-Base | 362 | 72 | 16.97 | 15.84 (-1.13) |
| LLaMA-350M | 368 | 72 | 11.48 | 11.03 (-0.45) |
| Ave. | OBQA | HellaSwag | ARC-E | WSC | Winogrande | BoolQ | PIQA | |
|---|---|---|---|---|---|---|---|---|
| Muon | 0.481 | 0.306 | 0.446 | 0.444 | 0.375 | 0.522 | 0.574 | 0.700 |
| Muon+ | 0.494 | 0.320 | 0.480 | 0.471 | 0.365 | 0.534 | 0.577 | 0.712 |
| Model | Target loss | Muon steps | Muon+ steps | Speed-up |
|---|---|---|---|---|
| LLaMA-130M | 3.060 | 4228 | 3448 | 22.6% |
| LLaMA-350M | 2.788 | 3064 | 2374 | 29.1% |
| GPT-Base | 3.144 | 3447 | 2515 | 37.1% |
| GPT-Large | 2.927 | 3710 | 3032 | 22.4% |
| Model | None | Col | Row | Col-Row | Row-Col |
|---|---|---|---|---|---|
| LLaMA-60M | 25.75 | 25.34 | 25.29 | 25.25 | 25.25 |
| LLaMA-130M | 19.34 | 19.16 | 18.98 | 18.65 | 18.68 |
| LLaMA-350M | 14.02 | 13.73 | 13.46 | 13.41 | 13.44 |
| Method | GPT-Small | GPT-Base |
|---|---|---|
| Muon+ | 27.64 | 19.98 |
| Turbo-Muon | 29.69 | 21.91 |
| NorMuon | 28.44 | 21.31 |
| AdaMuon | 29.27 | 22.38 |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Param(M) | |||
|---|---|---|---|---|
| GPT-Small | 768 | 12 | 12 | 124 |
| GPT-Base | 1024 | 24 | 16 | 362 |
| GPT-Large | 1280 | 36 | 20 | 774 |
| GPT-Huge | 4096 | 32 | 32 | 6654 |
| Model | FFN dim | Param(M) | |||
|---|---|---|---|---|---|
| 60M | 512 | 8 | 8 | 1376 | 58 |
| 130M | 768 | 12 | 12 | 2048 | 134 |
| 350M | 1024 | 24 | 16 | 2736 | 368 |
| 1B | 2048 | 24 | 32 | 5461 | 1339 |
| 7B | 4096 | 32 | 32 | 11008 | 6738 |
| Model | Hyperparameter | Muon | Muon+ |
|---|---|---|---|
| GPT-Small | Sequence length | 2048 | 2048 |
| Learning rate | |||
| Weight decay | |||
| Norm d | Col-Row | ||
| GPT-Base | Sequence length | 4096 | 4096 |
| Learning rate |
| Model | Hyperparameter | Muon | Muon+ |
|---|---|---|---|
| GPT-Base | Learning rate | ||
| Weight decay | |||
| Norm d | Row-Col |
| Model | Hyperparameter | Muon | Muon+ |
|---|---|---|---|
| LLaMA-60M | Sequence length | 1024 | 1024 |
| Learning rate | |||
| LR scheduler | Cosine | Cosine | |
| Weight decay | |||
| Warmup ratio | |||
| Norm d | Row-Col |
| Model | Hyperparameter | Muon | Muon+ |
|---|---|---|---|
| LLaMA-350M | Learning rate | ||
| Weight decay | |||
| Norm d | Col-Row |
| LR | None | Col | Row | Col-Row | Row-Col |
|---|---|---|---|---|---|
| LLaMA-60M | |||||
| 0.005 | 28.98 | 28.17 | 28.14 | 28.10 | 28.03 |
| 0.01 | 27.03 | 26.59 | 26.42 | 26.46 | 26.41 |
| 0.02 | 26.22 | 25.83 | 25.69 | 25.65 | 25.68 |
| 0.04 | 25.90 | 25.49 | 25.30 | 25.28 | 25.28 |
| 0.06 | 25.75 | 25.34 | 25.29 | 25.25 | 25.25 |
| LR | None | Col | Row | Col-Row | Row-Col |
|---|---|---|---|---|---|
| GPT-Small | |||||
| 0.003 | 31.10 | 29.75 | 28.37 | 28.39 | 29.01 |
| 0.005 | 29.66 | 28.81 | 27.97 | 27.91 | 28.09 |
| 0.01 | 29.87 | 28.08 | 27.69 | 27.64 | 27.76 |
| 0.02 | 30.13 | 29.03 | 29.27 | 28.56 | 27.72 |
| 0.04 | 30.14 | 29.71 | 30.25 | 30.58 | 29.37 |
| Model | Muon | MUON+ |
|---|---|---|
| GPT-Base | 21.68 0.050 | 19.98 0.031 |
| LLaMA-350M | 14.06 0.046 | 13.42 0.020 |
| Model | Muon | MUON+ |
|---|---|---|
| GPT-Base | 21.70 | 20.16 |
| LLaMA-350M | 14.02 | 13.55 |
| Method | Time / step | Ratio |
|---|---|---|
| Muon | 892.8 | 1.000 |
| Muon+ (col) | 896.6 | 1.004 |
| Muon+ (row) | 900.6 | 1.008 |
| Muon+ (col_row) | 909.9 | 1.019 |
| Muon+ (row_col) | 910.3 | 1.019 |
Muon Optimizer
Muon optimizer uses momentum and matrix orthogonalization to shape neural-network updates, especially in large language-model training.
See all 143 papers