引言
近年来开收回的机器学习模型的指数级提高与转换器架构的产生亲密相关。以前,人工智能迷信家必定先为手头的每项义务选用架构,而后再启动超参数提升以取得最佳功能。限度迷信家们后劲的另一个应战是难以处置数据的常年依赖性,难以处置梯度隐没、长序列高低文失落以及因部合成放而无法捕捉全局高低文的疑问。此外,传统模型缺乏可裁减性和并行性,减缓了对大型数据集的训练,最终阻碍了该畛域的停顿。
转换器架构经过其自我留意机制处置了这些疑问,从而彻底扭转了该畛域。它使模型能够捕捉长序列上的相关,并有效地理解全局高低文,同时具备高度的并行性和跨各种模态如文本、图像等的顺应性。在自我留意力机制中,关于每个标志,将其查问与一切其余标志的键启动比拟,以计算相似性得分。而后,这些相似性被用来权衡值向量,最终选择标志应关注的位置。自我留意将一切标志视为等同关键,无论其顺序如何,失去了关于标志产生顺序的关键消息;换句话说,它将输入数据视为一个没有顺序的汇合。
如今,咱们须要一种机制来对数据强迫口头一些顺序概念,由于人造言语和许多其余类型的数据实质上是顺序和位置敏感的。这就是位置嵌入施展作用的中央。位置嵌入对序列中每个标志的位置启动编码,使模型能够坚持对序列结构的感知。在粗略了解了各种编码位置消息的方法后,接上去咱们将详细地对它们开展逐个引见。
留意机制
设S={w},关于i=1,…,N是N个输入标志的序列,其中w示意第i个标志。因此,关于i=1,…,N,S的相应标志嵌入可以示意为E={x},其中x是标志w的d维标志嵌入向量。自我留意机制将位置嵌入联合到标志嵌入中,并生成查问、键和值示意,如下所示:
q,k和v:区分代表与序列中第m-th和n-th位置对应的查问、键和值向量;
f,f和f:这些函数把位置消息嵌入到输入嵌入x和x中,以便生成查问、键和值向量。
而后,依据查问和关键向量之间的相似性计算留意力权重:
留意,权重选择了标志n对标志m的关键性。换句话说,标志m应该对标志n给予多少留意。标志m的输入是作为值向量的加权和计算的:
因此,留意机制标志m从序列中的其余标志搜集消息。
图1:转换器架构中的位置编码(图片来自论文)。
1.相对位置嵌入
其中p是d维向量,示意标志x的相对位置。正弦位置编码和学习位置编码是生成p的两种代替打算。
(1)a正弦位置编码
正弦位置编码是在提出转换器架构的 《Attention is all you need》 论文中引入的。正弦位置编码为输入序列中的每个标志提供惟一的位置示意。它基于不同频率的正弦和余弦函数,如下所示:
其中,pos是标志在序列中的位置,d是位置嵌入维度,i是维度索引(0<=i<d)。
正弦和余弦函数在正弦位置编码中的经常使用与傅里叶变换有着亲密的相关。经过经常使用一系列不同的频率对位置启动编码,转换器创立了一个相似于傅里叶变换的示意,其中:
这有助于模型经过比拟标志的位置编码来了解标志的相对位置。正弦位置编码在推理时推行到更大的序列长度时不须要额外的训练参数。但是,它的体现力是有限的。
(2)b学习位置编码
《Attention is all you need》论文中引见了学习位置编码,并将其运行于BERT和GPT模型中,作为正弦位置编码的代替打算。在学习位置编码中,序列中的每个位置(例如第一个标志、第二个标志等)都被调配了一个嵌入向量。这些位置嵌入是在训练环节中与其余转换器参数一同窗习的。例如,假设模型的高低文长度为512,标志嵌入大小为768(即d=768),则大小为512*768的可学习张量将被参与到其余可训练参数中。这象征着,模型会逐渐学习为特定义务(如文本分类或翻译)编码位置消息的最佳方法。
学习位置嵌入比正弦位置嵌入更详细现力,由于模型可以学习位置嵌入,对其特定义务有效。但是,它们引入了更多可训练的参数,这参与了模型的大小及其计算老本。
2.相对位置嵌入
正弦和学习位置编码都并重于标志的相对位置。但是,留意力机制是经过计算序列中每个特定标志的其余标志的关键性来上班的。因此,这个环节取决于标志的相对位置(它们彼此相距多远),而不是标志的相对位置。为了处置相对位置嵌入的局限性,引入了相对位置编码。
RelativePosEmb 不 会将位置消息参与到标志嵌入中。相反,它修正了在每一层计算键和值的方式,如下所示:
这里,r=clip(m-n,R,R)示意位置m和n之间的相对距离。假定准确的相对位置在必定距离之外没有用,则对最大相对位置启动剪裁。剪切最大距离使模型能够在推理时启动外推,即推行到训练时期没有看到的序列长度。但是,这种方法或者会从标志的相对位置(如第一个标志的位置)中遗漏一些有用的消息。
你或者会留意到f缺少位置嵌入。这是由于咱们正在对相对位置启动编码。在留意力公式中,查问和键值用于计算留意力权重,如方程(2)所示;因此,咱们只有要查问或键蕴含相对位置嵌入即可。
,这种编码已被用于许多模型, 如 转换器XL 【】 】中可以找到运行相对位置编码的不同代替打算。
3.旋转位置嵌入(RoPE)
与之前的方法不同,RoPE依据标志的位置在多维空间中旋转向量。它没有将位置消息参与到标志嵌入中,而是将每一层的留意力权重计算方式修正为:
这种算法提出了一个狭义旋转矩阵,实用于任何偶数嵌入维数d,如下所示:
将RoPE()运行于留意力权重将失掉如下公式:
请留意,RoPE公式不会将位置消息参与到留意力模块的值中。留意力模块的输入是值向量的加权和,由于位置消息没有参与到值中,因此每个转换器层的输入都没有明白的位置细节。
等盛行模型也正在经常使用RoPE。
ALiBi方法
4.留意线性偏向(ALiBi)
ALiBi算法 也不会在单词嵌入中加上天位编码;相反,它对留意力权重分数参与了一个处罚,该处罚与标志之间的距离成正比。因此,每层两个标志i和j之间的留意力得分计算如下:
其中,-m ×(i-j)是一个处罚值,与标志i和j之间的距离成正比。标量m是训练前固定的头部特定斜率,其不同头部的值被选用为几何序列。例如,关于头部值8,m或者是:
这象征着,第一个头部有一个相对较大的m,因此它更多地处罚相距较远的标志,并专一于最近的标志,而第八个头有最小的m,使其能够处置更远的标志。前面的图2还提供了相应的可视化示意。
BloombergGPT模型 BLOOM模型
推理时的转换器外推
推理时的转换器外推是指模型能够很好地处置比训练时更长的输入序列。转换器机制与输入长度有关,这象征着在推理时,它可以处置更长的序列。但是,请留意,计算老本随输入长度呈二次方增长,即使转换器层自身与之有关。
ALiBi的作者证实了转换器外推的瓶颈是它的位置嵌入方法。如图3所示,他们比拟了不同位置嵌入方法的外推才干。由于学习位置嵌入不能对大于训练长度的位置启动编码,因此它没有外推才干。
图3:外推法:随着输入序列变长(x轴),正弦、RoPE和T5位置编码显示出困惑度降低(在y轴上,越低越好),而ALiBi则没有(图片来自 论文
图3显示出,正弦位置嵌入在通常中的外推才干十分有限。只管RoPE算法的功能优于正弦曲线算法,但它依然没有到达令人满意的结果。T5偏置方法(相对位置嵌入的一种方式)比正弦算法和RoPE算法嵌入具备更好的外推成果。可怜的是,T5算法偏向的计算老本很高(图4)。ALiBi算法的功能优于一切这些位置嵌入,内存参与则可以疏忽不计(0-0.7%)。
图4:正弦、RoPE、T5和ALiBi算法位置编码的批处置训练、推理速度和内存经常使用的比拟(图片来自 论文
论断
总之,转换器架构中位置消息的编码方式会清楚影响其了解顺序数据的才干,尤其是在推理时的外推时。只管相对位置嵌入方法提供了位置感知,但它们经常难以启动转换器外推。这就是为什么提出了降级的位置嵌入。相对位置编码算法RoPE和ALiBi算法具备在推理时启动外推的才干。最后,随着转换器在各种运行中的始终集成,完善位置编码关于打破其功能极限具备十分关键的意义。
留意:本中表白的意见仅代表咱们自己的观念。
参考文献
RelativePosEmb
Transformer-XL
BloombergGPT
译者引见
朱先忠,社区编辑,专家博客、讲师,潍坊一所高校计算机老师,自在编程界老兵一枚。
Beyond Attention: How Advanced Positional Embedding Methods Improve upon the Original Approach in Transformer Architecture