购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.2 位置编码

位置编码是Transformer模型中的关键设计,使其在无须递归或卷积操作的情况下,能够有效处理序列数据的顺序特性。这是Transformer在多种自然语言处理任务中取得卓越性能的原因之一。若无位置编码,Transformer模型将无法捕获输入序列中的词汇顺序信息,进而视所有输入词汇为等同,无法区分其在句子中的位置,从而影响对句子结构和语义的正确理解。例如,若忽略了词序关系,“武松打虎”与“虎打武松”在模型看来无差别,可能导致理解错误。

位置编码为Transformer模型中的自注意力机制提供位置信息。它是一个固定向量,与输入词嵌入相加,以提供位置信息。这样,模型能够区分不同位置的词汇,从而更好地理解句子结构和语义。

BERT模型和GPT-2模型首先引入的是“绝对位置编码”(Absolute Positional Encoding)。这种编码方式是通过将位置信息编码为一个固定的向量,然后与输入词嵌入相加,以提供位置信息。这样,模型就能够区分不同位置的词汇,从而更好地理解句子结构和语义。

BERT模型将三种词嵌入编码相加作为输入,分别为词嵌入、向量嵌入和位置编码。图2-4展示了BERT模型中绝对位置编码的概念。

图2-4 BERT模型中绝对位置编码的概念

绝对位置编码的实现方式较为简单,每个位置的编码是预先定义的,并在训练过程中与模型的其他参数一起学习。其主要劣势在于无法处理超过预设长度的序列。例如,BERT的输入序列最大长度为512,当序列超过512时,位置编码信息将丢失,导致模型无法准确识别超过该长度部分的词序结构,进而影响模型的准确性和泛化能力。

谷歌早期发表的关于Transformer技术的论文“Attention is All You Need”使用了正余弦位置编码(Sinusoidal Positional Embeddings)方案。在该编码方案中,每个位置的编码是通过正弦(sin)和余弦(cos)函数的组合生成的。对于序列中的每个位置,其编码由以下公式定义:

对于偶数维度2 i

PE (pos,2 i =sin( w i *pos)

对于奇数维度2 i +1:

PE (pos,2 i +1) =cos( w i *pos)

其中, w i 是一个与维度 i 相关的频率参数,通常设置为 ,其中 d model 是模型的维度。

正余弦位置编码的核心优势在于其能够通过线性变换捕捉序列中元素的相对位置。具体来说,如果位置pos的编码是PE pos ,那么位置pos+ k 的编码PE (pos+ k 可以通过PE pos 的线性组合来表示,其中 k 是相对距离。这种性质使得模型能够通过学习到的正余弦编码来理解和区分不同位置之间的相对距离和方向。

正余弦位置编码不依赖于特定的序列长度,因此它具有更好的可扩展性,能够适用于任意长度的序列。但是要注意,正余弦位置编码是通过固定的频率生成的,这些频率与位置索引的函数关系是预先定义的,而不是由模型学习得到的。这种设计确实使得模型能够处理任意长度的序列,因为位置编码是预先计算好的,不依赖于具体的序列长度。然而,当序列长度增加时,正余弦函数的频率会变得非常高,导致周期变得非常短。这可能会导致模型难以捕捉到长距离依赖关系和细微的位置信息。这是因为在长序列中,由于正弦和余弦函数的周期性,相对位置较远的元素之间的编码可能会变得相似,从而使得模型难以区分它们。这可能会影响模型对序列中元素之间复杂关系的理解。

为了解决正余弦位置编码的这一问题,一些研究者提出了一些改进的位置编码方案,如相对位置编码。他们提出了一种称为“relation-aware self-attention”的架构,该架构将输入视为一个标记的、有向的、完全连接的图,其中图的边由向量表示,这些向量捕捉了输入元素之间的相对位置差异。这种方法的核心在于引入了相对位置表示,而不是传统的绝对位置编码。这些相对位置表示是通过学习得到的,它们允许模型在计算自注意力时考虑到元素之间的相对距离。这些位置编码是通过模型训练得到的,这使得它们能够根据特定任务的数据进行优化。

相对位置编码的核心优势在于它能够通过学习得到的位置表示来捕捉序列中元素之间的相对位置关系。这使得模型能够更好地理解和区分不同位置之间的相对距离和方向。相对位置编码的一个主要劣势是它依赖于特定的任务数据,因此它可能无法很好地泛化到其他任务。此外,相对位置编码的计算成本可能会比较高,因为它需要对每个元素之间的相对位置进行计算。这可能会导致模型的训练和推理效率下降。

随着相对位置编码概念的提出,两个新的衍生技术也随之出现,分别是旋转位置编码(Rotary Position Embedding,RoPE)和线性偏置注意力(Attention with Linear Biases,ALiBi)。这两种技术将相对位置编码的思想应用于自注意力机制中,从而避免在计算自注意力时显式地添加位置编码。RoPE是一种相对位置编码方法,它能够在不引入额外参数的情况下,就能通过旋转操作捕捉到元素之间的相对位置关系,这使得它在处理长序列时特别有效。Llama系列大模型(包括Llama 2)和Falcon大模型均使用了该项技术。

ALiBi是一种自注意力机制的变体,通过在注意力分数中引入线性偏置来提升模型性能。其核心在于通过引入线性偏置捕捉元素间的相对位置关系,使模型更好地理解并区分不同位置之间的相对距离与方向。ALiBi的设计允许模型在计算自注意力时自然考虑相对位置信息,无须显式添加位置编码,从而增强对输入序列中依赖关系的捕捉能力,提高模型性能。彭博社的金融大模型BLOOM、BloombergGPT和MPT均采用了该技术。

由于RoPE和ALiBi的技术实际上是注意力机制的改进,相关内容将在2.2.3节介绍自注意力机制原理时补充说明。

总体而言,从固定编码到RoPE,位置编码技术在设计上为Transformer模型带来了以下变化:

❑ 泛化能力:模型能够更加有效地处理不同长度的序列。

❑ 灵活性:模型通过学习到的位置编码,能够适应并优化位置信息的使用。

❑ 效率:尤其在处理长序列时,RoPE等相对位置编码方法提升了计算效率。

❑ 性能:更精确的位置信息捕捉有助于提高模型在各种NLP任务中的性能,尤其是在捕捉长距离依赖关系方面。 CSNEdB+vHBZS0hog/PKO/lh6vxJoRPp8ns7rmYw2fSlIhrF5CuypPUV5VF9OmicP

点击中间区域
呼出菜单
上一章
目录
下一章
×