Lecture 11:Scaling Laws 实战
Stanford CS336 Language Modeling from Scratch | Spring 2026 | Lecture 11: Scaling Laws,时长 01:17:03。
从 Chinchilla 到前沿——两种超参数控制哲学#
训练大语言模型时,Chinchilla 给出了”给定计算预算,模型大小与数据量如何最优分配”的基本框架。但 Chinchilla 没有回答一个同样关键的问题:学习率和 batch size 这两个对训练最敏感的超参数,该如何随规模变化?
直觉上,较大的模型需要不同的学习率——用小模型调出来的最优学习率,直接搬到大模型上往往不是最优的,甚至可能导致训练不稳定。Batch size 同样如此:Kaplan 等人在经典 scaling law 论文中就指出了 critical batch size 随 loss 目标变化的 power law 关系。
面对这个问题,开源社区在 2024 年前后形成了两条截然不同的技术路线:
路线一:重参数化(Reparameterization)。以 MiniCPM 为代表,采用 muP(Maximal Update Parameterization)方法,通过调整初始化方式和逐层学习率的缩放规则,使得最优学习率在不同模型规模下保持不变。这条路线的核心思想是:与其去拟合超参数如何随规模变化,不如从根本上消除这种依赖性。
路线二:拟合外推(Scaling Law Fit)。以 DeepSeek 为代表,通过在多个小规模模型上做大量网格搜索(grid search),找到每个规模下的最优超参数,然后拟合出超参数随计算量变化的 power law,再外推到目标规模。这条路线接受超参数会随规模变化的事实,只要变化是可预测的就行。
两条路线都使用了一个共同的工程技巧——WSD(Warmup-Stable-Decay)学习率调度,取代传统的 cosine schedule,使得 Chinchilla 风格的数据维度扫描成本大幅降低。
接下来将依次展开这两条路线的具体做法、实验结果,以及后续多个开源模型对这两种方法的继承和演变。
MiniCPM 路线——muP 初始化 + WSD 学习率#
MiniCPM 是 2024 年由清华大学和 Modelbest 合作发布的小型高性能语言模型(1-2B 参数量级)。尽管以今天的标准来看 MiniCPM 的绝对性能已不算前沿,但它在 scaling 方法论上的贡献至今仍被广泛借鉴。MiniCPM 的核心策略是:不暴力搜索超参数,而是通过精心设计的初始化和缩放规则,让小模型上调好的超参数直接迁移到大模型。
muP 让最优学习率稳定不变#
MiniCPM 采用了 muP(Maximal Update Parameterization),具体做了以下几件事:
- 缩放 embedding 输出
- 按 L 缩放残差连接(L 为层数)
- 按 fan-in/fan-out 比例缩放矩阵参数的初始化
- 为不同参数设置不同的学习率(per-parameter learning rate)
- 缩放 LM head
这些修改的目的只有一个:让最优学习率不随模型宽度变化。实验结果非常干净——在 0.04B 到 2.1B 的多个模型规模上扫描学习率,所有模型的 loss 最低点几乎都精确落在 10−2 上,最小模型略有偏移但也非常接近。

这意味着一旦在小模型上确定了最优学习率,就可以直接用于大模型,省去了昂贵的大规模学习率搜索。
Batch Size 的 Power Law 结构#
即使 muP 稳定了学习率,最优 batch size 仍然会随规模变化。MiniCPM 的实验表明,最优 batch size 与目标 loss 之间存在 power law 关系:loss 越低(即模型越强),需要的 batch size 越大。这与 Kaplan 论文中的 critical batch size 分析一致。

