作者:Elahe Aghapour,Salar Rahili
介绍:近年来构建的模型呈指数级增长,这与Transformer架构的出现息息相关。此前,AI科学家们必须为每个任务选择架构,并优化超参数以实现最佳性能。另一个限制其潜力的挑战是处理数据长距离依赖的难度,这些问题包括梯度消失、长序列中的上下文丢失以及由于局部约束无法捕捉全局信息。此外,传统模型缺乏可扩展性和并行处理能力,使得在大型数据集上的训练速度缓慢,阻碍了该领域的进一步发展。
Transformer架构通过其自注意力机制解决了这些问题,从而彻底改变了该领域的发展。它使模型能够捕捉长序列中的关系,并高效理解全局上下文,同时具有高并行性和适应不同模态(如文本、图像等)的能力。在自注意力机制中,每个token的查询会被与所有其他token的键进行比较,以计算相似度分数。这些相似度分数随后用于加权值向量,最终决定当前token应该关注哪里。自注意力机制将所有token视为同等重要,不论它们的顺序如何,这意味着它将输入数据视为一个没有特定顺序的集合。现在我们需要一种机制来在数据中强制执行某种顺序,因为自然语言和其他许多类型的序列数据本质上是顺序敏感的。这就是位置嵌入发挥作用的地方。位置嵌入为序列中的每个token编码位置信息,使模型保持对序列结构的感知。已经探索了多种编码位置信息的方法,我们将在本博文中详细介绍这些方法。
DALL-E生成的图片
注意力机制一种让机器更专注于信息处理的方法
设 S = {wi},其中 i = 1,…,N,为一个包含 N 个输入标记的序列。因此,序列 S 对应的标记嵌入可表示为 E = {xi},其中 i = 1,…,N,每个 xi 为标记 wi 的 d 维嵌入向量。自注意力机制将位置嵌入与标记嵌入结合,并生成查询、键和值的表示。
然后,根据查询向量与键向量的相似度进行计算,得到注意力权重。
注意力权重决定了令牌_m_对令牌_n_的关注程度。换句话说,令牌_m_需要关注令牌_n_多少。令牌_m_的输出是通过将值向量加权求和得到的。
因此,注意力机制中的_token m 会从序列中的其他令牌获取信息。
图1. Transformer架构中的位置编码(图片出自paper)
1. 绝对位置编码:对于方程 (1),我们通常会这样选择:
其中 pi 是表示令牌 xi 绝对位置的 d 维向量。正弦位置编码和学习位置编码是两种方法。
1.a 正弦位置编码技术:基于正弦波的位置编码方法正弦位置编码是在“注意力就是你所需要的”这篇论文中提出的,在这篇论文中提出了Transformer架构。正弦位置编码为输入序列中的每个词元提供了一个独特的位置表示,如下所示,它基于不同频率的正弦和余弦函数:
其中 pos 是序列中词元(token)的位置,d 是位置嵌入的维度,而 i 是维度索引(0 <= i < d)。
傅里叶变换的概念与正弦波位置编码中的正弦和余弦函数使用有着深刻的联系。通过使用一系列不同频率来编码位置,Transformer 创建了一个类似傅里叶变换的表示,其中:
- 高频成分(较低的 i)使模型能够捕捉到局部位置的信息。这对于理解序列中邻近标记(如单词对)之间的关系非常有用。
- 低频成分(较高的 i)捕捉整个序列的全局模式。这有助于模型关注更广泛的标记间关系,即使这些标记在序列中相隔很远,例如两个不同句子中词语的依赖关系。
这有助于模型通过比较它们的位置编码来理解 token 的相对位置。Sinusoidal 位置编码在推理时不需要额外的训练参数,可以很好地扩展到更长的序列长度。不过,它的表达能力有限。
1.b 相对位置编码学习在“注意力就是你所需要的”这篇论文中提出了学习型位置编码,并在BERT和GPT模型中作为正弦波位置编码的替代方案被应用。在学习型位置编码中,序列中的每个位置(例如第一个词、第二个词等)都会被分配一个嵌入向量。这些位置嵌入是在训练过程中与其他变换器参数一起学习的。例如,如果模型的上下文长度为512,且词嵌入大小为768(即 d =768),这将添加一个512*768的可学习张量,作为其他可训练参数的一部分。这意味着模型会逐渐学会如何最好地编码特定任务(如文本分类或翻译)中的位置信息。
学习到的位置嵌入比正弦位置嵌入更具有表达力,因为模型可以学到适合特定任务的位置嵌入。然而,这会引入更多可训练参数,增加模型的大小和计算成本。
2.: 相对位置编码无论是正弦波的还是通过学习得到的位置编码都侧重于标记的绝对位置。然而,注意力机制是通过计算每个特定标记与其他标记的重要性来运作的。因此,这个过程依赖于标记之间的相对位置(即它们彼此间的距离),而不是它们的绝对位置。为了解决绝对位置嵌入的局限性,提出了相对位置编码的概念。
RelativePosEmb 不向令牌嵌入添加位置信息,而是调整每一层中键值的计算方式如下:
在这里,r = clip(m-n, Rmin, Rmax) 表示位置 m 和 n 之间的相对距离。相对位置的最大值会被限制,超过一定距离后,精确的相对位置信息就不再重要了。裁剪最大距离使模型在推理时能够进行外推,即推广到未在训练中见过的序列长度。然而,这种方法可能会错过一些标记绝对位置的有用信息(例如第一个标记的位置)。
您会发现_fq_没有位置嵌入。这是因为我们在表示相对位置时,只需在查询或键中加入相对位置嵌入(如方程2所示)。
这种编码已经被应用在许多模型中,比如Transformer-XL和T5,这些模型中都使用了这种编码。在应用相对位置编码的不同方法时,你可以在论文[7]和[8]中找到不同的应用方式。
3. 旋转位置嵌入(RoPE)与以前的方法不同,RoPE 这种技术根据词元的位置信息在多维空间中旋转向量。它不是将位置信息添加到词元嵌入中,而是在每一层中重新计算注意力权重。
他们提出了一种适用于任何偶数维度 d 的广义旋转矩阵:
当 θi 预定义时:
应用RoPE(RoPE:注意力权重的旋转位置编码,参见https://arxiv.org/pdf/2104.09864)到注意力权重得到:
需要注意的是,RoPE 的公式化并没有在注意力模块的值中添加位置信息。注意力模块的输出是加权值向量,由于位置信息没有加到值上,因此每个变压器层的输出没有明确的位置细节。
一些流行的模型,比如LLaMA和GPT-NeoX,都在使用RoPE。
图2:ALiBi 可视化方法(来源于该论文)
4. 带线性偏置的注意力机制 (ALiBi, Attention with Linear Biases)ALiBi 也不向词嵌入添加位置编码;而是对注意力权重施加一个与令牌距离成比例的惩罚。因此,每一层中,两个令牌 i 和 j 之间的注意力分数的计算为公式:
请在公式前加上“公式”,以符合中文讨论公式或具体计算时的习惯。
_注意力分数 = 查询_i · 键j — m(i-j)
其中 -m.(i-j) 是一个与令牌 i 和 j 之间的距离成比例的罚分。标量 m 是一个在训练前固定的头部特定斜率,不同头部的 m 值形成一个几何序列。例如,对于8个头部,m 可能是:
这意味着,第一个头的 m 相对较大,因此它更倾向于惩罚相距较远的标记,而更专注于较近的标记;而第8个头的 m 最小,因此它可以关注更远的标记。图2也提供了相应的可视化结果。
ALiBi 被用于 BloombergGPT 和 BLOOM 中。
Transformer 在推理时的外推分析:Transformer 在推理时对于长序列的外推能力是指模型在更长的输入序列上表现良好。Transformer 机制不关心输入长度,这意味着在推理时它可以处理更长的序列。然而,需要注意的是,虽然 Transformer 层本身不关心输入长度,但计算成本随着输入长度的增加会呈二次增长。
ALiBi 的研究者发现,变压器外推能力的瓶颈在于其位置编码方法。如图 3 所示,表明了不同位置编码方法的外推能力。由于学习到的位置编码无法表示超出训练长度的位置,因此它不具备外推能力。
图3:随着输入序列长度增加(x轴),正弦位置编码、RoPE和T5位置编码表现出困惑度增加(y轴,越低越好),而ALiBi则没有(图源paper)。
图3显示,在实际应用中,正弦位置嵌入的外推能力非常有限。虽然RoPE优于正弦嵌入,但它仍然没有达到令人满意的效果。T5偏差方法(相对位置嵌入的一种版本)比正弦和RoPE嵌入有更好的外推表现。不幸的是,T5偏差计算成本较高(图4)。ALiBi在几乎不增加内存(0-0.7%)的情况下,优于所有这些位置嵌入方法。
图4显示了正弦波、RoPE、T5 和 ALiBi 等位置编码方法在批量训练过程、推理速度和内存使用情况方面的对比(图片来自论文)。
结论如下:总之,Transformer架构中编码位置信息的方式极大地影响了其理解序列数据的能力,特别是在推理时的外推能力。虽然绝对位置嵌入方法提供了位置感知,但它们在外推时通常表现不佳。因此,提出了新的位置嵌入策略。相对位置编码、RoPE和ALiBi能够在推理时进行外推。随着Transformer在各种应用场景中的广泛应用,完善位置编码对于推动其性能边界至关重要。
参考文献:本文中的观点仅代表我们自己,与我们雇主的观点无关。
[1] Vaswani, A. “注意力就够了。” (2017)。
[2] BERT: Devlin, Jacob. “BERT: 深度双向变换器的预训练语言理解模型。” (2018)。
[3] GPT: Radford, Alec, et al. “语言模型是无监督的多任务专家。” (2019)。
[4] RelativePosEmb: Shaw, Peter, et al. “自注意力中的相对位置编码。” (2018)。
[5] Transformer-XL Dai, Zihang. “超越固定长度上下文的注意力语言模型。” (2019)。
[6] T5: Raffel, Colin, et al. “通过统一的文本到文本变换器探索迁移学习的边界。” (2020)。
[7] Raffel, Colin, et al. “通过统一的文本到文本变换器探索迁移学习的边界。” (2020)
[8] He, Pengcheng, et al. “DeBERTa: 具有解耦注意力的增强BERT。” (2020)。
[9] RoPE: Su, Jianlin, et al. “RoFormer:带有旋转位置嵌入的增强型Transformer。” (2024)。
[10] LLaMA: Touvron, Hugo, et al. “LLaMA:开放且高效的大型语言模型。” (2023)。
[11] GPT-NeoX: Black, Sid, et al. “GPT-NeoX-20B:一个开源的200亿参数自回归语言模型。” (2022)。
[12] ALiBi: Press, Ofir, et al. “短训练,长测试:带线性偏置的注意力能够进行输入长度的外推。” (2021)。
[13] BloombergGPT: Wu, Shijie, et al. “BloombergGPT:一个大型金融语言模型。” (2023)。
[14] BLOOM: Le Scao, Teven, et al. “BLOOM:一个1760亿参数的多语言开放访问语言模型。” (2023)。
共同学习,写下你的评论
评论加载中...
作者其他优质文章