全部笔记

Qwen3.8-Flash-Next 架构笔记 · 03 / NORMALIZATION

Norm:先把数值尺度调合适

用 (3, 4) 这个小例子,看懂归一化在做什么,以及它为什么有好几种名字。

中文草稿 本笔记由 GPT-5.6-Sol 和 GPT-6-Astra 混合撰写。 官方博客 技术报告

模型每一层都在处理一串数字。数字的整体尺度会影响后面的计算与训练;Norm 帮助调整这个尺度,让后续层更容易处理。它不负责给句子增加新知识。

RMSNorm 不是新点,参数化和使用位置才是

以 LLaMA 的 RMSNorm 和 Pre-Norm 为已知前提。这章重点是 zero-centered scale、对 norm 参数施加衰减,以及不同分支的归一化范围。Qwen3.8 延续了此前设计,不应把 RMSNorm 本身写成本次创新。

对照项 熟悉的基线 本章关注的变化
缩放参数 直接学习 gamma,通常初始化为 1 学习偏移 w,实际乘数为 1 + w
初始化 gamma = 1 w = 0,同样从恒等缩放开始
对参数衰减的效果 若衰减 gamma,会推向 0 衰减 w 会把实际缩放推向 1
应检查什么 是否使用 RMSNorm 哪一处 norm、按哪些维度归一化、该参数是否衰减

这里的比较基线是典型 dense LLaMA decoder(优化器章以 AdamW 为基线),不代表所有 LLaMA 版本;“变化”也不等于 Qwen 首创。报告、配置与实现分别见 [2][4][39],历史来源见下文。

看图理解数值变小了,比例可以保留
忽略 epsilon,缩放参数设为 1

输入是 (3, 4)

第 1 维3
第 2 维4

均方根约为 3.54

两维都除以同一个 3.54

约为 (0.85, 1.13)

第 1 维0.85
第 2 维1.13

整体尺度变了,3 : 4 的比例保留

RMSNorm 调整整体尺度,不减去均值两侧条形图各自按最大值缩放,用来比较比例;绝对大小请看数字。
RMSNorm 的二维算术例子,忽略 epsilon,gain 设为 1。输出约为 (0.85, 1.13),均方根为 1,均值不为零。方法依据 [8]。

为什么还会看到 LayerNorm、Pre-Norm 等名字?

它们不全在回答同一个问题。

LayerNorm 与 RMSNorm:怎么算? LayerNorm 先减去均值,再按标准差缩放。RMSNorm 不做减均值。还是 (3, 4),在同样省略参数的条件下,LayerNorm 得到 (-1, 1),与图中的结果不同。[51][8]

Pre-Norm 与 Post-Norm:放哪儿? 可以先调整尺度再交给一个子层,也可以在子层结果与旧表示相加后再调整。这会改变信息和梯度沿着深层网络传播的路径。[7]

Zero-centered:学哪个缩放参数? 可以直接学缩放倍数,也可以学它相对 1 的偏移。后者配合参数衰减时,会倾向回到“不额外放大或缩小”的基点。这里的“零中心”指参数,不是说输出均值为零。[35]

Qwen 怎么使用这些东西?

Qwen3.8 沿用了 zero-centered RMSNorm,并在不同部位调整不同张量的尺度。例如,多条残差分支被读出时先分别归一化;GDN 的输出也会被归一化。[2]

所以只记“这个模型用了 RMSNorm”还不够。看结构图时,继续问一句:这一处到底在调整哪一串数字? 这个问题通常比先记住全部公式更有帮助。

需要时回顾:已有 Transformer / LLaMA 基础

把它想成调音量,但别把它想成改内容

同一段录音,音量过大或过小都会影响后续处理。调音量的目的,是把整体大小放到更合适的范围。归一化也在做类似的尺度调整,不过它处理的是隐藏向量的数值。

这个比喻只说明“尺度”。真实网络里的每个维度并不是一个声音频道,Norm 也不能保证整段训练一定稳定。

看一个能手算的例子

向量是 (3, 4)。先把两个数平方,求平均,再开平方,得到约 3.54;然后两个数都除以 3.54,得到约 (0.85, 1.13)。这就是图里的 RMSNorm 的核心操作。[8]

它没有把每个数变成一样大,而是按共同的尺度缩放。图里省略了很小的数值保护项和可学习的缩放参数;实际模型还会用这些参数调节输出。

