项目结构
我们会实现 Encoder-Decoder 结构的 Transformer,包含:Embedding、Positional Encoding、Multi-Head Attention、Feed Forward 和完整的 Encoder/Decoder 层。
核心实现
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, n_heads):
super().__init__()
self.d_k = d_model // n_heads
self.n_heads = n_heads
self.q_linear = nn.Linear(d_model, d_model)
self.k_linear = nn.Linear(d_model, d_model)
self.v_linear = nn.Linear(d_model, d_model)
self.out = nn.Linear(d_model, d_model)
训练技巧
- 使用学习率预热
- 标签平滑防止过拟合
- 梯度累积应对显存不足
建议先阅读 Transformer 架构详解 理解理论基础,再对照代码实践。本文也是 从零构建 GPT 模型 的前置内容。