rope最早是为了解决llm外展问题提出的么?

很多人现在一提到RoPE就想到长度外推其实并不准确。

虽然现在大家一提起 RoPE,第一反应都是“外推性好”、“能搞长文本”,但如果你翻开 2021 对的原论文,或者去考古苏大佬当时在博客里的推导过程你会发现“外推”其实更像是这个设计带来的一个附加产品。

因为当时就是想设计一个更好的位置编码方案,RoPE的想法是能不能用旋转矩阵在复数域里编码位置信息,既能表达相对位置关系,数学上又足够优雅。

也就是说是怎么让模型更好地理解token之间的相对距离,而不是专门想着怎么让模型处理超长文本。而RoPE数学性质确实在一定程度上支持外推,但这不是最初的设计目标。

真正把长度外推当事儿来研究的是后面的一大波工作:比如ALiBi人家标题就直接写了"Train Short, Test Long"就是奔着外推去的。

Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation

还有就是23年的Position Interpolation专门研究怎么让用RoPE的模型能处理更长的序列。

Extending Context Window of Large Language Models via Positional Interpolation

还有YaRN、NTK-aware scaling这些方法都是在RoPE的基础上做文章,想办法增强它的外推能力。

所以可以说RoPE开始的目标是为了给 Transformer 找一个更优雅、更通用的位置表达方式,而长度外推能力是其数学特性带来的意外收获。大家用着用着发现它在长度外推上表现还不错然后才有研究者专门去优化这个特性。

其实原始论文里面还有一个问题大家可能都没发现:

传统的相对位置编码有一个致命的问题:一般都是直接在 Attention 矩阵上加偏置(Bias)这样会破坏了 Q 和 K 的独立性。这导致它没法应用到Linear Attention这类试图将 O(N2) 复杂度降到 O(N) 的高效变体中(因为线性 Attention 依赖于核函数的分解,中间不能插进一个无法分解的偏置项)。

而RoPE 因为是通过旋转(矩阵乘法)直接作用在 Q 和 K 上的这样保持了点积的形式,所以它既拥有相对位置编码的性能优势,又能无缝插入到 Linear Attention 里。这是当时 RoFormer 论文里的一个重要卖点。

以上个人理解供参考

原始链接: https://www.zhihu.com/question/1993698944463689134/answer/1994016254349043235
侵权请联系站方: [email protected]

相关推荐

换一批