AB
AiBoss站
百科

什么是 Muon 优化器(Muon Optimizer)?一种基于矩阵正交化的神经网络训练优化方法

Muon 优化器(Muon Optimizer)是一种对动量更新做 Newton-Schulz 正交化的优化器,由 Moonshot AI 提出,主要用于线性层的权重矩阵更新,非线性参数仍交给 Adam 处理。arXiv 论文称其在计算最优训练下相较 AdamW 约有 2 倍计算效率,并给出 3B/16B MoE 模型 Moonlight 的验证;NVIDIA 官方文档则说明其在 NeMo RL 中的接入方式与限制。

Muon 优化器(Muon Optimizer,全称 MomentUm Orthogonalized by Newton-schulz)是一种用于训练神经网络的优化器,其核心做法是对基于动量的更新施加 Newton-Schulz 正交化,再用于更新权重矩阵。据 NVIDIA 官方文档描述,它由 Moonshot AI 提出,目标是获得比 AdamW 更高的样本效率,并帮助防止权重矩阵在训练过程中条件数变差。它要解决的问题是:在大规模语言模型训练中,AdamW 一类逐元素自适应优化器虽然稳定通用,但对矩阵型参数的更新缺乏结构性约束,样本效率与计算效率仍有改进空间。

为什么重要

在 Muon 出现之前,训练大语言模型的主流选择是 Adam 及其变体 AdamW。这类优化器为每个参数单独维护一阶与二阶动量,按元素缩放更新步长,工程实现成熟、对超参数相对宽容,因而被广泛用于预训练与后训练。但其代价是:优化器状态占用显存较大,且更新方向是逐元素的,并不直接考虑权重矩阵整体的谱结构。

Muon 的出发点不同。arXiv 论文《Muon is Scalable for LLM Training》指出,基于矩阵正交化的 Muon 此前已在小型语言模型训练中展现出较强结果,但能否扩展到更大模型并未得到证明。该论文识别出扩展 Muon 的两个关键技术:加入权重衰减(weight decay),以及仔细调整逐参数更新尺度(per-parameter update scale)。论文称,这两项技术使 Muon 无需额外超参数调优即可在大规模训练中开箱使用;其缩放律实验表明,在计算最优训练下,Muon 相较 AdamW 取得约 2 倍的计算效率。这些结论来自该论文的实验设定,属于论文作者的主张,而非行业统一结论。

从工程角度看,Muon 的意义还在于它给出了一个可落地的混合方案:矩阵型参数用 Muon,其余参数仍用 Adam。NVIDIA 官方文档明确写道,Muon 用于线性层,而非线性参数(嵌入、层归一化)由 Adam 处理。这种分工降低了替换整个优化器栈的风险。

工作机制

按 NVIDIA 官方文档与论文的描述,Muon 的核心机制可以拆成以下几个要点:

  • 动量累积:与常见优化器一样,Muon 先对梯度做动量累积,得到动量矩阵。NVIDIA 文档给出的配置项中包含动量系数(muon_momentum)与是否启用 Nesterov 动量的开关(muon_nesterov)。
  • Newton-Schulz 正交化:对动量更新矩阵施加 Newton-Schulz 迭代,将其近似正交化。文档称这一步有助于防止权重矩阵在训练中变得条件不良(poorly conditioned)。文档中的 muon_num_ns_steps 参数即控制 Newton-Schulz 迭代步数。
  • 更新尺度调整:论文将「仔细调整逐参数更新尺度」列为扩展 Muon 的关键技术之一。NVIDIA 文档中对应有 muon_scale_mode(示例取 spectral)与 muon_extra_scale_factor 等配置项。
  • 权重衰减:论文将加入权重衰减列为另一项关键技术;文档的示例 YAML 中同样出现 weight_decay 配置。
  • 与 Adam 分工:Muon 只负责线性层等矩阵型参数,嵌入与层归一化等非线性参数仍由 Adam 更新。

在 NVIDIA NeMo RL 中,Muon 通过 Megatron 后端接入,配置项写作 dist_muon。文档同时给出若干限制:Muon 仅支持 Megatron 后端;precision_aware_optimizer、distributed_optimizer 与 overlap_param_gather 均不受 Muon 支持,需要关闭。文档还说明,NeMo-RL 中的 Muon 支持属于实验性功能。

典型例子

论文给出的代表性系统是 Moonlight:一个 3B/16B 参数的混合专家(Mixture-of-Expert, MoE)模型,使用 Muon 训练了 5.7T token。论文称该模型改善了当时的帕累托前沿,相比此前模型以更少训练 FLOPs 取得更好表现;论文同时开源了其分布式 Muon 实现,称其显存最优且通信高效,并放出了预训练、指令微调与中间检查点。

NVIDIA 官方文档给出的例子是在 NeMo RL 中用 Muon 做监督微调(SFT)。文档称已用 Adam 预训练的模型上测试了 Muon 用于 SFT 与强化学习(RL)的情形;虽然 Muon 预期在预训练与后训练同时使用时收益最大,但文档称仅在 post-training 阶段应用 Muon 也观察到了小幅改进。文档以 Qwen3-235B-A22B 上的 SFT 对比作为示例,并给出了完整命令,其中包含 16 个节点、每节点 8 块 GPU、流水线并行度 8、专家并行度 8 等设置。这些结果出自 NVIDIA 文档自身的实验,属于该文档的陈述。

边界与常见误解

第一,Muon 不是「全参数通吃」的优化器。按 NVIDIA 文档,它用于线性层,嵌入与层归一化等非线性参数仍由 Adam 处理;把它理解为可以整体替换 Adam 的方案并不准确。

第二,Muon 的可扩展性结论有明确出处。此前 Muon 只在小型语言模型上展现出较强结果,扩展到更大模型是由 arXiv 论文通过权重衰减与更新尺度调整两项技术加以论证的;论文报告的约 2 倍计算效率是在其计算最优训练设定下与 AdamW 的比较,不应外推为任意模型规模、任意训练配方下的普遍结论。

第三,工程接入存在约束。NVIDIA 文档明确 Muon 仅支持 Megatron 后端,且与 precision_aware_optimizer、distributed_optimizer、overlap_param_gather 不兼容;文档还标注 NeMo-RL 中的 Muon 支持为实验性。这意味着在既有训练栈中启用 Muon 需要调整并行与优化器配置,而非只改一个开关。

第四,容易把「正交化」误解为某种正则化技巧。按文档描述,Newton-Schulz 正交化作用于动量更新本身,目的是改善权重矩阵的条件状况;它与权重衰减是两项并列的技术,论文将二者都列为扩展 Muon 的关键。

最后,Muon 的已知代价包括:需要额外的 Newton-Schulz 迭代计算(文档以 muon_num_ns_steps 控制步数),以及为兼容性而放弃部分分布式优化器特性。这些取舍在文档的配置说明中有直接体现。

参考资料