Day 15 · 归一化演进
归一化演进:为什么更简单的 RMSNorm 反而更稳?
第 2 周我们掌握了 2017 原版 Transformer 的全貌。从今天起,我们正式进入第 3 周——考古近十年里每个部件是如何被改写和淘汰的。第一站是归一化:看 Post-LN 为什么把训练推向崩溃边缘、Pre-LN 怎么拯救了梯度,以及为什么删掉均值计算的 RMSNorm 成为了现代大模型(LLaMA/K3)的绝对标配。
学完你能回答
Post-LN 与 Pre-LN 的本质区别在哪里?
学完你能回答
为什么说「均值平移」对大模型根本不重要?
学完你能回答
RMSNorm 为什么比 LayerNorm 更省访存、更快?
1起点:这些你早就会了
归一化的演进,是一场「给主干道拆除路障」与「公式做减法」的过程:
| 你已经会的 | AI 世界里对应的东西 |
| 高速路口设收费站:主线车辆每过一站都被强行拦停称重 | Post-LN:残差主干被 LayerNorm 反复强行改变方差,深层梯度衰减 |
| 辅道匝道检查站:只在进出匝道检查,主线直通车不设卡 | Pre-LN:主干残差直通无阻,只对进入子层的分支做归一化 |
| 向量归一化:只要长度单位化(除以模长),不需要移动原点 | RMSNorm:舍弃均值中心化,仅用均方根(RMS)缩放特征模长 |
| 少算一步减法:每秒几百亿次循环里,能省一步就省一步 | 算力吞吐加速:RMSNorm 减少显存读写与同步开销,更省、更快 |
| 新车磨合期:先低速跑一段,再放开正常开 | Warmup(预热):Post-LN 训练初期必须用小步长慢慢热身,换 Pre-LN 后大幅缩短 |
2Post-LN vs Pre-LN:把收费站挪到匝道上
2017 原版 Transformer 采用的是 Post-LN,即公式为 x_(l+1) = LN(x_l + f(x_l))。
核心机制:高速直通路被切断了
•
Post-LN 的致命缺陷:每一层的输出都要硬生生过一遍 LN。LN 就像在主干高速公路上每隔 100 米设一个收费站,主干特征 x 无法自由累积;求导时残差保底项 +1 被 LN 的雅可比矩阵强行干扰,导致
浅层梯度被极度压缩,模型难以加深,必须用极其小心的 Warmup 慢慢预热。
•
Pre-LN 的优雅救赎:公式改为
x_(l+1) = x_l + f(LN(x_l))。收费站被移到了进入子层 f 的匝道上!
主干道变成了完全纯净的
恒等加法直通线(x_L = x_0 + Σ f(LN(x_l))),百层大模型训练稳定如丝,连 Warmup 都能大幅缩短。
严格来说,LN 并不会真的「拦停」主干信息——它是一次可微的变换,信息并没有丢,只是它对数值尺度的反复重塑干扰了梯度直通的通道;Pre-LN 解决的正是这个通道问题,而不是让信息「免于被检查」。
图 15.1:Post-LN 与 Pre-LN 拓扑对比。Pre-LN 保证了信息在主干上以纯加法流动,彻底释放了残差直通的威力。
3RMSNorm:删掉均值计算的极简哲学
搞定了 Pre-LN 之后,研究者 Zhang 等人(2019)提出了一个更激进的灵魂拷问:LayerNorm 公式里减去均值 μ 这一步,真的有必要吗?
LayerNorm vs RMSNorm 公式对比
• 经典 LayerNorm:LN(x) = (x − μ) / √(σ² + ε) · γ
(先算均值 μ = (1/d)·Σ x_i,再算方差 σ² = (1/d)·Σ (x_i − μ)²)
• 极简 RMSNorm(均方根归一化):RMSNorm(x) = x / RMS(x) · γ,其中 RMS(x) = √((1/d)·Σ x_i² + ε)
几何直觉:方向比原点平移重要得多
实验与理论分析表明:LayerNorm 起作用的绝大部分在于
缩放向量的模长(Scale),防止激活值无限膨胀;而减去均值(Shift 原点平移)对模型性能几乎没有影响。
工程红利:RMSNorm 直接省去了求均值和减均值的两次全局遍历,减少了 GPU 显存反复读取(SRAM / HBM 通信),
更省访存、计算更快,且训练稳定性完全不减!
严格来说,「缩放起主要作用」是 RMSNorm 原论文的实验结论,不是对所有任务都严格成立的定律;而且 RMSNorm 并没有把变换删光——它仍保留了可学习的缩放参数 γ,只是砍掉了均值中心化这一步。
4Kimi K3 的选择:把 RMSNorm 插进专家通路
在 2026 年的《Kimi K3 技术报告》中,RMSNorm 出现在多个关键位置:KDA 的输出、注意力的键打分,以及——最能体现今天主题的一处——LatentMoE(一种在紧凑潜空间里运行的混合专家结构,MoE 在 Day 20 细讲)内部。面对 896 选 16 的超大规模专家路由,每个 token 选中的专家不同、路由权重不同,聚合出来的向量尺度就忽大忽小;K3 的做法是在专家聚合与升投影之间插入 RMSNorm(§2.3.1),先把尺度压稳,再映射回模型全宽度,保证了海量专家在 2.8T 参数下依然平稳收敛。
进阶小注 ·报告式 (11) 写作 y = Σ E_shared(x) + W_↑ · RMSNorm(u):共享分支(全宽度通路)与路由分支(潜空间内先归一化、再经升投影矩阵 W_↑ 映射回全宽度)最后相加合并。注意 RMSNorm 只压在路由分支上——这正是「收费站设在匝道上」的 Pre-LN 思路在 MoE 内部的复刻。
5面试视角
面试视角 · 高频考点
面试官可能会问:「为什么现代主流开源大模型(如 LLaMA、DeepSeek、Kimi K3)几乎全部采用 Pre-RMSNorm 代替 2017 原版的 Post-LayerNorm?」
八股答「Pre-LN 比 Post-LN 训练更稳定,不需要很长的 Warmup。RMSNorm 相比 LayerNorm 去掉了均值计算,计算速度更快,效果基本持平,所以大家都在用。」——答得全面,若能深入到残差直通线与 GPU 访存带宽则更完美。
本课答「核心包含拓扑与算子两个维度的演进:① 拓扑维度(Pre-LN 替代 Post-LN):Post-LN 将归一化置于残差相加之后,破坏了恒等映射直通链,导致浅层梯度被反复衰减;Pre-LN 将归一化置于子层分支内部,使主干残差保持纯加法累积(x_L = x_0 + Σ f),消除了深层训练时的梯度震荡;② 算子维度(RMSNorm 替代 LayerNorm):归一化的核心价值在于约束特征向量的模长尺度,而非中心化平移;RMSNorm 舍弃了均值 μ 的计算,减少了一次规约与显存访存(Memory Access),在现代 GPU 内存带宽受限(Memory-bound)场景下更省访存、算子吞吐更高,且不损表征能力。」
6映射到原文:K3 报告 §2.3.1
技术报告原文对照 · 《Kimi K3 技术报告》§2.3.1 归一化 LatentMoE
「原始 LatentMoE 直接对聚合后的路由表示 u 施加 W_↑,而 u 的尺度会随被选中的专家及其路由权重变化。如式 (11) 所示,Kimi K3 改为在专家聚合与升投影之间插入 RMSNorm。该归一化降低了路由分支对尺度变化的敏感性,使其在与全宽度共享分支合并之前保持稳定。除稳定训练外,额外的 RMSNorm 还持续改善了验证损失与下游基准测试。」
逐词翻译:
- 「聚合后的路由表示 u」:被选中的 16 个路由专家各自干完活,把输出按路由权重加权加在一起,得到的那个向量就是 u。
- 「u 的尺度会随被选中的专家及其路由权重变化」:每个 token 抽到的专家组合不同、权重不同,加出来的向量长度就忽大忽小——这就是第 3 节说的「模长失控」隐患。
- 「在专家聚合与升投影之间插入 RMSNorm」:升投影(W_↑)是把潜空间的小向量放大回模型全宽度的一步;K3 在放大之前先把 u 的模长归一化压稳——正是「收费站设在匝道上」的思路。
- 「持续改善了验证损失与下游基准测试」:这个 RMSNorm 不只是为了训练不崩,还实实在在让模型考分更高——稳定与效果两头都赚。
7自测题(先自己答,再点开看解析)
Q1 画出 Pre-LN 和 Post-LN 的数据流公式差异。
解析:Post-LN 为 x_(l+1) = LN(x_l + f(x_l));Pre-LN 为 x_(l+1) = x_l + f(LN(x_l))。
Q2 为什么 Pre-LN 结构下深层网络更容易训练?
解析:因为 Pre-LN 保证了主干道是无干扰的加法连加 x_L = x_0 + Σ f_l,求导时梯度可以无阻碍地直通最底层,避免了浅层梯度消失。
Q3 RMSNorm 相比传统 LayerNorm 砍掉了哪个数学步骤?
解析:砍掉了均值计算(μ = (1/d)·Σ x_i)与中心化减均值(x_i − μ)步骤,只保留均方根除法与可学习参数缩放。
Q4 为什么去掉均值计算不会损害大语言模型的效果?
解析:实验证明归一化之所以稳定训练,核心在于控制特征向量的模长尺度(Scale),防止数值发散;而原点平移(Shift)对语义表征无实质帮助。
Q5 在设计存活表上,归一化部件从 2017 到 2026 经历了怎样的接力?
解析:经历了两步接力:第一步从 2017 的 Post-LN 变为 Pre-LN(解决拓扑稳定性);第二步从 Pre-LN 演进为 Pre-RMSNorm(极致精简与显存加速,K3 最终选择)。
明天 · Day 16
位置编码演进:正弦 → RoPE → NoPE
为什么旋转向量(RoPE)能统治大模型?Kimi K3 的 NoPE 又是如何做到百万 token 隐式感知的?
进入 Day 16 →