每个色带中的一列点代表一次固定 batch size 的训练,纵轴是处理的 token 数。对每条等 loss 轮廓拟合二次曲线,可以读出该 loss 水平下的最优 batch size。跨模型规模来看,最优 batch size 随目标 loss 的变化呈现出非常规整的 power law 趋势。结合 scaling law 可以反推出目标 loss,从而精确设定 batch size。
WSD 学习率:解决 Cosine Schedule 的重训问题#
做 Chinchilla 分析需要扫描数据量维度——对同一模型,分别用不同数量的 token 训练,观察最终 loss。问题在于,如果使用 cosine 学习率调度,不同训练长度的 schedule 形状完全不同(cosine 需要事先知道总训练步数来确定衰减曲线)。因此无法从一次长训练中截取前半段作为短训练的结果——你必须从头重训。这导致 Chinchilla 分析的成本是二次的。

MiniCPM 提出的解决方案是 WSD(Warmup-Stable-Decay)学习率,形状像一个大梯形:
- Warmup 阶段:固定步数(不是训练总量的比例),通常几百到几千步
- Stable 阶段:学习率保持恒定,占训练的大部分时间
- Decay 阶段:快速衰减到最大学习率的约 10%,通常占总训练的 10%-20%
WSD 的关键优势在于:如果想延长训练,只需回滚到 stable 阶段的最后一个 checkpoint,继续 stable 训练更长时间,再重新 decay。每次只需要重跑 decay 阶段(约 10% 的成本),而非从头重训。
WSD 与 cosine 的性能对比也很有说服力。WSD 在 stable 阶段看起来明显落后于 cosine(因为学习率没有衰减),但一旦进入 decay 阶段,loss 会迅速下降,最终与 cosine 匹配甚至略优。实际经验中,cosine 在很多场景下仍略好,但 WSD 的灵活性使它成为一个非常实用的默认选择。
WSD 下的 Chinchilla 复现#
有了 WSD,Chinchilla 分析变得非常经济:跑一次长训练,在 stable 阶段的不同 checkpoint 处反复 decay,就可以得到不同数据量下的最终 loss,从而完成数据维度的扫描。MiniCPM 用这种方法复现了 Chinchilla 的 method 1 和 method 3。值得一提的是,method 1 和 method 3 是 Chinchilla 三种分析方法中可靠性最低的两种(method 2 即 IsoFLOP 被认为最稳健)。尽管如此,MiniCPM 得到了表面上合理的 scaling 曲线,但拟合出的指数与原始 Chinchilla 论文有明显差异——他们声称应该用更多数据训练,但这一结论是否可靠仍有疑问,可能源于方法选择本身的局限性。
MiniCPM 的核心收获:muP 是稳定学习率的有效工具;WSD 是做 scaling 实验的必备基础设施。这两个技巧即使在 2026 年仍然是训练大模型的标准做法。
DeepSeek 路线——网格搜索 + Scaling Law 外推#
DeepSeek LLM 是 DeepSeek 团队在 2024 年发布的初代论文(早于 DeepSeek-V2、R1 等后续工作),训练了 7B 和 67B 两个稠密模型。即使在第一篇论文中,DeepSeek 团队就展现出了极高的实验品味——他们的 scaling 分析至今仍是开源世界中执行最精细的之一。
不用 muP,改用 Grid Search#
与 MiniCPM 的 muP 路线不同,DeepSeek 不试图消除超参数对规模的依赖,而是直接拥抱这种依赖并建模它。具体做法是:
- 在多个小规模上做大量 grid search:固定计算量(即固定处理的 token 数),同时扫描学习率和 batch size 两个维度,找到使 loss 最低的组合
- 跨规模收集最优点:在不同的 non-embedding FLOPs 水平上重复上述 grid search,收集每个规模下的最优学习率和最优 batch size
- 拟合 power law:将这些最优点拟合为关于计算量 C 的 power law
DeepSeek 得到的 scaling law 形式为:
ηopt=0.3118⋅C−0.1250 Bopt=0.2920⋅C0.3271
即:计算量越大,最优学习率越低,最优 batch size 越大。

