小模型上调好的学习率,大模型能用吗?
本课一问:在一个宽度 256 的小模型上仔细扫出了最好的学习率。把模型放宽到 5,120,这个学习率还能直接用吗?如果不能,能不能换一种写法,让它能用?
这一课先不碰:batch 与训练步数怎么随规模变(C6 第 4 课);跨深度的迁移(只在 Dig 里提一句)。
从已有出发
两条旧线索:C5 第 2 课——Adam 做完偏置修正,第 1 步每个参数恰好走 ±η,与梯度大小无关;C6 第 4 课——按 DeepSeek LLM 拟出的超参缩放律,从 10¹⁷ FLOPs 的小实验到 67B 那一档,最优学习率该小 7.5 倍,那一课把「直接搬」列为朴素方案,并说另一条路(μP)在这里兑现。
这一课的例句用法:把「小明把苹果给了小王」5 个 token 在某个隐层的输入当成一个 batch(B = 5,向量用随机数代替),看 Adam 的第 1 步让这一层的输出变了多少。
先自己设计:标准参数化,直接搬学习率
标准参数化(SP)就是我们一直在用的写法:权重按 1/fan_in 的方差初始化(第 1 课),所有矩阵共用一个学习率。宽度 256 上调好的 η = 3×10⁻³(我们项目的基线),原样用到更宽的层:
- ① 朴素方案
- ② 它在哪失败
- ③ 改进方案
计算中……
计算中……
为什么是「∝ 宽度」,而不是「∝ √宽度」?看这一层的一个输出:
| 维度 | 含义 | 真实规模 | 小规模 |
|---|---|---|---|
| T | 这里只看一个 token | 1 | 1 |
| d | 输入宽度 hidden_size = fan_in | 5120 | 4 |
| I | FFN 中间维 intermediate_size | 17,408 | 6 |
这一步推导在 B = 1 时是恒等式 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条G_ij = δ_i·x_j,sign(G_ij) = sign(δ_i)·sign(x_j),代入 Σ_j ΔW_ij x_j 即得 −η·sign(δ_i)·Σ|x_j|。B > 1 时符号只与每个 x_j 正相关,常数变小,增长仍 ∝ d(组件切到 B = 5 可见)。 出处待补 ;组件里 B = 1 与 B = 5 两种情况的 log-log 斜率都约为 1。μP 的论文把同一件事说成:在 SP 下,「一步更新之后,网络输出随宽度爆开」 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条原文用一个一层线性感知机的例子:SP 下一步 SGD 之后 f(x) 含 UᵀU = Θ(n) 项;图 5 在 Transformer 上实测 logits 与注意力 logit 在一步更新后随宽度变大(μP 下不会)。 出处Tensor Programs V §5 ↗需联网 。
改进:μP——按宽度缩放每一层
μP(Maximal Update Parametrization)的思路:既然每一步的改动 ∝ 学习率 × 宽度,那就让每一类参数的学习率(和初始化)按宽度缩放,把宽度约掉。Adam 下的规则逐项看:
计算中……
结果:Tensor Programs V 在 40M 参数的代理模型上调参,迁移到 GPT-3 6.7B,效果超过原版 6.7B,调参成本只占预训练的 7%;在 13M 上调参迁移到 BERT-large(350M),调参成本约等于预训练 BERT-large 一次 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条自报;μP 首提于 Tensor Programs IV(Yang & Hu 2020,arXiv 2011.14522),μTransfer 出自 TP-V(Yang et al. 2022)。 出处Tensor Programs V 摘要 ↗需联网 。论文里还有一个和本章前几课直接相关的用法——「反向 μTransfer」:宽度 8,192 的模型训到一半发散,把同一组超参迁移到宽度 256 的小模型上复现出同样的发散,在小模型上查出原因是注意力 logit 爆开,再回头确认大模型也是它。小模型成了大模型的调试器,这正是 Wortsman 2023 做「小模型代理」的思路(第 3 课)。
我们自己的模型上:SP 下最优学习率漂不漂
这组扫描是在标准参数化下做的(C6 的 lr_width 实验):如果最优学习率随宽度往小的方向移,就是本课「∝ 宽度」的实测;我们只有 4 层、宽度 64 到 512,规模小,读图时看趋势,不看具体数值。项目本轮没有实现 μP 版本的对照,这是一个空缺(见章首页的项目推进)。
常见误解一:「μP 找到了最优学习率。」μP 不回答「最优是多少」,只保证「最优点不随宽度移动」;你仍然要在小代理模型上扫一遍。
常见误解二:「μP 能迁移所有超参。」TP-V 表 1 写明:优化类超参、初始化、乘子可以迁移;正则化(dropout、weight decay)不能——它依赖模型大小和数据量,μP 不知道数据有多少。跨宽度有理论保证,跨深度、batch、训练时长、序列长度只在 Transformer 上有实验。
常见误解三:「用了 μP,就不需要 QK-Norm、warmup 了。」μP 解决的是「随宽度变」;固定宽度下,第 2–4 课的不稳定照样会发生。Wortsman 2023 把 μParam 当作降低学习率敏感度的手段之一,与 qk-layernorm、z-loss、warmup 放在一起比较,而不是替代它们。
🔍 两条路:μP 与超参缩放律,各家怎么选?
C6 第 4 课的路是拟合:在一串规模上扫出最优学习率与 batch,拟合成随算力变化的幂律(DeepSeek LLM、Qwen3、Qwen3.8、Kimi K3 都这样做)。本课的路是改写参数化,让最优点不动(MiniCPM 使用了 Tensor Program 系的缩放技术;EleutherAI 与 Cerebras 2024 年发布了面向实践者的 μP 指南)。前者不改模型、要多跑实验;后者要改初始化与每层学习率,换来的是小模型结论可以直接搬。另外,Muon 把每个更新矩阵的 RMS 缩放到固定值(C5 第 7 课、Moonlight 的做法),也是在「让每一步改多少与形状无关」这件事上做文章——苏剑林《初探 MuP》专门推导了 Adam 版与 Muon 版的缩放规则。
证据三问
| 问 | 本课的回答 |
|---|---|
| ① 它解决什么问题? | 让小代理模型上调好的学习率(与初始化)直接用到宽得多的模型上,不必在大模型上重扫 |
| ② 数学上为什么可能有效? | SP 下一步更新的改动 ∝ 宽度,B = 1 时是恒等式 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条见上方推导。 出处待补 ;μP 的规则在无限宽极限下推出,保证每层的特征变化与宽度无关 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条无限宽极限下的推导;有限宽度只是近似。 出处Tensor Programs IV ↗需联网 |
| ③ 实验上为什么被采用? | TP-V:40M → GPT-3 6.7B,调参成本 7%;我们的组件里 μP 那条线斜率约 0;SP 下的项目扫描见上 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条迁移效果与 7% 都是自报;很多前沿实验室选择的是拟合超参缩放律,不是 μP。 出处待补 |
一句话
先停在这里:记住「改动 ∝ 宽度 × η」和「μP 管的是随宽度变,不管固定宽度下的不稳定」。
再深一层:读苏剑林《初探 MuP》,再对照 C6 第 4 课的超参缩放律,想一想两条路各自要多少次实验。
下一个缺口
训得稳了:训练一个参数,到底要几字节?logit 漂到上千时,BF16 还分得清吗? → C9 第 1 课:训练一个参数,要几字节?
第 4 课的 z-loss 组件已经算过:logit 在 1,000 附近时,BF16 相邻两个可表示数相差 4。数值格式能表示什么、表示不了什么,C9 从字节账算起。
你可能会问
- 「为什么 embedding 的学习率不用跟着变?」embedding 是查表:一个 token 只更新自己那一行,更新量对下一层的影响不随宽度累加;真正按 fan_in 累加的是矩阵乘。
- 「Muon 是不是自带 μP?」不完全是。Muon 把更新矩阵正交化、再按形状缩放 RMS,和 μP 同样关心「每一步改多少与形状无关」,但两者的规则不同;苏剑林的文章推导了 Muon 版的 μP。
- 这一课还没有收到真实提问;你的提问会记到
05-问答记录/C8-L5.md。