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,一经查实,立即删除!

相关文章

C++ explicit 用法

一、概述 explicit关键字用于防止构造函数或转换操作符在不明确的情况下被隐式调用,从而避免意外的类型转换。这在类的设计中非常有用,可以增强代码的可读性和安全性。 二、用法示例 1. 用于构造函数 假设有一个简单的类 A: class A { p…

metersphere链接腾讯邮箱步骤

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

python中TensorFlow框架的简单深度学习项目图像分类示例

❤❤引言 👍👍点关注编程梦想家(大学生版)-CSDN博客不迷路❤❤ 这个示例项目使用了CIFAR-10数据集,这是一个包含10个类别的60,000张32x32彩色图像的数据集,类别包括飞机、汽车、鸟类等。模型是一个简单的…

Pytest单元测试系列[v1.0.0][高级技巧]

playwright结合pytest使用 安装配置环境 PS D:\Programs\Python\com.davieyang.demo> pip install pytest-playwright Collecting pytest-playwrightDownloading pytest_playwright-0.3.0-py3-none-any.whl (10 kB) Requirement already satisfied: pytest in c:\program …

集成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.测…

扫地机器人工作原理

扫地机器人的工作原理主要可以归纳为以下几个步骤: 一、启动与建图 扫地机器人开机后,通常会从充电底座启动。使用激光导航或视觉导航技术的扫地机器人会开始扫描周围环境,绘制室内地图。激光导航的扫地机器人通过激光发射器和接收器测量机…

数据无忧:Ubuntu 系统迁移备份全指南

唠唠闲话 最近电脑出现了一些故障,送修期间,不得不在实验室的台式机上重装系统,配环境的过程花费了不少时间。为避免未来处理类似事情时耗费时间,特此整理一些备份策略。 先做以下准备: U盘启动盘,参考 …

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

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

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

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

华为的服务器创新之路

华为作为全球领先的信息与通信技术解决方案供应商,其在服务器领域的创新方法不仅推动了企业自身的发展,也为整个行业的进步做出了重要贡献。以下是华为在服务器领域所采取的一些关键创新方法: 芯片级的自主创新 华为通过自主研发的“鲲鹏”处…

线程相关概念及操作

【1】线程的概念 1.线程-->进程会得到一个内存地址,进程是资源分配的基本单位线程才是真正进程里处理数据与逻辑的东西进程---》被分配一定的资源线程---》利用进程资源处理数据与逻辑 【2】进程和线程关系: 进程与进程之间是竞争关系,竞…

【北京迅为】《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…

论文阅读:Rethinking Interpretability in the Era of Large Language Models

Rethinking Interpretability in the Era of Large Language Models 《Rethinking Interpretability in the Era of Large Language Models》由Chandan Singh、Jeevana Priya Inala、Michel Galley、Rich Caruana和Jianfeng Gao撰写&#xff0c;探讨了在大型语言模型&#xff…