Batch size 的拟合相当干净,数据点紧贴趋势线。学习率的拟合则没那么令人信服——数据点散布较大,线性拟合看起来有些勉强。这是 grid search 方法的一个固有问题:除非网格的分辨率恰好覆盖了真正的最优点,否则会引入量化误差,导致拟合出的 scaling law 不够精确。
IsoFLOP Chinchilla 复现#
DeepSeek 同样使用 WSD 学习率(他们的变体是做两段 decay 而非一段,原因不明且后续未被采纳)来复现 Chinchilla 分析。他们选择了 IsoFLOP 方法——固定计算量,扫描模型大小和数据量的不同组合。
DeepSeek 的 IsoFLOP 曲线比 MiniCPM 干净得多,原因正是 IsoFLOP 方法本身的优势:在固定计算量下扫出的曲线更光滑、更容易拟合。他们得到了与 Chinchilla 一致的 scaling 行为,验证了 Chinchilla 结果在更大计算范围内的可复现性。
Scaling Law 预测的准确性#
最终的”成绩单”是:用小模型拟合出的 scaling law 能多好地预测大模型的实际 loss?

两颗星号(7B MHA 2T Token 和 67B GQA 2T Token)与外推曲线的吻合度不错——不完美,但足够实用。这说明通过小规模实验,确实可以对大规模训练的最终 loss 做出合理预测。
DeepSeek 路线的总结:不改变参数化方式,而是通过密集的 grid search 建模超参数如何随规模变化。优势是方法简单直接、不需要修改模型架构;劣势是 grid search 的成本不低,且学习率的拟合质量不总是令人满意。
其他开源模型的 Scaling 实践#
2024-2026 年间,多个开源模型发布了各自的 scaling 实验。一个明显的趋势是:随着 Chinchilla 分析和学习率/batch size 的 scaling 技术变得”人尽皆知”,后续论文在这些基础 scaling 部分的篇幅越来越少。大家默认你已经知道怎么做这些事情了。
Qwen 2.5 / Qwen 3#
Qwen 2.5 基本复用了 DeepSeek 的方法论——做 scaling 实验确定最优学习率和 batch size,对 MoE 也做了类似分析。到 Qwen 3 时甚至更加简略:直接说”我们在 Qwen 2.5 中已经搞清楚了方法,这次照搬”。这反映了 scaling 技术栈的成熟——它已经成为标准配方的一部分,不再需要单独论证。
Kimi K2:MoE Scaling Law#
Kimi K2 代表了 2026 年 scaling 研究的新方向——MoE(Mixture of Experts)的 scaling law。当越来越多的模型转向 MoE 架构时,一个自然的问题是:稀疏度(sparsity)如何影响训练 loss?
Kimi K2 固定 FLOPs,扫描不同的稀疏度水平,发现稀疏度越高,相同 FLOPs 下的验证 loss 越低——这并不意外。但关键价值在于定量化这个关系:他们发现当稀疏度达到 48 时,收益开始出现明显的递减效应,因此选择了这个值作为最终配置。
Hunyuan#
另一个开源 MoE 模型,同样做了 MoE scaling law 分析。Hunyuan 固定了稀疏度水平,在此基础上得出了每个激活参数对应 96 个数据点的比例关系。
LLaMA 3:从 Loss 到下游准确率的桥梁#
LLaMA 3 的 IsoFLOP 分析本身并无特别之处(得到了与 Chinchilla 类似的 token-to-model 比例)。但他们做了一件非常有价值的事:建立了预训练 loss 到下游 benchmark 准确率之间的映射。

