Transformer架构
00:00
自注意力机制、多头注意力、位置编码与Transformer架构详解。
1. 自注意力机制
1.1 核心公式
自注意力将输入序列中的每个位置与所有位置关联:
其中:
- :查询矩阵
- :键矩阵
- :值矩阵
- :键向量维度
1.2 缩放因子
除以 的原因:
当 较大时,点积结果方差增大,Softmax进入饱和区,梯度极小:
缩放后:
1.3 计算复杂度
| 操作 | 复杂度 |
|---|---|
| QKV投影 | |
| 注意力矩阵 | |
| 加权求和 | |
| 总计 |
2. 多头注意力
2.1 多头机制
将Q、K、V投影到 个子空间,分别计算注意力后拼接:
其中 ,。
2.2 多头的意义
- 每个头关注不同的子空间信息
- 类似于CNN中多个卷积核提取不同特征
- 增强模型的表达能力
3. 位置编码
3.1 正弦位置编码
由于自注意力是置换不变的,需要位置编码注入位置信息:
性质:
- 每个维度对应不同频率的正弦波
- 相对位置关系可通过线性变换表达
- 可外推到更长序列
3.2 旋转位置编码(RoPE)
通过旋转矩阵编码相对位置:
内积只依赖相对位置 。
3.3 ALiBi位置编码
直接在注意力分数上添加线性偏置:
- 无需位置嵌入
- 支持长度外推
4. Transformer架构
4.1 编码器
输入 → [Embedding + Positional Encoding]
→ [Multi-Head Attention] → [Add & Norm]
→ [Feed-Forward Network] → [Add & Norm]
→ ... (×N层)
子层结构:
- 多头自注意力 + 残差连接 + LayerNorm
- 前馈网络(FFN)+ 残差连接 + LayerNorm
FFN:
扩展比:
4.2 解码器
目标 → [Embedding + Positional Encoding]
→ [Masked Multi-Head Attention] → [Add & Norm]
→ [Cross-Attention] → [Add & Norm]
→ [Feed-Forward Network] → [Add & Norm]
→ [Linear + Softmax]
→ ... (×N层)
Masked Attention:防止看到未来信息
4.3 Pre-Norm vs Post-Norm
| 方式 | 公式 | 训练稳定性 |
|---|---|---|
| Post-Norm | 较差 | |
| Pre-Norm | 较好 |
现代Transformer普遍采用Pre-Norm。
5. 高效注意力
5.1 稀疏注意力
| 方法 | 复杂度 | 思路 |
|---|---|---|
| Longformer | 局部窗口+全局token | |
| BigBird | 随机+窗口+全局 | |
| Sparse Transformer | 固定稀疏模式 |
5.2 线性注意力
先计算 (),复杂度降为 。
5.3 Flash Attention
通过分块计算和IO感知优化,减少HBM访问次数:
- 数学等价:结果与标准注意力完全一致
- 内存优化: 而非
- 速度提升:2~4x