Transformer Decoder 详解
1. 模型结构图解
Transformer Decoder 由 N 个相同的层堆叠而成,每个层包含以下组件(与 Encoder 不同,Decoder 包含两种注意力机制):
Input (Shifted Output)
│
├─> Masked Multi-Head Self-Attention → Add & LayerNorm → Encoder-Decoder Attention → Add & LayerNorm → Feed Forward → Add & LayerNorm
│ │ │ │
│ └───────────────────────┘ └───────────────┘ └───────────────┘
│ 残差连接 残差连接 残差连接
│
└─> Output (与输入维度相同)
2. 核心公式与原理
(1) 带掩码的自注意力(Masked Self-Attention)
- 输入矩阵:Decoder 输入 X dec ∈ R m × d model X_{\text{dec}} \in \mathbb{R}^{m \times d_{\text{model}}} Xdec∈Rm×dmodel(m 是目标序列长度)
- 注意力掩码:防止当前位置关注未来信息(训练时用于自回归生成)
Mask i j = { 0 if i ≥ j − ∞ if i < j \text{Mask}_{ij} = \begin{cases} 0 & \text{if } i \geq j \\ -\infty & \text{if } i < j \end{cases} Maskij={ 0−∞if i≥jif i<j - 掩码注意力计算:
Attention ( Q , K , V ) = softmax ( Q K T d k + Mask ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\sqrt{d_k}} + \text{Mask}\right) V Attention