当前位置:   article > 正文

Transformer入门详解_transformer基础

transformer基础

Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。

主流的序列到序列模型是基于编码器-解码器的循环或卷积神经网络,注意力机制的提出,优化了编解码器的性能,从而使得网络性能达到最优。利用注意力机制构建出新的网络架构Transformer, 完胜了循环或卷积神经网络。Transformer 是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。Transformer可以并行训练,训练时间更短。

1 Transformer的模型架构

序列到序列模型采用的是编码器-解码器结构,编码器将输入序列(,……,映射成符号表示z=(,……,根据给定的Z ,解码器生成输出序列(,……,在每一个步长里,模型利用前一个步长中生成的向量和该步长的输入,生成输出符号。

Transformer模型架构如图1-1所示,编码器-解码器结构采用堆叠的多头注意力机制加全连接层,图中左边的是编码器结构,右边的是解码器结构:

在这里插入图片描述

图 1-1 堆叠的编码器-解码器结构(来源:网络)
编码器:编码器由6个相同的块结构堆叠而成 N=6,每个块结构进一步分成两个子层:即一个多头的自注意力机制和一个前馈网络全连接层,在块中的每一个子层之后,增加一个归一化层(AddNorm),每个子层的输出均为归一化的LayerNorm(x + Sublayer(x)),包括词嵌入层,模块中所有子层的输出的维数均为512,即 = 512。

解码器:同理,解码器也由6个相同的块结构堆叠而成 N=6,每个块结构在编码器两个子层的基础之上,增加了第三个子层,即增加了一个多头自注意力子层。与编码器类似,在块中的每一个子层之后,增加一个归一化层(AddNorm)。在解码器端,对解码器堆栈中的自注意力子层进行了修改,以防止位置编码和后续位置编码相关,通过这种掩蔽,确保了对位置i的预测只能依赖于小于i的位置的已知输出。

2 Self-attention 自注意力机制

Attention 函数将三元组Q(Query)、K(Key)、V(Value) 映射成输出,其中三元组Q(Query)、K(Key)、V(Value)和输出均为向量,输出是V(Value)的加权和,其中的权重是Q(Query)和K(Key)对应的组合计算出来的数值。

1)带缩放的点积注意力机制Scaled dot-product attention

带缩放的点积注意力机制(Scaled dot-product attention )的公式如下:

在这里插入图片描述

在上面公式中Q和K中的向量维度都是,V的向量维度是

两个最常用的注意力函数是:加注意力函数(Additive Attention)和点积注意力函数(Dot-product Attention)。除了

Transformer模型在三处采用了多头注意力机制:

在编码器-解码器注意力层,Q值来自上一个解码器层,K值和V值来自编码器的输出,从而使得解码器的每一个位置信息均和输入序列的位置信息相关,这种架构模仿了序列到序列模型编解码器注意力机制。

编码器中包括自注意力层,在自注意力层中,Q 值、K值和V值均来自编码器上一层的输出,编码器中的位置信息参与到前一层的位置编码中去。

同理,解码器中的自注意力机制使得解码器中的位置信息均参与到所有位置信息的解码中去。

2)全连接前馈网络

在Transfomer编码器-解码器架构的每一块中,除了包含多头注意力机制外,还包含一个全连接前馈网络,全连接前馈网络层包含两次ReLU激活函数的线性变换。
在这里插入图片描述

不同层之间的全连接前馈网络的参数各不相同,模型输入输出的维度是512 = 512, 层内部的维度是2048 ,即= 2048。

3)嵌入和Softmax

和其它序列到序列的模型相类似,Transformer模型利用词嵌入技术将输入标记和输出标记转化为维度为的向量,采用可训练的线性变换和Softmax函数,将解码器的输出变换成待预测的下一个标记的概率。在Transformer模型中,两个嵌入层和Softmax层之间共享权重矩阵。

3 位置编码Positional Encoding

由于Transformer模型中既没有递归,也没有卷积,需要获得输入序列精准的位置信息的话,必须插入位置编码。位置编码精准地描述了输入序列中各个单词的绝对和相对位置信息,即在编码器-解码器的底部输入嵌入中注入“位置编码”,位置编码和输入嵌入有相同的维度,所以二者可以实现相加运算,位置编码方式可以有多种,在Transformer模型中采用的是频率不同的三角函数:

