RoPE 旋转位置编码,详细解释(下)NLP 面试的女生彻底说明白了

RoPE 旋转位置编码,详细解释(下)NLP 面试的女生彻底说明白了

原创 看图学 看图学 2024年07月01日 07:55 北京

图片

书接上文,上文见:这么解释 RoPE 旋转位置编码,女朋友睁大了双眼(上)

下面简单回顾一下上文的重点,后面复数域的解释会用到一些结论,详细的可以点击上面的文章观看。

实数域的 RoPE 解释(重点回顾)

RoPE 的实现和解释,完全可以只在实数域中进行。比如 llama 的实现,就完全没有用到复数的概念。

而在实数域上关于 RoPE 的解释,核心就一句话:在内积空间中,内积具有旋转不变性 

也就是下面这个性质:

也就是说 两个旋转向量的内积等于其中一个向量旋转它们角度差的结果与另一个原始向量的内积。也可以看作是一个向量逆时针旋转了 , 另一个向量逆时针旋转了 ,然后这两个向量又同时顺时针旋转了 于是第一个向量处在 的位置,第二个向量则转到了实数轴上,角度为0. 因为内积的旋转不变性,两个内积依然相等记住这句话,后面在复数域证明还能用。

复数域的 RoPE 解释

其实涉及到旋转的计算,到复数域里会变得特别方便,因为虚数  i 的物理含义就是旋转

为了理解虚数/复数,我们先拿负数来做个对比。

负数的出现让人们困惑了很久,我现在有1个苹果,被女朋友拿走了2个,实在是有些脑壳疼。但是现在我们很容易能理解负数,就是欠我一个苹果呗。如果较真的话,那 -1 个苹果在哪里?可能是我从室友那里借了一个。

图片

可以想象一下,在一维的实数轴上,取负可以让1变成-1,再取负又变成1,然后循环。

还有其他的方法能从1到-1么?这时候认知就要提高了,就好像古代人的活动范围很小,那自然认为地球是平的。知道后来可以航海,发现为什么船接近的时候为什么总是先看到船帆然后才看到船的身子,这个时候就开始思考了,地球有没有可能是圆的。

从1到-1如果只在实数轴上移动,那只能是取负。如果把数轴扩展到2维,新增一个虚数轴,那就可以旋转了。1 乘以 i 就跑到虚数轴的上面再乘以 i 就跑到-1 了。再乘以i就跑到虚数轴的下面,再乘以i就回到了1. 如下图所示:

图片

所以为什么 , 其含义就是在复平面上转了2次,从 1 转到了 -1.

欧拉公式  提出来很久之后,大家才尝试从几何的角度去理解欧拉公式。

欧拉公式其实就是在复平面上旋转,复平面是一个2d 平面。为了看的更清楚一点呢,我们再升一维。新增一个与复平面正交的轴代表 x。如下面视频所示。

看图学

,赞16

这个3维空间上就很好的展示了随着 x 的增大, 就一直在旋转的画圈。这个旋转的曲线投影到复平面上,那就是在复平面画圆;如果投影到 x 与 实数轴的平面上,就是 cos 函数;如果投影到 x 与 虚数轴的平面上,那就是 sin 函数。

再回想一下 RoPE 的旋转角度的函数,恰好就是一个 sin 函数和一个 cos 函数,所以说 RoPE 就如同上面欧拉公式的视频一样,在一直转圈,所以叫旋转编码

然后在实数域证明中,我们已经证明了通过旋转矩阵来解释 RoPE。在复数域一个向量旋转怎么表示呢?非常简单,逆时针旋转  度等于 乘以 . 证明如下:

你看,旋转矩阵又出来了。

所以论文中的

就是 q 和 k 分别旋转了  和 

复数域中同样满足内积旋转不变性。只不过复数域中的内积不再是简单的相乘,而是要取共轭。

比如复数  和 ,内积定义为:

其中  是  的共轭复数(论文中的共轭是用  来表示的)。

计算复内积:

之所以采用共轭复数,完全是为了满足内积的三个性质:正定性,共轭对称性,第一变元线性