右侧的 sigmoid 映射尤其有意义——它表明预训练 loss(用 normalized NLL per character 衡量)与下游准确率之间存在紧密的耦合关系。虽然数据点与拟合曲线之间存在系统性偏差(不能完全信赖这条 sigmoid),但总体趋势是一致的。这很重要,因为所有 Chinchilla 分析都只关注 log loss,而实际用户关心的是下游任务表现。LLaMA 3 的结果表明,在许多情况下,降低 log loss 确实能可靠地提升下游准确率。
MiniMax-01:用 Scaling Law 做架构决策#
MiniMax-01 展示了 scaling law 的另一个重要用途:架构选择。他们对比了三种 attention 机制——Lightning Attention(线性注意力)、标准 Softmax Attention、以及混合版本——在不同计算量下的 scaling 行为。
结果是三种架构的 scaling 趋势基本一致,所需的模型大小也相似。这为他们在部署时选择混合架构提供了定量依据——线性注意力在推理时更快,而 scaling 分析证明它在训练效果上不会落后。
Post-training 与 Scaling Law 的结合:一个 Open Question#
所有上述 scaling 分析都只针对 pre-training 阶段。一个自然的问题是:post-training(SFT、RLHF 等)如何影响 pre-training 的最优配置?目前没有好的方案做”将 post-training 纳入考量的端到端 scaling 分析”,因为 post-training 有时会根本性改变 pre-training 应该做什么。最接近的工作是研究 pre-training 数据的 coverage 和 diversity 如何预测 post-training 的效果,但这些工作仍处于早期阶段。
趋势总结:核心 scaling 技术(Chinchilla、学习率 scaling)已成为标准配方;新的 scaling 研究集中在 MoE 稀疏度优化、架构变体对比等更前沿的问题上。随着这些技术被内化,论文中的 scaling 章节越来越短——到 2026 年,大多数团队只用一两段话带过。
超参数 Scaling Law 的精细解剖——StepFun 研究#
StepFun(阶跃星辰)发表的超参数调优论文,是目前对学习率和 batch size 的 scaling 行为做得最细致的研究之一。他们训练了大量模型来密集网格化超参数空间,试图回答一个根本问题:最优学习率和最优 batch size 究竟取决于哪些变量?
各家 Scaling Law 甚至不用相同的输入变量#
StepFun 论文中有一张非常有信息量的对比表格,列出了 OpenAI(Kaplan)、DeepSeek、MiniCPM 以及 StepFun 自身对 batch size 和 learning rate 的 scaling 公式。一个关键观察是:这些公式的输入变量甚至都不一致。OpenAI 的 critical batch size 用的是 terminal loss L;DeepSeek 用的是 compute C;StepFun 认为 batch size 应该是数据量 D 的函数。对于一个看似基础的问题——“最优超参数取决于什么”——业界至今没有共识。
超参数空间是光滑的#
StepFun 在 1B 参数、100B token 的设定下,对学习率和 batch size 做了高分辨率网格搜索,画出了超参数空间的等高线图和三维表面。

一个重要的观察是:超参数空间是光滑且凸的。固定学习率扫 batch size(或反之),得到的曲线是光滑的 U 型。这意味着网格搜索是可行的——最优点不会突然跳到某个意想不到的位置。如果这个表面是锯齿状的,那么通过网格搜索找最优参数的整个方案就不可靠了。
等高线图上还标注了各家 scaling law 的预测值(DeepSeek Law、OpenAI Law、Microsoft Law 等),可以直观地看到不同 scaling law 给出的推荐超参数有多大差异。
Batch Size 只依赖数据量#
StepFun 最核心的发现之一是:最优 batch size 几乎只取决于训练数据量 D,与模型大小 N 无关。

