RoPE论文阅读笔记

复数几何意义:https://zhuanlan.zhihu.com/p/646598747

https://zhuanlan.zhihu.com/p/359502624

Motivation & Abs

作者提出了旋转位置编码( Rotary Position Embedding, RoPE) 的新方法来有效利用位置信息。RoPE使用旋转矩阵对绝对位置进行编码,同时在自注意公式中纳入了明确的相对位置依赖性。RoPE 实现了序列长度的灵活性、随着相对距离的增加而衰减的标记间依赖性,以及为线性自注意力配备相对位置编码的能力。

Background

SN={wi}i=1N为N个输入token构成的序列,对应的word embedding表示为EN={xi}i=1N,其中xiRd为d维的词嵌入,不包含任何的位置信息。自注意力首先将位置信息引入词嵌入,之后将其变为q、k、v:

qm=fq(xm,m),kn=fk(xn,n),vn=fv(xn,n),其中qm,kn,vn通过f函数引入了mn的位置信息。

自注意力计算:

截屏2024-12-11 14.44.09

现有的基于transformer的位置编码方法旨在找到一个合适的函数f

Method

Formulation

基于 Transformer 的语言建模通常通过自注意机制来利用单个标记的位置信息。qmkn通常支持在不同位置的token之间进行信息的传递。想要引入相对位置信息,需要一个函数g计算qmkn的内积,函数的输入为xmxn以及其相对位置mn

fq(xm,m),fk(xn,n=g(xm,xn,mn)

最终目标是找到一种等效的编码机制来求解fq(xm,m)以及fk(xn,n)以符合上述关系。

Rotary position embedding

作者首先分析了d=2时的一个简单例子。这种情况下,作者使用了向量在2D平面的几何性质以及其复数性质从而证明我们想要的解为:

fq(xm,m)=(Wqxm)eimθfk(xn,n)=(Wkxn)einθg(xm,xn,mn)=Re[(Wqxm)(Wkxn)ei(mn)θ

其中Re[]为复数的实部,(Wkxk)(Wkxk)的共轭复数,θR为预设的非零常数。通过矩阵乘法表示:

截屏2024-12-11 15.13.08

其中(xm(1),xm(2))为2D平面的坐标。具体来说,其实就是将通过W变换后的embedding旋转其位置索引的角度倍数。

为了将上述算法扩展为更一般的形式(xiRdd为偶数),作者将d维空间分成了两个大小为d/2的子空间,利用内积的线性性对其进行组合:

f{q,k}(xm,m)=RΘ,mdW{q,k}xm,其中:

截屏2024-12-11 15.28.52

RΘ,md为旋转矩阵,Θ={θi=100002(i1)/d,i[1,2,...,d/2]}

截屏2024-12-11 15.37.56

内积变为:

qmkn=(RΘ,mdWqxm)(RΘ,ndWkxn)=xWqRΘ,nmdWkxn

值得注意的是RΘd是一个正交矩阵,保证了编码位置信息过程中的稳定性(正交矩阵不会改变位置信息的相对关系?)。

Properties of RoPE

Long-term decay

θi=100002i/d可以保证睡着相对位置距离的增加,内积逐渐衰减。

RoPE with linear attention

自注意力可以用更一般的形式重写:

截屏2024-12-11 16.01.33

原始 self-attention 应该计算每对 token 的 query 和 key 的内积,引入了二次复杂度。线性注意力可以表示为:

截屏2024-12-11 16.05.19

复杂度为O(n×d2)。引入RoPE:

截屏2024-12-11 16.07.43

Computational efficient realization of rotary matrix multiplication

截屏2024-12-12 00.33.49

代码实现

TODO

posted @   脂环  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
主题色彩