【论文阅读随笔】RoPE/旋转编码:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING

news/2024/7/19 8:40:57 标签: 论文阅读, transformer, embedding, 人工智能

文章目录

  • 1.目的:通过绝对位置编码的方式实现相对位置编码
  • 2.理解RoPE,在我看来有几个需要注意的点:
  • 3.本文相关复数概念:
    • 3.1.复数乘法的几何意义
    • 3.2.复数内积 VS. 复数乘法
  • 4.REF:

1.目的:通过绝对位置编码的方式实现相对位置编码

  • 绝对位置编码比较简单,加或乘一个有次序的数
  • 实现相对位置编码,也即意味着,要蕴含位置差的信息:
    • 假设m是某个token的位置信息,n是另一个token的位置信息,要有类似 m − n m-n mn的信息,比较容易想到复数乘法会产生 m − n m-n mn,以及复数乘法和复数内积的性质。

2.理解RoPE,在我看来有几个需要注意的点:

  • 最重要的是 e i m θ e^{im\theta} eimθ 的构造,给二维的 q ⃗ \vec q q k ⃗ \vec k k 乘这个量(也即对 q ⃗ \vec q q k ⃗ \vec k k 做了旋转),旋转后再对二者进行内积便会产生 m − n m-n mn的相对位置信息,也就达成了相对位置编码的目的
  • 二维向量和复数平面存在一一对应的关系
  • 二维扩展到 2 ∗ N 2*N 2N维:既然二维的向量旋转后,再做内积有 m − n m-n mn的相对位置信息,那就直接把 q ⃗ \vec q q k ⃗ \vec k k 都分成2维一组,这样 q ⃗ \vec q q k ⃗ \vec k k 做内积时,就让分好的组与组之间做内积,就自然让各位置携带相对位置信息了
  • 向量旋转有两种计算方式,一种是复数乘取实部,另一种是通过构造旋转矩阵计算

3.本文相关复数概念:

3.1.复数乘法的几何意义

  • 两个复数相乘,得到的复数的模长是原来两个复数的模长的乘积,得到的复数的幅角是原来两个复数的幅角的相加。

3.2.复数内积 VS. 复数乘法

  • 复数内积: ⟨ ( a + b i ) , ( c + d i ) ⟩ = a c + b d {\left \langle (a+bi),(c+di)\right \rangle }=ac+bd (a+bi),(c+di)=ac+bd(不含i)
  • 复数乘法: ( a + b i ) ( c + d i ) = ( a c − b d ) + ( b c − a d ) i (a+bi)(c+di)=(ac-bd) + (bc-ad)i (a+bi)(c+di)=(acbd)+(bcad)i
  • 复数内积的结果跟复数乘法的实部相差了一个正负号,复数内积等于复数乘以另一个复数的共轭后取实部:
    • ⟨ ( a + b i ) , ( c + d i ) ⟩ = R E [ ( a + b i ) ( c + d i ) ∗ ] {\left \langle (a+bi),(c+di)\right \rangle }=RE[(a+bi)(c+di)^*] (a+bi),(c+di)=RE[(a+bi)(c+di)]
    • 也即: ⟨ ( a + b i ) , ( c + d i ) ⟩ = R E [ ( a + b i ) ( c − d i ) ] {\left \langle (a+bi),(c+di)\right \rangle }=RE[(a+bi)(c-di)] (a+bi),(c+di)=RE[(a+bi)(cdi)]

4.REF:

[1].https://zhuanlan.zhihu.com/p/642884818 (这篇讲的很清楚了)
[2].https://zhuanlan.zhihu.com/p/669797102
[3].https://zhuanlan.zhihu.com/p/647109286
[4].https://kexue.fm/archives/8265
[5].https://zhuanlan.zhihu.com/p/641865355
[6].https://zhuanlan.zhihu.com/p/646598747
[7].学习报告:向量与复数的联系
[8].复向量的内积,想不明白?
[9].https://arxiv.org/pdf/2104.09864.pdf


http://www.niftyadmin.cn/n/5413087.html

相关文章

基于springboot精品在线试题库系统论文

摘 要 使用旧方法对作业管理信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在作业管理信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的精品在线试题库系…

前端工程化【01】:核心思想、发展历程和面临挑战

前端工程化是指将前端开发中的工具、流程和方法进行规范化和自动化,以提高前端开发效率、提升代码质量和项目可维护性的一种开发方式。通过前端工程化,可以将前端开发过程中的重复工作自动化,减少开发者的重复劳动,提高开发效率。…

关键信息标红

效果&#xff1a; 导入一个文本文件到textEdit中&#xff0c;对指定的key关键字标红处理或者对关键字所在的行进行整行标红处理 实现&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_EN…

P2241 统计方形(数据加强版) python解法

求n*m网格内矩形的数目 - tenos - 博客园 (cnblogs.com) 法一&#xff08;题解推规律暴力枚举得到&#xff09;&#xff1a; n,mmap(int,input().split()) sqr,rec0,0 #正方形和长方形个数 #以长宽做循环&#xff0c;每次求n*m大小的矩形的个数 #题解是从0开始的&#xff0c;我…

prometheus监控redis、redis_cluster集群

1.1 安装下载redis_exporter 下载地址&#xff1a; https://github.com/oliver006/redis_exporter/releases tar -xvf redis_exporter-v1.55.0.linux-amd64.tar.gz -C /usr/local/ cd /usr/local/ mv redis_exporter-v1.55.0.linux-amd64/ redis_exporter1.2 启动 cd /usr/…

nginx代理访问Kuboard, 解决日志无法查看问题

错误方式 这种代理方式在点击追踪日志按钮, 会无法查看日志, 因为日志是通过weboscket传输 worker_processes 1; #设置 Nginx 启动的工作进程数为 1。events {worker_connections 1024; ##设置每个工作进程的最大并发连接数为 1024。 }http {include mime.types; #该…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

男人的玩具系统wordpress外贸网站主题模板

垂钓用品wordpress外贸模板 鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 身体清洁wordpress外贸网站模板 浴盐、防蚊液、足部护理、沐浴液、洗手液、泡澡用品wordpress外贸网站模板。 https://www.jianzhan…