23

Attention Residuals——浅层信息怎么直达深层

阅读约 5 分钟第 23/60 课

第 18 章节介绍了残差连接——每一层的输出 = 层的变换结果 + 层的输入。这让信息可以跨越一层直接传递。

但如果要从第 1 层传到第 28 层,信息仍然需要经过 27 个残差连接,每一步都可能被中间层的变换所干扰。虽然不会像没有残差连接时那样严重,但 27 次叠加之后,初始信息还是可能被逐步稀释。

Attention Residuals 是 Sophia 使用的一种技术,让浅层的注意力输出能够直接出现在深层的计算中——不经过中间的所有层。

问题:深层是否还记得浅层看到的

标准 Transformer 的信息流是串行的:

嵌入 → 层1 → 层2 → 层3 → ... → 层28 → 输出

每一层在前一层的输出基础上做变换。层 28 能利用的只有层 27 的输出——它没有直接通道来访问层 1 看到的原始注意力模式。

虽然残差连接保留了一部分早期信息(通过逐层的「加法传递」),但经过 27 层的累加,早期注意力的信号可能被后来层的修改淹没。

这在实践中体现为:深层有时会重新学习浅层已经学过的模式——比如浅层已经学会了「哪些词是一个短语」,但到了深层这个信息被稀释了,深层不得不重新发现这个模式。

Attention Residuals 的思路

Attention Residuals 在每一层的注意力计算中,额外引入浅层注意力的输出作为参考。

具体做法:在计算第 n 层的注意力时,不只用第 n 层自己的 Q、K、V,还把某些浅层的注意力输出(或注意力权重)加入到当前层的计算中。

这相当于在标准的信息流之外建立了一条快车道——浅层的注意力信号可以跳过中间的所有层,直接参与深层的注意力计算。

                    ┌──────── 快车道 ────────┐
                    ↓                        ↓
嵌入 → 层1 → 层2 → 层3 → ... → 层14 → ... → 层28 → 输出

为什么这对 Sophia 特别有用

Sophia 的 28 层中有 21 层使用线性注意力(KDA)。线性注意力用固定大小的递推状态来压缩历史信息——这意味着信息在逐层传递的过程中有损压缩。

如果浅层的 KDA 在递推状态中丢失了某些信息,而中间的层无法恢复这些信息,到了深层就永远丢失了。Attention Residuals 提供了一个补救机制——即使中间层的递推状态丢了一些信息,深层仍然可以通过快车道获取浅层的原始注意力信号。

这在 Sophia 的消融实验中被验证是有效的——加入 Attention Residuals 后,模型在需要长距离依赖的任务上表现更好。

这个单元学了什么

六个章节覆盖了 Transformer 除注意力之外的所有核心部件:

  1. 残差连接(第 18 章节):把输入加到输出上,解决梯度消失,让每层只学增量。
  2. RMSNorm(第 19 章节):归一化数值范围,稳定训练。Pre-Norm 比 Post-Norm 更稳定。
  3. 前馈网络(第 20 章节):门控 GLU 结构,独立地对每个 token 做非线性变换。SiTU-GLU 是 Sophia 的选择。
  4. 位置编码(第 21 章节):告诉模型 token 的顺序。Sophia 使用 NoPE——依赖因果掩码的隐式位置信息。
  5. MLA(第 22 章节):压缩 KV cache,用 latent 向量代替完整的 K 和 V 存储。
  6. Attention Residuals(本章节):浅层注意力直达深层的快车道。

到这里,Sophia 的模型架构已经全部介绍完了。你知道了一个 token 从进入模型到得到预测的完整路径:

文本 → tokenizer → 嵌入层 → [RMSNorm → 注意力(KDA/MLA) → 残差 → RMSNorm → 前馈网络(SiTU-GLU) → 残差] × 28 → RMSNorm → 输出层 → 概率分布

下一个单元进入训练的核心:模型知道了预测有多差(loss),但它怎么知道该往哪个方向调整十亿个参数?答案是梯度。