怎么一步步走到这里?

  1. 先解决单个样本怎么归一化。 LayerNorm 不用依赖同一批次其他样本的统计,适合序列模型的使用场景。[51]
  2. 网络深了,开始研究放置位置。 Pre / Post 的区别影响梯度传播;它们不是两个不同的均值公式。[7]
  3. 保留缩放,简化统计。 RMSNorm 省去减均值;LLaMA 等模型采用它。[8][36]
  4. 继续细调结构和参数。 DeepNorm 研究缩放与初始化,Gemma 2 在子层前后都做归一化,Qwen 还关注缩放参数的增长。这里有多条并行路线。[52][38][35]

读到这里,先记住:先问“调哪串数字、怎么算、放在哪儿”,再看参数怎么学。这四个问题分开后,Norm 的几个名字就不容易混淆。

继续深入:论文脉络、公式与实现细节点此展开原有详细笔记;用于核对精确公式、配置和论文证据。

Qwen3.8 延续 Qwen3-Next 的 zero-centered RMSNorm,并对 norm weight 使用 weight decay。官方博客把它列为“retained”的训练稳定性设计,而不是本次发布的新结构。理解这一章的关键,是把三个容易混在一起的概念分开:归一化放在哪里、统计哪些量、缩放参数怎样参数化与优化。[1][35]

发展主线:统计量、放置位置、参数化分别演进

2016—2019:先定义“按什么范围归一化”

LayerNorm(2016)对单个样本的一组隐藏特征计算均值和方差;在 Transformer 中,通常是每个 token 的 hidden 维。[51] 这使其统计量不依赖同一 batch 的其他句子。它没有把整段文本所有 token 混在一起求一个均值,也不是把概率做 softmax。

RMSNorm(2019)提出保留缩放而省略减均值。[8] 用 $x=(3,4)$ 做教学计算,忽略 epsilon、令 gain 为 1:LayerNorm 得到 $(-1,1)$,RMSNorm 得到约 $(0.85,1.13)$。后者均值显然不为零,但均方根为 1。于是“RMS”与“zero-centered”不能望文生义地混用。

2017—2024:网络变深,Norm 的位置也成为设计变量

原始 Transformer 的 Post-LN 把残差相加后的结果规范化。[5] Pre-LN 将规范化放到子层入口,给主干留下直接相加路径。Xiong 等(2020)从初始化处的梯度行为解释两种布局及 warmup 需求的差异;这是一项分析工作,不应写成“2020 年才发明 Pre-LN”。[7]

用链式法则看,Pre-Norm 子层 $y=x+F(N(x))$ 的 Jacobian 包含显式的 $I$ 项;Post-Norm 的恒等分支也经过 Norm 的导数。这解释了为何位置会影响优化,但不能证明 Pre-Norm 在任意深度下都不会不稳定。

DeepNorm(2022)把残差缩放与初始化共同设计,展示了另一种训练极深 Transformer 的办法;LLaMA(2023)采用 Pre-RMSNorm;Gemma 2(2024)则在子层输入和输出都使用 RMSNorm。[52][36][38] 后两者的差异说明,归一化的历史并没有停在“Post 全面换成 Pre”。DeepNorm 的主要证据来自其论文的模型和任务,也不能直接当成 decoder LLM 的通用结论。

设计轴 可选方案 阅读实现时应检查
统计范围 hidden 向量、Q/K head、独立残差分支 实际归一化的张量维度
统计方式 LayerNorm、RMSNorm、L2 norm 是否减均值,分母是什么
放置位置 Pre、Post、子层前后都有 恒等路径是否经过 Norm
gain 参数化 直接学 gain、学相对 1 的偏移 初始化与 weight decay 拉向哪里

2025—2026:从“能训深”转向局部异常尺度

Qwen3-Next 的 zero-centered RMSNorm 被 Qwen3.8 沿用,用来约束 norm gain 增长。[35][2] 理解这种参数化可以用一个通用例子:若有效 gain 写为 $1+\delta$,对 $\delta$ 做衰减会拉向单位缩放;若直接衰减 gain,则拉向零缩放。两种形式可表示相同的函数族,但优化轨迹和正则化中心不同。这里是参数化原理,具体实现仍应核对源码。

接下来读三个机制时,可以分别回答:Pre-Norm 改的是路径,RMSNorm 改的是统计量,zero-centered 改的是参数基点。它们可以同时存在。

1. 三个不同的问题

位置

Post-Norm 还是 Pre-Norm

Norm 放在子层之后还是之前,改变的是深层网络中残差主干与梯度传播路径。

统计量

LayerNorm 还是 RMSNorm

LayerNorm 做中心化与缩放;RMSNorm 只按均方根缩放,不减去激活均值。

