位置编码为模型提供 token 的序列位置,或 token 之间的相对位移。 词嵌入告诉模型输入了哪些符号;位置机制进一步让它利用这些符号的排列关系。

把“狗咬人”和“人咬狗”都按三个 token 理解,两句话包含相同的词,施事与受事却交换了。对于没有位置项、也没有顺序掩码的双向自注意力,“咬”看到的仍是同一组内容,缺少区分谁在左、谁在右的信号。

无位置的注意力究竟缺少什么

这里更准确的术语是置换等变。把输入的 token 重新排列,逐 token 输出也跟着做相同排列,而不是所有输出都原封不动。

如果再对这些输出取均值,汇总结果才具有置换不变性。附录给出这一关系的推导。因此,“像词袋”是帮助理解的比喻,不能把两种数学性质混写。

这个结论有条件。固定的因果掩码只允许每个位置看到自己及左侧 token,本身就带入了顺序结构;带这种掩码的模型不能直接套用任意置换下的结论,也不能一概称为无序词袋。

先看位置项能插入哪一步

以一个注意力头为例,输入隐藏向量经过投影,得到 Query、Key 和 Value。Query 表示位置 用来查询的内容,Key 用来与它匹配,Value 是匹配后参与汇总的信息。

标准的计算可以写成

是 Query 与 Key 的维度; 是尚未归一化的分数, 是对当前 Query 归一化后的注意力权重。 是掩码项,允许访问时为 0,禁止时可在数学上记为负无穷。分数、权重和最终输出是三个不同对象。(Vaswani et al., 2017)

位置机制可以改变投影前的输入,也可以改变投影后的向量或 Softmax 前的分数。“编码什么位置关系”与“插在流程哪一步”是两条分类轴。 下文的入口相加、分数偏置和向量旋转,是常见实现路径,不是所有可能方案的定义边界。

绝对位置:先把位置向量加入输入

经典绝对位置编码为位置 提供向量 ,与 token 向量 相加。

随后进入注意力层,生成 Query、Key、Value。因此,位置信息虽然只在入口显式加入,仍会影响后续计算。相加保持表示维度不变;位置向量不必是 one-hot,也不要求不同位置彼此正交。

固定的正弦与余弦

原始 Transformer 使用多组频率生成位置向量。设模型维度 为偶数,。

位置 从 0 开始,每一对坐标以不同的频率变化,编码本身无需学习。取 ,可得到下面的教学算例,数值四舍五入显示。

位置前两个坐标后两个坐标
0
1
2

同一个 token 放到位置 0 与位置 1,会与不同的向量相加。正余弦还让固定偏移对应可表达的线性变换,这是原论文考虑相对位置关系的依据之一。它并不意味着整个注意力分数只由相对距离决定。(Vaswani et al., 2017)

可学习的位置表

另一种做法是保存一张 的参数表,用位置索引查出 ,再通过训练更新。 是位置表覆盖的最大长度。

BERT 是这一做法的例子,其输入还包含 segment embedding;论文给出三类向量相加的结构,官方实现将位置表定义为可学习变量。(Devlin et al., 2019) 对照实现可读 BERT 的 embedding_postprocessor。

超出表范围时,需要扩展或其他处理;即使表里预留了某些位置,也不代表模型已经在那些位置上学得充分。

Shaw 相对位置:为当前词对加入关系向量

相对位移同时包含距离和方向。本文统一用 ,即 Key 位置减 Query 位置。对位置 1 的“咬”,位置 0 的“狗”在左侧一步,;位置 2 的“人”在右侧一步,。

Shaw 方法为相对位移学习向量。将位移裁剪为 ,其中 是裁剪半径,区间外的距离共用边界表示。其分数项可写为

是与当前词对有关的相对向量。把它展开后,多出的项是 ,同时依赖 Query 内容和相对位移,不是只查距离就能得到的固定标量。(Shaw et al., 2018)

“给 Key 加向量”是这一计算的直观说法,但应理解为 ,不能当作所有 Query 共用的一份 。

原论文的完整形式还可把相对关系加入 Value 汇总。

是另一组相对向量,维度与 Value 一致。原文分别检验了 Key 与 Value 两种扩展,所以介绍 Shaw 时只写“修改 Key”会省略一部分设计。(Shaw et al., 2018)

相对偏置:直接调整 Softmax 前的分数

也可以不增加词对关系向量,而是给每个注意力头的分数加上标量偏置。

表示注意力头。T5 根据相对距离的分桶查出可学习标量,多个距离可以落入同一桶。这个位置项直接由相对位置决定,与 Shaw 的 有不同的内容依赖。(Raffel et al., 2020)

ALiBi(Attention with Linear Biases)则使用预先固定、每个头不同的斜率。在因果注意力允许的 范围内,其偏置可写为

斜率 在原方法中不随训练更新。教学上若两个词对的缩放后内容分数都为 2,令 ,向左距离为 1 和 4 时,偏置后的分数分别为 1.5 和 0。这形成近期偏好,但远处 Key 的内容分数足够高时,仍可能获得较高权重。(Press et al., 2022)

这两类偏置都在 Softmax 之前加入。把偏置直接加到已经归一化的注意力权重上,会变成另一种计算。

RoPE:旋转 Q 和 K,让位置关系体现为角度差

RoPE 即 Rotary Position Embedding,由 RoFormer 提出。它用位置索引决定旋转角度,在 Query 与 Key 点积中呈现相对位移;原始 LLaMA、PaLM 均采用了这一机制。(Chowdhery et al., 2023; Su et al., 2021; Touvron et al., 2023)

先看一个二维旋转

