login
RoPE in Transformers: Query & Key Only
2025/06/29·StepFun can make mistakes, check important info.
does RoPE apply to all query, key and value?
Sources
十分钟读懂旋转编码(RoPE)
总结来说,RoPE 的 self-attention 操作的流程是:对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量,然后对每个 token 位置都计算对应的旋转位置编码,接着对每个 token 位置的 query 和 key 向量的元素按照 两两一组 应用旋转变换,最后再计算 query 和 key 之间的内积得到 self-attentio...
https://static-favicon.basemind.com/01JV1X6K8GGYVG6C24ESYZ7ESS
电子发烧友
每日学习打卡-1
它通过旋转矩阵对查询(query)和键(key)向量进行旋转操作,来编码绝对位置信息,从而让模型能够捕捉到文本中的顺序信息 attention:引入rope和casual mask 2.LoRA微调 原理 在传统的模型微调中,需要更新模型的所有参数,这对于参数量巨大的大型语言模型来说,计算量和存储需求都极高。LoRA 则另辟蹊径,它并不直接调整预训练模型的原始权重矩阵 W0​,而是通过引入两个低秩矩阵 A 和 B 来对模型进行微调。具体而言,在模型的某些...
https://static-favicon.basemind.com/01JV1WX7VTZS3SSF3H6G9SHDYE
CSDN技术社区
位置编码【2】——旋转位置编码(RoPE)& ALiBi
self.rope=RotaryPositionEmbedding(self.head_dim,max_seq_len) def forward(self,query,key,value,key_padding_mask=None): batch_size,seq_len,embed_dim=query.size() 线性变换 q=self.q_proj(query)#(batch_...
https://static-favicon.basemind.com/01JV1WX7VTZS3SSF3H6G9SHDYE
CSDN技术社区
6 web pages
电子发烧友
CSDN技术社区
CSDN技术社区
CSDN技术社区
电子发烧友
CSDN技术社区

RoPE(旋转式位置编码,Rotary Position Embedding)主要应用于Transformer架构中的查询(query)和键(key)向量,而不是值(value)向量。

原理解释:

  1. RoPE的目标是通过绝对位置编码的方式实现相对位置编码,使得模型在进行注意力计算时能够捕捉到token之间的相对位置信息

  2. 具体实现方式是对每个位置的query和key向量进行旋转变换。这种旋转变换使得在计算query和key之间的内积时,结果自然包含了它们之间的相对位置信息

  3. 数学表达式如下:

其中,分别是对query和key向量进行的位置相关变换,表示包含相对位置信息的内积结果

  1. 为什么不应用于value向量
    • 在Transformer的自注意力机制中,query和key的内积用于计算注意力分数,这个分数决定了每个value向量对最终输出的贡献。因此,相对位置信息主要通过query和key的交互来体现,而value向量本身并不需要直接包含位置信息。
    • 将RoPE应用于value向量可能会引入不必要的复杂性,而不会显著提升模型性能。

总结:

RoPE通过旋转变换将位置信息融入到query和key向量中,使得在计算注意力分数时能够自然地考虑token之间的相对位置。而value向量并不需要进行这种变换,因为它们的作用是提供实际的信息内容,而不是位置信息。