在自然语言处理领域,Transformer 模型因其卓越的序列建模性能而备受关注。然而,由于其训练时限制了上下文长度,使得它及其基于此的大语言模型都无法有效地处理超过此长度限制的序列,这被称作“有效长度外推”能力的缺失。这导致大型语言模型在处理长文本时表现较差,甚至会出现无法处理的情况。为了解决这个问题,研究者们提出了一系列方法,例如截断式方法、分段式方法和层次式方法等。这些方法旨在通过一些技巧来提高模型的有效长度外推能力,从而使其能够更好地处理超长序列。虽然这些方法在一定程度上缓解了这个问题,但仍需要更多的研究来进一步提高模型的有效长度外推能力,以更好地适应实际应用场景的需求。
文本续写和语言延展是人类语言能力的重要方面之一。在大模型时代,为了将模型的能力有效应用于长序列数据,长度外推成为了一种重要方法。这个问题的研究具有理论和实际的价值,因此相关工作不断涌现。同时,也需要一篇系统性的综述来概览这一领域,不断拓展语言模型的边界。
哈尔滨工业大学的研究者从位置编码的角度出发,系统回顾了Transformer模型在长度外推方面的研究进展。研究者们主要关注可外推的位置编码以及基于这些编码的拓展方法,以增强Transformer模型的长度外推能力。
论文链接:https://arxiv.org/abs/2312.17044
由于 Transformer 模型本身无法捕获序列中每个词的位置信息,因此位置编码成为了一种常见的添加方式。位置编码可以分为绝对位置编码和相对位置编码两种类型。绝对位置编码通过向输入序列中每个单词添加一个位置向量来表示该单词在序列中的绝对位置信息。相对位置编码则是通过对每对不同位置的单词之间的相对距离进行编码。这两种编码方式都可以将序列中的元素顺序信息融入到 Transformer 模型中,提升模型的性能。
鉴于现有研究显示该分类对模型的外推能力至关重要,我们将根据此分类对本节内容进行划分。
绝对位置编码
在原始的 Transformer 论文中,位置编码是通过正弦和余弦函数生成的,这种方法虽然被证明不能很好地外推,但作为 Transformer 的第一个 PE,正弦 APE 对之后的 PE 产生了深远的影响。
为了增强 Transformer 模型的外推能力,研究人员要么通过随机位移将位移不变性融入正弦 APE 中,要么生成随位置平滑变化的位置嵌入并期望模型能够学会推断这一变化函数。基于这些思想的方法展现出比正弦 APE 更强的外推能力,但仍无法达到 RPE 的水平。原因之一是,APE 将不同的位置映射到不同的位置嵌入,外推意味着模型必须推断出不曾见过的位置嵌入。然而,这对于模型来说是一项艰巨的任务。因为在广泛的预训练过程中重复出现的位置嵌入数量有限,特别是在 LLM 的情况下,模型极易对这些位置编码过拟合。
相对位置编码
由于 APE 在长度外推上的表现难以令人满意,而 RPE 天然地由于其位移不变性具备更好的外推能力,并且人们普遍认为上下文中单词的相对顺序更重要。近年来,RPE 已成为编码位置信息的主要方法。
早期的 RPE 来自于对正弦位置编码的简单修改,并常常结合裁剪或分箱策略来避免出现分布外的位置嵌入,这些策略被认为有利于外推。此外,由于 RPE 解耦了位置和位置表示之间的一对一对应关系,因此将偏差项直接添加到注意力公式中成为将位置信息集成到 Transformer 中的一种可行甚至更好的方法。这种方法要简单得多,并且自然地解开了值(value)向量和位置信息的纠缠。然而,尽管这些偏置方法具有很强的外推性,但它们无法表示 RoPE(Rotary Position Embedding,旋转位置编码)中那样复杂的距离函数。因此,尽管 RoPE 的外推性较差,但由于其优异的综合性能,成为近来 LLMs 最主流的的位置编码。论文中介绍的全部可外推 PE 如表 1 所示。
为了增强 LLMs 的长度外推能力,研究者们基于现有的位置编码提出了多种方法,主要分为位置插值(Position Interpolation)和随机化位置编码(Randomized Position Encoding)两大类别。
位置插值方法
位置插值方法通过在推理时对位置编码进行缩放,使得原本超出模型训练长度的位置编码在插值后落入已训练位置区间。由于其卓越的外推性能和极低的开销,位置插值方法引起了研究界的广泛兴趣。此外,与其他外推方法不同,位置插值方法已经广泛出现在开源模型中,例如 Code Llama、Qwen-7B 和 Llama2。然而,目前的插值方法仅仅关注 RoPE,如何通过插值使采用其他 PE 的 LLM 具备更好的外推能力仍需探索。
随机化位置编码
简单来说,随机化 PE 只是通过在训练期间引入随机位置来将预训练的上下文窗口与较长的推理长度解耦,从而提高了较长上下文窗口中所有位置的曝光度。值得注意的是,随机化 PE 的思想与位置插值方法有很大不同,前者旨在使模型在训练过程中观察到所有可能的位置,而后者试图在推理过程中对位置进行插值,使它们落入既定的位置范围内。出于同样的原因,位置插值方法大多是即插即用的,而随机化 PE 通常需要进一步微调,这使得位置插值更具吸引力。然而,这两类方法并不互斥,因此可以结合它们来进一步增强模型的外推能力。
评测与基准数据集:在早期研究中,对 Transformer 外推能力的评估来自各下游任务的性能评价指标,如机器翻译的 BLEU;随着 T5、GPT2 等语言模型逐渐统一自然语言处理任务,语言建模所使用的困惑度成为外推的评价指标。然而,最新的研究已经表明困惑度无法揭示下游任务的性能表现,因而亟需专用的基准数据集与评测指标来推动长度外推领域的进一步发展。
理论解释:目前的长度外推相关工作大都是实证性的,尽管有一些解释模型成功外推的初步尝试,但坚实的理论基础仍未建立,究竟有哪些因素影响且如何影响长度外推性能仍然是一个悬而未决的问题。
其他方法:正如本文所述,现有的长度外推工作大多集中在位置编码视角下,但不难理解,长度外推需要系统性设计。位置编码是其中一个关键的组成部分,但绝非唯一的组成部分,更广阔的视野将进一步为这一问题带来激励。
以上是位置编码在Transformer中的应用:探究长度外推的无限可能性的详细内容。更多信息请关注PHP中文网其他相关文章!