<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>预训练 | Yadong's Blog</title><link>https://dingyadong.top/tags/%E9%A2%84%E8%AE%AD%E7%BB%83/</link><atom:link href="https://dingyadong.top/tags/%E9%A2%84%E8%AE%AD%E7%BB%83/index.xml" rel="self" type="application/rss+xml"/><description>预训练</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-cn</language><lastBuildDate>Thu, 09 Apr 2026 02:30:00 +0800</lastBuildDate><image><url>https://dingyadong.top/media/icon.svg</url><title>预训练</title><link>https://dingyadong.top/tags/%E9%A2%84%E8%AE%AD%E7%BB%83/</link></image><item><title>NormFormer：用额外归一化改进 Transformer 预训练</title><link>https://dingyadong.top/posts/014_normformer_paper_review/</link><pubDate>Thu, 09 Apr 2026 02:30:00 +0800</pubDate><guid>https://dingyadong.top/posts/014_normformer_paper_review/</guid><description>
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;本文是关于 Meta AI 论文《NormFormer: Improved Transformer Pretraining with Extra Normalization》（
）的深度精读笔记。这篇论文通过在 Transformer 架构中添加三处额外的归一化操作，有效缓解了 Pre-LN 架构中各层梯度分布不均的问题，在几乎不增加计算成本的前提下，显著提升了语言模型的预训练效率和下游任务表现。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-引言transformer-归一化问题的前世今生"&gt;1. 引言：Transformer 归一化问题的前世今生&lt;/h2&gt;
&lt;h3 id="11-从-post-ln-到-pre-ln-的演进"&gt;1.1 从 Post-LN 到 Pre-LN 的演进&lt;/h3&gt;
&lt;p&gt;自 Vaswani 等人在 2017 年提出 Transformer 架构以来，&lt;strong&gt;层归一化（Layer Normalization）&lt;/strong&gt; 就是其中不可或缺的核心组件。归一化层的放置位置虽然看似只是一个微小的工程决策，但实际上对模型的训练稳定性、收敛速度和最终性能有着深远的影响。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原始 Transformer 采用 Post-LN 架构&lt;/strong&gt;，即将 LayerNorm 放在残差连接之后：&lt;/p&gt;
$$\text{PostLN}(x) = \text{LayerNorm}(x + \text{Sublayer}(x))$$&lt;p&gt;这一设计在 Transformer 的早期应用中被广泛使用，但随着模型规模的不断增大，研究者们逐渐发现了它的致命缺陷：&lt;strong&gt;后层参数的梯度范数远大于早层，导致梯度爆炸于深层，梯度消失于早层&lt;/strong&gt;。这意味着在反向传播过程中，靠近输入端的层几乎无法获得有效的梯度信号，导致训练极度不稳定。&lt;/p&gt;
&lt;p&gt;为了缓解这个问题，&lt;strong&gt;Pre-LN 架构&lt;/strong&gt; 应运而生，即将 LayerNorm 移到子层的输入端：&lt;/p&gt;
$$\text{PreLN}(x) = x + \text{Sublayer}(\text{LayerNorm}(x))$$&lt;p&gt;Pre-LN 架构被 GPT-2、GPT-3 等里程碑模型所采用，成为大语言模型预训练的事实标准。它显著改善了训练稳定性，使得大规模模型的训练成为可能。&lt;strong&gt;问题解决了吗？答案是否定的。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="12-pre-ln-的隐患反向失配与梯度失衡"&gt;1.2 Pre-LN 的隐患：反向失配与梯度失衡&lt;/h3&gt;
&lt;p&gt;Xiong 等人在 2020 年的研究中首次系统性地揭示了 Post-LN 的梯度问题。然而，NormFormer 的作者们进一步发现，Pre-LN 虽然解决了 Post-LN 的训练不稳定问题，但实际上引入了&lt;strong&gt;方向相反的梯度失配&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Post-LN&lt;/strong&gt;：后层梯度 &amp;raquo; 早层梯度（梯度消失）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pre-LN&lt;/strong&gt;：早层梯度 &amp;raquo; 后层梯度（反向失配）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="为什么梯度不均衡很糟糕"&gt;为什么梯度不均衡很糟糕？&lt;/h4&gt;
&lt;p&gt;用一个工厂流水线的类比来理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;梯度 = 改进信号&lt;/strong&gt;，梯度大的层在训练中改变快，梯度小的层改变慢&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;早层是上游&lt;/strong&gt;，负责提取基础特征。如果上游改进太频繁（梯度过大），下游来不及适应，导致训练不稳定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后层是下游&lt;/strong&gt;，负责学习任务特定的高级表示。如果下游改进太慢（梯度不足），即使获得好的基础特征，也无法有效地组织成好的上层表示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;梯度分布不均 = 各层学习效率不同 = 整体训练收敛慢、最终性能不佳&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 Pre-LN 架构中，这种现象体现为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;早期层过度更新&lt;/strong&gt;：由于梯度过大，早期层的参数在训练初期可能剧烈波动，导致学到的特征不够稳定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;后期层更新不足&lt;/strong&gt;：深层网络中最靠近输出的层本应承担最重要的任务特定表示学习，但它们接收到的梯度信号却相对不足，导致学习速度缓慢。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;关键观察&lt;/strong&gt;：论文通过可视化展示了这一现象：&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Figure 3: Average L1 norm of gradients across layers"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/figure3_hu_912365e85f7a846.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/figure3_hu_b53a7587722dff7c.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/figure3_hu_1d8372aa986662be.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/figure3_hu_912365e85f7a846.webp"
width="760"
height="240"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Pre-LN 的梯度分布呈现明显的递减趋势，与 Post-LN 的递增趋势恰好相反。但&lt;strong&gt;两种趋势都是问题&lt;/strong&gt;——因为两者都导致梯度分布不均。&lt;/p&gt;
&lt;h3 id="13-梯度分布可视化问题的直观表现"&gt;1.3 梯度分布可视化：问题的直观表现&lt;/h3&gt;
&lt;p&gt;为了更直观地理解三种架构的梯度分布差异，我们用下面的图示展示各层的梯度范数变化：&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="梯度流向图：Post-LN vs Pre-LN vs NormFormer"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/gradient-flow_hu_2888b64f237160ca.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/gradient-flow_hu_c541fc62113dabc4.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/gradient-flow_hu_f61a535502b159fd.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/gradient-flow_hu_2888b64f237160ca.webp"
width="760"
height="472"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;图的含义&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;x 轴&lt;/strong&gt;：网络的第几层（从 1 到 12）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;y 轴&lt;/strong&gt;：该层参数的梯度 L1 范数（梯度大小）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;红线（Post-LN）&lt;/strong&gt;：梯度从浅层的很小逐渐增大到深层，形成&amp;quot;阶梯上升&amp;quot;。这导致&lt;strong&gt;深层参数更新剧烈，早层参数更新缓慢&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;蓝线（Pre-LN）&lt;/strong&gt;：梯度从浅层的很大逐渐减小到深层，形成&amp;quot;阶梯下降&amp;quot;。这导致&lt;strong&gt;早层参数更新剧烈，深层参数更新缓慢&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;绿线（NormFormer）&lt;/strong&gt;：梯度在各层基本保持一致的水平，形成&amp;quot;平坦&amp;quot;的分布。这导致&lt;strong&gt;各层参数更新速度均衡&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这张图直观地说明了为什么 NormFormer 能提升训练效率：通过在三个精心选择的位置添加归一化操作，它实现了&lt;strong&gt;梯度在各层的均衡分布&lt;/strong&gt;，使得每一层都能以相近的速率学习，从而提高了整个网络的训练效率。&lt;/p&gt;
&lt;h3 id="14-研究动机能否让梯度在所有层间均衡分布"&gt;1.4 研究动机：能否让梯度在所有层间均衡分布？&lt;/h3&gt;
&lt;p&gt;面对这一发现，NormFormer 论文提出了一个自然而直接的研究问题：&lt;strong&gt;能否通过在 Transformer 的关键位置添加额外的归一化操作，使得各层的梯度范数趋于均衡？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个问题的提出源于一个简单但深刻的直觉：&lt;strong&gt;归一化操作本质上是对激活值进行重新缩放（rescaling），它天然具备调节梯度流动幅度的能力&lt;/strong&gt;。如果我们能在正确的位置插入归一化层，就有可能同时解决 Pre-LN 的早层梯度过大和后层梯度过小的问题。&lt;/p&gt;
&lt;p&gt;在接下来的章节中，我们将看到 NormFormer 如何通过三处精心设计的改进，实现这一目标。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-核心方案三处改进与架构演进"&gt;2. 核心方案：三处改进与架构演进&lt;/h2&gt;
&lt;p&gt;NormFormer 的核心思想可以用一句话概括：&lt;strong&gt;在 Pre-LN Transformer 的基础上，在三个关键位置添加额外的归一化操作，通过精心的梯度控制实现各层学习效率的均衡化&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这三个操作分别是：Post-Attention LayerNorm（注意力后归一化）、HeadScale（注意力头缩放）和 FFN Mid-LayerNorm（前馈网络中间归一化）。它们的协同作用可以用下式表示：&lt;/p&gt;
$$x_{l+1}^{\text{NormFormer}} = \text{NormFFN}(\text{NormScaledMHA}(x_l))$$&lt;p&gt;在深入讲解具体的改进点之前，我们先给出 NormFormer、Pre-LN 和 Post-LN 三种架构的全景对比，帮助读者快速理解各架构的特点。&lt;/p&gt;
&lt;h3 id="20-架构总览"&gt;2.0 架构总览&lt;/h3&gt;
&lt;h4 id="三种架构的特性对比"&gt;三种架构的特性对比&lt;/h4&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Figure 1: NormFormer、Pre-LN 与 Post-LN 架构对比"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/figure1_hu_65b7e3867928d564.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/figure1_hu_907d3f8b57aa34db.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/figure1_hu_1b4a0d45be0471f7.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/figure1_hu_65b7e3867928d564.webp"
width="760"
height="429"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特性&lt;/th&gt;
&lt;th&gt;Post-LN&lt;/th&gt;
&lt;th&gt;Pre-LN&lt;/th&gt;
&lt;th&gt;NormFormer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;归一化位置&lt;/td&gt;
&lt;td&gt;残差连接之后&lt;/td&gt;
&lt;td&gt;子层之前&lt;/td&gt;
&lt;td&gt;多点分布式&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;训练稳定性&lt;/td&gt;
&lt;td&gt;差（需精细 warmup）&lt;/td&gt;
&lt;td&gt;好&lt;/td&gt;
&lt;td&gt;更好（支持更高学习率）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;梯度分布&lt;/td&gt;
&lt;td&gt;后层 &amp;raquo; 早层&lt;/td&gt;
&lt;td&gt;早层 &amp;raquo; 后层&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;各层趋于均衡&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;头级控制&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;有（HeadScale）&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FFN 内部归一化&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;有&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;额外参数量&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;+0.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;额外训练开销&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;+2~6%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关键观察&lt;/strong&gt;：NormFormer 的核心创新在于&lt;strong&gt;在三个精心选择的位置添加归一化操作&lt;/strong&gt;，以极小的代价（0.4% 参数 + 2~6% 计算）实现了梯度分布的均衡化。这种&amp;quot;微创手术&amp;quot;式的改进策略在理论上可以解决 Pre-LN 的梯度失衡问题，同时保留其训练稳定性优势。&lt;/p&gt;
&lt;h4 id="三处改进的位置总览"&gt;三处改进的位置总览&lt;/h4&gt;
&lt;p&gt;NormFormer 的三个改进分别位于 Transformer 块中的不同位置：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Post-Attention LayerNorm&lt;/strong&gt;：在多头注意力输出后、残差连接前&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HeadScale&lt;/strong&gt;：在多头注意力的拼接（concat）操作前，对每个头乘以可学习标量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FFN Mid-LayerNorm&lt;/strong&gt;：在前馈网络的激活函数后、第二个线性层前&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我们将逐个讲解每个改进的工作原理、消融验证数据和实际贡献度。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="21-改进点-apost-attention-layernorm"&gt;2.1 改进点 A：Post-Attention LayerNorm&lt;/h3&gt;
&lt;h4 id="工作机制"&gt;工作机制&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;核心设计：&lt;/strong&gt; 在多头注意力的输出后、残差连接前，添加一个额外的 LayerNorm。&lt;/p&gt;
&lt;p&gt;标准 Pre-LN 的注意力子层为：&lt;/p&gt;
$$\text{PreLN-MHA}(x) = x + \text{MHA}(\text{LN}(x))$$&lt;p&gt;NormFormer 将其修改为：&lt;/p&gt;
$$\text{NormScaledMHA}(x) = x + \text{LN}(\text{HeadScaleMHA}(\text{LN}(x)))$$&lt;p&gt;这里外层的 $\text{LN}(\cdot)$ 包裹注意力输出。这个额外的归一化层起到了&lt;strong&gt;下缩放（downscaling）&lt;/strong&gt; 的作用：论文发现训练完成后，所有层的 Post-Attention LN 的缩放参数（gamma）都低于 1，这意味着它在系统性地降低注意力输出的幅度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为什么这很重要？&lt;/strong&gt; 在标准 Pre-LN 中，注意力层的输出直接通过残差连接加到主干上。如果注意力输出的幅度过大，会导致残差分支主导信号传播，破坏信息在不同层之间的平衡传递。通过添加这一归一化层，NormFormer 能够自适应地控制每一层注意力输出的贡献幅度。&lt;/p&gt;
&lt;h4 id="原理图和实现"&gt;原理图和实现&lt;/h4&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Post-Attention LayerNorm 原理"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/post-attn-ln_hu_650e3dadc91fdb23.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/post-attn-ln_hu_3e2e0622ec83e258.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/post-attn-ln_hu_61aad4458c295a8d.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/post-attn-ln_hu_650e3dadc91fdb23.webp"
width="760"
height="379"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;简洁实现示例（PyTorch）：&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post_attn_layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 新增&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;attn_output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="消融实验数据"&gt;消融实验数据&lt;/h4&gt;
&lt;p&gt;在 125M 模型上的消融结果：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;PPL&lt;/th&gt;
&lt;th&gt;相比完整 NormFormer 的变化&lt;/th&gt;
&lt;th&gt;贡献度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;完整 NormFormer&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 Post-Attn LN&lt;/td&gt;
&lt;td&gt;15.92&lt;/td&gt;
&lt;td&gt;+0.04&lt;/td&gt;
&lt;td&gt;最小&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;贡献度评估&lt;/strong&gt;：Post-Attn LN 的单独贡献最小（+0.04 PPL 退化），但作为整体方案的补充，它有助于进一步稳定梯度流。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="22-改进点-bheadscale"&gt;2.2 改进点 B：HeadScale&lt;/h3&gt;
&lt;h4 id="工作机制-1"&gt;工作机制&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;核心设计：&lt;/strong&gt; 在多头注意力的拼接（concat）操作前，对每个注意力头的输出乘以一个独立的可学习标量参数。&lt;/p&gt;
&lt;p&gt;传统的多头注意力将所有头的输出直接拼接后通过输出投影矩阵：&lt;/p&gt;
$$\text{MHA}(Q, K, V) = \text{Concat}(h_1, h_2, ..., h_n) W^O$$&lt;p&gt;NormFormer 引入了 HeadScale 机制：&lt;/p&gt;
$$\text{HeadScaleMHA}(Q, K, V) = \text{Concat}(\gamma_1 \cdot h_1, \gamma_2 \cdot h_2, ..., \gamma_n \cdot h_n) W^O$$&lt;p&gt;其中 $\gamma_i$ 为可学习的标量参数，&lt;strong&gt;初始化为 1&lt;/strong&gt;，确保训练初期与标准多头注意力完全一致。&lt;/p&gt;
&lt;h4 id="原理图和关键发现"&gt;原理图和关键发现&lt;/h4&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="HeadScale 原理：逐头缩放"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/headscale_hu_2ef1e535a2f9325f.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/headscale_hu_a4d052439fea2345.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/headscale_hu_3b50bc676d871011.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/headscale_hu_2ef1e535a2f9325f.webp"
width="760"
height="432"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键发现：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;头级权重差异化&lt;/strong&gt;：训练后的 $\gamma_i$ 值变化较大，不同头获得了不同的缩放权重，这表明模型学会了&lt;strong&gt;动态调整不同注意力头的重要性&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无单调性约束&lt;/strong&gt;：$\gamma_i$ 与层深度之间没有明显的单调关系，说明 HeadScale 不是简单地对深层或浅层进行统一调节，而是在细粒度上优化每个头的贡献。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最大贡献度&lt;/strong&gt;：在消融实验中，&lt;strong&gt;HeadScale 是三个操作中贡献最大的&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="实现示例"&gt;实现示例&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;head_scales&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 初始化为1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scaled_heads&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;head_scales&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;heads&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scaled_heads&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dim&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W_o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="消融实验数据-1"&gt;消融实验数据&lt;/h4&gt;
&lt;p&gt;在 125M 模型上的消融结果：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;PPL&lt;/th&gt;
&lt;th&gt;相比完整 NormFormer 的变化&lt;/th&gt;
&lt;th&gt;相对贡献度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;完整 NormFormer&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 HeadScale&lt;/td&gt;
&lt;td&gt;16.22&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+0.34&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;69% 的总改进&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;贡献度评估&lt;/strong&gt;：HeadScale 是三个改进点中&lt;strong&gt;贡献最大的&lt;/strong&gt;，单独贡献占总改进（0.49 PPL 相比基线）的约 69%。（注：三个改进的占比之和超过 100% 是因为存在协同效应，详见第 2.5 节）这表明对注意力头进行差异化加权是 NormFormer 最核心的创新。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与注意力头剪枝的联系&lt;/strong&gt;：HeadScale 的思想与注意力头剪枝（Head Pruning）有一定的联系。Chen 等人在 2021 年的工作中使用类似的头级缩放进行模型压缩，而 NormFormer 将这一思想用于改进训练过程，目标不同但技术路线相似。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="23-改进点-cffn-mid-layernorm"&gt;2.3 改进点 C：FFN Mid-LayerNorm&lt;/h3&gt;
&lt;h4 id="工作机制-2"&gt;工作机制&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;核心设计：&lt;/strong&gt; 在前馈网络（FFN）的第一个线性变换之后、激活函数之后，添加一个 LayerNorm。&lt;/p&gt;
&lt;p&gt;标准 FFN 的计算流程为：&lt;/p&gt;
$$\text{FFN}(x) = \sigma(x W_1 + b_1) W_2 + b_2$$&lt;p&gt;NormFormer 将其修改为：&lt;/p&gt;
$$\text{NormFFN}(x) = x + \underbrace{\text{LN}_{\text{mid}}}_{\text{新增}}(\sigma(\underbrace{\text{LN}_{\text{pre}}}_{\text{原有Pre-LN}}(x) \cdot W_1 + b_1)) \cdot W_2 + b_2$$&lt;p&gt;其中 $\text{LN}_{\text{pre}}$ 是 Pre-LN 架构原有的归一化，而 $\text{LN}_{\text{mid}}$ 是 NormFormer 新增的 FFN 中间归一化——它位于激活函数 $\sigma(\cdot)$ 之后、第二个线性变换 $W_2$ 之前。&lt;/p&gt;
&lt;h4 id="关键机制自适应梯度抑制"&gt;关键机制：自适应梯度抑制&lt;/h4&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="FFN Mid-LayerNorm 原理：自适应梯度控制"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/ffn-mid-ln_hu_e49f003a6922a098.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/ffn-mid-ln_hu_bf2c4151f3fd0dca.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/ffn-mid-ln_hu_d3dd635843edcfa8.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/ffn-mid-ln_hu_e49f003a6922a098.webp"
width="760"
height="541"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这是解决梯度失配的核心机制。&lt;/strong&gt; 论文的 Figure 4 &amp;amp; 5 展示了一个极为重要的发现：&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Figure 4 &amp;amp; 5: Scaling parameters and learning rate stability"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/figure4_5_hu_2839d97f2aa297f7.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/figure4_5_hu_486bd82faad645a6.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/figure4_5_hu_9c7ac67978c723e9.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/figure4_5_hu_2839d97f2aa297f7.webp"
width="760"
height="249"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;早期层的 FFN LN gamma 参数系统性地小于后期层的&lt;/strong&gt;。这意味着 FFN Mid-LayerNorm 自适应地减小了早期层全连接层输入的幅度，从而有效降低了早期层的梯度，缓解了 Pre-LN 固有的&amp;quot;早层梯度过大&amp;quot;问题。这种设计妙处在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;无需显式约束 gamma 值&lt;/li&gt;
&lt;li&gt;模型在训练过程中&lt;strong&gt;自动学习&lt;/strong&gt;最优的梯度分配方案&lt;/li&gt;
&lt;li&gt;早层自然获得较小的 gamma（抑制梯度），后层获得较大的 gamma（放大梯度）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="数学直觉"&gt;数学直觉&lt;/h4&gt;
&lt;p&gt;归一化操作通过将激活值映射到零均值、单位方差的分布来工作。当早期层的 FFN 中间激活值幅度较大时，归一化层通过较小的 gamma 参数对其进行压缩，相当于在反向传播时减小了通过这些层的梯度流。这种自适应机制使得模型能够自动学习到最优的梯度分配方案。&lt;/p&gt;
&lt;h4 id="实现示例-1"&gt;实现示例&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原始 FFN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# NormFormer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ffn_layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 新增&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="消融实验数据-2"&gt;消融实验数据&lt;/h4&gt;
&lt;p&gt;在 125M 模型上的消融结果：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;PPL&lt;/th&gt;
&lt;th&gt;相比完整 NormFormer 的变化&lt;/th&gt;
&lt;th&gt;相对贡献度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;完整 NormFormer&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 FFN-LN&lt;/td&gt;
&lt;td&gt;16.14&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+0.26&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;53% 的总改进&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;贡献度评估&lt;/strong&gt;：FFN-LN 是&lt;strong&gt;第二大贡献者&lt;/strong&gt;，单独贡献占总改进的约 53%。这验证了前馈网络内部归一化对梯度均衡的重要性，是仅次于 HeadScale 的核心创新。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="24-可选改进resscale"&gt;2.4 可选改进：ResScale&lt;/h3&gt;
&lt;p&gt;除了上述三个核心操作外，NormFormer 还提出了一个&lt;strong&gt;可选的&lt;/strong&gt; ResScale 操作：&lt;/p&gt;
$$\text{ResScale}(x) = \lambda_{\text{resid}} \odot x + \text{Sublayer}(\text{LayerNorm}(x))$$&lt;p&gt;其中 $\lambda_{\text{resid}}$ 是可学习的逐维度缩放参数，用于调节残差连接中主干信号和子层输出的相对权重。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;重要警告：&lt;/strong&gt; 论文实验表明，ResScale 仅在小模型（125M、355M 参数）上有效，&lt;strong&gt;在 1.3B 及以上规模的模型上反而会导致性能下降&lt;/strong&gt;。因此，对于当前主流的大规模预训练场景，&lt;strong&gt;不建议使用 ResScale&lt;/strong&gt;。这一发现也提醒我们，并非所有的归一化/缩放操作都是&amp;quot;越多越好&amp;quot;的——过度参数化在大模型上可能导致优化困难。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="25-三大改进的协同效应"&gt;2.5 三大改进的协同效应&lt;/h3&gt;
&lt;p&gt;前四个小节分别介绍了三个改进点的单独贡献，现在我们看它们是如何协同工作的。&lt;/p&gt;
&lt;h4 id="完整消融实验对比"&gt;完整消融实验对比&lt;/h4&gt;
&lt;p&gt;论文在 &lt;strong&gt;125M 模型&lt;/strong&gt;上进行了系统性消融。注意：此规模下的&amp;quot;完整 NormFormer&amp;quot;包含 ResScale（因为 ResScale 仅在小模型上有正收益），而对于 1.3B 及以上的模型，推荐配置不包含 ResScale：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;PPL&lt;/th&gt;
&lt;th&gt;相比完整模型的变化&lt;/th&gt;
&lt;th&gt;单独贡献度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;完整 NormFormer（含 ResScale）&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15.88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 Post-Attn LN&lt;/td&gt;
&lt;td&gt;15.92&lt;/td&gt;
&lt;td&gt;+0.04&lt;/td&gt;
&lt;td&gt;最小&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 FFN-LN&lt;/td&gt;
&lt;td&gt;16.14&lt;/td&gt;
&lt;td&gt;+0.26&lt;/td&gt;
&lt;td&gt;第二大&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 ResScale&lt;/td&gt;
&lt;td&gt;16.20&lt;/td&gt;
&lt;td&gt;+0.32&lt;/td&gt;
&lt;td&gt;中等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 HeadScale&lt;/td&gt;
&lt;td&gt;16.22&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+0.34&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;最大&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;增加 QKV 上的 3 个额外 LN&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;+0.00&lt;/td&gt;
&lt;td&gt;无收益&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;基线 Pre-LN&lt;/td&gt;
&lt;td&gt;16.37&lt;/td&gt;
&lt;td&gt;+0.49&lt;/td&gt;
&lt;td&gt;相比 Pre-LN 的总改进&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="消融实验贡献度分析"
srcset="https://dingyadong.top/posts/014_normformer_paper_review/ablation-contrib_hu_d5e98c5e7407aaa4.webp 320w, https://dingyadong.top/posts/014_normformer_paper_review/ablation-contrib_hu_cd5bf144d73ca05f.webp 480w, https://dingyadong.top/posts/014_normformer_paper_review/ablation-contrib_hu_7c23cca21b5bc352.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://dingyadong.top/posts/014_normformer_paper_review/ablation-contrib_hu_d5e98c5e7407aaa4.webp"
width="760"
height="433"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 id="关键结论"&gt;关键结论&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;HeadScale 是绝对核心&lt;/strong&gt;（+0.34 PPL，占总改进 69%）：注意力头的差异化加权是 NormFormer 最具影响力的创新。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;FFN-LN 是第二支柱&lt;/strong&gt;（+0.26 PPL，占总改进 53%）：前馈网络内部的自适应梯度抑制对整体改进也至关重要。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Post-Attn LN 是补充设计&lt;/strong&gt;（+0.04 PPL，占总改进 8%）：单独看贡献最小，但与其他改进配合使用时能进一步稳定梯度流。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;三个改进的互补性&lt;/strong&gt;：总改进 0.49 PPL ≈ HeadScale(0.34) + FFN-LN(0.26) - 重叠。这说明三个改进虽然作用机制不同（头级权重、梯度抑制、层级下缩放），但它们的效果有部分叠加，共同作用于梯度分布均衡化。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="反面教训更多归一化不一定更好"&gt;反面教训：更多归一化不一定更好&lt;/h4&gt;
&lt;p&gt;论文还测试了一个反例：在 QKV 投影上额外添加 3 个 LayerNorm——这看似应该进一步改进梯度分布，但实际结果是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;困惑度无任何改进（+0.00 PPL）&lt;/li&gt;
&lt;li&gt;训练速度反而降低 5%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;启示&lt;/strong&gt;：NormFormer 选择的三个位置（Post-Attn、HeadScale、FFN Mid）是经过精心设计的，不是简单的&amp;quot;到处加 LN&amp;quot;。随意添加更多归一化操作反而会浪费计算资源，甚至破坏优化过程。&lt;/p&gt;
&lt;h4 id="小模型-vs-大模型的推荐配置"&gt;小模型 vs 大模型的推荐配置&lt;/h4&gt;
&lt;p&gt;基于消融实验的结果，我们给出不同规模模型的推荐配置：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型规模&lt;/th&gt;
&lt;th&gt;推荐配置&lt;/th&gt;
&lt;th&gt;预期改进&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;125M-355M&lt;/td&gt;
&lt;td&gt;Post-Attn LN + HeadScale + FFN-LN + ResScale&lt;/td&gt;
&lt;td&gt;最大&lt;/td&gt;
&lt;td&gt;ResScale 在小模型上有正贡献&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.3B+&lt;/td&gt;
&lt;td&gt;Post-Attn LN + HeadScale + FFN-LN&lt;/td&gt;
&lt;td&gt;稳定&lt;/td&gt;
&lt;td&gt;不使用 ResScale，避免大模型优化困难&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="3-实验结果深度分析"&gt;3. 实验结果深度分析&lt;/h2&gt;
&lt;p&gt;NormFormer 论文的实验设计非常全面，涵盖了因果语言模型（CLM）、掩码语言模型（MLM）、零样本评估、消融实验等多个维度。下面我们逐一分析关键实验结果。&lt;/p&gt;
&lt;h3 id="31-学习率搜索挑战-gpt-3-的默认设置"&gt;3.1 学习率搜索：挑战 GPT-3 的默认设置&lt;/h3&gt;
&lt;p&gt;在正式实验之前，论文做了一项非常有价值的预实验：系统性的学习率搜索。结果出人意料地发现，在他们的数据集上，&lt;strong&gt;最优学习率比 GPT-3 论文建议的值高出 3-5 倍&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型规模&lt;/th&gt;
&lt;th&gt;GPT-3 建议学习率&lt;/th&gt;
&lt;th&gt;实际最优学习率&lt;/th&gt;
&lt;th&gt;倍数&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;125M&lt;/td&gt;
&lt;td&gt;6e-4&lt;/td&gt;
&lt;td&gt;3e-3&lt;/td&gt;
&lt;td&gt;5x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;355M&lt;/td&gt;
&lt;td&gt;3e-4&lt;/td&gt;
&lt;td&gt;1e-3&lt;/td&gt;
&lt;td&gt;3.3x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.3B&lt;/td&gt;
&lt;td&gt;2e-4&lt;/td&gt;
&lt;td&gt;6e-4&lt;/td&gt;
&lt;td&gt;3x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="为什么-normformer-能支持更高的学习率"&gt;为什么 NormFormer 能支持更高的学习率？&lt;/h4&gt;
&lt;p&gt;这个现象与我们在改进点 C（FFN Mid-LayerNorm）讨论的梯度缩放密切相关。通过在 FFN 第一个线性层后添加 LayerNorm，NormFormer 实现了&lt;strong&gt;分层的梯度缩放&lt;/strong&gt; — 前馈网络内部的特征被重新归一化，避免了极端的激活值。这种分层缩放机制使得早层的梯度幅度自动降低，即使在&lt;strong&gt;更高的学习率下，参数更新也不会过于剧烈&lt;/strong&gt;，从而显著提升了训练稳定性。&lt;/p&gt;
&lt;h4 id="工程启示"&gt;工程启示&lt;/h4&gt;
&lt;p&gt;这一发现本身就具有独立的工程价值——&lt;strong&gt;针对自己的数据集进行学习率搜索可能带来显著的性能提升&lt;/strong&gt;，不要盲目套用论文中的超参数。论文使用这些优化后的基线作为对比对象，确保了实验结果的公平性和说服力。&lt;/p&gt;
&lt;h3 id="32-因果语言模型稳定且一致的困惑度改进"&gt;3.2 因果语言模型：稳定且一致的困惑度改进&lt;/h3&gt;
&lt;p&gt;在因果语言模型（Causal Language Model）预训练任务上，NormFormer 在所有模型规模上都取得了一致的困惑度（Perplexity）改进：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;参数量&lt;/th&gt;
&lt;th&gt;基线 PPL&lt;/th&gt;
&lt;th&gt;NormFormer PPL&lt;/th&gt;
&lt;th&gt;改进幅度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;125M&lt;/td&gt;
&lt;td&gt;124.5M&lt;/td&gt;
&lt;td&gt;21.09&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20.11&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-0.98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1.3B&lt;/td&gt;
&lt;td&gt;1313.5M&lt;/td&gt;
&lt;td&gt;12.21&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;11.94&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-0.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2.7B&lt;/td&gt;
&lt;td&gt;2649.5M&lt;/td&gt;
&lt;td&gt;10.92&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;10.55&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-0.37&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="核心发现"&gt;核心发现&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;1. 训练加速效果显著。&lt;/strong&gt; NormFormer-1.3B 达到基线相同困惑度的速度&lt;strong&gt;快了 24%&lt;/strong&gt;。也就是说，使用 NormFormer，你只需要原来 76% 的训练时间就能获得相同质量的模型。对于动辄需要数千 GPU 小时的大规模预训练来说，24% 的训练时间节省意味着巨大的计算成本削减。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与改进点的关联&lt;/strong&gt;：这个加速来自于梯度均衡带来的&lt;strong&gt;更高的单步训练效率&lt;/strong&gt; — 梯度分布均匀意味着每一层都在以最优速率学习，没有某些层学得太快而其他层跟不上的浪费。这正是改进点 B（HeadScale）和改进点 C（FFN-LN）共同实现的梯度重均衡的直接体现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 大模型训练稳定性提升。&lt;/strong&gt; 这可能是 NormFormer 最引人注目的工程价值：&lt;strong&gt;基线 2.7B 模型在 6e-4 学习率下训练发散（完全失败），而 NormFormer-2.7B 在相同学习率下可以稳定训练并取得最佳性能&lt;/strong&gt;。这意味着 NormFormer 显著拓宽了大模型可用学习率的范围，降低了超参数调优的难度。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与改进点的关联&lt;/strong&gt;：这与改进点 B（HeadScale）的头级权重调整密切相关 — 通过对注意力头进行细粒度控制，NormFormer 抑制了某些头过度主导信号的现象。在大模型中，这种头间差异往往更加突出，因此 HeadScale 的稳定化效果在大模型上更加显著。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 困惑度改进随模型规模变化。&lt;/strong&gt; 125M 模型上的绝对改进最大（-0.98），而大模型上的绝对改进较小。但考虑到大模型本身的困惑度已经很低（基数效应），相对改进幅度仍然有意义。更重要的是，&lt;strong&gt;训练加速和稳定性提升在大模型上同样甚至更加显著&lt;/strong&gt;。&lt;/p&gt;
&lt;h4 id="总结"&gt;总结&lt;/h4&gt;
&lt;p&gt;因果语言模型的实验充分验证了 NormFormer 的核心改进在实践中的效果：梯度均衡带来的训练加速，头级控制带来的稳定性提升，使得 NormFormer 成为一个具有重大工程价值的改进方案。&lt;/p&gt;
&lt;h3 id="33-零样本任务评估无需微调即见效果"&gt;3.3 零样本任务评估：无需微调即见效果&lt;/h3&gt;
&lt;p&gt;NormFormer 在零样本（Zero-Shot）任务评估中展现了明显的优势，直接反映了预训练质量的提升：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;任务&lt;/th&gt;
&lt;th&gt;基线-1.3B&lt;/th&gt;
&lt;th&gt;NormFormer-1.3B&lt;/th&gt;
&lt;th&gt;基线-2.7B&lt;/th&gt;
&lt;th&gt;NormFormer-2.7B&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HellaSwag&lt;/td&gt;
&lt;td&gt;58.5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;60.5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinoGrande&lt;/td&gt;
&lt;td&gt;76.8&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;77.5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;平均（多任务）&lt;/td&gt;
&lt;td&gt;63.6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;64.7&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;66.3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;68.7&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关键发现：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NormFormer-125M 达到 GPT-3 Large（1.3B 参数）零样本性能的速度&lt;strong&gt;快了 60%&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;在 2.7B 规模上，平均零样本准确率从 66.3% 提升到 68.7%（+2.4 个百分点）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="34-掩码语言模型glue-基准全面提升"&gt;3.4 掩码语言模型：GLUE 基准全面提升&lt;/h3&gt;
&lt;p&gt;论文在掩码语言模型（Masked Language Model）上的实验验证了 NormFormer 对编码器型模型（BERT 类）同样有效。在 GLUE 基准的&lt;strong&gt;所有 7 个任务上都取得了改进&lt;/strong&gt;：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;GLUE 任务&lt;/th&gt;
&lt;th&gt;基线&lt;/th&gt;
&lt;th&gt;NormFormer&lt;/th&gt;
&lt;th&gt;提升&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CoLA&lt;/td&gt;
&lt;td&gt;74.3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;82.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+8.3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MNLI&lt;/td&gt;
&lt;td&gt;85.9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;86.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+0.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MRPC&lt;/td&gt;
&lt;td&gt;84.6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;86.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+1.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QNLI&lt;/td&gt;
&lt;td&gt;91.6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;91.9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+0.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QQP&lt;/td&gt;
&lt;td&gt;90.7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;91.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+0.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTE&lt;/td&gt;
&lt;td&gt;66.4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;67.9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+1.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SST-2&lt;/td&gt;
&lt;td&gt;92.9&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;93.8&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+0.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;平均&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;83.77&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;85.69&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+1.92&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;最令人印象深刻的是 CoLA 任务上的 +8.3 提升&lt;/strong&gt;（从 74.3 到 82.6），说明 NormFormer 对语法特征学习的显著帮助。GLUE 平均分提升接近 2 个百分点，MLM 困惑度从 3.42 降低到 3.31，展现了强大的通用性。&lt;/p&gt;
&lt;h3 id="35-消融实验各组件贡献量化"&gt;3.5 消融实验：各组件贡献量化&lt;/h3&gt;
&lt;p&gt;在第 2 部分，我们已经讨论了 NormFormer 的三个核心改进点（HeadScale、Post-Attn LN、FFN-LN）。这里提供完整的消融实验细节，量化每个组件的具体贡献。论文在 &lt;strong&gt;125M 小模型&lt;/strong&gt;（470 V100 GPU 小时）上进行了系统性消融。注意：此规模下的&amp;quot;完整 NormFormer&amp;quot;包含 ResScale（因为 ResScale 仅在小模型上有正收益），而对于 1.3B 及以上的模型，推荐配置不包含 ResScale：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;Perplexity&lt;/th&gt;
&lt;th&gt;相比完整模型的退化&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;完整 NormFormer + ResScale&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15.88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;基准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 Post-Attn LN&lt;/td&gt;
&lt;td&gt;15.92&lt;/td&gt;
&lt;td&gt;+0.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 FFN LN&lt;/td&gt;
&lt;td&gt;16.14&lt;/td&gt;
&lt;td&gt;+0.26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 ResScale&lt;/td&gt;
&lt;td&gt;16.20&lt;/td&gt;
&lt;td&gt;+0.32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;移除 HeadScale&lt;/td&gt;
&lt;td&gt;16.22&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+0.34（影响最大）&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;增加 3 个额外 LN（QKV 上）&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;+0.00（无额外收益）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;基线 Pre-LN&lt;/td&gt;
&lt;td&gt;16.37&lt;/td&gt;
&lt;td&gt;+0.49&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;关键结论：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;HeadScale 贡献最大&lt;/strong&gt;（移除后退化 +0.34），说明注意力头的差异化加权是 NormFormer 最核心的创新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FFN LN 贡献第二&lt;/strong&gt;（+0.26），验证了前馈网络内部归一化对梯度均衡的重要性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post-Attn LN 贡献最小&lt;/strong&gt;（+0.04），但仍有正面效果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;更多归一化并不总是更好&lt;/strong&gt;：在 QKV 投影上额外添加 3 个 LN 没有带来任何性能提升，反而使训练速度降低 5%。这证明了 NormFormer 选择的三个位置是经过精心设计的，不是简单的&amp;quot;到处加 LN&amp;quot;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="36-超参数鲁棒性验证"&gt;3.6 超参数鲁棒性验证&lt;/h3&gt;
&lt;p&gt;NormFormer 的另一个重要优势是其对超参数设置的鲁棒性。论文在 125M 模型上测试了多种超参数组合：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;学习率&lt;/th&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;基线 PPL&lt;/th&gt;
&lt;th&gt;NormFormer PPL&lt;/th&gt;
&lt;th&gt;差值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0.001&lt;/td&gt;
&lt;td&gt;默认&lt;/td&gt;
&lt;td&gt;16.80&lt;/td&gt;
&lt;td&gt;16.33&lt;/td&gt;
&lt;td&gt;-0.47&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.003&lt;/td&gt;
&lt;td&gt;默认&lt;/td&gt;
&lt;td&gt;16.37&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;-0.49&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.003&lt;/td&gt;
&lt;td&gt;更长 warmup&lt;/td&gt;
&lt;td&gt;16.50&lt;/td&gt;
&lt;td&gt;16.06&lt;/td&gt;
&lt;td&gt;-0.44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0.003&lt;/td&gt;
&lt;td&gt;GPT-3 设置&lt;/td&gt;
&lt;td&gt;16.29&lt;/td&gt;
&lt;td&gt;15.88&lt;/td&gt;
&lt;td&gt;-0.41&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;NormFormer 在所有超参数配置下都一致优于基线&lt;/strong&gt;，改进幅度在 0.41-0.49 之间波动，方差极小。这意味着使用 NormFormer 不需要额外的超参数调优工作——只要基线能跑，NormFormer 就能带来稳定的改进。&lt;/p&gt;
&lt;h3 id="37-wikitext-103-验证"&gt;3.7 Wikitext-103 验证&lt;/h3&gt;
&lt;p&gt;论文还在 Wikitext-103 数据集上进行了验证：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;最终 Perplexity&lt;/th&gt;
&lt;th&gt;达到基线 PPL 所需步数&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;基线&lt;/td&gt;
&lt;td&gt;18.70&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NormFormer&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;18.65&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;70%&lt;/strong&gt;（节省 30% 训练时间）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;NormFormer 仅需 70% 的训练步数就达到了基线的最终性能。虽然后 30% 的训练中 NormFormer 的改进趋于饱和，但论文指出这可能通过进一步的训练策略调优来改善。&lt;/p&gt;
&lt;h3 id="38-计算开销分析"&gt;3.8 计算开销分析&lt;/h3&gt;
&lt;p&gt;NormFormer 的工程吸引力在于其极低的额外开销：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标&lt;/th&gt;
&lt;th&gt;数值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;额外参数量&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+0.4%&lt;/strong&gt;（不足 0.07% 实际额外参数）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;额外内存开销&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+2~6%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单步训练时间增加&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+2~6%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;推理开销&lt;/td&gt;
&lt;td&gt;接近零&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这些数字意味着，NormFormer 实质上是一个&amp;quot;免费的改进&amp;quot;——用不到 6% 的额外计算成本，换取 24% 的训练加速和可量化的性能提升。从性价比角度看，这非常划算。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4-工程应用与落地分析"&gt;4. 工程应用与落地分析&lt;/h2&gt;
&lt;h3 id="41-实现极度简单"&gt;4.1 实现极度简单&lt;/h3&gt;
&lt;p&gt;NormFormer 的工程实现可以说是所有 Transformer 改进方案中最简单的之一。只需要在现有 Pre-LN Transformer 代码中做三处修改：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;修改一：在 MultiHeadAttention 输出后添加 LayerNorm&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原始 Pre-LN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;attn_output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# NormFormer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;attention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;post_attn_layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 新增&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;attn_output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;修改二：在 MHA concat 前对每个 head 乘以可学习标量&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原始 MHA&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;heads&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dim&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W_o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# NormFormer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;head_scales&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ones&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="c1"&gt;# 初始化为1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scaled_heads&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;head_scales&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;heads&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_heads&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;attn_output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scaled_heads&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dim&lt;/span&gt;&lt;span class="o"&gt;=-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W_o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;修改三：在 FFN 第一个线性层后添加 LayerNorm&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 原始 FFN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# NormFormer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;activation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ffn_layer_norm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# 新增&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="o"&gt;@&lt;/span&gt; &lt;span class="n"&gt;W2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在 fairseq 框架中，这三个修改对应三个简单的命令行参数：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fairseq-train ... --scale-attn --scale-fc --scale-heads
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="42-与主流框架的兼容性"&gt;4.2 与主流框架的兼容性&lt;/h3&gt;
&lt;p&gt;NormFormer 的设计具有极强的框架兼容性：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与 PyTorch 原生 Transformer 兼容：&lt;/strong&gt; NormFormer 的三处修改都是在现有层之间插入标准的 LayerNorm 或可学习参数，不改变任何现有层的接口或行为。这意味着它可以无缝集成到任何基于 PyTorch 的 Transformer 实现中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与 HuggingFace Transformers 兼容：&lt;/strong&gt; 只需继承现有的注意力层和前馈网络层，在对应位置添加归一化操作即可。不需要修改分词器、数据加载器或训练循环。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与分布式训练框架兼容：&lt;/strong&gt; NormFormer 添加的归一化层和可学习参数都是标准的 PyTorch 模块，完全兼容 DeepSpeed、Megatron-LM、FSDP 等主流分布式训练框架。归一化操作的计算和通信开销极小，不会成为分布式训练的瓶颈。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;与不同归一化方式兼容：&lt;/strong&gt; 虽然论文使用 LayerNorm 进行实验，但其设计思想对 RMSNorm（LLaMA 系列使用的归一化方式）同样适用。可以将 NormFormer 中的 LayerNorm 替换为 RMSNorm，在保持核心优势的同时获得 RMSNorm 的计算效率优势。&lt;/p&gt;
&lt;h3 id="43-实际部署场景与建议"&gt;4.3 实际部署场景与建议&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;场景一：从头预训练大语言模型&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这是 NormFormer 最适用的场景。如果你的团队正在从头训练一个数十亿参数的语言模型，添加 NormFormer 可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;节省约 24% 的训练时间（以达到同等困惑度为标准）&lt;/li&gt;
&lt;li&gt;支持使用更高的学习率而不发散，降低超参数调优成本&lt;/li&gt;
&lt;li&gt;以不到 6% 的额外计算开销换取稳定的性能提升&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;场景二：中等规模模型的快速迭代&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对于 125M-1B 参数规模的模型，NormFormer 的收益更加明显。在这个规模上，可以同时使用 ResScale 获得最大收益。特别适合需要快速迭代模型架构和训练策略的研究场景。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;场景三：训练稳定性要求高的场景&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果你的训练任务容易出现发散（例如使用较大的学习率、较长的上下文、较大的 batch size），NormFormer 可以显著提升训练的鲁棒性。2.7B 模型在高学习率下的稳定训练就是一个很好的例证。&lt;/p&gt;
&lt;h3 id="44-不适用场景"&gt;4.4 不适用场景&lt;/h3&gt;
&lt;p&gt;也需要诚实地指出 NormFormer 可能不太适用的场景：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;已有预训练好的模型进行微调：&lt;/strong&gt; NormFormer 的收益主要体现在预训练阶段。如果你只是微调一个现有模型，添加 NormFormer 需要重新预训练，成本远大于收益。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;极大规模模型（&amp;gt;10B）：&lt;/strong&gt; 论文最大的实验只到 2.7B，对于更大规模模型的效果尚未被验证。虽然理论上应该同样有效，但缺乏实证支持。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理优化敏感的场景：&lt;/strong&gt; 虽然 NormFormer 的额外推理开销极小，但在对推理延迟有极致要求的场景下（例如实时搜索排序），任何额外的计算都需要审慎评估。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="45-成本收益分析"&gt;4.5 成本收益分析&lt;/h3&gt;
&lt;p&gt;让我们做一个简单的成本收益计算。假设你正在训练一个 1.3B 参数的语言模型：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;成本（额外开销）：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;训练速度降低约 4%（1.3B 规模的典型值）&lt;/li&gt;
&lt;li&gt;如果原始训练需要 10000 GPU 小时，NormFormer 版本需要约 10400 GPU 小时&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;收益：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;达到相同困惑度仅需 7600 GPU 小时（节省 24%）&lt;/li&gt;
&lt;li&gt;最终困惑度从 12.21 降低到 11.94&lt;/li&gt;
&lt;li&gt;零样本平均准确率从 63.6% 提升到 64.7%&lt;/li&gt;
&lt;li&gt;更强的训练稳定性，降低训练失败的风险&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;净收益：&lt;/strong&gt; 即使考虑单步训练时间的增加，要达到基线相同性能仍然可以节省约 20% 的总训练时间。如果以固定的计算预算训练到收敛，则获得更好的最终性能。NormFormer 都是一个值得采纳的改进。&lt;/p&gt;
&lt;h3 id="46-与后续工作的关系"&gt;4.6 与后续工作的关系&lt;/h3&gt;
&lt;p&gt;NormFormer 发表于 2021 年底，此后 Transformer 归一化领域继续涌现了许多重要工作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RMSNorm&lt;/strong&gt;（Root Mean Square Layer Normalization）：去掉了 LayerNorm 中的均值中心化步骤，计算效率更高。被 LLaMA 系列广泛采用。NormFormer 的设计理念可以与 RMSNorm 无缝结合。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QK-Norm&lt;/strong&gt;：对注意力中的 Query 和 Key 进行归一化，防止注意力得分过大。与 NormFormer 的 HeadScale 有互补作用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HybridNorm（2025）&lt;/strong&gt;：探索了在同一模型中混合使用 Pre-LN 和 Post-LN 的可能性，进一步细化了归一化位置的选择。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;nGPT（2024）&lt;/strong&gt;：提出了基于单位超球面上表示学习的归一化方案，代表了归一化研究的新方向。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些后续工作并没有否定 NormFormer 的价值，反而证明了&amp;quot;在 Transformer 中优化归一化策略&amp;quot;这一研究方向的重要性。NormFormer 作为这一领域的先驱工作之一，为后续研究奠定了重要的理论和实验基础。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="5-总结与展望"&gt;5. 总结与展望&lt;/h2&gt;
&lt;h3 id="51-核心贡献回顾"&gt;5.1 核心贡献回顾&lt;/h3&gt;
&lt;p&gt;NormFormer 论文的核心贡献可以用三句话概括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;发现了问题：&lt;/strong&gt; 系统性地揭示了 Pre-LN Transformer 中各层梯度分布不均的问题——早期层梯度过大、后期层梯度不足。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提出了方案：&lt;/strong&gt; 通过在三个精心选择的位置（注意力输出后、注意力头拼接前、FFN 中间层）添加归一化操作，有效缓解了梯度失配。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;验证了效果：&lt;/strong&gt; 在多种任务（CLM、MLM、零样本）和多种规模（125M-2.7B）上，以不到 6% 的额外计算成本换取了 24% 的训练加速和一致的性能提升。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="52-对工程实践的启示"&gt;5.2 对工程实践的启示&lt;/h3&gt;
&lt;p&gt;NormFormer 给我们的最大启示不仅仅是&amp;quot;加几个 LayerNorm&amp;quot;这么简单，而是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;启示一：小改进，大回报。&lt;/strong&gt; 在深度学习研究中，并非所有有价值的工作都需要颠覆性的架构创新。有时候，对现有架构的精细分析和微小调整就能带来显著的实际收益。NormFormer 的三处修改总共只增加了 0.4% 的参数量，却换来了 24% 的训练加速——这种高性价比的改进在工业界尤其受欢迎。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;启示二：梯度分析是优化训练的利器。&lt;/strong&gt; NormFormer 的整个工作建立在对梯度分布的细致观察之上。通过可视化和分析各层的梯度范数，研究者找到了问题所在，并据此设计了针对性的解决方案。这提醒我们，在训练大模型时，不要只盯着损失曲线，还应该关注梯度的层间分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;启示三：不是所有改进都能无限叠加。&lt;/strong&gt; 消融实验表明，在三个位置之外继续添加归一化层不仅没有收益，反而降低了训练速度。ResScale 在大模型上甚至有害。这告诉我们，模型改进需要有度，过度设计反而可能适得其反。&lt;/p&gt;
&lt;h3 id="53-未来展望"&gt;5.3 未来展望&lt;/h3&gt;
&lt;p&gt;尽管 NormFormer 已经展示了令人信服的实验结果，但仍有一些开放的研究方向值得探索：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;超大规模验证：&lt;/strong&gt; 论文最大的实验只到 2.7B 参数，NormFormer 在 10B、100B 甚至更大规模模型上的表现如何？是否存在新的问题或需要调整的地方？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;与新型归一化的结合：&lt;/strong&gt; 将 NormFormer 的设计理念与 RMSNorm、QK-Norm 等新技术结合，是否能获得更大的收益？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态扩展：&lt;/strong&gt; NormFormer 目前主要在语言模型上验证，在视觉 Transformer（ViT）、多模态模型（如 Flamingo、GPT-4V）中是否同样有效？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自适应归一化：&lt;/strong&gt; 能否设计一种机制，让模型在训练过程中自动决定在哪些位置需要额外的归一化，而不是人工预设固定位置？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;总而言之，NormFormer 是一项兼具理论深度和工程价值的优秀工作。它用最简洁的方式解决了一个被忽视但重要的问题，为大规模 Transformer 预训练提供了一个即插即用的改进方案。对于正在从事大模型预训练的团队来说，NormFormer 值得认真评估和尝试。&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;参考文献：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shleifer, S., Weston, J., &amp;amp; Ott, M. (2021). NormFormer: Improved Transformer Pretraining with Extra Normalization.
&lt;/li&gt;
&lt;li&gt;Xiong, R., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML 2020.&lt;/li&gt;
&lt;li&gt;Vaswani, A., et al. (2017). Attention Is All You Need. NeurIPS 2017.&lt;/li&gt;
&lt;li&gt;Zhang, B., &amp;amp; Sennrich, R. (2019). Root Mean Square Layer Normalization. NeurIPS 2019.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</description></item></channel></rss>