跳转到内容

输入关键词开始搜索

    RoPE(旋转位置编码)

    概念更新 2026-07-19置信度 high#概念#基础#长青#架构#位置编码

    一种通过旋转矩阵在注意力计算中编码相对位置信息的方法,已成为 2023 年后大模型的事实标准(LLaMA、DeepSeek、Qwen 等均采用)。

    RoPE 的核心思想:通过对 Q 和 K 向量施加旋转操作,使注意力点积自然携带位置信息。旋转角度随位置递增,使得两个 token 的点积结果取决于它们的相对位置差,而非绝对位置。

    数学形式:对位置 m 的查询向量 q 施加旋转矩阵 R_m,对位置 n 的键向量 k 施加 R_n,则 (R_m·q)ᵀ(R_n·k) = qᵀR_{n-m}k,点积结果仅依赖相对位置 n-m。

    1. 相对位置的自然编码:无需额外学习参数,通过旋转自然获得相对位置特性
    2. 外推能力:RoPE 可通过插值(如 NTK-aware scaling、YaRN)外推到更长上下文
    3. 事实标准:LLaMA、LLaMA 2/3、DeepSeek 系列、Qwen 系列、Mixtral 等主流模型全部采用 RoPE
    4. 与 MLA 协同:MLA 的解耦 RoPE 设计是低秩压缩 + 位置编码的关键结合

    qm=Rm(Wqxm)对 Q 按位置 m 旋转kn=Rn(Wkxn)对 K 按位置 n 旋转score(m,n)=qmkn点积蕴含相对位置 (nm)\begin{aligned} q_m &= R_m(W_qx_m) && \text{对 }Q\text{ 按位置 }m\text{ 旋转} \[2pt] k_n &= R_n(W_kx_n) && \text{对 }K\text{ 按位置 }n\text{ 旋转} \[2pt] \operatorname{score}(m,n) &= q_m^\top k_n && \text{点积蕴含相对位置 }(n-m) \end{aligned}

    旋转矩阵 R 是分块对角矩阵,每 2 维一组施加 2D 旋转,旋转角 θ_i 随维度递减(高频→低频)。

    方法 类型 代表模型 特点
    PE(正弦/余弦) 绝对位置 原始 Transformer 固定函数,不可学习
    Learned PE 绝对位置 GPT-2/3 可学习但无法外推
    RoPE 相对位置 LLaMA/DeepSeek/Qwen 旋转矩阵,相对位置,当前标准
    YaRN RoPE 扩展 LLaMA 长上下文版 NTK + 插值,支持超长上下文
    NoPE 无位置编码 部分实验模型 证明某些场景无需位置编码
    • “RoPE 是最新的技术” — RoPE 2021 年提出,已有 5 年历史,是成熟技术
    • “RoPE 解决了所有位置编码问题” — 长上下文仍需 YaRN 等扩展技术
    • “NoPE 证明位置编码无用” — NoPE 仅在特定训练设置下有效,主流模型仍依赖 RoPE
    • RoPE vs Learned PE:RoPE 编码相对位置(外推能力强),Learned PE 编码绝对位置(外推差)
    • RoPE vs ALiBi:ALiBi 通过偏置项编码相对位置,RoPE 通过旋转矩阵,RoPE 表达能力更强
    • RoPE + MLA:MLA 将 RoPE 解耦到小维度分量,避免破坏低秩压缩结构