LogoAIRosetta

Muon优化器深度解析:矩阵感知如何重塑LLM训练(从Keller Jordan到Karpathy落地)

Github

SummaryMuon(MomentUm Orthogonalized by Newton‑Schulz)由Keller Jordan提出,结合Nesterov动量与Newton‑Schulz正交化,对2D权重矩阵做矩阵感知优化。已被PyTorch 2.11采纳并在Karpathy的nanoGPT/nanochat等项目中广泛应用,常与AdamW混合使用,显著提速、降内存并提升训练稳定性,推动LLM优化器走向结构感知。

2024年底,独立研究员Keller Jordan提出了一种新型神经网络优化器⁠—⁠⁠—⁠Muon(全称MomentUm Orthogonalized by Newton‑Schulz)。这一优化器专为神经网络中的二维权重矩阵(hidden layers的weight matrices)设计,通过将Nesterov动量与Newton‑Schulz正交化迭代相结合,实现了对权重矩阵几何结构的精确优化。2025‑2026年间,Muon迅速在AI社区流行,尤其在安德烈·卡帕西(Andrej Karpathy)的nanoGPT、nanochat、autoresearch等极简项目中被广泛采用,成为当前“速度纪录”(speedrun)训练方案的核心组件。PyTorch 2.11版本已将其正式纳入torch.optim.Muon,标志着这一优化器进入主流框架。

Muon的诞生背景是传统优化器(如AdamW)在处理大型Transformer模型时存在的结构性缺陷。AdamW等优化器将权重矩阵视为一堆独立的标量进行元素级更新,忽略了矩阵作为几何对象的内在结构,导致梯度在不同方向上的相互干扰较大。Muon则将权重矩阵作为一个整体进行优化,通过动量更新后立即进行正交化,使更新方向保持更好的几何性质,从而提升训练稳定性和收敛速度。

Muon的PyTorch实现代码与核心机制解析