在这里插入图片描述
其中pos 是位置,i是维数,也就是说,位置编码的每个维数都对应于一个正弦曲线。波长从2π到10000·2π的几何变化。之所以选择这个函数是因为假设它使得模型很容易地学习相对位置,对于任何固定偏移量k,
首先,将自注意力机制和循环卷积网络(RNN )和卷积神经网络(CNN)进行对比,比较它们在变长序列

在这里插入图片描述
表 3-1 不同层序列操作的的最大路径长度、每层的复杂性和最小操作数
如表3-1所示 :不同层序列操作的的最大路径长度、每层的复杂性和最小操作数。n是序列长度,d是表示维数,k是卷积的核大小,r是受限自注意力中的邻域的大小。在表3-1中,自注意力机制通过

卷积核维度为k 的单卷积层无法实现所有输入和输出位置信息的连接,所以要求有

从表3-1中的对比还可以看出,自注意力机制在复杂程度、并行计算的计算量和网络中最长相关路径的长度三方面均占有优势。

4 Transformer 模型的训练

4.1训练数据和批次大小
在标准的WMT2014英语-德语数据集上进行训练,这个数据集包括大约450万个句子数据对。句子采用字节对编码进行编码,源-目标词汇表中共享大约37000个标记。对于英语-法语,使用了更大的WMT2014英语-法语数据集,由3600万个句子组成,并将标记分割为32000词汇。句子对按近似的序列长度排列在一起。每个训练批都包含一组句子对,其中包含大约25000个源标记和25000个目标标记。

4.2 硬件配置
使用8 NVIDIAP100 GPU上训练了Transfomer模型,使用超参数的基本模型,每个训练步长大约需要花费0.4秒的时间,对基本模型总共训练了10万步或12个小时。对于大模型,步长时间为1.0秒,大模型训练了30万步(3.5天)。

4.3 优化器
采用Adam 优化器,参数设置为h β1 = 0.9, β2 = 0.98,并依据下述公式调整学习率:

对应于第一个warmup_steps训练步长,学习率线性增加,在后续步长中,学习率随着步长的平方根成正比例下降,其中,warmup_steps =4000。

4.4 正则化
在训练过程中采用了三种正则化方法:

残差Dropout:在添加子层的输入和归一化之前,将Dropout机制应用于每个子层的输出,同时在编码器-解码器堆叠的嵌入过程和位置编码过程中加入Dropout机制,

4.5 训练结果
机器翻译

在WMT2014英德翻译任务中,Transformer (big)比之前报告的最佳模型(包括集成)高出2.0多个BLEU,获得BLEU分数为28.4。该模型的配置列于表5-2的底部。在8个P100 GPU 上进行训练需要3.5天。甚至基本模型也超过了所有之前发布的模型和集合,训练成本也大幅度缩减。

在WMT2014年英法翻译任务中Transformer (big)获得了BLEU分值为 41.0分,优于之前发布的所有其它模型,训练成本降低 1/4。

在这里插入图片描述

表4.5-1 在英德和英法翻译任务中Transformer模型的BLUE 分值和其它模型BLUE 分值的对比(来源:网络)
表4.5-1同时将翻译质量和训练成本与其他模型架构的翻译质量和训练成本进行了比较。通过比较训练时间、所使用的GPU的数量以及对每个GPU5的持续单精度浮点容量的估计来估计用于训练模型的浮点操作的数量。

为了评估Transformer模型是否可以推广到其他任务,在英语选区解析上进行了实验。这个任务提出了具体的挑战:输出受到强大的结构约束,且长度远远长于输入。此外,RNN序列对序列模型还无法在小数据体系中获得最为先进的结果。

通过在宾夕法尼亚州《华尔街日报》的数据集上训练了大约40K句子,数据模型为

结论:Transformer是采用自注意力机制的序列到序列模型,在编码器-解码器架构的神经网络中,用多头自注意力机制取代了RNN 层。对于翻译任务,Transformer的训练速度可以比基于循环层或卷积层的体系架构要快得多。关于2014WMT英德语和WMT2014英法翻译任务,实现了不错的性能。在前一项任务中,Transformer模型的性能甚至优于之前报告的所有其它模型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/906624
推荐阅读
相关标签
  

闽ICP备14008679号