RoPE(旋转式位置编码)

这篇具有很好参考价值的文章主要介绍了RoPE(旋转式位置编码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

出发点:“通过绝对位置编码的方式实现相对位置编码”

操作步骤

1.假设一个函数f()通过他能让q,k带上绝对位置信息

对q,k进行操作(f())使得他们带上位置m,n的绝对位置信息,
RoPE(旋转式位置编码)

通过内积后,希望结果带上相对位置信息,因此假设存在下列恒等关系
RoPE(旋转式位置编码)

2.根据以上的恒等式求出f()

假设f(q,0)=q 和f(k,0)=k
先求出在二维情景下的情况,在推广到高纬度

借助复数来求解。在复数中有⟨q,k⟩=Re[qk∗],Re[] 代表复数的实部,所以我们有
RoPE(旋转式位置编码)
简单起见,我们假设存在复数g(q,k,m−n),使得f(q,m)f∗(k,n)=g(q,k,m−n),然后我们用复数的指数形式,设
RoPE(旋转式位置编码)
那么代入方程后就得到方程组
RoPE(旋转式位置编码)
RoPE(旋转式位置编码)
RoPE(旋转式位置编码)

推广到高维

RoPE(旋转式位置编码)


另一种理解方法

RoPE(旋转式位置编码)
RoPE(旋转式位置编码)
RoPE(旋转式位置编码)

RoPE(旋转式位置编码)文章来源地址https://www.toymoban.com/news/detail-515554.html

到了这里,关于RoPE(旋转式位置编码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LLaMA中ROPE位置编码实现源码解析

    1、Attention中q,经下式,生成新的q。m为句长length,d为embedding_dim/head θ i = 1 1000 0 2 i d theta_i=frac{1}{10000^frac{2i}{d}} θ i ​ = 1000 0 d 2 i ​ 1 ​ 2、LLaMA中RoPE源码 3、表示 看1中的公式表示,q0和q1相互作用,得到新的q0和q1,也即 q 0 n e w = q 0 ∗ c o s ( m θ 0 ) − q 1 ∗ s i n ( m θ 0 )

    2024年02月11日
    浏览(36)
  • 【论文阅读随笔】RoPE/旋转编码:ROFORMER: ENHANCED TRANSFORMER WITH ROTARY POSITION EMBEDDING

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

    2024年03月11日
    浏览(45)
  • 从某一点出发沿任意一方向旋转矩阵计算思考与实现

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 上期讲到 绕任一向量旋转矩阵计算思考与实现 点击前往 点击前往 之前讲到绕任一向量旋转矩阵实现,原来的向量都是从原点出发,现在把出发点改变成任意一点。 除了需要计算旋转矩阵,还可以

    2024年02月01日
    浏览(45)
  • 相对位置编码和绝对位置编码

    位置编码的区别: 相对位置编码和绝对位置编码是两种不同的位置编码方法。 绝对位置编码是一种基于位置嵌入的方法,其中每个位置都被分配了一个唯一的位置向量。这些向量是固定的,与输入序列的内容无关。这种编码方式对于处理较短的序列效果较好,但在处理长序

    2024年02月15日
    浏览(43)
  • 旋转编码器原理、选型及编码

    旋转编码器(rotary encoder)也称为轴编码器,是将旋转的机械位移量转换为电气信号,对该信号进行处理后检测位置速度等信号的传感器。检测直线机械位移量的传感器称为线性编码器[1]。一般装设在旋转物体中垂直旋转轴的一面。 旋转编码器用在许多需要精确旋转位置及速

    2024年01月19日
    浏览(42)
  • unity学习(68)——相机/模型的旋转/位置计算

    这个比想象中要难,而且需要自己写。 1.相机可以转xy两个位置,可以 点头和转圈 。注意这里有一个if判断(后面返回来发现了这些问题) 2.角色不能点头, 只能转圈 。 难得是移动方向,因为 移动方向(位置)和转向是相关联的 。 3.先做相机的移动,相机除了和角色做同向的

    2024年04月26日
    浏览(29)
  • 【Unity脚本开源】记录鼠标按下的位置和移动的距离来进行物体的旋转,并在鼠标释放后将物体恢复到初始旋转位置

    ♥️作者:白日参商 🤵‍♂️个人主页:白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油! 加油! 加油 🎈欢迎评论 💬点赞👍🏻 收藏 📂加关注+! 提针对这个需求,以下是示例脚本代码: ♥️作者

    2024年02月12日
    浏览(44)
  • STM32 EC11 旋转编码器

    代码在最后,复制可直接食用 以及我的电路图 在研究EC11的时序之前首先要了解一点,EC11按旋转的输出动作可以分为两种。一种是转两格,A、B对C端输出一个完整脉冲(转一格就只是由低电平-高电平或由高电平-低电平);另一种就是转一格,A、B对C端输出一个完整脉冲。

    2024年02月02日
    浏览(41)
  • Bert基础(三)--位置编码

    还是以I am good(我很好)为例。 在RNN模型中,句子是逐字送入学习网络的。换言之,首先把I作为输入,接下来是am,以此类推。通过逐字地接受输入,学习网络就能完全理解整个句子。然而,Transformer网络并不遵循递归循环的模式。因此,我们不是逐字地输入句子,而是将句

    2024年02月22日
    浏览(33)
  • DETR的位置编码

    记录一下,以防忘记。 首先,致谢知乎vincent DETR论文详解 DETR中有这样一个类和一个包装函数 假如batch_size=2,有两张图片分别为 我们使用  nested_tensor_from_tensor_list  函数将它们打包在一块,这里调用了 NestedTensor 类,它的作用就是构成 {tensor, mask} 这么一个数据结构,在这里

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包