Transformer
Transformer 是现代 NLP 和大规模生成式模型的基础结构,其突破点在于:完全基于注意力机制建模序列,无需递归结构,从而获得全局依赖建模能力与完全并行的计算特性。本文从产生背景、模型结构和对比总结三个角度,层层展开 Transformer 的设计逻辑及核心价值。
产生背景¶
在使用 RNN 完成文本生成 时,RNN 的结构性限制已经十分明显:
- 计算必须按时间步串行展开
- 长距离依赖必须通过链式传递,容易衰减
- 所有信息被压缩进单一隐状态,形成信息瓶颈
- 无法充分利用 GPU 的并行特性,难以扩展到大型模型
这些缺陷使模型无法进一步扩大规模或提升表达能力。《Attention Is All You Need》由此提出 Transformer:让序列中任意两个 token 可以直接交互,不再依赖顺序递推结构。
这意味着模型的有效依赖路径从 RNN 的随序列长度增长,缩短为常数级,从根本上提升了建模效率与表达能力。
模型结构¶
Transformer 由 Encoder-Decoder 结构组成,每个部分包含多个堆叠的 Block。每个 Block 内部均采用一致的模式:注意力机制、前馈网络、残差连接、层归一化。
整体架构如下:
一个完整 Transformer 的关键模块如下。
数据流向¶
训练阶段,输入序列与目标序列(右移一位)同时输入模型。Encoder 负责构建输入序列的上下文表示,Decoder 通过 Masked Self-Attention 仅观察到历史 token,从而计算条件概率 \(p(y\mid x)\),最终组合损失 \(\,\text{loss}=-\log p(y\mid x)\,\)。
推理阶段,Decoder 只能看到已生成的 token,每生成一个新的 token 即重新参与一次前向运算。因果 Mask 保证生成过程满足自回归约束。
Positional Embedding¶
Transformer 无递归结构,无法内建位置信息,必须显式提供。
论文提出正弦位置编码:
特性包括:
- 可外推(序列变长仍能使用)
- 可微、周期性强
- 不增加额外参数
工程中也可以选择训练型位置向量,将其直接加入 token embedding。
Multi-Head Attention¶
多头注意力通过为每个 token 生成 \(Q,K,V\),再按头划分多个独立子空间捕获不同关系模式。整体公式为:
每个头独立计算注意力,从而提升多尺度、多关系的表达能力。
注意力的核心计算方式是缩放点积 (Scaled Dot-Product Attention):
缩放因子 \(\sqrt{d_k}\) 用于抑制高维向量点积的数值爆炸,使 softmax 保持稳定。
Encoder 的 Self-Attention 不需要 Mask,所有 token 可以进行全局交互,从而捕获输入序列中的长依赖。该模块在每个 Encoder Block 都会重复出现,使表示不断强化。
Masked Multi-Head Attention¶
Decoder 必须保证只使用已生成的历史 token,因此注意力矩阵中未来位置会被替换为 \(-\infty\),经 softmax 后权重为 \(0\),从而实现因果性。
Masked Multi-Head Attention 的计算与普通 Attention 相同,但输入矩阵中会添加因果 Mask:
- 上三角区域被抑制
- 保证自回归生成流程合法
Cross Attention¶
Decoder 获取输入序列信息的关键模块。其输入 \(Q\) 来自 Decoder,\(K,V\) 来自 Encoder。作用如下:
- 建立输出与输入的跨序列对齐
- 捕获翻译等任务中的对应关系
- 是连接 Encoder 表示与 Decoder 生成的唯一桥梁
Feed-Forward Network¶
每个 Block 中都有一个位置独立的前馈网络,用于局部非线性变换,从而确保网络的表示能力。常见形式是两层线性层加激活函数:
通常 \(W_1\) 会将维度扩展为原来的 \(4\) 倍,再缩回原维度,以增强表示能力。
Residual & LayerNorm¶
每个子层(注意力层、FFN)外部都包裹残差连接和层归一化:
- 残差连接让梯度传播路径更短,更稳定
- LayerNorm 保持数值稳定,使训练更快收敛
典型结构:
- Pre-LN:先归一化,再进入子层(现代模型更常用)
- Post-LN:子层后归一化(原论文形式)
Dropout¶
注意力权重、FFN 输出、残差路径都会用到 dropout,减少过拟合,有助于稳定训练。
对比总结¶
Transformer 的核心价值在于通过注意力机制把序列依赖从「链式传递」改为「全局直接访问」,从而实现了:
- 全并行计算
- 强大的全局建模能力
- 随深度线性扩展的表示能力
- 高效利用 GPU/TPU 的矩阵运算能力
- 成为 BERT、GPT、LLM 的基础架构
对比 RNN:
| 项目 | RNN | Transformer |
|---|---|---|
| 计算方式 | 串行 | 全并行 |
| 长距离依赖 | 弱 | 强 |
| 信息瓶颈 | 存在(隐藏状态) | 无压缩瓶颈 |
| 扩展性 | 较弱 | 极强 |
| 大模型适配 | 限制明显 | 完全适配 |
如果把 RNN 类比为“逐字阅读”,Transformer 则像“摊开整页随时访问任意段落”,使其在速度、建模能力和可扩展性上都具备明显优势。
