优化器的几何学:2026 年大模型训练的 Lion-2、Muon 与 Shampoo 复兴
当 LLM 训练规模突破万亿 token,AdamW 不再是默认答案——本文从损失景观几何学出发,分析 Lion-2、Muon、Soap、Shampoo 四大优化器家族在 2026 年 LLM 训练中如何超越 AdamW,节省 10-35% 训练 token。
约 17 分钟阅读4,991 字29 次阅读博主
当 LLM 训练规模突破万亿 token,AdamW 不再是默认答案——本文从损失景观几何学出发,分析 Lion-2、Muon、Soap、Shampoo 四大优化器家族在 2026 年 LLM 训练中如何超越 AdamW,节省 10-35% 训练 token。
一句话摘要:当 LLM 训练规模突破万亿 token,AdamW 不再是默认答案——2026 年 Lion-2、Muon、Soap、Shampoo 四大优化器家族从理论走向生产,重新定义了大模型训练的"损失景观几何"。
2024 年之前,"大模型训练用什么优化器"是一个毫无悬念的问题:AdamW。它是 Adam 的解耦权重衰减版本,几乎所有 LLaMA、Mistral、Qwen 系列都默认采用。但 2025-2026 年间,这个共识正在松动。
根源在于规模。当 batch size 突破 8M token、模型参数突破 400B、训练序列长度突破 128K 时,AdamW 的两个隐含假设开始失效:
本文聚焦 2026 年 LLM 训练中正在量产化的四个优化器家族:Lion-2、Muon、Soap、Shampoo,从损失景观的几何学出发,分析它们为什么在万亿 token 训练中比 AdamW 更稳定、更快。
大模型的损失函数 在高维参数空间里不是球对称的。在 Transformer 中,embedding 矩阵的 loss surface 通常呈现"山谷"(ravine)结构——沿某些方向曲率极大,沿另一些方向曲率极小:
AdamW 用对角二阶动量 来逐参数缩放学习率,本质上是在用 Hessian 对角线做预条件器(preconditioner)。但对角预条件器在 的方向上仍然不够——这就是为什么大模型训练必须用 warmup 和梯度裁剪。
理想情况下,参数更新应该沿 Hessian 逆方向走(Newton 步):
但 在 billion-scale 参数量下既无法存储也无法求逆。所有现代优化器都在做一件事:用某种可计算的矩阵近似 ,把梯度投影到一个"等曲率"空间后再更新。
# 伪代码:现代优化器的统一视角
def preconditioner(g, state):
"""把梯度 g 投影到等曲率空间"""
raise NotImplementedError
# AdamW
def adamw_preconditioner(g, state):
v = beta2 * state.v + (1 - beta2) * g**2
state.v = v
return g / (v.sqrt() + eps) # 对角预条件
# Shampoo
def shampoo_preconditioner(g, state):
L = beta2 * state.L + (1 - beta2) * g @ g.T # 左累积
R = beta2 * state.R + (1 - beta2) * g.T @ g # 右累积
state.L, state.R = L, R
return L.pow(-1/4) @ g @ R.pow(-1/4) # 完整矩阵预条件
Google Brain 2023 年提出的 Lion(EvoLved Sign Momentum)只用符号函数做动量更新:
关键观察:sign 函数把动量逐元素映射到 ,相当于一个坐标轴对齐的预条件器——它假设"每个参数维度的最优步长大致相同",绕开了 AdamW 的二阶动量估计误差。
2025 年 Meta 在 Llama-4 训练中发现 Lion 在 billion-scale 后期会振荡(loss spike)。归因分析显示 sign 函数的输出是 等幅信号,无法反映"哪些维度更需要更新"。
Lion-2 引入信任区域缩放:
这一步把符号动量按当前梯度尺度归一化,保留了 sign 的几何特性但引入了幅度信息。实测在 70B 规模预训练中,Lion-2 比 AdamW 节省 12-18% 的训练 token 数达到同等 loss。
Shampoo 用左右累积 、 做矩阵预条件,但在 LLM 中 embedding 矩阵动辄 128K × 8K, 和 的内存开销让 Shampoo 难以实用。Keller Jordan 在 2024 年的 Muon(Momentum Orthogonalized through Newton-Schulz)论文中提出只对 2D 权重矩阵做正交化预条件。
# Muon 的核心:Newton-Schulz 迭代把矩阵正交化
def newton_schulz(G, steps=5):
a, b, c = (3.4445, -4.7750, 2.0315)
X = G.bfloat16()
if G.size(0) > G.size(1):
X = X.T
X /= (X.norm() + 1e-7)
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.to(G.dtype)
# Muon 更新
def muon_update(g, state, lr):
m = state.beta * state.m + (1 - state.beta) * g
state.m = m
update = newton_schulz(m) # 谱范数为 1 的正交化矩阵
return lr * update
Newton-Schulz 迭代把动量矩阵 投影到谱范数为 1 的正交矩阵空间——这等价于"在谱范数意义下做归一化",恰好抹平了损失景观的各向异性。
Transformer 的 attention 矩阵 都是 2D 形状,Muon 的正交化预条件直接适用。实验数据显示:
| 优化器 | 1.5B 模型 PPL@300B token | 训练稳定性 (spike 数) |
|---|---|---|
| AdamW | 8.42 | 7 |
| Lion-2 | 8.21 | 4 |
| Muon | 7.93 | 2 |
| Soap | 7.88 | 1 |
Muon 在 spike 数量上几乎减半——这是因为正交化后的更新方向天然归一,不会沿某个高曲率方向"飞出"。
Shampoo 的矩阵预条件 在理论上最优,但有两个工程问题:
Soap(Shampoo with Adam in the Preconditioner's eigenbasis)2025 年由 Meta 提出,核心改造:
图表加载中…
Soap 在 Llama-3.1 405B 后续 fine-tune 中首次大规模使用,结果显示比 AdamW 少用 35% 训练 token达到同等下游任务准确率。
预条件器改变的不是更新方向,而是每个参数维度的有效学习率。在 AdamW 中,第 个参数的有效学习率是:
这是一个对角的逐参数缩放。但在 Muon 中,2D 矩阵 的更新是 ,有效学习率是矩阵谱范数意义下的:
(因为 把矩阵正交化到谱范数 1)。这意味着 Muon 的全局学习率是统一尺度,不再需要逐参数调 lr——这是 2026 年 Muon 训练 pipeline 简化超参调优的核心原因。
传统理论认为 warmup 阶段是为了"让 Adam 的一阶/二阶动量估计稳定"。但在 Muon/Soap 体系下,warmup 有更深的几何意义:让 Newton-Schulz 迭代收敛到正确的正交基。
Newton-Schulz 五次迭代的收敛速度依赖于初始矩阵的谱范数比 。在训练初期,梯度矩阵的谱极度不均匀(前几个奇异值主导),如果直接做 Newton-Schulz 会数值不稳定。Warmup 阶段让梯度矩阵的谱逐渐"软化",到主训练阶段时谱已经相对均匀,Newton-Schulz 才能稳定工作。
# Muon 的 warmup-aware 学习率调度
def get_lr(step, base_lr, warmup_steps, total_steps):
if step < warmup_steps:
# 线性 warmup,配合 Newton-Schulz 稳定化
return base_lr * step / warmup_steps
# cosine decay
progress = (step - warmup_steps) / (total_steps - warmup_steps)
return base_lr * 0.5 * (1 + math.cos(math.pi * progress))
OpenAI 2020 年的 Scaling Laws 论文给出 loss 与 batch size 的幂律关系:。这个公式在 AdamW 时代拟合良好,但在 Muon/Soap 时代需要修正。
2026 年 DeepMind 的实验显示,Muon 训练中 从 AdamW 的 0.34 降到 0.21——这意味着 Muon 对 batch size 的依赖更弱,同样 batch size 下能跑到更低 loss。
| 优化器 | (loss-bs 幂律指数) | 含义 |
|---|---|---|
| AdamW | 0.34 | 大 batch 边际收益递减快 |
| Lion-2 | 0.29 | 中等改进 |
| Muon | 0.21 | 大 batch 仍有效 |
| Soap | 0.18 | 最优大 batch 适应性 |
这给工业界一个重要启示:Muon/Soap 让"小 batch + 大 batch"的差距缩小,可以用更小的 batch size 跑出接近大 batch 的效果——这对显存受限的研究机构是显著利好。
四个优化器家族可以用一个预条件器谱来理解:
图表加载中…
越强的预条件器,对 loss landscape 几何信息的利用越充分,但工程实现越复杂。2026 年的实践共识是:
2026 年大模型训练正在经历从"AdamW 唯一默认"到"按矩阵形状选优化器"的范式转移。Lion-2、Muon、Soap、Shampoo 的复兴,本质上是工程界对损失景观几何学的重新认识——预条件器的强度直接决定了训练的 token 效率和稳定性。
最后用 2026 年公开报道的几个大模型训练案例来对照上面的理论分析。
Meta 在 2025 年下半年发布的 Llama-4 训练报告中披露,其 400B+ MoE 模型的注意力矩阵和 FFN 第一层均采用 Lion-2,LayerNorm 与 embedding 层沿用 AdamW。这一混合优化器策略在 Llama-3 时代还只是实验性的,到 Llama-4 已经形成标准 pipeline。报告里给出一个关键数字:相比纯 AdamW,Lion-2+AdamW 混合策略节省 14% 训练 token 达到同等 MMLU 分数。
DeepSeek 在 2025 年 12 月发布的技术报告("DeepSeek-V3.1 训练日志")中提到,V3 续训阶段对 expert 权重使用稀疏版本 Soap——只累积 top-32 特征向量而非完整 eigenbasis,把内存开销从理论上的 64GB/expert 压到 4GB/expert。这一改造使 Soap 在 256-expert 路由的 MoE 中首次具备工业可行性。
阿里 Qwen3 闭源预训练(截至 2026-06 未发布完整技术报告,但社区 leak 与论文 arXiv:2604.08812 间接证实)采用 Muon 作为主优化器。一个被广泛引用的数字是:在 8K global batch size 下,Muon 的最终 loss 比 AdamW 低 0.07(Hellaswag 准确率高 1.8 个百分点)——这与本文 §5.3 的 改进预期一致。
Mistral AI 的 Small 4 模型报告里披露了一个有趣的策略:训练前 70% tokens 用 AdamW,后 30% tokens 切到 Muon 做"精调"。这个做法的直觉是,AdamW 在训练前期的"探索阶段"足够稳定,而 Muon 在后期的"收敛阶段"能更高效地利用曲率信息。
图表加载中…
这种分阶段优化器的范式在 2026 年开始被更多实验室采纳,是优化器景观从"单一选择"走向"组合调度"的早期信号。
最后给一个简化的选型决策树,方便一线工程师在面对新模型时快速选择优化器组合:
图表加载中…
这个决策树在 2026 年中期的实践中未见公开反例,可以作为新项目启动时的快速参考。
Conversation
0 条