右侧图非常清晰:x 轴是训练数据量 D,不同颜色代表不同模型规模(从 59M 到 1B)。所有颜色的点几乎完全重合在同一条趋势线上。在 log-log 坐标下,最优 batch size 与数据量之间呈现出干净的 power law 关系,大约是 Bopt∝D。
学习率的反直觉行为#
学习率的情况要复杂得多。左侧图显示:
- 模型越大,最优学习率越低(从蓝色到粉色,点的位置逐渐下移)
- 数据越多,最优学习率越高——这是反直觉的
第二个现象意味着:如果你在同一个模型上训练更多数据,应该用更高的学习率。不过这个趋势可能比较脆弱——有其他论文(如 InternLM scaling law)在使用 WSD 调度时得到了相反的方向。
把两个方向综合起来:在 Chinchilla 风格的联合扩展中(N 和 D 都由计算量 C 驱动),N 的增大压低学习率的效应会部分被 D 增大的提升效应抵消,但模型大小的效应占主导,所以整体上随着计算量增加,最优学习率下降——这与 DeepSeek 的 ηopt∝C−0.125 一致,只是指数略有不同。
StepFun 最终给出的简洁公式:
Bopt∝D⋅const ηopt∝NβDα⋅const
MoE 和数据分布的迁移性#
StepFun 还测试了他们的 scaling law 是否迁移到 MoE 模型。结果还不错:在控制激活参数数量的情况下,dense 模型上拟合的 scaling law 对 MoE 的预测是合理的。
但一个值得注意的警告是:换训练数据会导致最优超参数偏移。他们在双语语料、代码语料等不同数据分布上测试,发现最优点确实会移动。这意味着所有这些 scaling law 中的具体数值都是数据依赖的——不能无条件搬用。
实践中如何处理超参数交互#
一个自然的问题是:学习率和 batch size 之间有交互效应吗?如果只优化了这两个参数,其他参数(如 weight decay)没调好,结果还可靠吗?答案是:超参数空间的维度是指数增长的,不可能全面搜索。实践中的通行做法是对最敏感的参数(学习率)做二维 grid search,然后对其他参数(如 weight decay)做一维的 univariate sweep,在局部意义上达到最优。这不是全局最优,但在计算约束下是合理的近似。
关于是否直接用别人的 scaling law:如果你的计算量、架构、数据分布都与 StepFun 或 DeepSeek 相近,那么他们的 scaling law 作为初始猜测是合理的——比凭感觉设参数靠谱。但如果你自己在做大规模预训练,最好还是重做至少部分 grid search 来验证,因为架构细节、weight decay 设置等”微小差异”都可能改变最优点。Scaling law 有一种”看起来像科学,实际上很多是 vibes”的特质——你需要判断别人的实验设定是否与你的足够相似,而这个判断本身没有 scaling law 可循。
优化器的 Scale 依赖性——从 Adam 到 Muon#
优化器的选择是另一个高度 scale-dependent 的决策。在小规模实验中表现优异的优化器,扩展到大规模后收益可能大幅缩水甚至消失。这一节通过 Muon 优化器的故事,讲述如何正确评估算法在不同规模下的真实表现。
NanoGPT Speedrun 的启示#
NanoGPT speedrun 是一个社区基准测试:在非常小的模型上,用尽一切技巧尽快达到目标 loss。Muon 优化器在这个基准上取得了惊人的收益——相比 Adam(蓝线),Muon(紫线)在相同 wall-clock 时间内达到了明显更低的 loss,而且每步耗时几乎相同(142ms/step vs 139ms/step)。

