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

正弦位置编码PE到旋转位置编码RoPE

正弦位置编码

公式:

其中:

m:序列下标

i:维度下标
d:维度

输入融合:

可以看出,正弦PE是直接对输入直接加上PE,再计算QKV

假设有一个词嵌入:

针对这个3*4的嵌入,根据公式可计算出其固定的近似PE:

那么:X = E + PE

正弦位置编码有一个致命缺陷:不能表征两个序列的相对位置关系,只和绝对位置相关,这样就会导致一个问题:当推理输入的序列长度比训练的要长,那么推理效果会急剧下降

下面来做一个公式推到,就清晰了:

设两个位置m,n:

计算Q和K的点积(即注意力权重):

矩阵转置性质:

那么:

即:

最终:

可以看出来,公式中不存在m-n(相对距离),所以说正弦位置编码只能建模绝对位置

RoPE

RoPE可以很好的解决PE没有相对位置的问题,有以下几个特点:

  • 不直接把位置向量加到词嵌入
  • 把 Q、K 的特征向量每两个维度当成平面坐标,按 token 位置做二维旋转
  • Q (m) 和 K (n) 做点积,结果只和两个 token 的相对距离 m-n有关,天然区分语序
  • V 不做任何旋转。

要理解旋转位置编码,我们需要先复习一下复数:

我们平时的1、2、-3、0.5都是实数,只能画在一条数轴上。 但数学需要描述「平面上的点」,于是发明复数,把一维数轴扩展成二维复平面

复数:

复数通用形式:

  • a:实部,对应平面 X 轴坐标
  • b:虚部,对应平面 Y 轴坐标
  • i:虚数单位,核心规则:

对应这平面坐标(a, b)

举例:

  • :对应平面点(3, 4)

任意复数,对应平面向量:

  • 向量长度(模):
  • 乘以特殊复数:表示向量绕远点逆时针旋转弧度,长度不变。这就是RoPE的底层几何逻辑。

我们回到RoPE中来:

单头维度 h,向量两两分组,每组二维旋转矩阵:

对位置 m 的原始向量,分组旋转得到,等价于:

为什么旋转矩阵是这样的呢?用刚刚的复数知识推导一下就明了了:

对维度两两分组,把向量看做复数,然后乘以对应的旋转复数,其实就完成的旋转位置编码

旋转因子:

其中:

那么:

回顾一下:,对应平面向量

那么由上述公式就可得到旋转后的结果:

为什么说旋转位置编码只和相对位置有关系

设 Query 位置 m,Key 位置 n:

即只和n-m的相对位置有关。

RoPE的设计另一个精妙之处

单头维度 d,维度分组

它的基础频率:,变形位置pos的旋转角度为:。注意这里的是弧度制,不是角度制,并且

  • 那么当m很小时(维度小),,每向后移动 1 个 token(pos+1),旋转角度 + 1 弧度,旋转极快.它可以区分相邻、短距离词语,捕捉局部语法。例如“我 吃 饭”,模型需要分清「我和吃」、「吃和饭」这种局部语序,快旋转的低 m 分组提供巨大角度差,保证近距离词语不会混淆
  • m 很大,后半段维度,,pos 哪怕增加上千,总旋转角度增量极小,旋转非常缓慢。 可以捕捉远距离依赖,长距离 token 之间角度差距不会爆炸

既精妙又“危险”

RoPE的巨大缺陷恰巧就发生在高频区(即m比较小的分组),当推理的序列长度很大,比训练时的最大序列长度还要大时,会带来极大的旋转角度,也给模型带来从没见过的相对位置,超出训练见过的角度分布,模型无法识别相对距离;虽然低频大m分组本身旋转极慢不受影响,但无法修复局部语序崩坏。

当前主流的RoPE变体都是为了解决这个问题的

http://www.jsqmd.com/news/1181342/

相关文章:

  • 免费解锁Wand专业功能:本地增强工具完整使用指南
  • Llama-2-7b-hf_rai_1.7.1_npu_4K深度解析:AMD Ryzen AI平台上的4K上下文大语言模型革命
  • Anime4K终极指南:免费开源动漫高清放大工具,实时享受4K观影体验
  • Windows: 揭秘 netsh 脚本自动化与批量网络配置实战
  • AI有声书配音,2026年小说配音工作流,5款横评实测
  • 如何免费解锁Wand专业版功能:Wand-Enhancer完整指南
  • 荆州上门黄金回收哪家靠谱?实测4大品牌,附各区地址与热线 - 黄金珠宝
  • evbunpack终极指南:解锁Enigma打包文件的完整解决方案
  • 学 HashMap 的时候,我被这几个设计细节惊到了
  • 【Bug已解决】openclaw daemon crashed / SIGSEGV segfault — OpenClaw 守护进程崩溃解决方案
  • Python Serial 多线程通信与异常处理实践指南
  • Gemma-4-26B-A4B-it-8bit性能优化:内存管理与推理速度提升技巧
  • ChatGPT用户沉默反馈挖掘术:通过会话中断点、重试模式与token截断特征反推真实痛点
  • XCOM 2模组管理器终极教程:用AML启动器打造完美游戏体验
  • 跳出西式科研桎梏,知医邦以数字化开辟中医自主科研新路
  • Nuke Survival Toolkit:150+专业工具集,彻底改变你的Nuke合成工作流
  • STM32与ADS127L11实现高精度24位ADC信号采集
  • 第七篇:RTK + 地图 + 机器人:完整定位系统架构解析
  • 2026年电子化学品过滤/G5电子化学品过滤厂家参考 - 品牌排行榜
  • Llama-3.1-8B-Instruct量化模型的应用场景:推理加速与成本降低的5个实际案例
  • Llama-3.2-3B-Instruct_rai_1.7.1_npu_4K最佳实践:提升推理速度的7个技巧
  • 3分钟免费解锁WeMod Pro会员功能:Wand-Enhancer终极使用指南
  • 阿里云CDN与负载均衡SLB深度对接与配置实战指南
  • auto_py2to3高级技巧:代码备份、HTML差异对比与批量处理
  • 掌握大模型工程化核心:10个关键概念助你从小白到实战派(收藏
  • sql三种类型常用函数
  • 2026大模型零基础到精通完整学习路线:避开误区,高效进阶
  • Carbon Components React数据可视化:图表、仪表盘和数据表格的高级应用
  • Windows系统内存终极清理指南:Mem Reduct 3.5.2完整使用教程
  • 【工具解析】PyProcar:从PROCAR文件到物理洞察的DFT数据可视化桥梁