取一组二维坐标,位置 对应旋转矩阵

是这组坐标的角速度,角度单位为弧度。旋转保持向量长度,但不同位置的旋转会改变两向量的相对方向。

先看教学设定 、。这只是一个二维块的演示角速度,不是实际模型的标准频率。

Query 位置 Key 位置 位移 旋转后点积
0110
4510
022−1

前两行的绝对位置不同,角度差相同,点积也相同。第三行改变了位移,结果随之改变。但若固定第一行的位置,只把 Key 内容换成 ,点积会从 0 变为 −1。相同距离不等于相同分数,内容仍然参与计算。

为什么会出现相对位移

标准 RoPE 先投影得到 ,再旋转,最后计算点积。用列向量记号表示,有

关键是 。位置变换部分可写成相对位移,但完整分数还依赖 、。 若它们本来就受上下文或其他位置信号影响,不能进一步声称整个网络只依赖距离,或整体平移输入后所有结果都不变。(Su et al., 2021)

在偶数维 的基本形式中,将坐标两两分组,各组使用不同角速度,原始频率选择可写为 ,。完整的 由这些二维旋转块组成,而非让所有坐标共用一个角度。

标准 RoPE 位置操作作用于 Q、K,不要求给入口嵌入另加绝对位置表,也不要求旋转 V。它可在每层注意力的投影之后、点积之前应用。逐 token 的旋转处理是线性的附加工作,但不会把密集注意力本身的二次计算变成线性注意力。

用两个问题比较这些方法

读到一种位置机制时,先问它表示什么关系,再问它修改哪个计算对象。

方法显式表示的位置关系常见注入位置需要留意的条件
正余弦绝对编码位置索引 投影前与输入相加公式可延伸,效果仍需评价
可学习绝对编码位置索引对应的参数行投影前查表并相加表范围与训练覆盖有限
Shaw裁剪后的有向位移词对分数,另可扩展 Value相对项随 Query 内容变化
T5/ALiBi距离桶/因果距离Softmax 前加标量偏置分桶与近期偏好各有取舍
RoPE绝对旋转所形成的相对角度投影后旋转 Q、K点积仍依赖内容与频率设定

“绝对编码在入口,相对编码在内部”适合记住这些经典路径;RoPE 则说明,使用绝对索引计算位置变换,也能在词对运算中形成相对关系。

能计算更长位置,不代表能可靠阅读更长文本

正余弦和 RoPE 的公式可以在训练长度之外继续求值,ALiBi 也可以继续生成距离偏置。它们解决了位置表示怎样延伸的部分问题,却没有自动证明模型能利用所有长距离信息。

训练覆盖、相位与距离分布变化、掩码、上下文内容,以及推理时的显存与计算预算,都影响实际使用。RoPE 的单个旋转块具有周期性,不能理解为“距离越大,每个词对的分数就必然越低”。比较外推能力应固定模型和训练条件,再用任务结果检验;ALiBi 原文的外推实验也有具体模型与长度设置。(Press et al., 2022)

位置机制与 Tokenizer 的工作不同。Tokenizer决定输入怎样切成 token,词向量与表示学习解释内容表示怎样学习,位置机制则提供这些 token 的排列关系。继续阅读可返回 LLM 专题。

附录:置换等变的一个推导

设输入矩阵 每行对应一个 token, 是重排行的置换矩阵。令 、、, 为共享的投影参数。无位置项、无固定顺序掩码且关闭随机 dropout 时,注意力映射为

重排输入后,三种投影变为 。逐行 Softmax 会跟随行、列的相同重排,因此

这叫等变。再对行取均值,重排不改变均值,才得到不变。固定因果掩码通常不会随输入一同变成 ,所以前述等式不能原样用于这种设置。

原文版本与链接

RoFormer 的机制说明采用 2021 年预印本的 v5(2023-11-08)。模型采用情况依据原始 LLaMA 论文和 2023 年正式发表于 JMLR 的 PaLM 论文,后续版本的配置应分别核对。

参考文献

Chowdhery, A., Narang, S., Devlin, J., Bosma, M., Mishra, G., Roberts, A., Barham, P., Chung, H. W., Sutton, C., Gehrmann, S., Schuh, P., Shi, K., Tsvyashchenko, S., Maynez, J., Rao, A., Barnes, P., Tay, Y., Shazeer, N., Prabhakaran, V., … Fiedel, N. (2023). PaLM: Scaling Language Modeling with Pathways. Journal of Machine Learning Research, 24(240), 1–113. https://jmlr.org/papers/v24/22-1144.html
Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), 4171–4186. https://doi.org/10.18653/v1/N19-1423
Press, O., Smith, N. A., & Lewis, M. (2022). Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation. International Conference on Learning Representations. https://openreview.net/forum?id=R8sQPpGCv0
Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., Zhou, Y., Li, W., & Liu, P. J. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research, 21(140), 1–67. https://jmlr.org/papers/v21/20-074.html
Shaw, P., Uszkoreit, J., & Vaswani, A. (2018). Self-Attention with Relative Position Representations. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers), 464–468. https://doi.org/10.18653/v1/N18-2074
Su, J., Lu, Y., Pan, S., Murtadha, A., Wen, B., & Liu, Y. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding. https://arxiv.org/abs/2104.09864
Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M.-A., Lacroix, T., Rozière, B., Goyal, N., Hambro, E., Azhar, F., Rodriguez, A., Joulin, A., Grave, E., & Lample, G. (2023). LLaMA: Open and Efficient Foundation Language Models. https://arxiv.org/abs/2302.13971
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems, 30. https://papers.neurips.cc/paper_files/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html