但右侧的图讲述了一个不同的故事:随着模型规模从百 M 级扩展到 B 级,Muon 相对 Adam 的 speedup 明显递减。小规模上的大幅增益在大规模上显著缩水。
评估 Scale 依赖性的两个维度#
正确评估一个算法的 scaling 行为需要同时考察两个维度:
维度一:计算量(Compute)。固定 Chinchilla 比例(模型大小与数据量同步增长),沿计算量轴扩展。上面的 speedup 递减就体现在这个维度上。
维度二:Chinchilla 比例(Token-to-Parameter Ratio)。固定模型大小,改变训练数据量。某些算法在过参数化(模型大、数据少)的情况下表现好,因为它们提供了隐式正则化;另一些则在大数据量下表现好,因为它们能更高效地把知识压缩进参数。这个维度经常被忽略——很多号称做了 scaling 实验的论文只扫了模型大小,没有扫 Chinchilla 比例。在 Muon 的案例中,幸运的是 speedup 在不同 Chinchilla 比例下基本一致,没有引入额外的混淆。
超参数调优的陷阱#
比较不同优化器时,一个经典的陷阱是不公平的超参数调优。具体表现为:
- 学习率没调好:Adam 的学习率没调到最优,导致它看起来比其他优化器差很多。实际上只要把学习率调对,差距可能大幅缩小
- Weight decay 不一致:不同优化器对 weight decay 的敏感度不同。用同一个 weight decay 比较不同优化器是不公平的——每个优化器都应该独立调优各自的 weight decay
这些看似基础的实验卫生问题,在实践中导致了大量误导性的结论。
Scaling 并不总是线性外推的#
Marin 项目(Stanford 的开源语言模型训练项目)的经历提供了一个生动的警示。他们使用 Cautious AdamC + batch size 学习率缩放,在多个数量级的计算量上得到了非常漂亮的 scaling 曲线——直线拟合堪称完美。然后他们继续外推,结果模型先是略微偏离趋势线,然后偏差越来越大,最终直接发散了。

