新疆做网站的公司电话/营销方式和手段

新疆做网站的公司电话,营销方式和手段,南京百姓网免费发布信息网,企业做网站用dedeCMS免费吗旋转位置编码(Rotary Positional Encoding, RoPE):中文公式详解与代码实现 在序列模型中,位置信息对于任务的理解至关重要。传统的绝对和相对位置编码各有优缺点,而RoPE作为一种创新的位置编码方法,展现了…

旋转位置编码(Rotary Positional Encoding, RoPE):中文公式详解与代码实现

在序列模型中,位置信息对于任务的理解至关重要。传统的绝对和相对位置编码各有优缺点,而RoPE作为一种创新的位置编码方法,展现了其独特的优势。

RoPE的核心思想

RoPE通过旋转机制动态地捕捉位置信息。它允许查询(query)和键(key)向量的旋转程度根据它们之间的相对或绝对位置自动调整。这种方法使模型能更好地适应不同长度的序列,并提升长序列的处理能力。

公式解读

基本公式

RoPE的基本思想是将每个位置i的编码表示为:
pos ( i ) = ( cos ⁡ ( i × τ ) , sin ⁡ ( i × τ ) ) \text{pos}(i) = (\cos(i \times \tau), \sin(i \times \tau)) pos(i)=(cos(i×τ),sin(i×τ))

其中, τ \tau τ 是一个预先定义的角度参数。

旋转机制

RoPE通过以下公式实现对查询Q和键K的旋转:
Q ′ [ j ] = Q [ j ] ⋅ e − θ K [ j ] − K [ j ] ⋅ e θ Q [ j ] Q'[j] = Q[j] \cdot e^{-\theta K[j]} - K[j] \cdot e^{\theta Q[j]} Q[j]=Q[j]eθK[j]K[j]eθQ[j]
K ′ [ j ] = Q [ j ] ⋅ e θ K [ j ] + K [ j ] ⋅ e − θ Q [ j ] K'[j] = Q[j] \cdot e^{\theta K[j]} + K[j] \cdot e^{-\theta Q[j]} K[j]=Q[j]eθK[j]+K[j]eθQ[j]

这里, θ \theta θ 是一个旋转角度参数,控制旋转的程度。 τ \tau τ 通常由模型通过训练学习得到。

代码实现

环境准备

安装必要的库:

pip install numpy matplotlib

实现步骤

  1. 定义RoPE函数:

    import numpy as npdef rotary_nd(q, k, tau=1000.0):q = q.copy()  # 防止原数据被修改k = k.copy()theta = tau / (k.max() + 1) if k.max() > 0 else taucos_theta = np.cos(theta)sin_theta = np.sin(theta)# 应用旋转矩阵到查询向量Qq_rot = q * cos_theta - k * sin_theta# 应用逆时针旋转矩阵到键向量K(可选)k_rot = q * sin_theta + k * cos_thetareturn q_rot, k_rot
    
  2. 创建测试数据:

    n = 50  # 每个词的维度数
    seq_len = 100  # 序列长度
    Q = np.random.randn(seq_len, n)  # 随机生成查询向量Q
    K = np.random.randn(seq_len, n)  # 随机生成键向量K
    
  3. 应用RoPE并计算相似度:

    Q_rot, K_rot = rotary_nd(Q, K)
    similarity = np.mean(np.dot(Q_rot, K_rot.T), axis=0)
    
  4. 可视化结果:

    import matplotlib.pyplot as pltplt.figure(figsize=(12, 6))
    plt.subplot(1, 2, 1)
    plt.plot(similarity[:5], label='RoPE相似度前五')
    plt.title('RoPE 相似度曲线')
    plt.xlabel('位置索引')
    plt.ylabel('相似度值')
    plt.legend()# 可视化旋转后的向量(以二维为例)
    original_points = [(Q[0, 0], Q[0, 1]), (K[0, 0], K[0, 1])]
    rotated_points = [(Q_rot[0, 0], Q_rot[0, 1]), (K_rot[0, 0], K_rot[0, 1])]plt.subplot(1, 2, 2)
    for p in original_points:plt.scatter(p[0], p[1], c='blue', alpha=0.5, label='original')
    for p in rotated_points:plt.scatter(p[0], p[1], c='red', alpha=0.5, label='rotated')
    plt.title('向量旋转示意图')plt.legend()
    plt.show()
    

结果分析

假设Q和K是随机生成的高维向量,应用RoPE后,它们的相似度会集中在特定的区域。可视化图表显示了RoPE如何改变这些向量的方向,帮助模型更好地识别位置关系。

可调参数

  • tau:控制旋转的角度。较小的值会导致更多的旋转。
  • theta:根据K的最大值动态调整,可增强自适应能力。

扩展思考

考虑将滑动窗口机制与RoPE结合使用,以处理局部依赖,或引入加性反馈来进一步优化性能。通过实验和优化参数,可以在不同任务中获得更好的效果。


总结

RoPE是一种灵活且高效的位置编码方法,通过旋转机制动态地调整相对位置信息,特别适合处理长序列数据。希望这些详细的公式解读与代码示例能够帮助读者更好地理解和应用RoPE技术。如需进一步探讨或分享经验,请随时在评论区留言!

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

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

相关文章

C语言-指针变量和变量指针

指针 预备知识 内存地址 字节:字节是内存的容量单位,英文名Byte,1Byte8bits 地址:系统为了便于区分每一个字节面对它们的逐一进行编号(编号是唯一的),称为内存地址,简称地址。int…

unityAB包(1/2)

unityAB包学习 1.AB包的导出扩展BuildAssetBundleOptions无特殊选项压缩相关选项 2.AB包资源管理3.Resource和AssetBundle加载方式的区别4.预设体5.Unity Asset Bundle Browser 工具5为什么要勾选拷贝到StreamingAsset里面。6.AB包的加载 1.AB包的导出 首先在Project窗口&…

