2 认识Transformer架构¶
学习目标¶
- 了解Transformer模型的作用
- 了解Transformer总体架构图中各个组成部分的名称
2.1 Transformer模型的作用¶
基于seq2seq架构的transformer模型可以完成NLP领域研究的典型任务, 如机器翻译, 文本生成等。同时又可以构建预训练语言模型,用于不同任务的迁移学习。
在接下来的架构分析中, 我们将假设使用Transformer模型架构处理从一种语言文本到另一种语言文本的翻译工作, 因此很多命名方式遵循NLP中的规则。比如: Embeddding层将称作文本嵌入层, Embedding层产生的张量称为词嵌入张量, 它的最后一维将称作词向量等。
- 捕捉长距离依赖关系
- 传统的RNN和CNN模型在处理长序列时,难以捕捉远距离元素之间的依赖关系。
- Transformer通过自注意力机制,能够直接计算输入序列中任意两个元素之间的关系,从而更好地捕捉长距离依赖。
- 并行计算
- RNN模型需要按时间步依次处理序列数据,无法并行计算。
- Transformer模型完全基于注意力机制,可以并行处理整个序列,显著提高了计算效率。
- 灵活性和可扩展性
- Transformer具有较高的扩展性,可以通过增加层数或头数来提高模型的表达能力,适用于各种复杂的任务。
- Transformer的架构设计灵活,可以轻松适应不同的输入和输出形式(文本、图像、音频以及语音等)。
2.2 Transformer总体架构图¶

2.2.1 Transformer总体架构¶
-
输入部分
- 输入嵌入:将输入的词或子词转换为固定维度的向量表示。
- 位置编码:由于Transformer不使用循环或卷积结构,无法直接捕捉序列的顺序信息,因此通过位置编码为输入添加位置信息。位置编码通常使用正弦和余弦函数来生成,并与输入的嵌入向量相加。
-
输出部分
- 线性变换:将解码器的输出映射到词汇表大小的维度。
- Softmax激活函数:生成每个词的概率分布。
-
编码器部分
由N个相同的编码器层堆叠而成
- 多头自注意力机制:
- 这是Transformer的核心组件。自注意力机制允许模型在处理一个token时,同时关注输入序列中的所有其他 token,并计算它们之间的相关性权重。
- 多头机制将输入映射到多个不同的子空间,并行计算注意力,从而增强模型的表达能力。
- 前馈神经网络:
- 每个注意力层的输出都会经过一个前馈神经网络 (通常是两层全连接层) 进行非线性变换,进一步提取特征。
- 残差连接:
- 为了缓解深层网络中的梯度消失问题,每个子层(注意力层和前馈层)的输入会与该层的输出相加,形成残差连接。
- 规范化层(层归一化):
- 在每个子层的输入和输出之间进行层归一化,可以加速训练并提高模型稳定性。
- 多头自注意力机制:
-
解码器部分
由N个相同的解码器层堆叠而成
- 掩码多头自注意力机制:
- 与编码器中的自注意力类似,但加入了掩码机制,确保模型在生成每个token时,只能关注到该token之前的 token。
- 这种掩码机制保证了解码过程的自回归性,即模型按照顺序逐步生成输出序列。
- 多头编码器-解码器注意力机制:
- 解码器还需要关注编码器的输出,从而将编码器的语义信息融入到解码过程。
- 该注意力机制的查询 (Query) 来自解码器的上一层输出,键 (Key) 和值 (Value) 来自编码器的输出。
- 前馈神经网络、残差连接和规范化层(层归一化): 与编码器类似。
- 掩码多头自注意力机制:
2.2.2 输入部分¶
-
源文本嵌入层及其位置编码器
-
目标文本嵌入层及其位置编码器

2.2.3 输出部分¶
-
线性层
-
softmax层

2.2.4 编码器部分¶
-
由N个编码器层堆叠而成
-
每个编码器层由两个子层连接结构组成
-
第一个子层连接结构包括一个多头自注意力子层和一个残差连接以及规范化层(层归一化)
-
第二个子层连接结构包括一个前馈全连接子层和一个残差连接以及规范化层(层归一化)

2.2.5 解码器部分¶
-
由N个解码器层堆叠而成
-
每个解码器层由三个子层连接结构组成
-
第一个子层连接结构包括一个多头自注意力子层和一个残差连接以及规范化层(层归一化)
-
第二个子层连接结构包括一个多头注意力子层和一个残差连接以及规范化层(层归一化)
-
第三个子层连接结构包括一个前馈全连接子层和一个残差连接以及规范化层(层归一化)

2.3 小结¶
- Transformer模型的作用:
- 基于seq2seq架构的transformer模型可以完成NLP领域研究的典型任务, 如机器翻译, 文本生成等. 同时又可以构建预训练语言模型,用于不同任务的迁移学习.
- Transformer总体架构可分为四个部分:
- 输入部分
- 输出部分
- 编码器部分
- 解码器部分
- 输入部分包含:
- 源文本嵌入层及其位置编码器
- 目标文本嵌入层及其位置编码器
- 输出部分包含:
- 线性层
- softmax处理器
- 编码器部分:
- 由N个编码器层堆叠而成
- 每个编码器层由两个子层连接结构组成
- 第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接
- 第二个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接
- 解码器部分:
- 由N个解码器层堆叠而成
- 每个解码器层由三个子层连接结构组成
- 第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接
- 第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接
- 第三个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接