修复方法是切换到更 careful 的 muP 风格参数化和不同的优化器,才重新获得了跨更多数量级的稳定 scaling。这个案例的教训是:好看的 scaling 趋势不保证永远线性外推。看起来完美的多个数量级的拟合,可能在下一个数量级就崩溃。
Muon 的算法原理#
Muon 的核心思想是:梯度有矩阵结构,应该利用这个结构。
标准的 SGD with momentum 或 Adam 对每个参数一视同仁——它们不区分这个参数是属于 RMS norm 的向量参数,还是属于 attention 矩阵的矩阵参数。但矩阵参数有额外的结构:它们有奇异值。
Muon 的算法非常简洁:
- 计算梯度 Gt
- 做 momentum 更新:Bt=μBt−1+Gt
- 对 Bt 做正交化:Bt=USV⊤→Ot=UV⊤(将所有奇异值设为 1)
- 用 Ot 更新参数:θt=θt−1−ηOt
直觉上,这类似于 Adam 对每个坐标做归一化(除以梯度的 running average),但 Muon 是在谱范数上做归一化——每个”方向”的更新大小都相同。这只对矩阵参数有意义;对向量参数(如 RMS norm 的 gain),仍然使用标准的 AdamW。
Muon 的巧妙之处分三个层次:(1) 把梯度当作矩阵而非扁平向量处理;(2) 用正交化操作来均衡各方向的更新幅度;(3) 用 Newton-Schulz 迭代(只需矩阵乘法,GPU 上高效运行)来近似正交化,而非直接做 SVD(SVD 在 GPU 上很慢)。通常 5 次迭代就够了,因此命名为 NewtonSchulz5。
Jeremy Bernstein(Muon 的理论推动者之一)甚至主张更激进的方向:每一层应该有自己独立的优化器,因为 Transformer 中每个参数(embedding、attention 投影、MLP、LM head)的角色完全不同。极端情况下,每个参数都可以有独立的优化器——当然,这也意味着需要为每个优化器独立调超参数,实用性存疑。但这可能是优化器设计的未来方向。
Kimi K2:Muon 在大规模上的验证#
故事的最新进展是 Kimi K2——一个在 2026 年发布的高性能开源 MoE 模型——完全使用 Muon 训练。他们发现了一系列 Muon 在大规模下的不稳定性问题,并通过各种 bells and whistles 解决了这些问题。最终模型的训练曲线看起来合理,模型质量也很高。
Kimi K2 没有提供 Muon vs Adam 在同等规模下的消融实验,所以严格来说不能证明 Muon 在大规模下优于 Adam。但至少证明了 Muon 在大规模训练中是一个”可行且有效的方案”。
Muon 故事的寓意:判断一个算法是否在大规模上有效是非常困难的。小规模实验很有价值(NanoGPT speedrun 催生了好的 idea),但从小规模到大规模的迁移充满不确定性。最终需要有人愿意投入大量计算去验证。
muP 的数学基础与工程实践#
muP(Maximal Update Parameterization)的目标已经很清楚:让最优学习率不随模型宽度变化。但它是怎么推导出具体的初始化和学习率缩放规则的?这一节从数学基础出发,解释 muP 的推导逻辑,然后讨论它在实践中的表现和局限。
两个核心不变量#
muP 的数学起点是两个”物理学式”的断言。设网络宽度为 nl(第 l 层的隐藏单元数),随着 nl→∞:
A1(初始化稳定性):初始化时,每个激活值应为 Θ(1)。也就是说,无论网络多宽,初始化后的激活值既不爆炸也不消失。等价地,整个激活向量的范数应为 Θ(nl)。
A2(特征学习):一步梯度更新后,激活值的变化量应为 Θ(1)。这意味着网络在每一步都在做”有意义的学习”——更新量不会随宽度趋于零。这正是 muP 与 Neural Tangent Kernel(NTK)体制的本质区别:在 NTK 体制中,激活变化量随宽度趋于零,网络退化为一个线性模型;muP 要求网络始终保持”特征学习”的能力。
条件 A1 的满足:初始化推导#
考虑一个深度线性网络,权重矩阵 W(l) 的每个元素从 N(0,σl2) 中采样。随机矩阵理论给出,这样的矩阵的算子范数(spectral norm)约为:
∥W(l)∥op≈σl⋅(nfan-out+nfan-in)
如果前一层的激活向量范数为 Θ(nl−1),那么:
∥h(l)∥≈∥W(l)∥op⋅∥h(l−1)∥
要使 ∥h(l)∥=Θ(nl) 在所有层成立,可以用归纳法求解 σl。设
σl=nfan-in(l)1
代入后验证:算子范数变为 nfan-out(l)/nfan-in(l) 的量级,乘以 nl−1 后恰好得到 nl 加低阶修正项。条件 A1 自洽。
条件 A2 的满足:学习率推导#
这是更复杂的部分。考虑单样本 SGD 在深度线性网络上的行为。第 l 层权重的更新是一个秩 1 矩阵:
ΔW(l)=−η⋅∇W(l)L=−η⋅g(l)⋅(h(l−1))⊤
其中 g(l) 是 loss 对该层输出的梯度。第 l 层激活的变化量有三项:
Δh(l)=W(l)Δh(l−1)+ΔW(l)h(l−1)+ΔW(l)Δh(l−1)
- 第一项:前一层变化的传播(归纳假设保证其量级正确)
- 第二、三项:权重更新引起的直接变化
为使三项量级一致且总和为 Θ(nl),需要 ∥ΔW(l)∥op 满足特定条件。再引入一个额外假设——loss 的变化量 ΔL 为 Θ(1)(即模型在每一步都做出了不可忽略的进展)——就可以利用 Taylor 展开和秩 1 更新的结构,最终求解出:
对 SGD:第 l 层的学习率应为
ηl∝nfan-in(l)nfan-out(l)
对 Adam:由于 Adam 已经对梯度做了逐坐标归一化,推导中一些量级会改变,最终得到
ηl∝nfan-in(l)1
也就是说,fan-in 越大的层,学习率越小。
从推导到实践的 Recipe#
把上述推导的结论汇总为实践规则:
| 组件 | 标准参数化(SP) | muP |
|---|---|---|
| 初始化 σl | 1/nfan-in | 1/nfan-in⋅nfan-out/nfan-in |
| SGD 学习率 | 全局统一 | η⋅nfan-out/nfan-in(逐层) |
| Adam 学习率 | 全局统一 | η/nfan-in(逐层) |
当 fan-out = fan-in(即方阵权重),muP 退化为标准参数化。差异出现在 fan-out ≠ fan-in 的层上。
推荐阅读#
muP 的原始理论来自 Greg Yang 的 Tensor Programs 系列论文,但这些论文公认比较晦涩。更推荐的入门读物是 Jeremy Bernstein、Greg Yang 和 James B. Simon 合著的 “A Spectral Condition for Feature Learning”——它用更清晰的框架重述了 muP 的核心思想。多位物理学背景的研究者也从不同角度给出了解读。
Cerebras GPT 的验证#
Cerebras(以芯片设计著称,同时运营语言模型训练团队,负责人正是 scaling law 论文 Hestness 等人)训练了 0.1B 到 13B 的一系列模型,分别用标准参数化和 muP 参数化。他们发现 muP 下的 scaling law 拟合更稳定——预测的 loss 与实际 loss 几乎完全吻合,而标准参数化下的预测波动更大。
Stress Test:什么会破坏 muP?#
一位独立研究者对 muP 进行了详尽的 stress test,系统测试了哪些现代 Transformer 组件与 muP 理论兼容,哪些不兼容:
兼容(大部分实际组件):
- SwiGLU 激活函数(理论上不在 muP 框架内,但实际表现良好)
- 不同的初始化变体
- RMS Norm(只要不学习 gain 参数)
不兼容:
- 可学习的 RMS Norm gain:这会破坏 muP 的学习率不变性。好在 gain 参数在很多场景下可以去掉而不显著影响性能
- Lion 优化器(基于梯度符号的优化器):sign 操作破坏了 muP 推导中的量级关系
- 大的 decoupled weight decay:这是最令人担忧的失败案例——大 weight decay 会导致 muP 的学习率迁移完全失效
muP 的价值判断:muP 不是一个”放之四海而皆准”的理论——它依赖于多个简化假设(深度线性网络、单样本 SGD、loss 变化为 Θ(1)),且某些常用组件会破坏它。但作为一种”物理学直觉”式的分析框架,它确实给出了有用的初始化和学习率缩放规则,在多个实际训练中被验证有效。它是工具箱中的一个重要工具,而非唯一解。
Scaling 的艺术与科学#
Scaling law 最初给人的印象是一门精确科学:画出直线,拟合指数,外推到目标规模。但经过前面几节的讨论,一个更微妙的图景浮现出来——scaling law 的实践是科学与直觉的混合体。
具体而言,scaling law 确实被广泛用于以下决策:
- 架构选择:MiniMax-01 用 scaling 实验证明混合注意力不劣于纯 softmax 注意力
- 超参数设定:DeepSeek 和 StepFun 用 grid search + power law 拟合来预测最优学习率和 batch size
- 模型规模规划:Chinchilla 分析确定给定计算预算下的最优模型大小和数据量
- 优化器选型:通过跨规模实验判断新优化器的收益是否能保持
但每一项都有其脆弱性:
- 好看的 scaling 趋势可以在下一个数量级突然崩溃(Marin 项目的案例)
- 超参数 scaling law 中的具体数值依赖于训练数据的分布
- 小规模实验中的优化器增益可能随规模递减(Muon 的案例)
- 不同论文对”最优超参数取决于什么变量”这个基本问题都没有达成共识
控制超参数随规模变化的两条主要路线——muP(通过重参数化消除依赖性)和 scaling law fit(通过拟合建模依赖性)——各有优劣,且都在持续演进中。muP 有优雅的理论框架,但假设较强、某些常用组件不兼容;scaling law fit 更灵活直接,但需要大量计算来做 grid search,且拟合质量不总是可靠。
实践中,大多数成功的大规模训练采用的是混合策略:用 muP 风格的初始化保证基本的数值稳定性,用 WSD 学习率调度降低 scaling 实验的成本,再在目标规模附近做有限的 grid search 进行微调。
Scaling law 的本质不是给出确切答案,而是缩小搜索空间——把超参数选择从”完全靠猜”变为”在一个有根据的范围内微调”。真正到了 frontier-scale 的训练,每次都是一次实验。
部分内容可能已过时