Lecture 05 · 归一化位置:从优化问题到可检验改动

R49 · 归一化位置:从优化问题到可检验改动

目标与可见范围选好了,新块仍可能训练不稳。接回L2的学习率和梯度经验,以归一化位置为例检查一个结构改动怎样得到可检验的训练理由。

状态 b0

两条残差路径并置,LayerNorm分别在相加后与分支前。先看归一化位置怎样改变计算通路,再联系初始训练稳定性。

同样的残差块,为什么归一化位置值得研究?约束:较大学习率开始训练时,更新是否稳定?post-LNy = LN(x + F(x))pre-LNy = x + F(LN(x))相加后再归一化分支先归一化;保留直接残差通路接回 L2:能表示一个好解,还要看优化能否到达。

状态 b1

论文对照新增两种训练配置。对齐两列的归一化位置与学习率调度,找出同时变化的条件;结果接近时也不能只归因于位置。

较早达到相近checkpoint表现,不等于在同一硬件上已经证实墙钟加速。

论文对照:这里同时改变了几件事?IWSLT14 德→英 · 论文结果post-LNLN(x + F(x))4000 步 warmup随后逆平方根衰减pre-LNx + F(LN(x))无 warmup第 8 epoch:学习率 × .1约 34 BLEU;pre-LN 较早达到相近验证表现位置 × warmup:怎样把这两种影响分开?

状态 b3

四格把位置与warmup分别组合。先用稳定性指标检查训练能否可靠进行,再看固定预算验证质量;这是待执行比较。

同样的残差块,为什么归一化位置值得研究?我们的下一步:位置 × warmup,做2×2配对无 warmup4000步 warmuppost-LN同数据/种子/更新数同数据/种子/更新数pre-LN同数据/种子/更新数同数据/种子/更新数先看:loss、梯度范数、失败率;再看固定预算下验证质量。若稳定性与质量无优势,调优后的 post-LN 仍是合理基线。

状态 b2

展开完整局部结构,检查pre-LN堆叠末端的最终LN。单个分支前归一化不是完整网络的全部归一化位置。

原始 post-normLN(x + Sublayer(x))输入 xSublayerLayerNorm+pre-normx + Sublayer(LN(x))输入 xLayerNormSublayer+残差主路与归一化支路的次序改变。

公式与算例详情

位置改变了哪条计算路径

post-LN 为 $y=\operatorname{LN}(x+F(x))$;pre-LN 为 $y=x+F(\operatorname{LN}(x))$,完整 pre-LN 堆叠末端另加最终 LN。两者改变子层看到的输入以及残差路径经过归一化的位置。Xiong et al.(ICML 2020) §3 分析初始化时的梯度,§4 再检查训练与任务表现;前向公式本身不等于训练稳定性的实验结论。

原论文比较了哪些设置

Figure 4 使用 IWSLT14 德→英:6 层 encoder+6 层 decoder,$d=512$,4 个 head,FFN 宽度 1024;Adam $\beta=(.9,.98)$,最大/初始学习率 $5\times10^{-4}$。post-LN 使用 4000 步 warmup 与逆平方根衰减;pre-LN 不使用 warmup,第 8 个 epoch 把学习率降至 .1 倍。两者约 34 BLEU;pre-LN 第 9 个 checkpoint 与 post-LN 第 15 个近似相当。位置与学习率调度同时改变,因此这不是只改变位置的因果对照;checkpoint 数也不是统一硬件下的墙钟时间。

怎样区分位置与 warmup 的作用

待执行的设计是位置×warmup 的 2×2:固定数据、tokenizer、初始化种子组、更新数、batch、优化器、最大学习率及 warmup 结束后的调度函数。先观察 loss 曲线、各层梯度范数和失败率,再比较固定预算下的验证 NLL/BLEU,并包含已调优 post-LN 基线。前述数字来自论文;本轮没有执行这组训练。

参考与采用

原课页采用记录:M27 attention 之后的 block、M32 现代归一化与 FFN 变体。页码均按PDF物理页计。

继续学习

若问题是归一化具体改变哪条路径,读归一化:放在哪里,处理哪一个轴,对应CLS 02“在已经认识的 block 上读懂现代部件”;在LAB 03“F · 跟着一个 token 穿过完整 encoder block”核对 pre/post 的前向差异。若问题是训练为何更稳,接一次有约束的比较怎样开始及位置×warmup 设计,对照论文配置与待执行 2×2检查变量。F 的数值复算不是这组训练的完成记录。