Transformer 架构原理图
论文:
Attention Is All You Need
(Vaswani et al., 2017)
Encoder 编码器
📝 Input Embedding
将输入 token ID 映射为 d_model 维向量
(论文中 d_model = 512)
↓
🌊 Positional Encoding
用 sin/cos 函数注入位置信息
让模型知道每个 token 的顺序
↓
× N
🔍 Multi-Head Self-Attention
每个位置关注序列中
所有
位置(双向)
h=8 个头在不同子空间并行计算
Add & Norm(残差连接 + 层归一化)
⚡ Feed Forward Network
逐位置的两层全连接
FFN(x) = ReLU(xW₁+b₁)W₂+b₂
隐藏层维度 d_ff = 2048
Add & Norm(残差连接 + 层归一化)
↑ 编码器输出 → 送入解码器交叉注意力
Decoder 解码器
📝 Output Embedding
将已生成的 token(shifted right)
映射为向量
↓
🌊 Positional Encoding
同样注入位置信息
↓
× N
🎭 Masked Self-Attention
每个位置只能看到当前及之前的 token
用 Mask 屏蔽未来信息,防止"作弊"
Add & Norm
🔗 Cross-Attention
Q 来自解码器当前层
K 和 V 来自编码器最终输出
这是连接编码器和解码器的"桥梁"
Add & Norm
⚡ Feed Forward Network
结构同编码器,逐位置独立计算
Add & Norm
↓
🎯 Linear + Softmax
Linear 投影到词表大小(如 30000 维)
Softmax 输出每个词的概率 → 选概率最高的
自注意力
掩码自注意力
交叉注意力
前馈网络
嵌入层
位置编码
输出层