Position Encoding in Transformers: From Absolute and Relative Methods to Rotary Position Embeddings and Long-Context Scaling
本技术综述提供了一个统一的框架,用于理解 Transformer 中的位置编码方法——从绝对与相对方法到旋转位置嵌入(RoPE)——同时分析了它们的计算特性、长上下文扩展技术,以及长度外推能力与可靠长上下文泛化能力之间的关键区别。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在试图教一个机器人理解一个故事。你拥有一个超级快速的大脑,可以同时观察一个句子中的所有单词,而不是像人类那样一个接一个地阅读。这就是 Transformer 的魔力,它是现代人工智能背后的引擎。但这里有一个问题:因为这个大脑是同时观察一切的,它并不知道哪个词在前,哪个词在后,或者哪个词在最后。如果你把句子的单词顺序打乱,这个大脑会认为打乱后的版本和原始版本一样好。为了解决这个问题,我们必须给 AI 一种知道每个词在行中“位置”的方法。我们称之为 位置编码(Position Encoding)。把它想象成给每个单词一个独特的名牌或座位号。如果没有这些标签,AI 就像一个参加派对的宾客,虽然能看到每个人的脸,却不知道谁站在谁旁边,也不知道谁先到的。
这篇论文深入探讨了多年来我们为 AI 发明的不同“名牌”系统。它追溯了从简单的座号到复杂的旋转时钟,再到最终能够让 AI 阅读数十万字长篇巨著而不至于混乱的新一代技巧的历史。作者不仅是在列举这些方法,更是在探究哪些方法在尝试处理宏大故事时真正有效,并警告我们:仅仅因为一个系统可以接受长输入,并不意味着它真的能理解它。
AI “座号”的演进
在开始阶段,给单词分配座号最简单的方法就是直接查字典。这被称为 学习绝对位置(Learned Absolute Position)。想象一位老师正在分发一份名单,其中“单词 1”得到一种特定的颜色,“单词 2”得到另一种颜色,依此类推。这对于短篇故事效果很好,但如果你尝试读一部小说,而老师只为前 500 个单词制作了名单,那么当 AI 读到第 501 个单词时就会迷失方向。
随后出现了 正弦编码(Sinusoidal Encoding)。AI 不再使用静态列表,而是利用数学波形(如正弦波)来生成座号。可以把这想象成一组以不同速度旋转的时钟。有些时钟跳动得快,用以区分单词 1 和单词 2;而另一些时钟跳动得慢,用以区分单词 1 和单词 1,000。这种方法很聪明,因为 AI 可以计算出任何位置的座号,甚至是它从未见过的位置。然而,论文指出,仅仅因为你可以计算出那个数字,并不代表 AI 知道如何处理极长的距离。
接着,研究人员意识到,在语言中,最重要的往往是单词之间的 距离,而不是它们的绝对座号。单词“它”是否靠近它所指代的名词?这引出了 相对位置编码(Relative Position Encoding)。AI 不再说“我在 50 号座位”,而是学会说“我离你 3 个座位”。这就像一场音乐椅游戏,你只关心谁坐在你旁边,而不关心你椅子上的确切编号。T5 和 Transformer-XL 等方法利用这一点,通过关注单词之间的间隙来处理长文本。
全场焦点:RoPE
论文重点介绍了被称为 RoPE(旋转位置嵌入) 的第三代方法,它是目前许多大型 AI 模型的冠军。RoPE 不再是给单词增加一个数字或计算一个距离,而是将单词的数据视为一个旋转的箭头。随着单词在行中移动,它的箭头也会旋转。当 AI 比较两个单词时,它会检查它们箭头之间的夹角。如果箭头靠得很近,说明这两个词在故事中靠得很近;如果箭头离得很远,则说明它们在故事中离得很远。
RoPE 的美妙之处在于,它无需单独的查找表就能自然地处理单词间的“距离”。这就像派对上的每个人都戴着一块手表,手表的转速取决于他们到达的时间。当两个人交谈时,他们只需观察彼此手表的指针差异,就能知道彼此分别离开了多久。
长上下文挑战:拉长故事
最大的问题在于,这些系统通常是在短故事(如 4,000 字)上训练的。当我们尝试将它们用于海量文档(如 128,000 字或更多)时,“时钟”或“旋转箭头”会开始旋转出 AI 从未见过的模式。这就像试图驾驶一辆为城市街道设计的汽车上高速公路;引擎或许能运转,但操控感会变得非常奇怪。
论文调查了几种用于“拉伸”的技巧来解决这个问题:
- 位置插值(Position Interpolation, PI): 它将长故事压缩回 AI 已知的短空间内。这就像把一部 10 小时的电影压缩成 2 小时。AI 可以观看,但细节会变得模糊,并且可能会错过那些距离很近的单词之间的微妙差异。
- NTK 感知缩放(NTK-aware Scaling): 这更加聪明。它保持“快时钟”(处理细节的部分)以正常速度旋转,同时减慢“慢时钟”以覆盖长距离。这是一种折中方案,既保持了局部细节的清晰,又延伸了视野。
- 动态 NTK(Dynamic NTK): 这种方法根据当前故事的长度来改变拉伸系数。如果故事很短,它就不进行拉伸;如果故事很长,它就会进行拉伸。然而,论文警告说,这在实时处理时可能很难管理,因为它可能会干扰 AI 对过去单词的记忆。
- LongRoPE 和 LongRoPE2: 这些是最先进的方法。它们不再为所有人使用统一的规则,而是为 AI 大脑的 每个部分 寻找完美的拉伸系数。它们甚至在训练过程中混合使用短故事和长故事,以便让 AI 学会同时处理两者。作者认为这是最有前景的路径,但需要精细的调优和特定的数据。
重要的警告:能容纳并不代表能理解
这篇论文最重要的发现是一个现实层面的提醒。仅仅因为一个 AI 模型可以 接受 100,000 字的输入,并不意味着它能 理解 它。作者认为,许多模型在进行“大海捞针”(在巨大文本中寻找特定事实)测试时表现不佳,或者在长距离推理方面表现挣扎,即使它们开启了那些花哨的“长上下文”设置。
他们强调,有效上下文长度(AI 实际使用的长度)通常比 标称上下文长度(它技术上能容纳的最大单词数)要短得多。他们还指出,仅仅改变处理更长数字的数学公式是不够的;AI 需要使用这些新设置进行重新训练或微调,才能真正学会如何使用它们。
结论
论文总结道,虽然我们已经从简单的座号取得了惊人的进步,进化到了复杂的旋转箭头,但我们尚未解决长上下文理解的问题。目前还没有所谓的“灵丹妙药”。最好的方法似乎是结合智能缩放(如 LongRoPE)、结合短例和长例的仔细训练,以及严格的测试,以观察 AI 是否真的在关注整个故事,而不仅仅是开头和结尾。
对于任何构建或使用这些 AI 模型的人来说,结论是明确的:不要仅仅相信营销数字。如果你想让 AI 阅读一整部小说,你需要检查它是否真的能找到中间的情节转折,而不仅仅是看它能否一口吞下整本书。通往真正长上下文 AI 的旅程仍在继续,未来的道路需要的不仅仅是更大的数字,更需要更聪明的方法来让 AI 的注意力保持集中。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。