当前位置: 首页 > news >正文

位置编码——RoPE篇

前言

在自注意力机制中,注意力得分通过 QK^T 计算得出,其中:

  • Q:查询向量,表示当前词与其他词的关系;
  • K:键向量,用于表示其他词的特征;
  • 标准点积 q⋅k 直接衡量两个向量之间的相似性。

在 Transformer 模型中,位置编码通过向输入的词向量中加入或结合位置信息,使得模型感知序列中词语的顺序关系。

RoPE 的核心技术是通过一个旋转变换,将位置信息嵌入到词向量的每个维度中,从而实现位置关系的建模。主要特点包括:

  1. 旋转变换:将序列中每个位置的向量,通过应用一个与位置相关的二维旋转变换来编码。
  2. 相对位置关系建模:RoPE 的设计使得输入向量经过注意力机制时,其点积结果中自然隐含了相对位置的信息。

二维向量旋转

假设二维向量为 x=(x1,x2),我们可以通过一个旋转矩阵对其进行位置编码。旋转矩阵形式为:

R({\theta}) = \begin{bmatrix} cos_{\theta} &-sin_{\theta} \\ sin_{\theta} & cos_{\theta} \end{bmatrix}

将旋转矩阵应用于 x 后,得到旋转后的向量:

x'=R({\theta})\cdot x = \begin{bmatrix} cos_{\theta} &-sin_{\theta} \\ sin_{\theta} & cos_{\theta} \end{bmatrix}\cdot \begin{bmatrix} x_1\\ x_2 \end{bmatrix}

这个操作的几何意义是:将原向量绕原点旋转一个角度 θ,从而引入位置信息。

旋转矩阵性质

(1) R(a+b) = R(a) + R(b)

(2) R^T(\alpha )=R(-\alpha )

证明:

(1)

三角函数的和角公式如下:

得:

(2)

三角函数性质如下:

得:


引入旋转位置编码的注意力点积

在自注意力机制中,给定输入序列,假设其查询向量 q、键向量 k 都经过 RoPE 编码,分别对应于位置 p 和 q。带有位置编码的向量表示为:

q'=RoPE(q,p),k'=RoPE(k,q)

 

其中:

R(\theta(p))是旋转矩阵,旋转角度是\theta(p);

\theta(p) = p\cdot w,w是与维度相关的频率缩放因子。

点积变成了:

因为R^T(\alpha )=R(-\alpha ),所以:

又因为R(a+b) = R(a) + R(b),所以:

这里的R(\theta(q)-\theta(p))  是一个仅与相对位置 q−p相关的旋转矩阵,这表明 RoPE 的点积自然地反映了两个位置之间的相对位置信息。


几何解释

  1. 每个向量 q 和 k 都被映射到位置敏感的旋转空间中。
  2. 在点积计算中,旋转矩阵R(\theta(q)-\theta(p))会相对调整向量的方向,使得点积结果包含两词之间的相对位置关系。
  3. 这意味着,注意力机制中的点积不仅仅衡量两词的内容相似性,还显式地编码了它们之间的相对位置信息。

多维向量

参考:位置编码有什么用?简单讲解位置编码原理 + 源码解读(绝对 / 相对 / RoPE)_哔哩哔哩_bilibili

高效的等价方法:

http://www.dtcms.com/a/321920.html

相关文章:

  • 机器学习算法篇(七)深入浅出K-means算法:从原理到实战全解析
  • 【深度学习新浪潮】近三年3DGS在大规模场景重建中的研究进展(2022-2025)
  • 北京上海深圳广州打捞日记
  • 一种基于空间聚类的低特征场景下多目标跟踪技术
  • 什么是ros功能包和ros节点
  • C++程序库选择:权衡与取舍的艺术——以iostream和stdio为例
  • 【大模型】(实践版)Qwen2.5-VL-7B-Instruct模型量化以及运行测试
  • 基于python的农产品销售调度管理的数据可视化系统/基于django的农产品销售系统设计与实现
  • 12-Django项目实战-登录短信验证
  • 解决 MinIO 上传文件时报 S3 API Requests must be made to API port错误
  • 半精度权重 及 Phi-3线性层的权重分布
  • Node.js版本管理,方便好用
  • Mybatis注解开发与事务
  • MPLS LDP标签的分发与管理
  • Linux基础命令速查:从入门到精通
  • 搜广推校招面经一百零三
  • 从手工到智能决策,ERP让制造外贸企业告别“数据孤岛“降本增效
  • Flow的进阶学习2025
  • 亚马逊广告运营如何平衡ASIN投放和关键词投放
  • 用不均匀硬币实现公平决策
  • 虚拟机Ubuntu图形化界面root用户登录错误
  • Python的七大框架对比分析
  • 《嵌入式数据结构笔记(六):二叉树》
  • 【C语言:一个整数分离出每一位数后求重新组合后接近于某个数的整数】
  • STM32传感器模块编程实践(十三)人脸识别模块简介及驱动
  • Redis缓存击穿、穿透雪崩
  • ADB 命令执行模块开发:双模式(普通模式Shell交互模式)实现、线程安全与资源管理优化
  • Linux系统层IO
  • Node.js 》》数据验证 Joi 、express-joi
  • 【数字图像处理系列笔记】Ch06:图像压缩