跳转至

Transformer

525 个字 预计阅读时间 2 分钟

提出于论文《Attention is all you nedd》

Seq2Seq 问题——Input a sequence,output a sequence

框架解读

基于翻译的背景下提出架构,主要是由编码器 (Emcoders) 和解码器 (Decoders) 组成,其中编码器和解码器分别由六个结构完全相同 ( 参数不相同,分开训练 ) 的小编码器 ( 解码器组成 )

image-20260310200052906

详细的结构如下所示

image-20260310200456101

Encoder

image-20260310200800949

输入部分

  • 词嵌入 (Word Embedding):将输入的单词转换为向量表示。
  • 位置编码 (Positional Encoding):由于 Transformer 没有循环结构,需要添加位置信息来捕捉单词的顺序关系。

这里文章中给出这样的位置编码公式 , 其中 \(2i\) \(2i+1\) 代表这句话中的奇数和偶数位置:

\[ \begin{aligned} PE_{(pos,2i)} &= sin\big(pos / 10000^{2i/d_{\text{model}}}\big) \\ PE_{(pos,2i+1)} &= cos\big(pos / 10000^{2i/d_{\text{model}}}\big) \end{aligned} \]

获得 Pos 信息后,与原向量相加,引入位置信息。

image-20260310201710792

为什么引入位置嵌入是有用的

image-20260310202148155 后面的字可以用前面的字表达出来。 但是这种相对位置信息会在注意力机制那里消失。

#### 注意力机制

在进行 Self-attention 之后,Transfomer 还引入了残差 ( 把输入向量与 self-attention 加起来作为最后的输出 )

Layernorm batchnorm 的区别

batchnorm 是对一个 batch 中的不同样本,在特征维度进行求残差 layernorm是以样本维度进行求残差 image-20260311103114174

Encoder 的总体的计算逻辑如下 ​ image-20260311103332214

Decoder

Masker Multi-Head Attention

Decoder 过去的输出会作为下一时刻的输入

Decoder 最开始的输入是一个 Special Token

image-20260311104717278

Encoder Decoder 的通讯

image-20260311104817949

Encoder 传来 \(K\) \(V\) 两个参数,Decoder 提供 \(Q\)

详细的步骤如下

image-20260311105140563

下面以此类推得到剩下的结果

模型训练过程

Teacher Forcing : using the ground truth as input

在训练时,Decoder 的输入就是我们的目标结果,比如下图中的,Decoder 的输入不再是上一阶段 Decoder 的输出和输入,而是直接把正确答案当作输入,把输出的结果与真实值求误差

image-20260311121836857