参数

普通 gain 还是 zero-centered gain

改变可学习缩放参数围绕什么基点训练,并配合 weight decay 控制其增长。

把“zero-centered RMSNorm”理解成“RMSNorm 会把 activation 变成零均值”是错误的。RMSNorm 本身没有减均值。这里的 zero-centered 指向 gain 的参数化和优化中心,而不是 activation statistics。[8]

2. 从 Post-Norm 到 Pre-Norm

原始 Transformer 的典型结构是 LayerNorm(x + F(x)),也就是先做子层与残差相加,再归一化。后来 decoder-only LLM 更常见 x + F(Norm(x)):残差主干保留一条更直接的恒等路径,通常更容易训练很深的网络。[5][7]

Post-Norm

y = Norm(x + F(x))

每层输出都被重新归一化,但恒等路径也经过 Norm。

Pre-Norm

y = x + F(Norm(x))

残差主干更直接;子层读取归一化后的输入。

Qwen3.8 的 GR 仍保留“子层读取规范化表示,输出写回残差流”的总体逻辑,但读写操作不再是单向量上的简单 Pre-Norm。它会先分别规范化 4 条 branch,再通过 gate 合并为 block input;因此 GR 的 read 已经包含了 norm,不需要额外叠一层 Pre-Norm。

3. 从 LayerNorm 到 RMSNorm

对一个 d 维向量,LayerNorm 与 RMSNorm 的核心差别可以简化为:

LayerNorm(x) = γ ⊙ (x - mean(x)) / √(var(x) + ε) + β RMSNorm(x) = γ ⊙ x / √(mean(x²) + ε) 写法省略了实现差异;RMSNorm 保留 rescaling,不显式执行 re-centering。

RMSNorm 的计算更简单,也已成为 LLM 中常见选择。它不意味着均值永远无关,而是把“必须在每次 norm 中显式消除均值”这一约束拿掉,让周围线性层与残差路径共同适应。[8]

4. Zero-centered 改了什么

普通 RMSNorm 通常把可学习 gain 初始化在恒等缩放附近。Zero-centered 参数化把可学习的偏移量放在零附近,再由实现恢复恒等尺度;这样 weight decay 拉回的是“无额外缩放”的基点,而不是把有效尺度直接拉向零。

Qwen3-Next 的官方说明给出的背景是:QK-Norm 等位置的部分 norm weight 曾异常增大,因此采用 zero-centered RMSNorm 并对 norm weight 衰减。Qwen3.8 继续沿用这一 recipe。[35]

5. Qwen3.8 中 Norm 出现在哪里

Residual read4 条 branch 分别 RMSNorm

每条分支有自己的 gain;规范化后再共同预测 elementwise read gate。

GDN outputrecurrent output RMSNorm

状态读出先规范化,再乘输入相关的 sigmoid output gate。

GDN Q/KL2 normalization

约束 rank-one delta update 中 Q/K 的向量长度;这不是 hidden-state RMSNorm。

QSA indexer / coreQ/K RMSNorm

配合 partial RoPE 与 attention score 计算,控制 query/key 数值尺度。

这些 norm 作用在不同张量、处理不同数值问题。只说“模型用了 RMSNorm”会漏掉它与 gate、recurrent state 以及 widened residual stream 的耦合。

6. 它解决的是局部稳定性,不是单独的性能模块

Norm 的直接目标是控制尺度与优化条件,不是增加模型可表示的知识容量。Qwen3.8 报告中的稳定性来自组合方案:zero-centered RMSNorm、bounded sigmoid gates、GR 的 branch-wise normalization、Muon 参数分工、梯度裁剪策略等一起作用。

因此不应从整套架构的 loss 或 benchmark 改善反推“zero-centered RMSNorm 单独贡献了多少”。官方材料证明它被沿用,并解释了动机;但这份报告没有提供一张完整的 普通 RMSNorm vs zero-centered RMSNorm 独立消融表。

读完后,试着解释

为什么 RMSNorm 后的均值可以不为零?Pre-Norm 和 zero-centered 是一回事吗?

展开参考答案

RMSNorm 没有减均值,只按均方根缩放。Pre-Norm 描述归一化的位置;zero-centered 描述 gain 的参数化基点。两者解决不同问题,可以同时使用。

本章参考

[1] Qwen3.8 官方博客;[2] 技术报告 §2.1 与 §2.2;[5] Transformer;[7] Pre-LN 分析;[8] RMSNorm;[35] Qwen3-Next 官方博客。

查看完整参考文献与资料边界