核心判断
这篇论文不是提出新 optimizer,而是重新审计"怎样公平比较 optimizer 的 pretraining 效率"。作者 Kaiyue Wen、David Hall、Tengyu Ma、Percy Liang 通过三阶段 coordinate descent、scaling-sensitive hyperparameter identification 和 hyperparameter scaling law,把 AdamW baseline 和十几种新 optimizer 都调到了近似最优,然后跨模型规模、跨 data-to-model ratio、只看 final checkpoint 做比较。
真正值得记住的三句话:
- 不要相信没有认真调 AdamW baseline 的 optimizer speedup claim。
- Matrix-based optimizer 是当前最有希望的方向,但收益随 model scale 衰减明显——1.2B 只剩约 1.1×。
- Optimizer benchmark 必须独立调参、跨 scale、跨 Chinchilla ratio、看 final checkpoint,并最终回到 wall-clock efficiency。
问题背景
过去两年,至少七八篇论文声称自己的新 optimizer 比 AdamW 快 1.4–2×,包括 Sophia、Muon、SOAP、Mars、Cautious、Scion 等。但工业界除了 Kimi K2 用了 Muon-clip 之外,大部分前沿模型仍坚持 AdamW。这不是"保守"的问题——作者指出过去 benchmark 有三个系统性问题:
问题一:AdamW baseline 没被认真调参
很多 paper 沿用某种 inherited recipe,比如 GPT-3 风格的 learning rate。但作者发现,仅仅把 AdamW 的 learning rate 调好,就可能在 130M 模型上产生接近 2× 的表观加速。如果新 optimizer 精调了但 baseline 没调,2× speedup 可能只是打了弱 baseline。
问题二:共用超参不等于公平
常见的做法是"所有 optimizer 用相同 learning rate / weight decay"。但不同 optimizer 的 optimal hyperparameter 差异极大——AdamW 的 optimal weight decay 约 0.1,Lion 在某些 regime 约 0.6,Kron 甚至约 0.5。固定 LR/WD 不是在保证公平,而是在系统性偏袒某些 optimizer。
问题三:只看 early loss curve 会骗人
很多 optimizer demo 只展示前 10%、20% 的 loss curve。但 loss curves 在 training 中会交叉,尤其在 learning rate decay 阶段。有些 optimizer 前期掉得快但是后期 plateau,有些设置前期看起来差但最终更好。
三阶段 benchmark 方法
论文的核心贡献不是新算法,而是一套严谨的 optimizer benchmark protocol。
Optimizer taxonomy
Scalar-based
按参数元素独立做 update / rescaling,典型实现包括 AdamW、NAdamW、Mars、Cautious、Lion、Adam-mini。它们的核心是每个 scalar 维护自己的历史统计(一阶动量、二阶动量、梯度符号等),更新只靠逐元素操作。
Matrix-based
把权重矩阵当作结构对象,用矩阵乘法做 preconditioning:Muon 用 Newton-Schulz 正交化梯度矩阵;SOAP 结合 Shampoo 的 Kronecker-factored 预条件与 Adam 稳定性;Kron/PSGD 用 Kronecker 分解的二阶动量;Scion 基于 sign descent 做结构化更新。
Phase I: Full Coordinate Descent
对每个 optimizer,定义离散超参网格,一次固定其他参数只扫一个参数,validation loss 有改善就接受新值,多轮重复到收敛。AdamW 扫的维度包括 learning rate、weight decay、min lr ratio、warmup、β1、β2、ε、max grad norm、batch size。覆盖 6 个 regime:130M/300M/520M at 1× Chinchilla + 130M at 2×/4×/8× Chinchilla。
| Stage | LR | WD | Warmup | Max Grad Norm | Batch | Val Loss |
|---|---|---|---|---|---|---|
| Init | 0.008 | 0.1 | 1000 | 1 | 256 | 3.298 |
| Round 1 | 0.008 | 0.1 | 2000 | 1 | 256 | 3.282 |
| Round 2 | 0.008 | 0.1 | 2000 | 1 | 128 | 3.263 |
| Best | 0.008 | 0.1 | 2000 | 2 | 128 | 3.263 |
Phase II: Scaling-Sensitive Hyperparameter Identification
Phase I 后,作者发现只有少数超参随 scale 改变而且显著影响 loss。通过比较同一 optimizer 在不同 regime 下所有 near-optimal configurations 的超参交叠,识别出哪些超参在不同 model size/data size 下需要重新调参。
| Optimizer | Sensitive hyperparameters |
|---|---|
| AdamW | learning rate, warmup, weight decay, batch size |
| NAdamW | learning rate, warmup |
| Muon | learning rate |
| SOAP | learning rate, warmup, block size |
| Kron | learning rate |
| Lion | learning rate, beta2 |
| Mars | learning rate, warmup, beta1 |
| Scion | learning rate, beta1, decay steps |
然后只对这些敏感超参在 300M/520M 的 2×/4×/8× Chinchilla 上做 coordinate descent,极大节省了后续实验成本。
Phase III: Hyperparameter Scaling Law
为了不在 1.2B 上做完整暴力 sweep,作者拟合超参 scaling law:
\[ h(N, D) = \alpha N^{-A}D^{-B} + \beta \]其中 \(N\) 为模型规模、\(D\) 为数据量、\(h\) 为某个 scaling-sensitive hyperparameter。用 Phase I/II 中 12 个 observed setting 的非线性最小二乘拟合参数,然后外推到 1.2B 和 16× Chinchilla overtraining regime。在 1.2B/1× Chinchilla 对 AdamW 的实际验证显示,预测超参的 final loss 与 full sweep 最优相差仅约 3–6e-3。
Speedup 到底是什么?
这篇的 speedup 比较的不是 wall-clock 或 step time,而是token-efficiency speedup:当 optimizer A 用了 \(D_A\) tokens 达到某个 loss,问 AdamW 需要多少 tokens \(D_{AdamW}\) 才能达到同样 loss,然后 speedup = \(D_{AdamW} / D_A\)。作者对 AdamW 先拟合 \(\hat L_N(D) = \alpha_N D^{-B_N} + \beta_N\) ,再反解等效 data budget。
Matrix-based optimizer 的 per-step overhead 在好的实现下可低于 10%,但不等同于完整 wall-clock efficiency——MFU、batch size、communication、sharding、memory、checkpointing 都会影响最终训练成本。
关键证据
真实 speedup 没有 2×
公平调参后,没有 optimizer 达到 2×;最大约 1.4×,且局限于小模型。
Matrix-based optimizers 确实领先
Muon、SOAP、Kron、Scion 在 130M–520M 上整体强于 scalar-based optimizers,达到约 1.2–1.4× token-efficiency speedup。Scalar-based Adam variants(NAdamW、Mars、Cautious)通常只在 1.1× 附近。
Speedup 随模型规模衰减
130M
Matrix-based optimizers 最高约 1.3–1.4×。
300M / 520M
仍有优势但开始下降。Muon 在 low-Chinchilla 最强,SOAP/Kron 在高数据量时反超。
1.2B
仅约 1.1×。Muon/SOAP 不再显著超过 NAdamW,downstream benchmark 平均没有显著提升。
作者基于 scaling law 预测,到 7B/1× Chinchilla,Muon 可能不一定优于 AdamW。这不是实验证明,但说明 matrix optimizer 优势不会自然扩大。
Winner 随 data-to-model ratio 改变
低 Chinchilla ratio(1–4×)
Muon 往往最强。矩阵正交化在小数据预算下提供显著优化帮助。
高 Chinchilla ratio(8–16×)
SOAP / Kron 超过 Muon。在 130M 16× Chinchilla 下,Muon 甚至被 NAdamW 超过。作者推测 SOAP / Kron 维护了更丰富的二阶动量或矩阵统计,在长时间 overtraining 下对参数方向异质性的适应更强。
1.2B 下游 benchmark 对比
| Optimizer | LAMBADA | OpenBook | Wino | PIQA | BoolQ | WSC273 | Hella | ARC-C | ARC-E | COPA | Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AdamW | 67.16 | 41.40 | 64.96 | 76.12 | 68.59 | 82.78 | 67.56 | 43.43 | 74.49 | 85.00 | 67.15 |
| NAdamW | 67.84 | 40.20 | 64.80 | 77.15 | 68.10 | 83.52 | 67.40 | 43.34 | 73.61 | 81.00 | 66.70 |
| Muon | 67.53 | 39.80 | 67.09 | 77.09 | 68.81 | 80.95 | 67.67 | 43.34 | 73.53 | 84.00 | 66.98 |
三个 optimizer 的下游平均值几乎相同,这再次说明 1.2B 级别上 optimizer 差异不是决定下游性能的主要因素。
W&B 详尽实验报告中的额外发现
作者在 W&B report 中记录了论文主文不一定充分展示的中间观察。
Sophia 在 fully randomized dataloader 下表现如何
论文 appendix 有 Sophia experiments。作者的判断:Sophia 原论文在某些方面调 baseline 比较认真,但原 codebase 的 dataloader 没有充分随机化,导致 AdamW 的 optimal peak LR 和 fully randomized setting 不同。在作者自己的设置下,Sophia 对 <0.5B 模型没有显著 speedup。这不是否定 Sophia 的价值,而是说明 optimizer benchmark 对 dataloader、shuffle、LR、schedule 等细节高度敏感。
术语解释
Chinchilla optimal
由 Hoffmann 等人在 2022 年提出的 scaling law:给定 compute budget,模型规模和训练 token 数的最优比例约为每个 parameter 20 tokens。n× Chinchilla 表示用 n 倍最优 token 数训练。
Coordinate descent
通过一次固定除一个外的所有超参、扫那个超参的网格、接受改善、然后切换下一个超参的方式迭代找到局部最优超参组合。
Scaling-sensitive hyperparameter
不仅影响 final loss、而且 optimal value 会随模型规模或数据量变化的超参。非敏感超参可以固定,节省后续实验成本。
Token-efficiency speedup
指达到同等 validation loss 所需 token 数的减少倍数,不是 wall-clock time 或 step count。
Newton-Schulz iteration
Muon 的核心操作:通过对梯度矩阵做 5 次固定系数矩阵多项式迭代,近似计算矩阵的正交化/规范化。
Variance-reduced Adam variant
对 AdamW 的梯度估计做方差缩减的变体,如 NAdamW 用 Nesterov lookahead、Mars 用基于迭代的 variance reduction、Cautious 用 mask 机制过滤高噪声梯度元素。
工程 / 研究启发
对 LLM 训练工程
- 先建立强 AdamW / NAdamW baseline,不要拿默认 recipe 就开始比。
- 每个 optimizer 单独调参,尤其 LR、WD、warmup、batch size、block size。
- 只用 final checkpoint 排名。early loss 只能 debug,不能做结论。
- 小模型筛选后必须在目标 scale 附近验证。130M winner 不代表 1.2B winner。
- 低 Chinchilla ratio 可重点试 Muon;overtraining / 高 data-to-model ratio 可重点试 SOAP/Kron。
- 生产决策必须加 wall-clock / MFU / memory。token efficiency 不等于省钱。
对 optimizer 研究
- 接受 AdamW 作为强 baseline。新 optimizer 论文的核心要求不是"比比自己调的 AdamW",而是"比也比同 budget 认真调的 AdamW"。
- 展示 hyperparameter robustness。best-tuned 强 + single-param mismatch 弱 = 高风险。
- 设计 scaling-law-aware optimizer。小模型上能赢的 optimizer 很多,能在大模型上保持收益的才是稀缺品。
这篇论文的真正 insight
边界与风险
最大只到 1.2B
不代表 7B、70B、MoE、frontier-scale pretraining。"speedup 缩小到 1.1×"是真实实验观察,但到更大规模是 scaling law 外推预测而非直接实验。
Token efficiency ≠ wall-clock efficiency
论文比较的数据预算等效加速,不等于 GPU-hour 或 wall-clock。Matrix optimizer 的 step overhead、MFU、batch size constraint、communication cost 可能部分抵消 token 层面的收益。
Coordinate descent 不是全局最优
比手动调参严谨很多,但不是 Bayesian optimization 或 exhaustive search。可能存在未覆盖的超参组合。
架构和数据较单一
主要是 LLaMA-like dense decoder-only。不一定适用于 MoE、encoder-decoder、diffusion、RL post-training 等场景。
实现差异可能改变结论
Matrix optimizer 对实现高度敏感。不同 kernel、sharding、precision 下,结论可能不同。
和 concurrent work 的差异
Semenov 等人的同期 benchmark 在 130M 上发现 AdEMaMix/Mars 优于 Muon。经初部分析,差异很可能来自 batch size:Semenov 用 0.1M tokens batch,这篇用 ≥0.4M tokens batch,源于不同的硬件 regime(128 TPU-v5lite ≈ 12 H100 对比 H100 单/双节点)。
证据边界与资料索引
本文分析基于 arXiv 正式论文 v2(108 页)、作者 W&B 详尽实验报告、GitHub issue #1290 实验索引、GitHub issue #725 前置 AdamW scaling law 方法、ASAP seminar slides 和 X 原帖。附录中包含超过 180 张 hyperparameter ablation table 和 8 个额外 figure,因篇幅不在此展开。W&B report 包含多张实验 panel chart,可通过下方链接在浏览器中查看。
未确认 / 需要后续验证:论文基于 scaling law 的 7B Muon vs AdamW 预测;不同分布式实现(GPU vs TPU、不同 batch size regime)下 optimizer ranking 是否稳定;16× Chinchilla + 1.2B 组合的直接实验证据。
- X 原帖:https://x.com/iScienceLuvr/status/1963168542872014943
- arXiv 论文:Fantastic Pretraining Optimizers and Where to Find Them
- W&B 详尽实验报告:https://wandb.ai/stanford-mercury/optimizer-scaling/reports/Fantastic-Optimizers-and-Where-to-Find-Them
- W&B runs(约 4,900 个实验 run):https://wandb.ai/marin-community/optimizer-scaling
- GitHub issue #1290(实验计划与代码索引):https://github.com/marin-community/marin/issues/1290
- GitHub issue #725(AdamW hyperparameter scaling law 前身):https://github.com/marin-community/marin/issues/725
- Marin repo experiment code:https://github.com/marin-community/marin/tree/kaiyue/optimizers
- ASAP seminar slides:https://asap-seminar.github.io/assets/slides/Fantastic_Pretraining_Optimizers_and_Where_to_Find_Them.pdf
- 连续 work:Semenov et al. Benchmarking Optimizers for LLM Pretraining:https://arxiv.org/abs/2509.01440
- OpenReview page:https://openreview.net/forum?id=2J51qUZ0iG