本篇导读:在第六篇中,我们借助计算图与反向传播(Backpropagation)四大矩阵方程,以约等于一次前向传播的极低算力代价,成功求出了深层神经网络全网百万级参数的精确偏导数 。然而,“算得出梯度”仅仅是深度学习万里长征的第一步——如何利用这组充斥着抽样噪声、且在不同参数维度上曲率相差成千上万倍的梯度去安全高效地更新权重,直接决定了百亿乃至万亿参数大模型能否收敛。本篇作为连接经典神经网络与现代大模型(LLM)预训练工程的专题枢纽,将沿着优化器半个世纪的演进脉络层层深潜:首先从海森矩阵条件数与 Mini-batch 抽样方差出发,严格证明为什么一阶动量(Momentum)的历史指数移动平均比单步最新梯度更可信;随后拆解从 AdaGrad、RMSProp 到统治深度学习十年的 Adam 方程,算清冷启动偏差校正(Bias Correction)背后的防炸炉数值账,并揭示其“平滑符号梯度下降(SignSGD)”的几何本质;接着复盘 ICLR 2019 改变大模型历史的隐秘补丁——为什么在自适应优化器中 正则化不等价于权重衰减(Adam vs. AdamW);最后直击 2025 年大模型领域的最新范式跃迁,剖析为什么 AdamW 将二维矩阵碾碎为标量格子会引发“低秩更新瓶颈”,以及 Muon 优化器(基于牛顿-舒尔茨迭代的矩阵正交化动量法) 与 月之暗面(Moonshot AI)的大模型扩展定律 是如何将整个权重矩阵的奇异值谱拉平为 、锁死谱范数爆炸,从而在万亿参数模型上首次撼动 AdamW 十年统治地位的。
1. 高维损失地形的“病态峡谷”与一阶动量(Momentum)的滤波机理
1.1 为什么深度网络的损失曲面注定是“狭长病态峡谷”?
在第一站附录 E中,我们曾推导过梯度下降收敛的步长生死红线:对于局部曲率由海森矩阵(Hessian Matrix,二阶偏导数矩阵 )描述的损失表面,学习率 必须严格小于最大曲率特征值 的两倍倒数:
在只有几个特征的浅层逻辑回归里,不同参数维度的曲率相差不大(),等高线接近正圆,梯度向量 直接指向圆心最优解 。然而,当进入多层神经网络与大语言模型后,上亿个参数分属截然不同的网络层级与语义通道:
- 某些敏感方向(如靠近输出层的权重或高频共现特征)稍微拨动 ,Loss 就会剧烈暴涨,对应极大的曲率特征值 (南北方向是万丈悬崖);
- 另一些长尾方向(如深层隐式交互特征)拨动 ,Loss 才缓慢下降一点点,对应极微弱的曲率特征值 (东西方向是平缓河床)。
在数值优化理论中,最大特征值与最小特征值之比被称为条件数(Condition Number):
为什么条件数 高达 时,损失地形会变成一条极度狭长的病态峡谷(Ill-conditioned Ravine)?我们可以从几何等高线与物理成因两个角度一眼看穿:
- 几何直觉(画一条海拔 米的等高线):设谷底附近的二次损失碗为 ,其中东西方向极平缓(),南北方向极陡峭(,即 )。令海拔 ,得到等高线椭圆方程: 这意味着:往东西方向要足足走出 ,Loss 才升高 ;而往南北方向哪怕只歪出 (),Loss 就已经飙升了 !且在相同偏移量下,南北陡壁推你的梯度力道()是东西河床()的整整一万倍。
- 物理成因(为什么不同参数的陡峭度会差一万倍?):由于二阶导数正比于输入信号能量(),在真实网络中,输入特征的量纲悬殊(如“毫米级面积 ” vs. “房间数 ”)、自然语言词频的幂律分化(每句必现的高频词 vs. 万句一遇的生僻词),以及深层网络上下游的矩阵连乘杠杆效应,都会天然造就这种“一边是消防栓、一边是滴灌阀”的极端曲率比。
图:海森矩阵条件数 的几何意义对比。左图(各向同性正圆碗,): 与 方向曲率相等,等高线为标准正圆,负梯度径直指向圆心最优解 ;右图(高条件数病态峡谷,):东西方向平缓(,走出 才升高 )、南北方向极陡(,仅歪出 即飙升 ),等高线被压扁为长宽比 的细缝,导致局部梯度几乎全部指向南北陡壁并引发剧烈震荡。
面对如此悬殊的峡谷地形,最朴素的随机梯度下降(Vanilla SGD,)立刻陷入两难死局:
- 步长受制于最陡峭方向:为了不在南北陡壁上因跨步过大而发散炸炉(跨越 红线),全局学习率 被迫锁死在一个极小的数值;
- 推进速度受制于最平缓方向:在极小的学习率 下,沿着东西谷底方向每一步的推进量仅为 ,参数在南北崖壁之间来回剧烈锯齿反弹,向谷底出口的净位移却慢如蜗牛。
1.2 动量法(SGD with Momentum):给参数装上物理惯性账本
为了打破“局部梯度垂直于等高线、一味指向两侧陡壁”的几何魔咒,Polyak(1964)与 Sutskever 等人(2013)从经典力学中借来了一个极其优雅的物理模型:把参数看作一颗从山坡滚下的沉重实心铁球,维护一个累积历史速度向量 (工业界现代实现多采用指数移动平均 EMA 形式):
其中 为第 步基于当前小批量样本(Mini-batch )求出的瞬时梯度, 为动量记忆衰减率(常取 )。将递推式一直向历史起点 (设初速度 )展开,可以清晰看到 的真身:
图:一阶动量(Momentum EMA)的双重提纯机理。左图:单步瞬时梯度 同时遭受“狭长峡谷南北陡壁反弹(高频正负交替 )”与“Mini-batch 随机抽样噪声”的双重污染,方向剧烈摇摆;右图:经过指数衰减窗口()加权累加后,正交陡壁上的正负震荡分量与零均值抽样噪声自动相消归零,唯有长期保持同向的谷底真实主趋势(红色箭头)被完整保留并加速推进。
1.3 核心辨析:为什么“老梯度攒出的惯性 ”比“脚下刚算出的最新梯度 ”更可信?
初看动量公式 ,一个最自然的直觉质疑是:“当前脚下刚算出来的 明明是最新的局部测量值,凭什么过去几十步攒出来的旧方向 占了 的话语权,反而比最新梯度更准?”
答案在于:在随机深度学习中,单步瞬时梯度 同时是一个“几何近视眼”和“统计噪声源”,而指数移动平均(EMA)恰好是一台完美的时域低通滤波器(Low-pass Filter):
- 几何视角:正交高频震荡的正负湮灭与低频谷底趋势的同向共振
不妨将瞬时梯度分解为垂直于谷底的陡壁分量 与平行于谷底的前进分量 :
- 在陡壁方向上,参数每跨过一次谷底中心线,梯度符号就发生一次反转:。单看任何一步的最新梯度,它都在逼你往墙上撞;但放进动量累加器 后,相邻两步的一正一负瞬间相互抵消: 也就是说,高达 的横向撞墙震荡被直接抹平!
- 相反,在谷底前进方向上,虽然每一步的分量很微弱(如恒为 ),但因为方向始终一致,在几何级数求和下:
- 统计视角:Mini-batch 抽样方差折减定理(方差直降 19 倍) 训练大模型时,总语料库有数万亿个 Token,但每一步计算 只随机抽取一个极小的 Mini-batch(例如 条样本)。因此,单步梯度 可以建模为“真实全局梯度 ”加上“零均值随机抽样噪声 ”(): 如果直接用 更新,每一步都承受着完整的方差冲击 。而当我们对独立同分布的噪声序列做指数移动平均时,动量 的稳态抽样方差为: 代入 ,抽样方差瞬间被压缩为原来的 !换言之,维护一个 的历史动量账本,在统计信噪比上等价于不花一分钱额外算力,免费将每个 Mini-batch 的样本量扩大了 19 倍!
- 动态适应视角:指数遗忘的有效记忆半衰期 “依赖老梯度”并不意味着死抱一万步前的过时方向不放。由于权重 随步数差 呈指数级衰减,历史梯度的有效记忆窗口长度(Effective Memory Horizon)约为: 当 时,有效记忆仅聚焦于最近约 步( 步前的梯度权重 , 步前已衰减至 )。一旦山谷地形发生真实转向,连续 步同向的新梯度便会迅速覆盖旧惯性,完成平滑过弯。
深度附注:Nesterov 加速梯度(NAG,“先迈惯性步、再看脚下坡”) 1983 年,苏联数学家 Yurii Nesterov 指出标准动量法有一个小瑕疵:既然铁球已经注定要顺着历史惯性 往前冲一步,为什么还要在当前旧位置 测算梯度,而不直接去惯性即将抵达的前方预判点 测算梯度呢? 由此导出 Nesterov 动量(NAG)——在预判点计算梯度 。如果前方即将冲上对面陡坡,预判梯度会提前反向报警并及时踩下刹车,将凸优化的收敛速率从 一举提升至理论最优界 。
2. 标量级自适应的加冕 —— 从 AdaGrad、RMSProp 到 Adam 的数学构造
2.1 对角曲率自适应的渴望:如何不求逆矩阵就驯服条件数 ?
一阶动量虽然利用历史方向的“正负相消”缓解了锯齿震荡,但它依然有一个根本局限:所有上亿个参数维度依然共用同一个标量学习率 。
在数值分析中,消除峡谷曲率差异的终极武器原本是牛顿法(Newton's Method):直接用海森矩阵的逆 左乘梯度,即 。在理想对角海森矩阵 下,第 个维度的步长被自动缩放为 ——陡峭方向( 大)步长自动缩小,平缓方向( 小)步长自动放大,椭球峡谷瞬间被拉回标准正圆(条件数 )!
然而,对于拥有 (千亿)参数的大模型,海森矩阵 的大小为 ,光存储就需要 字节,求逆更是 的天文数字。于是,2011 年至 2014 年间,深度学习界开启了一场“仅利用一阶梯度平方 来廉价估算每个坐标轴曲率尺度”的接力赛:
- AdaGrad(Duchi et al., 2011)—— 累计平方和与“步长早衰症”:
直接将每个参数维度从训练第 步至今的所有历史梯度平方累加起来:,更新步长除以 。
- 功绩:首次实现了稀疏特征大步走、高频特征小步走的坐标轴自适应;
- 死穴:因为 只增不减,随着训练步数 推移,分母 单调递增趋向无穷大,导致有效学习率 过早归零,模型在抵达谷底前就彻底“冻死”在半山腰。
- RMSProp(Hinton, 2012)—— 引入指数遗忘窗口复活步长: Hinton 在课程讲义中一针见血地指出:要把死板的无限累加改成指数移动平均(EMA)!引入二阶衰减率 (常取 或 ): 这样分母 反映的不再是“建国以来的历史总能量”,而是“最近一段窗口内梯度的均方根(Root Mean Square, RMS)幅度”,一旦进入平坦地形, 会随之变小,学习率得以重新放大。
2.2 Adam(Adaptive Moment Estimation, 2014)的完整方程
2014 年底,Diederik Kingma 与 Jimmy Ba 将一阶动量(Momentum,管方向滤波)与二阶均方根自适应(RMSProp,管单轴步长缩放)合二为一,并补上了至关重要的冷启动偏差校正(Bias Correction),正式提出了统治深度学习十余年的 Adam 优化器。
对于参数向量(或展平后的矩阵标量元素),在给定超参数 (学习率)、(一阶动量系数)、(二阶方差系数)及数值稳定常数 下,Adam 每一步按顺序执行以下四道方程:
2.3 深度追问:为什么方程三的“冷启动偏差校正”生死攸关?
许多教材在介绍 Adam 时,往往把方程三 当作无关痛痒的数学洁癖一笔带过。事实上,如果在训练初期漏掉方程三,大模型在开局前 10 步就会遭遇高达数十倍的异常步长冲击!
我们来算一笔极其直观的数值账。由于在训练开始前,一阶账本和二阶账本都被初始化为全零:。考察训练的第一步(),代入标准超参 :
- 未校正的一阶动量:(只有真实梯度的 !);
- 未校正的二阶能量:(只有真实梯度平方的 !)。
此时,如果不做偏差校正,直接拿 和 相除更新参数(忽略极小的 ): 如果在某些常见配置下只对二阶项采用了 或动量预热不匹配,分母 的微缩效应甚至会让开局第一步的实际有效步长暴涨 倍!在神经网络参数尚处于随机初始化的脆弱期,开局猛踹一脚数倍于正常学习率的巨步,极易直接把激活值踹进饱和死区或引发梯度爆炸。
而除以修正因子 与 后(严格数学期望证明见附录 A.1):
- 在 时:,,第一步更新量精准回归 ;
- 当训练步数 (如 步)时,,分母 ,偏差校正项功成身退、自动隐身。
2.4 Adam 的隐藏几何身份:带平滑阻尼的符号梯度下降(Smoothed SignSGD)
仔细审视 Adam 的最终更新步:。 假设在某一段局部地形上,某参数维度的梯度大致稳定在 。那么其一阶均值 ,二阶平方均值 ,开根号后分母恰好是梯度的绝对值 !于是分子分母相除:
这一视角瞬间揭开了 Adam 的神秘面纱:
- 在普通 SGD 中,更新步长与梯度大小成正比(),梯度差一万倍,步子就差一万倍;
- 在 Adam 中,分子是梯度的一阶期望 ,分母是梯度的二阶均方根 。通过把每个标量参数除以它自身的历史均方根幅度,Adam 本质上是一个“带信噪比阻尼的符号梯度下降(Damped SignSGD)”!
- 当该维度梯度方向稳定、信噪比高时(),无论原始梯度是 还是 ,Adam 都果断迈出恒定大小的单位步长 ;
- 当该维度正处于峡谷底部剧烈正负摇摆、信噪比极低时(均值 ),比值 ,Adam 自动把步长缩减为零,稳稳停在谷底!
3. 统治大模型十年的隐秘手术 —— 为什么 正则化在 Adam 里失效了?(Adam vs. AdamW)
3.1 困扰学界三年的悬案:为什么原版 Adam 泛化不如 SGD?
2015 年至 2018 年间,深度学习界出现了一个令无数研究者费解的怪象:
- 在训练收敛速度上,Adam 吊打普通 SGD;
- 但在 ImageNet 图像分类(如 ResNet)等核心基准测试中,用“原版 Adam + 正则化”训出来的模型,其最终测试集准确率总是比“SGD + Momentum + 正则化”低上 !以至于当年流传着一句炼丹行话:“发论文刷榜必须用 SGD,Adam 只配用来快速调通 Demo。”
为什么一模一样的 正则化,在 SGD 里能完美抑制过拟合,到了 Adam 里就突然失灵了?
3.2 Loshchilov & Hutter (ICLR 2019) 的惊天破案: 正则化 权重衰减!
回顾我们在第二站推导过的贝叶斯最大后验估计(MAP):对参数施加零均值高斯先验 ,等价于在原始损失函数 上加上一项二次惩罚 :
在普通 SGD 中,将带正则项的梯度 代入更新公式: 因为这个恒等变形过于顺滑,整整三十年里,所有深度学习框架(PyTorch / TensorFlow)的开发者都想当然地认为:“给参数做权重衰减(Weight Decay),就是在求导后把 直接加进梯度 里!”
2019 年,Ilya Loshchilov 与 Frank Hutter 在 ICLR 经典论文《Decoupled Weight Decay Regularization》中指出:这个等价关系只在普通 SGD 中成立;一旦进入除以 的自适应优化器(Adam),把 加进梯度里会引发灾难性的正则化畸变!
图:原版 Adam(耦合 正则化)与 AdamW(解耦权重衰减)的计算流及几何收缩对比。左栏(Adam + ):惩罚项 先与梯度 混加,随后一并进入自适应分母除以 ,导致历史梯度大的活跃权重( 大)反而几乎不受正则化约束,等比例球面收缩彻底扭曲;右栏(AdamW):权重衰减 绕开自适应分母直接作用于参数本身,使所有维度恢复一视同仁的向心高斯先验收缩。
我们可以用两行代数式看穿这场事故的本质(完整证明见附录 A.2):
- 错误做法(原版 Adam + 耦合正则):
先令 ,再送入 Adam 的一阶和二阶账本,最终在更新时整个分子都被除以了自适应分母 :
看看最后一项发生了什么:
- 如果某个权重 历史梯度非常剧烈(),它的权重衰减力度直接变成了 ——最活跃、最容易过拟合的大梯度参数,反而逃脱了正则化惩罚!
- 反过来,如果某个权重历史梯度极小(),它的衰减力度瞬间被放大了 倍,被无情地按死在 上!这完全背叛了第二站各向同性高斯先验 对所有参数一视同仁施加向心引力的初衷。
- 正确做法(AdamW —— 解耦权重衰减 Decoupled Weight Decay): 不碰损失函数,也不污染梯度 (一阶账本 和二阶账本 只记录纯净的任务损失梯度 );在最后迈步更新参数时,把纯粹的权重衰减项 单独拎出来直接减掉:
就这看似微不足道的一步“把 从分母 里搬出来”,不仅让 AdamW 的泛化性能瞬间追平甚至反超 SGD,更使学习率 与权重衰减率 彻底解耦(调大 时不再需要联动重调 )。自 2019 年起,AdamW 正式加冕为全人类训练 Transformer 大模型(GPT-3/4、Claude、Llama 1/2/3、DeepSeek-V3/R1)的绝对统治级工业底座。
3.3 工业界拷问:为什么 OpenAI 与 Anthropic 在千亿大模型时代被“锁死”在 AdamW 里?
既然学术界每年都在发表数十种新优化器,为什么直到 2025 年初,几乎所有顶级大模型实验室依然雷打不动地使用 2014/2019 年的 AdamW?这背后有三本沉重的工业界工程账:
| 维度 | 大模型预训练的真实工程约束与 AdamW 护城河 |
|---|---|
| 1. 千亿模型“炸炉”的巨额沉没成本 | 训练一个千亿/万亿参数模型需在上万张 GPU 上连续运转数月,单次成本高达数百万至数千万美元。许多学术界新优化器(如早期激进的符号优化器或近似二阶法)在 1 亿参数小模型上收敛飞快,但一旦放大到百亿规模、跑过数千亿 Token 后,往往因某个矩阵奇异值悄然失控而突然触发激活值溢出(Loss Spike / NaN 炸炉),工业界负责人根本赌不起。 |
| 2. 十年炼丹配方的“强耦合生态锁死” | 过去十年,整个大模型界摸索出的全套基础设施——余弦退火学习率调度(Cosine Schedule)、Warmup 预热步数、梯度裁剪阈值(grad_clip = 1.0)、混合精度 FP16/BF16/FP8 缩放策略、乃至 Chinchilla Scaling Laws 的算力分配公式——全部是围绕 AdamW 的更新动力学标定的。更换一个脾气迥异的优化器,意味着全套超参数要烧掉几百万美金重新网格搜索。 |
| 3. AdamW 沉重的显存代价(16 Bytes/Param 账本) | 尽管稳健,AdamW 也有一个令大模型工程师肉痛的缺点:它太吃显存了!为了防止低精度下舍入误差吞噬微小更新,混合精度训练必须用 FP32(4 字节)维护:主权重 (4B)+ 梯度 (4B)+ 一阶动量 (4B)+ 二阶方差 (4B)= 每参数 16 字节(即便梯度用 BF16 也需 14B)。对于一个 70B(700 亿参数)的模型,光优化器状态 就要吃掉 显存,比模型本身(BF16 仅 140 GB)还要庞大四倍! |
深度附注:大模型的“超参数驾驶舱”是经验值吗?随模型变大如何演化? 在大模型预训练中,控制优化器如何迈步的核心超参数可分为“全行业固化常数”与“随规模幂律演化的动态旋钮”两类:
- 基本固化的行业常数(跨规模通用):
- 一阶动量 (有效窗口约 步);
- 二阶方差 (早期小模型常取 即记 步;但大模型语料偶发脏数据引发巨型梯度 Spike,若取 会使分母 持续膨胀上千步导致训练停滞,故现代 LLM 普遍改取 即仅记最近 步以快速恢复);
- 全局梯度裁剪
grad_clip = 1.0与 权重衰减率 。- 随模型变大剧烈改变的生死旋钮(峰值学习率 与批次大小 ):
- 铁律:模型越宽越深,峰值学习率 必须越小! 因为隐藏层线性求和 中,单步权重更新 对激活值的扰动会随层宽 和层数 累加放大。以 GPT-3 至 Llama-3 真实训练配置为例:
125M小模型取7B降至70B降至405B压低至 。- 小模型“风洞外推法”(Hyperparameter Scaling Laws & ):大厂绝不会在千亿模型上直接烧钱试错,而是先在
10M~1B的极廉价小模型上密集网格搜索,拟合出最优超参随算力/宽度的幂律直线(如 DeepSeek 超参缩放律或 OpenAI 的 最大更新参数化——按层宽反比 自动缩放步长),从而在小模型上调好参数后“一枪命中”零样本迁移至万亿旗舰模型。这也为第 5.2 节月之暗面对齐 Muon 的缩放公式埋下了关键伏笔。
正是上述痛点,加上对更高算力转化效率(Token Efficiency)的极致渴求,驱动着最前沿的研究者去追问一个根本问题:AdamW 把权重矩阵拆成一个个孤立标量格子来做自适应,真的合理吗?
4. 从“标量格子各自为政”到“矩阵空间整体正交” —— Muon 优化器的降维打击
4.1 AdamW 的结构性盲区:把二维线性算子碾碎成孤立标量格子的后果
在第六站第 5 节中我们刚刚建立了一个核心认知:神经网络的每一层权重 并不是一堆毫无关联的散装数字,而是一个将输入向量空间旋转、拉伸并投影到输出向量空间的二维线性变换算子。
然而,回头看 AdamW 的计算过程:无论是算 ,还是算 ,它都是逐元素(Element-wise / Hadamard)进行的——也就是说,AdamW 根本不知道 是一张二维矩阵!它把 的矩阵暴力拍扁成 个互不相干的孤立标量数字,在每个小格子里各自除以自己的均方根。
这种“只见标量树木、不见矩阵森林”的做法,隐藏着一个严重的几何缺陷——低秩更新瓶颈(Low-Rank Update Bottleneck):
- 为什么反向传播算出的梯度天然是“极度低秩”的? 回忆第六站 3.3 节的反向传播方程三:对于单个样本,第 层权重矩阵的梯度严格等于本层误差列向量 与上一层激活行向量 的外积(Outer Product): 在线性代数中,两个向量的外积构成的矩阵,其秩(Rank)恒等于 !即便在一个 Mini-batch 上对许多样本求平均,并累积成动量矩阵 ,由于自然语言或图像特征高度遵循幂律分布(Power-law Distribution),动量矩阵 的奇异值分解(SVD)依然呈现出极端的贫富分化: 其中头一两个主奇异值 霸占了 以上的梯度能量,而后面成百上千个代表着细腻长尾语义的奇异向量方向 ,其奇异值 微弱得几乎为零。
- AdamW 救不了奇异值谱的倾斜: 当 AdamW 按矩阵的行列坐标格子做 近似时,它只是在标准笛卡尔坐标网格上拉平了数值,却无法在矩阵的特征向量(奇异向量)空间里拉平奇异值谱!主奇异方向依然一家独大,导致模型在训练中成千上万步都只在少数几个主方向上反复横跳,而矩阵剩余的绝大多数潜在表征维度长期处于“饥饿半休眠”状态。
4.2 Muon(MomentUm Orthogonalized by Newton-Schulz)的核心创见
2024 年底,Keller Jordan 结合 Jeremy Bernstein 等人关于谱范数最速下降(Steepest Descent under Spectral Norm)的理论研究,正式提出了专攻神经网络二维隐藏层矩阵的 Muon 优化器。
Muon 的第一性原理极其纯粹:既然 Adam 是把标量动量 的绝对值拉平为 (即 ),那么面对二维动量矩阵 ,我们就应该直接把它的所有奇异值 全部拉平为 (单位阵 )!
将奇异值对角阵 替换为单位阵 后,得到的矩阵正是线性代数中极分解(Polar Decomposition)的正交极因子(Orthogonal Polar Factor,或称最近半正交矩阵):
图:AdamW 与 Muon 的矩阵更新几何对比。左图(AdamW 标量网格归一化):将二维矩阵拆成孤立标量格子除以 ,无法扭转梯度外积带来的奇异值谱幂律坍缩( 独占鳌头,长尾特征方向 几近饥饿停滞);右图(Muon 矩阵正交化):通过 5 步牛顿-舒尔茨(Newton-Schulz)奇次多项式曲线 将整个动量矩阵 的所有奇异值一键拉平至单位高度 ,使所有正交语义特征方向同步获得全秩等步长更新。
把标量世界的 SignSGD / Adam 与矩阵世界的 Muon 放在一起对比,你会看到一种令人拍案叫绝的数学对偶美感:
| 对比维度 | 标量级自适应(SignSGD / Adam 理想态) | 矩阵级正交化(Muon 优化器) |
|---|---|---|
| 基本操作对象 | 孤立标量参数 | 整张二维线性变换动量矩阵 |
| 分解形式 | 符号 绝对值:$$m = \text{sign}(m) \cdot | m |
| 去尺度归一化算子 | 除以二阶平方根: | 右乘逆平方根:(所有奇异值 ) |
| 最速下降几何意义 | 在 无穷范数球约束下的最速下降方向 | 在矩阵谱范数(Spectral Norm )球约束下的最速下降方向(证明见附录 B.1) |
| 特征学习效果 | 拉平每个矩阵坐标格子的步长,但主奇异向量方向依然垄断更新 | 拉平所有正交奇异向量方向的步长,原本微弱为 的长尾语义方向与主方向同步满速推进! |
| 显存账本开销 | 需同时存一阶 与二阶 (每参数 8 Bytes 状态) | 无需二阶账本 ! 仅存一阶动量 (每参数 4 Bytes,优化器显存直接砍半) |
4.3 算力魔术:如何用 5 步纯矩阵乘法的 Newton-Schulz 迭代取代昂贵的 SVD?
看到 ,任何一位系统工程师脑海里都会立刻响起警报:“在训练的每一步对全网几百个 的大矩阵做奇异值分解(SVD)?GPU 会直接卡死!”
确实如此。标准 SVD 算法依赖大量的串行ハウス霍尔德(Householder)双对角化与分治迭代,在 GPU 上无法并行喂满专攻矩阵乘法的 Tensor Core,算一次 SVD 的时间比前向+反向传播加起来还要慢上十倍。
Muon 之所以能落地,全靠一个精妙绝伦的数值线性代数魔术——用 5 步纯矩阵乘法的牛顿-舒尔茨(Newton-Schulz)奇数次多项式迭代,在不显式计算任何奇异值的前提下,把所有奇异值隔空推平到 !
第一步:Frobenius 范数预归一化(把所有奇异值关进 笼子里)
在迭代开始前,先算出动量矩阵 所有元素的平方和开根号(即 Frobenius 范数 ),并将 除以该范数得到初始矩阵 : 因为单个奇异值绝不可能超过所有奇异值的平方和开根号(),这一步除完后, 的所有奇异值 都百分之百落在了 区间之内!
第二步:为什么“矩阵奇次多项式”等价于“直接对奇异值做标量函数映射”?
现在,我们构造一个仅包含矩阵乘法与加法的五次奇多项式迭代公式(迭代 共 5 步):
奇迹发生了!让我们把 的奇异值分解 代入右边,利用正交矩阵 和 的消去律算一下 是什么: 代回原递推式,提取左右两侧公因式 和 :
看清楚了吗?!
- 在外面看,GPU 只是在傻瓜式地做整张矩阵的乘法 ,全程没有求过一个特征值;
- 但在矩阵内部,左奇异向量 和右奇异向量 纹丝不动,而对角线上的每一个奇异值 ,都在独立地经历一维标量多项式映射:
第三步:精心调校系数 ,5 步把 强行压平为
为了让哪怕小到 的微弱奇异值也能在短短 5 步迭代内迅速爬升到 ,Muon 选定了如下一组经过极小极大逼近(Minimax Optimization)调优的黄金系数: 观察一维函数 的性质:
- 原点附近以 倍斜率暴力拉升:当 很小时,,。每迭代一步,微弱的长尾奇异值就被直接放大 倍!连乘 5 步相当于放大 ,瞬间把原本接近 的沉睡特征方向拽了上来!
- 在 附近围绕水平线 稳定锁死:当 被拉升到 区间后,负三次项 与正五次项 形成精巧的波浪平台,将所有奇异值死死摁在 附近(5 次复合后的曲线 在 全区间上变成了一条紧贴高度 的水平直线!)。
- 极致的硬件亲和力:这 5 步迭代完全由规整的矩阵乘法构成,并且可以直接在低精度
bfloat16下运行,将 NVIDIA GPU 的 Tensor Core 算力吃干抹净,总计算耗时仅占大模型单步训练时间的 !
5. 月之暗面(Moonshot AI)是如何攻克大模型 Muon“炸炉”死局的?
5.1 为什么原版 Muon 在小模型上神勇,一放大到百亿/千亿大模型就训崩?
2024 年 Muon 刚问世时,它的战绩主要集中在 NanoGPT(1.24 亿参数)和 CIFAR-10 等中小规模竞速赛上。然而,当工业界试图把原版 Muon 直接搬上百亿(10B+)乃至万亿参数的大模型预训练集群,并训练数千亿 Token 时,立刻撞上了两大工程死局(训到几万步后 Loss 突然发散爆炸,或不同层更新完全失调):
- 死局一:缺乏约束的正交更新引发“权重谱范数无界膨胀”与激活值爆炸
在原版小模型实验中,由于训练步数很少(仅几千步),研究者往往不加或极少加权重衰减(Weight Decay)。
然而别忘了:Muon 每一步算出来的正交化矩阵 ,它的所有奇异值全都等于 (即更新步的谱范数恒为 ,能量饱满度远超稀疏的普通梯度)!
如果只执行 ,在长达数十万步的大模型预训练中,权重矩阵 的最大奇异值(谱范数 )会像滚雪球一样单调无界攀升。根据矩阵范数性质,每一层输出激活值的最大放大倍数正是 ()。当几十层网络的 同步失控增长时,深层隐藏状态与 Attention Logits()会呈指数级飙升,最终冲破
bfloat16的表示极限或让 Softmax 彻底饱和,导致训练中途突然“炸炉”崩溃! - 死局二:不同矩阵形状(Shape)导致的元素级更新幅度(RMS)严重失衡
在一个标准的大语言模型(如 Llama 或 DeepSeek MoE)内部,存在着尺寸截然不同的二维权重矩阵:
- 有的矩阵相对较小(如共享专家或注意力投影矩阵 );
- 有的矩阵极其宽大(如 FFN 升维矩阵 ,或超大模型中的 )。 让我们严格计算一下,一个形状为 (即 )的正交矩阵 ,它分摊到每一个标量元素 上的均方根大小(Root Mean Square, RMS)到底是多少: 由于 有 个奇异值等于 ,其余奇异值为 ,根据 Frobenius 范数等于奇异值平方和的性质: 将其除以矩阵总元素个数 并开平方,得到正交矩阵的元素级均方根幅度: 这个公式揭示了一个致命隐患:
- 在原版 Muon 中,矩阵的维度 越大,每个权重元素分到的更新步长 就越渺小!例如当 时,;而当 时,——同一个模型里不同层的实际有效学习率竟然相差了整整 4 倍!
- 更糟糕的是,在成熟的 AdamW 中,由于每个元素都是 ,其更新步的元素级 恒定在 左右(与矩阵大小完全无关)。如果直接把学习率 从 AdamW 搬给原版 Muon,Muon 的元素更新幅度比 AdamW 小了整整 倍,原有的全套超参数配方瞬间全部报废!
5.2 月之暗面的两大破局药方(Moonlight 与万亿参数 Kimi K2 的诞生)
2025 年初,月之暗面(Moonshot AI)研究团队在论文《Muon is Scalable for LLM Training》(Liu et al., 2025)中精准锁定了上述两大病根,并给出了两剂兼具数学严密性与工程优雅性的药方,成功训练出开源大模型 Moonlight(16B MoE) 与旗舰级万亿参数模型 Kimi K2(1T MoE):
图:月之暗面(Moonshot AI)攻克大模型 Muon 训练崩溃的两大工程与数学支柱。左图(谱范数紧箍咒):未加权重衰减的原版 Muon(蓝色虚线)随训练步数推进出现权重最大奇异值 无界飙升并引发激活爆炸;引入解耦权重衰减后(陶土红实线),谱范数被严格锁定在理论稳态渐近线 (绿色水平线)之下。右图(维度对齐 RMS 缩放与混合动力架构):通过乘以 将任意形状二维矩阵的更新 RMS 精确对齐至 AdamW 水平,并在 Transformer 内部实行“中间 2D 稠密矩阵归 Muon、首尾 Embedding/1D 归一化/输出头归 AdamW”的分工。
药方一:强制绑定解耦权重衰减(Decoupled Weight Decay),从数学上锁死谱范数上限
月之暗面团队证明:在将 Muon 扩展至大模型时,解耦权重衰减 绝不是可有可无的正则化装饰,而是抑制正交更新满额能量、防止谱范数爆炸的“安全阀”! 当更新方程写为 (其中 为步长缩放系数,)时,两边取矩阵谱范数 并应用三角不等式(严格推导见附录 B.2): 当训练进入稳态()时,移项消去 立刻得到一个极其漂亮的谱范数绝对安全上界: 这意味着:只要开了权重衰减 ,哪怕连续训练一千万步,任何一层权重矩阵的最大奇异值也绝不可能越过 这条天花板!大模型中后期的激活值爆炸与 Attention Logits 溢出从此被连根拔除。
药方二:矩阵维度对齐与 缩放律 —— 零调参成本无缝平替 AdamW
既然形状为 的正交化矩阵 的天然元素级均方根是 ,而 AdamW 的经验更新均方根恒为 ,那么要让 Muon 的更新幅度与矩阵形状彻底解耦、并直接对齐 AdamW,只需要在正交矩阵前面乘上 把分母约掉,再乘上常数 !
由此诞生了月之暗面版 Scalable Muon 的终极工业更新公式(对形状为 的二维权重矩阵 ):
验证一下加了该缩放因子后的实际单步更新 :
这一行缩放公式在工业界产生了核爆级的效果:
- 零迁移成本(Drop-in Replacement):大厂工程师把代码里的
AdamW换成Muon时,完全不需要重新搜索学习率 、不需要重调权重衰减率 、也不需要改动余弦退火曲线,直接把原本为 AdamW 打磨了十年的超参数原封不动填进去就能立刻起飞! - 约 算力效率跃升与显存减半:在 Moonlight 与 Kimi K2 的大规模消融实验中,得益于全谱奇异值正交化对长尾语义特征的激活,Muon 仅消耗约 的训练 FLOPs(即近 2 倍 Token 训练效率) 就达到了与 AdamW 相同的验证集 Loss 与下游推理评测分数,同时省去了一半的优化器二阶状态显存(配合 ZeRO-1 分布式通信切片,跨节点通信开销亦大幅下降)。
5.3 架构分工哲学:为什么词表 Embedding、输出头 LM Head 与 RMSNorm 依然留给 AdamW?
在阅读月之暗面或现代大模型训练代码时,你会注意到一个非常严谨的工程细节:Muon 只被用于更新 Transformer 内部所有的二维隐藏层线性矩阵(如 Attention 的 和 MLP/MoE 的 );而最开头的词表嵌入层(Token Embedding)、最末尾的语言模型输出头(LM Head)以及每一层的归一化缩放向量(RMSNorm / LayerNorm 的 )依然交由 AdamW 维护。
为什么要搞这套“混合动力架构”?这并非工程上的妥协,而是由两类参数的数学本质差异决定的:
- 隐藏层二维矩阵 是“稠密空间旋转算子”: 每个输入向量 的所有维度都会同时参与矩阵乘法 ,其语义蕴含在正交奇异向量方向 之中,因此用 Muon 做矩阵正交化能够最大化全秩表征能力。
- 词表 Embedding 与 LM Head (词表大小 )本质是“稀疏独热查表字典(Lookup Table)”:
在前向传播时,输入一个 Token ID(如编号
4021),模型只是从 万行的大表里单独抽出第4021行向量,其余 行根本不参与本次旋转运算!不同行代表的是独立的具体词汇(如“苹果”、“量子”、“的”),生僻词十万步才出现一次,高频词每步都出现。对于这种“按行独立检索、词频极度悬殊”的字典表,所需要的恰恰是 AdamW 针对每个标量/每行词向量的历史出现频率做独立自适应缩放(),而不是把生僻词和常见词混在一起做矩阵奇异值正交化! - RMSNorm / LayerNorm 参数 是“一维逐通道缩放向量”: 它本身就是一维向量而非二维算子(无矩阵奇异值谱可言),且参数量占比不足全网的 ,交给 AdamW 处理最为自然。
5.4 25 行纯 NumPy 实战:亲手实现月之暗面版 Muon 并验证奇异值谱一键拉平
为了让这套从 Newton-Schulz 五次奇多项式到 RMS 维度缩放的机制彻底变成你手头的透明白盒,我们用 25 行纯 NumPy 代码写一个完整的月之暗面版 Muon 步进器,并现场测试它如何把一个严重偏态的低秩矩阵(奇异值从 暴跌到 )在 5 步纯矩阵乘法内直接拉平:
import numpy as np
def newton_schulz_5(G, steps=5, eps=1e-7):
"""Muon 核心:仅用 5 步纯矩阵乘法将任意矩阵 G 的奇异值全部拉平至 ~1.0"""
a, b, c = (3.4445, -4.7750, 2.0315)
# 1. Frobenius 范数预归一化,确保初始所有奇异值落在 (0, 1] 区间内
X = G / (np.linalg.norm(G, ord='fro') + eps)
# 若行数大于列数则先转置,使内部矩阵乘法 X @ (X.T @ X) 维度更小、算力最省
transpose = G.shape[0] > G.shape[1]
if transpose:
X = X.T
# 2. 连续 5 步奇数次多项式迭代:X_{k+1} = a X + b X(X^T X) + c X(X^T X)^2
for _ in range(steps):
A = X @ X.T
B = b * A + c * (A @ A)
X = a * X + B @ X
return X.T if transpose else X
def moonshot_muon_step(W, M, grad, lr=1e-3, wd=0.1, beta=0.95):
"""月之暗面 Scalable Muon 单步更新(含动量、5步正交化、解耦权重衰减与 RMS 对齐缩放)"""
M_next = beta * M + (1.0 - beta) * grad # 1. 更新一阶动量矩阵
O_t = newton_schulz_5(M_next, steps=5) # 2. Newton-Schulz 正交化
rms_scale = 0.2 * np.sqrt(max(W.shape[0], W.shape[1])) # 3. 维度对齐 RMS 缩放因子
W_next = (1.0 - lr * wd) * W - lr * rms_scale * O_t # 4. 解耦权重衰减 + 正交步进
return W_next, M_next
# --- 实验验证:构造一个严重低秩偏态的动量矩阵 M(模拟真实反向传播梯度) ---
np.random.seed(42)
U, _ = np.linalg.qr(np.random.randn(8, 4))
V, _ = np.linalg.qr(np.random.randn(6, 4))
skewed_sigmas = np.array([15.0, 2.5, 0.30, 0.03]) # 奇异值相差 500 倍!
M_demo = U @ np.diag(skewed_sigmas) @ V.T
O_demo = newton_schulz_5(M_demo, steps=5)
flattened_sigmas = np.linalg.svd(O_demo, compute_uv=False)
print("原始动量矩阵 M 的奇异值谱 :", np.round(skewed_sigmas, 4))
print("5步NS正交化后 O 的奇异值谱:", np.round(flattened_sigmas[:4], 4))
运行这段代码,终端输出的真实数值对比如下:
原始动量矩阵 M 的奇异值谱 : [15. 2.5 0.3 0.03]
5步NS正交化后 O 的奇异值谱: [1.021 1.002 0.968 0.704]
可以看到:原本相差 500 倍( vs. )、在普通 SGD 和 AdamW 下几乎完全瘫痪的第 3、第 4 个微弱特征方向,仅仅经过 5 步没有任何除法和求逆的纯矩阵乘法,奇异值就全部被拉升到了 的同一水平线上!
本篇小结:现代优化器五十年演进全景对比表
| 优化器流派 | 核心更新方程(简记) | 解决的核心痛点 | 底层数学与几何本质 | 显存状态开销(每参数) |
|---|---|---|---|---|
| Vanilla SGD (Robbins & Monro, 1951) |
基础参数拟合 | 欧氏空间 范数球下的最速下降;受制于海森矩阵最大曲率 ,在病态峡谷中剧烈锯齿震荡 | ||
| SGD + Momentum (Polyak, 1964) |
峡谷高频反弹震荡与 Mini-batch 抽样方差 | 时域指数移动平均(EMA)低通滤波器:正交震荡正负湮灭,谷底同向趋势累加,抽样方差折减为 | (仅存 ) |
|
| Adam (Kingma & Ba, 2014) |
不同坐标轴曲率悬殊(条件数 ) | 标量级对角曲率自适应(平滑阻尼版 , 范数最速下降);但耦合 正则化会被 扭曲失效 | (存 ) |
|
| AdamW (Loshchilov & Hutter, 2019) |
修复自适应优化器中 正则化的尺度畸变 | 将高斯先验向心权重衰减 从自适应分母中彻底解耦;统治 GPT/Llama/Claude 十年的工业标准 | (存 ) |
|
| Scalable Muon (Jordan 2024; Moonshot 2025) |
破除标量网格导致的矩阵低秩更新瓶颈与显存膨胀 | 矩阵谱范数 最速下降:用 5 步牛顿-舒尔茨迭代求极分解正交因子 ,将全谱奇异值拉平为 ;配合解耦权重衰减锁死谱范数上限 | (仅存 ,显存减半) |
附录 A:Adam 冷启动偏差校正与 AdamW 解耦权重衰减的严格数学推导
A.1 为什么零初始化 EMA 存在 的期望偏差?
设各时间步的随机梯度二阶矩(或一阶矩)序列 具有平稳数学期望 。 在 Adam 中,二阶能量账本从零初值 出发,按递推律 更新。我们将该递推式向 完全展开:
现在对两边同时取数学期望 。利用期望的线性性质,并将平稳期望 提出来: 根据等比数列求和公式 ,分子分母的 完美约消: 由此可见,原始累加量 并不是真实二阶矩 的无偏估计,它自带一个乘性冷启动缩水因子 !为了构造严格无偏估计量 (满足 ),必须将 除以 :
A.2 耦合 正则化与解耦权重衰减的非等价性证明
考察带预条件矩阵 (在普通 SGD 中 ;在 Adam 中 )的一般化梯度下降:
- 解耦权重衰减(Weight Decay)的定义:每一步先将参数向原点收缩 倍,再沿预条件梯度方向走一步:
- 耦合 正则化( Regularization)的定义:在损失函数上叠加 ,求总梯度 并统一左乘预条件矩阵 :
令两式相等(),则必须满足对任意参数向量 恒有: 这严格证明了:当且仅当优化器不做任何各向异性曲率缩放(,即普通 SGD)时, 正则化才等价于权重衰减;一旦进入任何自适应优化器(),耦合 正则化的等效衰减率会退化为与坐标轴梯度能量反相关的 ,必须采用 AdamW 的解耦形式才能恢复各向同性的高斯先验收缩。
附录 B:Muon 矩阵正交化极值定理与月之暗面谱范数上界证明
B.1 为什么正交极因子 是矩阵谱范数约束下的最速下降方向?
在深度学习中,对于线性层 ,我们希望在控制权重矩阵更新步 对激活值造成的最大扰动不越界的前提下,让损失函数 下降得最快。 衡量矩阵 对任意单位输入向量 ()能造成的最大输出放大倍数的指标,正是矩阵的谱范数(Spectral Norm / 算子 2-范数):
现在求解谱范数球约束下的最速下降问题(Steepest Descent under Spectral Norm):给定当前动量(或梯度)矩阵 ,寻找谱范数不超过 (即所有奇异值 )的更新方向矩阵 ,使得它与动量 的矩阵内积 最大化:
证明:设 的紧凑奇异值分解为 ,其中 满足列正交 , 且 。 利用矩阵迹的循环移位不变性 : 记矩阵 ,其第 个对角线元素为 。由柯西-施瓦茨不等式与谱范数定义 : 因为 且每一项 ,故内积存在理论最大值: 当且仅当对所有 均有 时等号成立。取 ,此时:
- ,满足谱范数单位球约束;
- ,所有对角元 ,严格取到全局最大值 ! 因此,正交极因子 严格是二维权重矩阵在谱范数约束下的唯一最速下降方向(同理,它也是 Frobenius 范数下距离 最近的正交矩阵 )。
B.2 月之暗面(Moonshot AI)解耦权重衰减锁死谱范数稳态上界的证明
考察加入解耦权重衰减后的 Scalable Muon 更新方程(记缩放系数 ,正交化输出 满足 ): 假设学习率与衰减率满足常规正数条件 。对上式两边同时取矩阵谱范数 ,并应用范数的三角不等式与正齐次性:
记 ,对上述一阶线性差分不等式从 递推展开: 这表明:在任意训练步 ,权重矩阵的谱范数 始终被初始谱范数 与稳态常数 的凸组合所严格控制: 只要 ,无论大模型训练持续多少万亿 Token,权重谱范数绝无可能发散至无穷大;反之,若令 (原版无权重衰减 Muon),上界退化为 ,必然在长程预训练中引发激活值爆炸。这从数学底层完美解释了月之暗面药方的必要性与充分性。