人工智能: Transformer架构详解
Transformer 通过自注意力机制和位置编码,实现了高效的序列建模,成为现代 NLP 的基石。其设计思想还被拓展到语音、图像等领域,是深度学习发展中的重要里程碑。提出的革命性架构,彻底改变了自然语言处理(NLP)领域。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖。处理序列数据,实现了高效的并行计算和长距离依赖建模。自注意力通过计算序列中每个位置与其他位置的关联权重,
Transformer 是 2017 年由 Google 团队在论文 Attention Is All You Need 提出的革命性架构,彻底改变了自然语言处理(NLP)领域。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖 自注意力机制(Self-Attention) 处理序列数据,实现了高效的并行计算和长距离依赖建模。以下是对其架构的详细解析:
一、整体架构
Transformer 由 编码器(Encoder) 和 解码器(Decoder) 堆叠而成,核心是 多头自注意力机制(Multi-Head Attention) 和 位置编码(Positional Encoding)。下图是经典架构图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FaL312sW-1743733197069)(https://miro.medium.com/v2/resize:fit:720/format:webp/1*BHzGVskWGS_3jEcYYi6miQ.png)]
1. 编码器(Encoder)
- 组成:N 个相同的层堆叠(原论文中 N=6)。
- 每层的结构:
- 多头自注意力机制(Multi-Head Self-Attention)
- 前馈神经网络(Feed-Forward Network, FFN)
- 残差连接(Residual Connection) 和 层归一化(Layer Normalization) 应用于每个子层。
2. 解码器(Decoder)
- 组成:同样堆叠 N 个相同的层。
- 每层的结构:
- 掩码多头自注意力(Masked Multi-Head Self-Attention):防止当前位置看到未来信息。
- 编码器-解码器注意力(Encoder-Decoder Attention):将编码器的输出作为 Key 和 Value。
- 前馈神经网络(FFN)。
- 残差连接 和 层归一化。
二、核心组件详解
1. 自注意力机制(Self-Attention)
自注意力通过计算序列中每个位置与其他位置的关联权重,动态捕捉上下文依赖关系。
- 输入:三个矩阵 Query(Q)、Key(K)、Value(V),由输入向量通过线性变换生成。
- 计算步骤:
- 计算注意力分数:$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $
- d k d_k dk 是 Key 的维度,用于缩放分数,防止梯度消失。
- Softmax 归一化:得到权重矩阵,表示不同位置的重要性。
- 加权求和:用权重矩阵对 Value 加权,得到最终输出。
- 计算注意力分数:$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $
2. 多头注意力(Multi-Head Attention)
通过并行多个自注意力机制,捕捉不同子空间的语义信息。
- 步骤:
- 将 Q、K、V 分割为 h 个头(原论文 h=8)。
- 每个头独立计算自注意力。
- 拼接所有头的输出,并通过线性变换合并。
3. 位置编码(Positional Encoding)
由于 Transformer 没有循环或卷积结构,需显式注入位置信息。
- 公式:使用正弦和余弦函数编码位置:
P E ( p o s , 2 i ) = sin ( p o s 1000 0 2 i / d model ) , P E ( p o s , 2 i + 1 ) = cos ( p o s 1000 0 2 i / d model ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) PE(pos,2i)=sin(100002i/dmodelpos),PE(pos,2i+1)=cos(100002i/dmodelpos)pos
是位置序号,i
是维度索引。
- 特点:可学习绝对位置和相对位置关系,且对长序列友好。
4. 前馈神经网络(FFN)
对每个位置独立应用两层全连接网络,引入非线性。
- 公式:$ \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 $
- 作用:增强模型的表达能力。
5. 残差连接与层归一化
- 残差连接:将子层输入直接加到输出上( x + Sublayer ( x ) x + \text{Sublayer}(x) x+Sublayer(x)),缓解梯度消失。
- 层归一化:对每个样本的特征维度进行归一化,加速训练。
三、关键设计优势
- 并行计算:自注意力可同时处理所有位置,远快于 RNN 的序列计算。
- 长距离依赖建模:任意两个位置的关联可直接计算,避免 RNN 的梯度消失。
- 可扩展性:通过堆叠层数和大规模预训练(如 BERT、GPT)提升性能。
- 灵活性:编码器和解码器可独立使用(如 BERT 仅用编码器,GPT 仅用解码器)。
四、训练细节
- 优化器:Adam + 学习率预热(Warmup)。
- 正则化:Dropout 应用于注意力权重和 FFN。
- 掩码机制:解码器使用掩码自注意力,确保训练时仅依赖已生成部分。
- 标签平滑(Label Smoothing):防止模型对标签过度自信。
五、应用与变体
- BERT:仅使用编码器,通过掩码语言模型预训练。
- GPT 系列:仅使用解码器,自回归生成文本。
- Vision Transformer (ViT):将图像分块作为序列输入,应用于计算机视觉。
总结
Transformer 通过自注意力机制和位置编码,实现了高效的序列建模,成为现代 NLP 的基石。其设计思想还被拓展到语音、图像等领域,是深度学习发展中的重要里程碑。
更多推荐
所有评论(0)