可视化资源

RoPE 旋转位置编码

Transformer 本身分不清词的先后,得额外注入“位置”。RoPE(旋转位置编码)的办法特别优雅:不是把位置加上去,而是把每个词的向量按它的位置旋转一个角度——位置越靠后,转得越多。妙处在于:两个词做注意力时,分数只取决于它们之间转角的差,也就是相对位置,跟它们在句子里的绝对位置无关。所以同样的相对距离,无论在句首还是句尾,模型看到的都一样,也因此能外推到训练时没见过的长度。拖动两个词的位置试试。

每个位置把向量转一个固定的角度。蓝=查询词在位置 m、金=键词在位置 n。它们的注意力分数 = 两个箭头夹角的余弦,而夹角 = (m−n)×每位转角。

控制

2
5

每个位置 = 一个转角

位置 = 旋转

位置越靠后,向量转得越多——把顺序信息编进了角度里。

只看相对位置

注意力分数只取决于两词转角之差 (m−n),绝对位置无关——更稳、更通用。

能外推

因为只认相对距离,模型能处理比训练时更长的序列,这是 RoPE 流行的原因。