Transformer自提出以来,先是在机器翻译领域大放异彩,继而在大语言模型中因OpenAI的ChatGPT而闻名天下。看过很多介绍Transformer结构的文章,首推《Attention Is All You Need》,将理解的一些过程记录,加深记忆。
Transformer的整体架构
首先从整体上看Transformer。下面左图是论文中的Transformer。右图是划分为四个部分后的架构。四个部分为输入部分、编码器、解码器、输出部分。
输入部分
输入部有的编码器的输入和产生输出后的再输入。输入部分加上了位置编码。
编码器
- 由N个编码器层堆叠而成
- 每个编码器层由两个子层连接结构组成
- 第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接
- 第二个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接
解码器
- 由N个解码器层堆叠而成
- 每个编码器层由三个子层连接结构组成
- 第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接
- 第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接
- 第三个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接
输出部分
输出部分由两部分组成,先经过线性组合,再经过Softmax,得出最大的概率。
文本嵌入
模型输入需要一定的格式向量,一种有效的格式就是文本嵌入,无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,在高维空间中捕捉词汇之间的关系。