共轭复数的物理意义就是顺时针旋转还记得 逆时针旋转  度等于 乘以 ,那么乘以共轭复数  就是 顺时针旋转  度( 逆时针旋转 - 度)。

复数域的旋转不变性证明如下:

这基本上就是 RoPE 在数学上的解释。

最后论文中就还剩下一个 Re (实部)没有解释。看上面复数的内积公式就可以看出,复数域内积的实部(Re)等于实数域两个向量的内积。也就是

注意左边二维向量的实数域的表示,右边则是复数域的表示。

然后 RoPE 的论文里公式的表示似乎没那么严谨,在论文表述的过程中相同的符号含义发生了变化。所以有时候看上去有些困惑,看完本文和下图的解释应该就明白了。

图片

 

— END —

荐阅读:

这么解释 RoPE 旋转位置编码,女朋友睁大了双眼(上)

Transformers 中的 Position Embedding 的作用

看图学大模型:Transformers 的前生今世(上)

内积,点积,数量积是一样的么?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

metersphere链接腾讯邮箱步骤

1、打开腾讯邮箱生成授权码 路径:设置-账户-账户安全 生成的授权码只会展示1次,注意保存 2、在系统设置-系统参数设置-邮件设置填写授权码和SMTP信息 SMTP信息在邮箱的客户端设置中可以获取到对应的信息 3、信息填写完后,可以测试连接&…

集成sa-token前后端分离部署配置corsFliter解决跨域失效的真正原因

文章目录 1.前言2.问题复现3.解决方法3.1 方式一:后端修改CorsFilter源码3.2 方式二:前端禁用或移除浏览器referrer-policy引用者策略 4.总结 1.前言 缘由请参看下面这篇文章:sa-token前后端分离解决跨域的正确姿势 https://mp.weixin.qq.co…

桌面记笔记的软件:能加密的笔记app

在日常生活和工作中,很多人都有记笔记的习惯。无论是记录会议要点、学习心得,还是生活中的点滴灵感,笔记都是我们不可或缺的好帮手。然而,传统的纸笔记录方式逐渐不能满足现代人的需求,因为纸质笔记不易保存、查找困难…

STM32 - SPI硬件外设

配合我的上一篇SPI ​​​​​​通信 协议-CSDN博客一起理解更佳,本文后看 SPI 是由摩托罗拉(Motorola)公司开发的全双工同步串行总线,是 MCU 和外围设备之间进行通信的同步串行端口。主要应用在EEPROM、Flash、RTC、ADC、网络控制器、MCU、DSP以及数字信…

网上怎么样可以挣钱,分享几种可以让你在家赚钱的兼职项目

当今社会,压力越来越大,工作、家庭、生活等等,方方面面都需要钱,仅靠一份工作赚钱,已经很难满足我们的需求。所以很多人都会尝试做一些副业,兼职来补贴家用。 现在呢,有很多人都想在网上赚钱&am…

微型导轨如何提升数控机床的稳定性?

数控机床是加工设备中常用的机床,精度和稳定性是衡量数控机床性能的重要指标。而微型导轨作为数控机床中重要的传动元件,数控机床与其具体结构性能是密不可分的,那么微型导轨如何提高数控机床的稳定性呢? 1、微型导轨通过采用先进…

githup开了代理push不上去

你们好,我是金金金。 场景 git push出错 解决 cmd查看 git config --global http.proxy git config --global https.proxy 如果什么都没有,代表没设置全局代理,此时如果你开了代理,则执行如下,设置代理 git con…

关于SQL NOT IN判断失效的情况记录

1.准备测试数据 CREATE TABLE tmp_1 (val integer);CREATE TABLE tmp_2 (val integer, val2 integer);INSERT INTO tmp_1 (val) VALUES (1); INSERT INTO tmp_1 (val) VALUES (2); INSERT INTO tmp_2 (val) VALUES (1); INSERT INTO tmp_2 (val, val2) VALUES (NULL,0);2.测…

什么是静态住宅代理?一文看懂它

