【大语言模型知识】Transformer架构概述
Transformer技术原理深入理解
- 综述
- Transformer技术架构与原理详解
- 1. **概述**
- 2. **整体架构**
- 3. **核心模块:自注意力机制**
- **3.1 输入投影**
- **3.2 缩放点积注意力**
- **3.3 多头注意力**
- 4. **位置编码(Positional Encoding)**
- 5. **前馈网络(FFN)**
- 6. **解码器的特殊性**
- 7. **训练与推理**
- 8. **优化与改进**
- 9. **应用与变体**
- 10. **总结**
综述
Transformer技术架构与原理详解
1. 概述
Transformer由Vaswani等人于2017年提出,基于自注意力机制(Self-Attention)和多头注意力(Multi-Head Attention),颠覆了传统RNN/LSTM的序列建模方式。其核心优势在于:
• 并行计算:所有token可同时处理,提升训练效率。
• 长程依赖建模:通过自注意力直接捕捉全局上下文关系。
• 灵活性:支持灵活的任务适配(如编码器用于理解,解码器用于生成)。
2. 整体架构
Transformer采用编码器-解码器框架,包含:
• 编码器(Encoder):由 ( N ) 个编码层堆叠而成,每个层包含:
• 多头自注意力:捕获token间依赖。
• 前馈网络(FFN):非线性变换。
• 残差连接 & 层归一化:稳定训练。
• 解码器(Decoder):同样由 ( N ) 个解码层构成,额外引入:
• 交叉注意力:关注编码器输出与当前解码状态。
• Masking机制:防止未来信息泄露(自回归生成时)。
3. 核心模块:自注意力机制
自注意力通过计算每个token与其他token的相关性权重,动态分配注意力资源。
3.1 输入投影
输入序列
(
X
∈
R
m
×
d
model
)
( X \in \mathbb{R}^{m \times d_{\text{model}}} )
(X∈Rm×dmodel)(
(
m
)
( m )
(m): 序列长度,
(
d
model
)
( d_{\text{model}} )
(dmodel): 模型维度)通过三个线性变换生成**查询(Query)、键(Key)、值(Value)**矩阵:
Q
=
X
W
Q
+
b
Q
,
K
=
X
W
K
+
b
K
,
V
=
X
W
V
+
b
V
,
\begin{aligned} Q &= XW_Q + b_Q, \\ K &= XW_K + b_K, \\ V &= XW_V + b_V, \end{aligned}
QKV=XWQ+bQ,=XWK+bK,=XWV+bV,
其中
(
W
Q
,
W
K
,
W
V
∈
R
d
model
×
d
k
)
( W_Q, W_K, W_V \in \mathbb{R}^{d_{\text{model}} \times d_k} )
(WQ,WK,WV∈Rdmodel×dk),
(
d
k
)
( d_k )
(dk) 为键/查询维度(通常设为
(
d
model
/
h
)
( d_{\text{model}} / h )
(dmodel/h),
(
h
)
( h )
(h) 为头数)。
3.2 缩放点积注意力
计算注意力分数并归一化:
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
k
)
V
.
\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V.
Attention(Q,K,V)=softmax(dkQKT)V.
• 缩放因子 ( \frac{1}{\sqrt{d_k}} ):防止梯度爆炸(因softmax结果范围为(0,1),内积可能过大)。
• softmax:归一化为概率分布,表示每个Key对当前Query的关注度。
3.3 多头注意力
将输入拆分为
(
h
)
( h )
(h) 个头,每个头独立计算注意力,最后合并:
MultiHead
(
Q
,
K
,
V
)
=
Concat
(
head
1
,
.
.
.
,
head
h
)
W
O
,
\text{MultiHead}(Q,K,V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O,
MultiHead(Q,K,V)=Concat(head1,...,headh)WO,
其中:
head
i
=
Attention
(
Q
i
,
K
i
,
V
i
)
,
\text{head}_i = \text{Attention}(Q_i, K_i, V_i),
headi=Attention(Qi,Ki,Vi),
(
Q
i
,
K
i
,
V
i
)
( Q_i, K_i, V_i )
(Qi,Ki,Vi) 是第
(
i
)
( i )
(i) 个头的投影(
(
W
i
∈
R
d
model
×
d
k
)
( W_i \in \mathbb{R}^{d_{\text{model}} \times d_k} )
(Wi∈Rdmodel×dk)),
(
W
O
∈
R
h
d
k
×
d
model
)
( W^O \in \mathbb{R}^{hd_k \times d_{\text{model}}} )
(WO∈Rhdk×dmodel) 用于拼接后的线性变换。
4. 位置编码(Positional Encoding)
自注意力无法感知顺序,因此需显式注入位置信息。采用正弦/余弦位置编码:
P
E
p
o
s
(
2
i
)
=
sin
(
p
o
s
1000
0
2
i
/
d
model
)
,
PE_{pos}(2i) = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right),
PEpos(2i)=sin(100002i/dmodelpos),
P
E
p
o
s
(
2
i
+
1
)
=
cos
(
p
o
s
1000
0
2
i
/
d
model
)
.
PE_{pos}(2i+1) = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right).
PEpos(2i+1)=cos(100002i/dmodelpos).
• 特点:位置编码是可学习的(实际中常固定)。
• 输入组合:
(
X
embedded
+
P
E
)
( X_{\text{embedded}} + PE )
(Xembedded+PE),保留语义与位置信息。
5. 前馈网络(FFN)
每个编码层/解码层后接一个全连接子网络:
F
F
N
(
x
)
=
max
(
0
,
x
W
1
+
b
1
)
W
2
+
b
2
,
FFN(x) = \max(0, xW_1 + b_1)W_2 + b_2,
FFN(x)=max(0,xW1+b1)W2+b2,
其中
(
W
1
∈
R
d
model
×
4
d
model
,
W
2
∈
R
4
d
model
×
d
model
)
( W_1 \in \mathbb{R}^{d_{\text{model}} \times 4d_{\text{model}}}, W_2 \in \mathbb{R}^{4d_{\text{model}} \times d_{\text{model}}} )
(W1∈Rdmodel×4dmodel,W2∈R4dmodel×dmodel)。
残差连接与层归一化(LayerNorm)应用于每一层前后:
y
=
LN
(
x
+
FFN
(
x
)
)
.
y = \text{LN}(x + \text{FFN}(x)).
y=LN(x+FFN(x)).
6. 解码器的特殊性
解码器需逐步生成输出,因此引入以下机制:
• 交叉注意力:解码器层中的注意力层不仅关注自身,还关注编码器输出:
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
T
d
k
)
V
,
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V,
Attention(Q,K,V)=softmax(dkQKT)V,
其中
(
K
,
V
)
( K, V )
(K,V) 来自编码器。
• Masking:
• 自注意力Mask:防止解码时看到未来token(生成第 ( t ) 步时,仅允许关注 ( \leq t ) 的位置)。
• 编码器-解码器Mask:在交叉注意力中,解码器的Query只能访问已生成的token。
7. 训练与推理
• 训练:使用标准的端到端训练,损失函数通常为交叉熵(分类任务)或均方误差(回归任务)。
• 推理:解码器采用自回归方式逐个生成token,结合Masking动态调整注意力窗口。
8. 优化与改进
• Dropout:在输入嵌入和解码器输出后添加,防止过拟合。
• Label Smoothing:软化softmax概率分布,提升鲁棒性。
• 高效实现:通过矩阵运算优化计算(如MultiHead Attention的并行化)。
9. 应用与变体
• 经典应用:机器翻译(如MT-NET)、文本摘要(如PEGASUS)、长文本生成(如GPT)。
• 衍生模型:
• BERT:双向编码器,用于掩码语言建模(MLM)。
• GPT:单向解码器,通过自回归生成文本。
• T5:统一架构,将所有任务转化为文本到文本形式。
10. 总结
Transformer通过自注意力与多头注意力实现了高效的序列建模,其核心创新在于:
- 去除了递归结构,大幅提升并行计算能力。
- 动态权重分配,自动学习长程依赖。
- 模块化设计(如位置编码、残差连接),便于扩展与微调。
随着预训练大语言模型(如GPT-4、BERT)的兴起,Transformer已成为自然语言处理(NLP)乃至计算机视觉(ViT)领域的基石架构。