Muon 优化器:它怎么做、为什么有效,以及哪些大模型在用
Muon 优化器:它怎么做、为什么有效,以及哪些大模型在用
Muon 是给神经网络隐藏层用的优化器。它的做法分两步:先像带动量的随机梯度下降那样累积更新,再把得到的更新矩阵做一次"正交化",然后用它去更新权重。正交化的意思是:保留更新里所有的方向信息,但把每个方向的步长拉成一样大。可以证明,这恰好等价于"在谱范数意义下做最速下降"。
- 它只用在二维权重矩阵(隐藏层)上;嵌入层、输出层,以及各种向量 / 标量参数仍然用 AdamW。
- 它只需要保存动量一项,优化器占用的显存大约是 AdamW 的一半(AdamW 要同时存动量和二阶矩两项)。
- 在大模型预训练上,达到同样效果所需的计算量约为 AdamW 的一半;而它本身引入的额外计算不到训练总量的 1%。
概览
- 提出者:Keller Jordan,合作者 Yuchen Jin、Vlado Boza、You Jiacheng、Franz Cesista、Laker Newhouse、Jeremy Bernstein。
- 时间线:2024-10-04 随 NanoGPT 训练加速记录首次公布并命名;2024-12-08 发布系统性博客。没有独立的 arXiv 论文,原始出处是博客加 GitHub 仓库。
- 名字由来:MomentUm Orthogonalized by Newton-schulz——「用 Newton–Schulz 迭代把动量正交化」。
- 已规模化采用的基座模型:Moonlight 16B(首个验证)、Kimi K2 1T(MuonClip)、GLM-4.5 / GLM-4.5-Air、INTELLECT-3(在 GLM-4.5-Air 基座上做 SFT+RL)、DeepSeek-V4(最大 1.6T,由 V3 的 AdamW 切换而来)。
一、背景:AdamW 逐元素更新,忽略矩阵结构
过去十年,大模型训练几乎都用 AdamW。它的工作方式是逐个元素地调整:把一个权重张量视为一组互不相关的标量,为每个标量分别记录两个量——梯度的滑动平均(动量,记为 )和梯度平方的滑动平均(记为 ,刻画该元素近期梯度的波动幅度)——再用 决定该元素这一步的更新量。某元素梯度波动越大,其更新步长越小。
两个代价:
- 完全忽略了矩阵结构。Transformer 里绝大多数参数是一个 的矩阵,代表一个线性映射,行与行、列与列之间高度相关。把它拆成一组独立的标量,就丢掉了"这是一个有方向、有强弱结构的线性变换"这一信息。
- 显存翻倍。 和 各自都要存一份和权重一样大的数组,于是优化器状态是参数量的两倍。
Muon 的思路正好相反:把权重当作矩阵,直接利用其结构设计更新。两者的差别可以这样对照:
| 维度 | AdamW | Muon |
|---|---|---|
| 更新的粒度 | 逐个元素 | 整块矩阵一起 |
| 需要保存的状态 | 动量 + 二阶矩 (约 2 倍权重) | 只有动量(约 1 倍权重) |
| 利用了什么结构 | 无,逐元素处理 | 矩阵的奇异值结构(见下文) |
| 核心操作 | 按梯度二阶矩自适应缩放步长 | 把更新矩阵正交化(各方向步长拉齐) |
| 用在哪些参数 | 所有参数 | 只有二维隐藏层;嵌入 / 输出层 / 标量仍用 AdamW |
二、Muon 怎么做:累积动量,再把更新矩阵正交化
对某个二维权重 (梯度记作 ,动量系数 默认取 0.95),一步更新就两个动作:
第二步括号里的 Nesterov 前瞻方向。 注意正交化的对象是 ,而不是普通动量 ,这就是 Nesterov 前瞻动量。先看普通(重球)动量:它把累积方向 直接拿去更新,问题在于梯度 是在当前点 测的,可只要动量较大,这一步实际会移动到更靠前的位置,当前点测得的斜率到那里可能已不准确——于是容易过冲、震荡。
Nesterov 的修正是"先探再走":先顺着已有动量探到前瞻点 ,在那里量梯度再决定怎么走。把这套前瞻等价地整理进动量缓冲(深度学习通用写法,即 PyTorch 的 nesterov=True),更新方向就成了
展开 ,对比重球的 :前瞻方向给"最新梯度"更高的权重 、并把历史动量的系数从 收紧到 。几何含义是——若已越过极小点,前瞻点的梯度会更早转向反方向,提前抑制过冲,于是震荡更小、收敛常数更好。Muon 默认开启()。
关键全在"正交化"这一步,下面把它讲清楚。
2.1 正交化到底在做什么
先回忆奇异值分解(SVD):任何矩阵 都能写成
直观上这是把一个线性变换拆成"先旋转 → 沿各坐标轴按不同倍数拉伸 → 再旋转"三步: 和 是两次旋转(正交矩阵),中间对角阵 上的数 就是各方向的拉伸倍数,叫奇异值。
把它写成求和形式更能看清"方向 + 强度"的结构。记 ,、 分别是 、 的第 列(左、右奇异向量),则
也就是说 是 个秩-1 矩阵 的加权和:每个 是一个独立"方向"(把输入沿 收、再沿 放), 是这个方向上的强度。顺带记下两个后面要用的事实:Frobenius 范数 ,谱范数 。
Muon 的正交化,就是把所有奇异值都改成 1——等价地,在求和式里抹掉权重 :
它的含义是:方向信息()全部保留,但"哪个方向更新得多、哪个少"这件事被抹平,让每个方向都走同样大小的一步。后面第三节会解释,为什么这么做对训练有帮助。
2.2 用 Newton–Schulz 迭代来近似,而不是真的去算 SVD
真的对每个权重做一次 SVD 太慢,而且在 GPU 的低精度下数值不稳。Muon 改用一个只含矩阵乘法的迭代来近似"把奇异值都推到 1"这件事,它能稳定地在 bfloat16 上跑。原作者给的实现是:
1 | def newtonschulz5(G, steps=5, eps=1e-7): |
这段迭代等价于:对每个奇异值 反复施加同一个多项式 。系数 是专门挑出来的,使得不管 原来是大是小(只要落在 0 到 1 之间),迭代几步后都会迅速趋近 1。对 Transformer,5 步就够。
为什么迭代恰好"作用在奇异值上"。 验证一下:代码每步做 、、,即
代入 ,利用 :
一字不动(方向不变),只有奇异值按 逐个更新。 只含奇数次幂并非巧合:迭代由 与 拼成,每乘一次 就给 加两次幂。(开头那次 归一化把所有 压进 ,正好落在下面要说的收敛域里。)
这个多项式从哪来:Newton–Raphson。 最朴素的一条同类迭代是三次式
它正是 Newton–Raphson 求根法用在 (正根 )上的迭代。推导:Newton 步为 ,而 ,于是
为什么偏偏取 ?因为正交化要把每个 拉到 1,而这个 的正根恰是 1,且从 内任意点出发 Newton 法都收敛到 1(归一化后的 自然在域内)。验证它确实把 推向 1:不动点 ;又 ,——导数在 1 处为零意味着二次收敛(误差每步约平方级缩小)。Muon 用的五次式只是多带一项、收敛更快的同类推广。
Muon 为什么不直接用 Newton 的系数。 三次式虽最终收敛,但在 处增益只有 :很小的奇异值每步才放大 1.5 倍,要很多步才爬到 1。Muon 只想花 5 步就把所有方向大致拉平,于是改用数值搜索挑出的 ,近零增益 翻了一倍多,小奇异值增长极快;代价是它不满足 ,迭代不会精确停在 1,而在 1 附近一条窄带内摆动——对"近似正交"的更新已足够。DeepSeek-V4 则取折中:前 8 步用这套激进系数快速逼近,后 2 步换成满足 的 精确收敛(详见 §5)。
2.3 超参数和计算开销
- 默认超参:动量 0.95、Nesterov 开启、迭代 5 步,基本不用动;真正需要调的只有学习率和权重衰减两项。学习率还自带"放大模型时基本不用重调"的缩放(见 5.2)。
- 额外计算开销:那几步矩阵乘法相对训练总量很小——NanoGPT 规模约 0.7%,Llama-405B 规模约 0.5%,可以忽略。
三、为什么正交化会有效:作者 Keller Jordan 的解释
3.1 更新能量集中在少数方向,正交化放大其余方向
实践中观察到:隐藏层的梯度(以及累积出来的动量)矩阵,能量高度集中在少数几个方向上——也就是少数几个奇异值特别大,其余则大多很小。这意味着普通的梯度下降几乎只沿那几个主方向更新,而大量幅度很小、但对学习同样重要的方向几乎不被更新。
正交化把所有奇异值拉成 1,相当于把幅度很小的方向相对放大,使其也获得更新。换言之,Muon 让每个相互正交的方向都得到等量更新,使原本由少数主方向主导的更新在各方向间均衡分配。
3.2 它和 Shampoo 的关系:一个"不累积历史"的 Shampoo
Shampoo 是一类二阶优化器,会维护并不断累积一个"预条件矩阵"来校正梯度。作者指出:如果把 Shampoo 里那个历史累积去掉,它的更新恰好就退化成 ,也就是正交化后的梯度。所以可以把带动量的 Muon 理解成一个**"只看当下、不累积历史"的 Shampoo**:去掉了昂贵的历史预条件累积,只保留"正交化"这一步。
3.3 一条经验规则:只用在隐藏层
Muon 只用于二维隐藏权重。嵌入层、输出(分类)层,以及各种增益 / 偏置 / 标量参数,仍然交给 AdamW。作者强调这条来自实验观察:嵌入层、输出层在网络里扮演的角色和中间的线性层不一样,对它们一视同仁地做正交化反而更差。下一节的理论给了这条经验一个解释。
四、更深一层的理由:把优化器看成"在某种范数下的最速下降"
Muon 不是凭空调出来的。在它公布之前,Jeremy Bernstein 等人就在发展一套看待优化器的统一视角,事后正好解释了"为什么答案是 "。
核心观点(见《Old Optimizer, New Norm》, 2409.20325):先把动量这类滑动平均放一边,那么 SGD、Adam、Shampoo 等方法都可归结为同一形式——“在某个范数下,沿最陡方向走一步”。这里的范数规定了"如何度量一步更新的大小"。取不同的范数,就得到不同的优化器。
形式上,最陡方向是下面这个问题的解:在"步长不超过 1"的所有更新 里,挑一个和梯度 最一致(内积最大)的:
当范数取谱范数时——谱范数等于矩阵把向量长度最多放大的倍数,即最大奇异值——这个最优解恰好是
也就是 Muon 的正交化方向。可以这样概括这层关系:
Muon = 在谱范数下的最速下降;而 Newton–Schulz 迭代只是计算这个方向的廉价手段(Bernstein–Newhouse 的论文附录里就建议用它)。
后续的《Modular Duality in Deep Learning》(2410.21265)把这件事讲得更彻底:梯度和权重虽然形状一样,但在数学上属于两个不同的空间,直接相减其实不严谨,需要先做一次"换算"(论文称为对偶映射 / dualization),把梯度变成"可以从权重里减掉"的量;而且不同的层因为作用不同,该用的范数也不同。这正好解释了 3.3——为什么嵌入层、输出层该和中间线性层区别对待。
五、怎么放大到大模型:Moonlight 的两个改动
Muon 最初只在 NanoGPT、CIFAR 这种小规模上验证过。Moonshot AI 的《Muon is Scalable for LLM Training》(2502.16982)补上了"不调参就能直接用到大模型"所缺的两项关键改动。
改动一:加权重衰减。 不加权重衰减时,大规模训练中权重范数会持续增大;加入权重衰减(每步让权重略微向零收缩)后即趋于稳定。
改动二:让 Muon 与 Adam 的更新幅度一致。 Muon 把奇异值都设成 1,其产出更新的典型幅度与 Adam 天然不同;若直接沿用 Adam 的学习率便无法匹配。Moonlight 的办法是乘一个缩放系数,把两者的更新幅度对齐——这里用"均方根(RMS,把所有元素平方求平均再开根号,衡量更新的典型幅度)"来度量:
其中 是权重衰减, 把 Muon 更新的均方根拉到和 Adam 一致( 是这个权重矩阵的两个边长)。好处是:原来给 Adam 调好的学习率和调度表可以直接拿来用,不必重调。
为什么乘 就能对齐 RMS。 把"更新的典型幅度"定义为均方根 ( 为 Frobenius 范数)。正交化输出 有 个奇异值、且全为 1,由 2.1 节的 得
可见正交化更新固有的 RMS 是 ,会随矩阵变大而变小,与 AdamW 的更新(每元素近似同一尺度、RMS 约为常数)无法匹配。乘上 后,RMS 恰好变成与矩阵尺寸无关的常数 ——Moonlight 取 。这就是"更新幅度对齐"的全部内容。
DeepSeek-V4 的 RMS 与混合迭代。 V4 沿用同一套 RMS 对齐思路,三处细节不同(详见 DeepSeek-V4 架构笔记 第 2.4 节):
- 混合 Newton–Schulz(10 步 = 8 + 2):前 8 步用激进系数 把奇异值快速拉到 1 附近(不满足 ),后 2 步换成 精确锁定(满足 ,二次收敛);
- Nesterov + RMS 重缩放:正交化前瞻方向 ,再 把每元素 RMS 调到 ,从而直接复用 AdamW 的学习率与调度;
- 不用 QK-Clip:已对注意力的 Q/KV 施加 RMSNorm 以抑制注意力 logit 增长,故无需 Kimi K2 的 QK-Clip(见第六节)。
效果:缩放规律(scaling law)实验显示,要达到同样的损失,Muon 需要的计算量大约是 AdamW 的一半。配套放出了 Moonlight-16B-A3B(总参数 16B、每次只激活 3B 的混合专家模型,训练了 5.7T tokens)。
说明:「混合专家(MoE)」指模型有很多"专家"子网络,每个 token 只激活其中一小部分,所以总参数可以很大、但单次计算量不大。
Essential AI 的《Practical Efficiency of Muon for Pretraining》(2505.02222)从另一个角度做了佐证:当 batch 很大时(大到超过所谓"临界 batch"——超过它之后,再增大 batch 带来的收益会迅速变小),Muon 仍能保持数据效率,而 AdamW 会明显变差;论文还研究了 Muon 配合一种"放大模型时超参不用重调"的参数化方法(muP)。
六、再大一个量级的稳定性:Kimi K2 的 MuonClip
到了 1T(万亿参数)规模,Moonshot 又遇到一个新问题:注意力分数爆炸——注意力里 Query、Key 两个投影矩阵的输出在训练中持续增大,导致 softmax 之前的分数失控、引发损失骤增(loss spike),只能回滚到之前的检查点重新训练,代价极高。
Kimi K2(2507.20534)的解法叫 MuonClip = Muon + QK-Clip:不是在 softmax 之后去裁剪(那样会扭曲学到的注意力分布),而是在每次 Muon 更新完之后,直接按比例把 Query、Key 两个投影矩阵的权重缩小一点,从源头限制注意力分数的尺度。
结果:1T 参数(每次激活 32B)的混合专家模型,在 15.5T tokens 上全程未出现损失尖峰,训练曲线平滑——验证了 Muon 在超大规模下的稳定性。
MuonClip 和 Kimi 整个体系的更多细节,见本博客 Kimi 系列论文清单。
七、哪些基座模型用了 Muon
下表只收录有一手技术报告佐证的采用者;arXiv 编号均已逐条核对。
| 模型 | 机构 | 时间 | 规模 | 链接 | Muon 使用情况 |
|---|---|---|---|---|---|
| Moonlight-16B-A3B | Moonshot AI | 2025-02 | 16B 混合专家(激活 3B),5.7T tokens | 2502.16982 | 首个把 Muon 规模化验证的开源大模型;提出"加权重衰减 + 对齐更新幅度"两个关键改动 |
| Kimi K2 | Moonshot AI | 2025-07 | 1T 混合专家(激活 32B),15.5T tokens | 2507.20534 | 用 MuonClip(Muon + QK-Clip);万亿规模全程无损失尖峰 |
| GLM-4.5 / GLM-4.5-Air | Z.ai(智谱) | 2025-08 | 355B/激活 32B;106B/激活 12B,23T tokens | 2508.06471 | 预训练采用 Muon,收敛更快、支持更大 batch |
| INTELLECT-3 | Prime Intellect | 2025-12 | 106B 混合专家(激活 12B) | 2512.16144 | 在 GLM-4.5-Air 基座上做 SFT + 大规模 RL,后训练继续用 Muon;并指出"基座是用 Muon 预训练的,后训练也用 Muon 效果最好" |
| DeepSeek-V4(Pro / Flash) | DeepSeek-AI | 2026-04 | Pro 1.6T/激活 49B;Flash 284B/激活 13B,32T+ tokens | HF 技术报告 | 从 V3 的 AdamW 改用 Muon,并把它列为 V4 的三大创新之一(另两项是混合注意力 CSA+HCA、mHC);Muon 更新大部分参数,嵌入 / 预测头 / RMSNorm 仍用 AdamW;还对迭代和更新幅度缩放做了改良,以便直接复用 AdamW 的超参 |
几点观察:
- 预训练主力:Moonlight、Kimi K2、GLM-4.5、DeepSeek-V4 都把 Muon 用作预训练优化器,看中的是更省计算、更省显存(只存动量一项),以及对大 batch 更友好。
- 目前规模最大的一次"切换":DeepSeek 在 V3 还用 AdamW,到 V4(最大 1.6T)就改用了 Muon,并把它当作核心创新。这是迄今参数规模最大的 Muon 预训练案例,说明 Muon 正从"Moonshot / 智谱一系"向更多团队扩散。
- 后训练 / RL 也能用:INTELLECT-3 展示了 Muon 在微调和强化学习阶段的用法,经验是优化器最好和预训练保持一致。
- 稳定性是放大规模的门槛:从 Moonlight 的"对齐更新幅度 + 权重衰减",到 Kimi K2 的"QK-Clip",再到 DeepSeek-V4 的"改良迭代 + 更新幅度缩放",每上一个数量级都要补新的稳定化手段。
- 仍有不少模型用 AdamW:比如 Qwen 系列的预训练。是否换用 Muon,目前还看团队的具体取舍。
八、相关论文清单
按主线整理;arXiv 编号均已逐条联网核对。没有 arXiv 的原始出处单列。
A. 原始出处与官方实现
| 来源 | 时间 | 链接 | 要点 |
|---|---|---|---|
| Muon: An optimizer for hidden layers in neural networks(Keller Jordan 博客) | 2024-12 | kellerjordan.github.io/posts/muon | 最原始的定义与解释:累积动量 + Newton–Schulz 正交化,只用于隐藏层 |
| KellerJordan/Muon(官方实现) | 2024- | GitHub | 参考实现与默认超参 |
B. 理论基础("范数 / 换算"视角)
| 论文 | 时间 | 链接 | 要点 |
|---|---|---|---|
| Old Optimizer, New Norm: An Anthology(Bernstein & Newhouse) | 2024-09 | 2409.20325 | 把各优化器统一看成"某个范数下的最速下降",并主张不同张量该用不同范数 |
| Modular Duality in Deep Learning(Bernstein & Newhouse) | 2024-10 | 2410.21265 | 梯度需先"换算"到权重所在的空间再相减;给出对各类层做换算的 GPU 友好算法 |
| Muon Optimizes Under Spectral Norm Constraints | 2025-06 | 2506.15054 | 把"Muon = 谱范数约束下的优化"说清楚、证严谨 |
C. 规模化与实践
| 论文 | 时间 | 链接 | 要点 |
|---|---|---|---|
| Muon is Scalable for LLM Training(Moonlight) | 2025-02 | 2502.16982 | 加权重衰减 + 对齐更新幅度,让 Muon 不调参直接用到大模型;省约一半计算量;放出 Moonlight 16B |
| Practical Efficiency of Muon for Pretraining(Essential AI) | 2025-05 | 2505.02222 | 在"计算量 vs 效果"上全面优于 AdamW;大 batch 下仍保数据效率;研究 Muon + muP 的超参迁移 |
D. 收敛性分析与各种变体
| 论文 | 时间 | 链接 | 要点 |
|---|---|---|---|
| A Note on the Convergence of Muon | 2025-02 | 2502.02900 | Muon 在非凸问题上的收敛性分析 |
| Dion: Distributed Orthonormalized Updates(Microsoft) | 2025-04 | 2504.05295 | Muon 思路的分布式、低通信变体,适配 FSDP/TP 等大规模并行 |
| Muon Optimizer Accelerates Grokking | 2025-04 | 2504.16041 | 发现 Muon 能显著加速 grokking(模型训练很久后突然学会泛化的现象) |
| AdaMuon: Adaptive Muon Optimizer | 2025-07 | 2507.11005 | 在 Muon 之上再叠加一层 Adam 式的逐元素自适应缩放 |
| Can Muon Fine-tune Adam-Pretrained Models? | 2026-05 | 2605.10468 | 研究"用 AdamW 预训练、再用 Muon 微调"会不会因优化器不一致而出问题 |
E. 采用 Muon 的模型报告
| 模型 | 时间 | 链接 | 要点 |
|---|---|---|---|
| Kimi K2: Open Agentic Intelligence | 2025-07 | 2507.20534 | 1T 混合专家,用 MuonClip 稳定万亿规模训练 |
| GLM-4.5: Agentic, Reasoning, and Coding Foundation Models | 2025-08 | 2508.06471 | 355B/激活 32B,外加 Air 106B;预训练用 Muon |
| INTELLECT-3: Technical Report | 2025-12 | 2512.16144 | 在 GLM-4.5-Air 上做 SFT + RL,后训练继续用 Muon |
| DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence | 2026-04 | HF 技术报告 | Pro 1.6T / Flash 284B;从 V3 的 AdamW 改用 Muon,列为三大创新之一 |
附注
- Muon 没有独立的 arXiv 论文。引用时通常一并引它的理论基础(2409.20325 / 2410.21265)和规模化报告(2502.16982)。
- 只对二维隐藏层生效:嵌入、输出层、归一化里的增益 / 偏置等仍用 AdamW——既是经验规则,也有"不同层该用不同范数"的理论支撑(第四节)。
- 显存优势:Muon 只存动量一项,优化器状态大约是 AdamW 的一半——在大规模分布式训练中这是显著的节省。
- DeepSeek-V4 已确认:其 2026-04 技术报告明确预训练主优化器是 Muon(V3 仍是 AdamW),是目前规模最大的 Muon 案例。
- 仍待确认的采用者:"部分 Qwen 后训练 / Trinity 等转向 Muon"的说法还缺一手技术报告佐证,故未列入正表;待官方确认后再补。
- 与本博客其他笔记的联系:MuonClip 与 Kimi 体系见 Kimi 系列论文清单;DeepSeek 各代见 DeepSeek 系列论文清单;同样是"先讲原理、再附论文清单"体例的另一篇见 投机采样 / 投机解码。