某酒企数字化转型及电商规划项目启动会暨培训会v(60页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 在当今数字化浪潮席卷之下,企业的发展面临着前所未有的机遇与挑战。对于某酒企而言,数字化转型和电商规划已成为其实现 “二次腾飞”、迈向世界级酒企的关键战略举措。本次启动会暨培训会,为该酒企的转型…

NET6 WebApi第5讲:中间件(源码理解,俄罗斯套娃怎么来的?);Web 服务器 (Nginx / IIS / Kestrel)、WSL、SSL/TSL

一、NET6的启动流程 区别: .NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】_vscode webapi-CSDN博客 2、WebApplicationBuilder:是NET6引入的一个类,是建造者模式的典型应用 1>建造者模式的…

【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine

文章目录 一、基本特性对比二、收费标准三、私有部署能力1、Tabnine2、Roo Code 三、代码补全与自然语言生成代码四、安装独立的IDE安装插件安装 五、基本使用(一)Cursor(二)GitHub Copilot1、获取代码建议2.聊天1)上下…

三轴云台之角速度信号篇

三轴云台的角速度信号主要通过其内置的传感器(如陀螺仪)来感知和测量。 一、角速度信号的感知与测量 在三轴云台中,陀螺仪是测量角速度的关键组件。它通常安装在三个互相垂直的轴上(通常为X、Y、Z轴),能够…

绿盟春招实习一面

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

进制转换(R转十)(1290. 二进制转换十进制、1292. 十六进制转十进制、1291. 八进制转十进制、1405. 小丽找潜在的素数)

题单地址:题单中心-东方博宜OJ 这里以二进制转十进制为例(按位加权求和法) 1290. 二进制转换十进制 问题描述 请将一个 25 位以内的 2 进制正整数转换为 1010 进制! 输入 一个 25 位以内的二进制正整数。 输出 该数对应的…

9.嗅探与Wireshark进阶分析

嗅探与Wireshark进阶分析 第一部分:嗅探的概念与重要性第二部分:Wireshark进阶功能第三部分:嗅探实践与分析总结 目标: • 理解嗅探(Sniffing)的概念及其在网络安全中的作用 • 掌握Wireshark的进阶功能&a…

【Linux篇】进程控制

📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 1. 进程创建 1.1 fork函数 在linux中fork函数是非常重要的函数,它从已存在进程中创建一个…

HyperAD:学习弱监督音视频暴力检测在双曲空间中的方法

文章目录 速览摘要1. 引言2. 相关工作弱监督暴力检测双曲空间中的神经网络 3. 预备知识双曲几何切空间(Tangent Space)指数映射与对数映射(Exponential and Logarithmic Maps)3.1 双曲图卷积网络(Hyperbolic Graph Con…

动态规划(6.不同路径II)

题目链接:63. 不同路径 II - 力扣(LeetCode) 解法: 本题为不同路径的变型,只不过有些地方有「障碍物」,只要在「状态转移」上稍加修改就可解决。 状态表示: 对于这种Γ路径类」的问题&#xf…

深度洞察:DeepSeek 驱动金融行业智能化转型变革

该文章为软件测评,不是广告!!!! 目录 一.金融行业的智能化转型浪潮​ 二.DeepSeek的核心技术剖析 1.DeepSeek 模型的金融智慧​ 2.实时联网搜索:把握金融市场脉搏​ 3.RAG 能力:铸就精准金…

蓝桥杯备考----》暴力枚举---金盏花

这道题,一共12位,给了后六位,我们只要枚举前六位就行了,当然如果是10的12次方的话,必须要开long long才可以存下,这点我们不要忘了 然后题目中又告诉了没有前导0,我们可以从100000开始枚举&…

RAG各类方法python源码解读与实践:利用Jupyter对RAG技术综合评测【3万字长文】

检索增强生成(RAG )是一种结合信息检索与生成模型的混合方法。它通过引入外部知识来提升语言模型的性能,从而提高回答的准确性和事实正确性。为了简单易学,不使用LangChain框架或FAISS向量数据库,而是利用Jupyter Note…

Python列表2

print("—————————— 列表的相关操作 ————————————")lst.append(x)在列表lst最后增加一个元素 lst.insert(index,x)在列表中第index位置增加一个元素 lst.clear()清除列表lst中所有元素 lst.pop(index)将列表lst中第index位置的元素取出&#xf…

C语言复习笔记--数组

今天继续来浅浅推进一下C语言的复习,这次是数组的复习,话不多说,正文开始. 数组的概念 数组是⼀组相同类型元素的集合,一种自定义类型.数组中元素个数不能为0.数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组. 下面从一维数组说起. 一维数组的创建和…

Canal 解析与 Spring Boot 整合实战

一、Canal 简介 1.1 Canal 是什么? Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析(Binlog)中间件,它模拟 MySQL 的从机(Slave)行为,监听 MySQL 主机的二进制日志(Binl…

暗光增强技术研究进展与产品落地综合分析(2023-2025)

一、引言 暗光增强技术作为计算机视觉与移动影像领域的核心研究方向之一,近年来在算法创新、硬件适配及产品落地方面取得了显著进展。本文从技术研究与产业应用两个维度,系统梳理近三年(2023-2025)该领域的关键突破,并对比分析主流手机厂商的影像技术优劣势。 二、暗光增…

多维array和多维视图std::mdspan

多维数组 这个特性用于访问多维数组,之前C operator[] 只支持访问单个下标,无法访问多维数组。 因此要访问多维数组,以前的方式是: 重载operator(),于是能够以m(1, 2) 来访问第1 行第2 个元素。但这种方式容易和函数…