Muon的官方实现非常简洁高效。Keller Jordan的GitHub仓库(https://github.com/KellerJordan/Muon)提供了完整代码,PyTorch官方也已集成。核心思想是“先动量更新,再正交化”。

以下是简化后的核心实现(基于官方代码,PyTorch风格):

Python

import torch
from torch.optim import Optimizer
def newtonschulz5(G, steps=5, eps=1e-7):
    """Newton-Schulz迭代实现矩阵正交化"""
    assert G.ndim == 2
    a, b, c = (3.4445, -4.7750, 2.0315)  # Keller Jordan优选多项式系数
    X = G.bfloat16()
    X = X / (X.norm() + eps)
    if G.size(0) > G.size(1):
        X = X.T
    for _ in range(steps):
        A = X @ X.T
        B = b * A + c * A @ A
        X = a * X + B @ X
    if G.size(0) > G.size(1):
        X = X.T
    return X
class Muon(Optimizer):
    def __init__(self, params, lr=0.1, momentum=0.95, nesterov=True, steps=5):
        defaults = dict(lr=lr, momentum=momentum, nesterov=nesterov, steps=steps)
        super().__init__(params, defaults)
@torch.no_grad()
    def step(self, closure=None):
        loss = None
        if closure is not None:
            loss = closure()
for group in self.param_groups:
            for p in group['params']:
                if p.grad is None:
                    continue
                g = p.grad
                if g.ndim != 2:  # 只对2D权重矩阵应用Muon
                    continue
                state = self.state[p]
                if len(state) == 0:
                    state['momentum'] = torch.zeros_like(g)
# Nesterov动量更新
                state['momentum'].mul_(group['momentum']).add_(g, alpha=1 - group['momentum'])
                g = state['momentum'] if group['nesterov'] else g
# Newton-Schulz正交化
                g_ortho = newtonschulz5(g, steps=group['steps'])
# 应用更新
                p.data.add_(g_ortho, alpha=-group['lr'])
return loss

关键解析:

  • Newton‑Schulz迭代:通过5次迭代快速将更新矩阵逼近正交矩阵(operator norm接近1),避免梯度爆炸或消失。
  • 混合使用:实际项目中通常采用Muon + AdamW混合策略⁠—⁠⁠—⁠对二维权重矩阵(attention和FFN层)使用Muon,对bias、embedding等1D参数使用AdamW。
  • 超参数:学习率通常设为0.1左右(远高于AdamW的0.001),动量0.95,Newton‑Schulz步数5步即可收敛。

Muon与AdamW的详细对比

AdamW是目前LLM训练的事实标准优化器,其核心是元素级自适应学习率(基于梯度一阶和二阶矩)。Muon则是一种矩阵感知(matrix‑aware)优化器,两者在以下维度形成鲜明对比:

Figure 1. Optimizer comparison by sample efficiency. [reproducible logs]

1、优化对象:

  • AdamW:将权重视为一堆独立标量,元素级更新。
  • Muon:将2D权重矩阵视为几何整体,先动量更新再正交化。

2、收敛速度:

  • 实验显示,Muon在nanoGPT、CIFAR‑10 speedrun等任务中可将训练速度提升1.35x~2x。
  • 在LLM训练中,Muon + AdamW混合方案往往能以更少步数达到相同loss,部分场景下节省约50%计算成本。

3、内存占用:

  • Muon仅维护一个动量状态,内存开销比AdamW低约33%。
  • 混合方案在保持性能的同时,进一步降低峰值内存。

4、稳定性与泛化:

  • Muon通过正交化减少了谱偏差(spectral bias),使更新更均匀,尤其在重尾分布(heavy‑tailed)任务中表现更好。
  • AdamW在长训练中容易出现梯度尖峰,而Muon的更新更平滑。

5、适用范围:

  • AdamW通用性强,适合所有参数。
  • Muon专为2D权重设计,与AdamW混合使用效果最佳(embedding/bias用AdamW,hidden weights用Muon)。

在具体项目中的使用方式

1、Karpathy的autoresearch项目:

  • 在train.py中,Muon被用作默认优化器之一。
  • 代理可自主修改优化器配置(Muon或AdamW),在固定5分钟预算内运行实验,通过val_bpb指标判断改进效果。
  • 典型代码片段:

Python

from muon import Muon
optimizer = Muon(model.parameters(), lr=0.1, momentum=0.95)

2、nanoGPT / nanochat:

  • 在Karpathy的极简GPT训练项目中,Muon + AdamW混合优化器帮助打破多项速度纪录。
  • 通常对QKV和FFN权重矩阵单独应用Muon,对embedding和bias使用AdamW。

3、大规模LLM训练:

  • Moonshot、Kimi等团队已在千亿参数模型中验证Muon的可扩展性。
  • 混合方案已成为当前最优实践:Muon负责隐藏层几何优化,AdamW负责其余参数的自适应调整。

实际效果与社区反馈

在nanoGPT speedrun中,切换到Muon后训练速度提升约35%。在CIFAR‑10等基准上,Muon也展现出显著优势。社区普遍认为,Muon是自Adam以来优化器领域最重要的创新之一,尤其适合Transformer架构的LLM训练。

总结与展望

Muon优化器以其矩阵感知设计和高效正交化机制,为LLM训练提供了全新选择。它不是完全取代AdamW,而是与之形成高效互补。通过在Karpathy等极简项目中的落地,Muon已证明其在实际训练中的价值。随着PyTorch官方集成和更多大规模验证,Muon有望成为下一代AI训练的标准组件之一。

从元素级优化到矩阵级几何优化,Muon代表了优化器从“通用”向“结构感知”的演进方向。在AI训练成本居高不下的今天,这一创新不仅加速了研究迭代,也为更高效、更绿色的AI基础设施奠定了基础。

▶️ 喜欢这篇内容?创作真的很辛苦!

欢迎关注我们的 YouTube 频道:
AI Rosetta

你的点赞、订阅和分享,是对我们最大的支持!🙏

更多AI新闻请访问: https://www.airosetta.com

CopyrightStatement

Comment

Please login before commenting

NoComments

RelatedNews

LoadingMore

Muon优化器深度解析:矩阵感知如何重塑LLM训练(从Keller Jordan到Karpathy落地) - Airosetta News