静态住宅代理(也称为 ISP 代理)是最流行的代理类型之一。它们也是隐藏身份和在线匿名的最佳方式之一。但是您需要了解它们什么?是什么让它们如此特别?为什么您要使用住宅代理而不是仅仅使用常规代理服务?如果你感兴趣&…

exel带单位求和,统计元素个数

如果exel表格中,如果数据有单位,无法直接用 自动求和 直接求和。如下图所示,求和结果为0,显然不是我们想要的。 用下面的公式求和,单位不是“个”的时候记得替换单位。统计范围不是“C1:C7”也记得换一下啊&#xff01…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

BFS:边权相同的最短路问题

一、边权相同最短路问题简介 二、迷宫中离入口最近的出口 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};int nearestExit(vector<vector<char>>& maze, vector<int>& e…

js函数扩展内容---多参数,函数属性,字符串生成函数

1.多参数 在js中&#xff0c;Math.max()方法可以接受任意数量的参数&#xff0c; Math.max(1,2,3,4);//4 Math.max(1,2,3,4,5,6,7,8,9,10)//10 在max方法里面有一个rest参数&#xff0c;它接受了所有参数全部合成到了一个number数组里面&#xff0c; function rest(a,b,...a…

12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场m_vec函数和绘制风羽图的m_windbarb函数

12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场函数m_vec和绘制风羽图的函数m_windbarb 0. 引言1. 关于m_vec2. 关于m_windbarb3. 总结 0. 引言 本篇介绍下m_map中绘制矢量场的函数&#xff08;m_vec&#xff09;和地图上绘制风羽图的函数m_windbarb。 1. 关于m…

QT信号量与槽

文章目录 概述用系统生成新增一个信号量和槽代码方式信号量和槽的宏信号量和槽都用函数地址lamda表达式函数指针 槽和信号量函数信号量槽 小结 概述 这个内容是QT独有的&#xff0c;写的挺有意义的。之前写过一篇QT slots的函数&#xff0c;思来想去&#xff0c;觉得不是那么有…

python-22-零基础自学python-数据分析基础 打开文件 读取文件信息

学习内容&#xff1a;《python编程&#xff1a;从入门到实践》第二版 知识点&#xff1a; 读取文件 、逐行读取文件信息等 练习内容&#xff1a; 练习10-1:Python学习笔记 在文本编辑器中新建一个文件&#xff0c;写几句话来总结一下你至此学到的Python知识&#xff0c;其中…

考CISP,不要踩坑的几点建议

当你立志要在信息安全领域闯出一片天&#xff0c;可能多少都会听行内人说&#xff0c;搞本CISP。但这个认证究竟该怎么拿&#xff1f;需要培训吗&#xff1f;培训又是怎么一回事&#xff1f;价格如何&#xff1f;还有&#xff0c;什么时候开始准备最好&#xff1f;这些问题可能…

【实习问题记录】Nodeclub本地部署

问题描述 在按照官方网站给出的教程一步一步操作以后发现出现以下报错&#xff1a; 问题分析 显示连接不上mongodb&#xff0c;分析报错可能是因为版本不匹配导致的&#xff0c;查看安装的mongodb版本发现是7.0.4&#xff0c;与目标版本不匹配&#xff0c;同时查看mongodb官…

我们所熟知的meme梗图也可以用AI生成了,老外都玩坏了。

meme梗图不知道大家看到过嘛&#xff1f;相信你们看见下面的图你就会大叫“卧槽”&#xff0c;原来是这种图&#xff0c;我以前经常狂刷不止&#xff0c;太有趣了。 其实meme是一个网络流行语&#xff0c;可译为模因。在大众非学术范围内也可翻译为我们所熟知的“梗”。其中“表…

SDK环境的安装(测试使用)

1、安装 将文件解压至目录,我的目录为:D:\Program Files\Android 解压后如下: 下载链接如下: sdk下载 提取码见文章最后: 2、配置环境 1、在环境变量中,选择系统变量,点击新建。 变量名:ANDROID_HOME 变量值:“你自己的android-sdk安装路径” (例如我的:D:\Pro…