自2017年发表的“attention is all you need”论文以来,transformer架构一直是自然语言处理(nlp)领域的基石。它的设计多年来基本没有变化,随着旋转位置编码(rope)的引入,2025年标志着该领域的重大发展。
旋转位置嵌入是最先进的 NLP 位置嵌入技术。大多数流行的大型语言模型(如 Llama、Llama2、PaLM 和 CodeGen)已经在使用它。在本文中,我们将深入探讨什么是旋转位置编码,以及它们如何巧妙地融合绝对位置嵌入和相对位置嵌入的优点。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
为了理解 RoPE 的重要性,我们首先回顾一下为什么位置编码至关重要。Transformer 模型根据其固有的设计,不会考虑输入标记的顺序。
例如,像“the dog chases the pig ”和“the pig chases the dogs”这样的短语虽然含义不同,但由于它们被视为一组无序的标记,因此被视为无法区分。为了维护序列信息及其含义,需要一个表示来将位置信息集成到模型中。
为了对句子中的位置进行编码,需要使用具有相同维度的向量的另一个工具,其中每个向量代表句子中的一个位置。例如,在句子中的第二个单词指定特定向量。因此,每个句子位置都有其独特的向量。然后通过将单词嵌入与其相应位置的嵌入结合起来,来形成Transformer层的输入。
有两种主要方法来生成这些嵌入:
尽管使用广泛但绝对位置嵌入也并非没有缺点:
相对位置不是关注记在句子中的绝对位置,而是关注记对之间的距离。该方法不会直接向词向量中添加位置向量。而是改变了注意力机制以纳入相对位置信息。
T5(Text-to-Text Transfer Transformer)是一种利用相对位置嵌入的著名模型。T5 引入了一种处理位置信息的微妙方式:

尽管它们在理论上很有吸引力,但相对位置编码得问题很严重
由于这些工程复杂性,位置编码未得到广泛采用,特别是在较大的语言模型中。
RoPE 代表了一种编码位置信息的新方法。传统方法中无论是绝对方法还是相对方法,都有其局限性。绝对位置编码为每个位置分配一个唯一的向量,虽然简单但不能很好地扩展并且无法有效捕获相对位置;相对位置编码关注标记之间的距离,增强模型对标记关系的理解,但使模型架构复杂化。
RoPE巧妙地结合了两者的优点。允许模型理解标记的绝对位置及其相对距离的方式对位置信息进行编码。这是通过旋转机制实现的,其中序列中的每个位置都由嵌入空间中的旋转表示。RoPE 的优雅之处在于其简单性和高效性,这使得模型能够更好地掌握语言语法和语义的细微差别。
Machine Translation
聚合多个来源的AI翻译
49
查看详情
旋转矩阵源自我们在高中学到的正弦和余弦的三角性质,使用二维矩阵应该足以获得旋转矩阵的理论,如下所示!

我们看到旋转矩阵保留了原始向量的大小(或长度),如上图中的“r”所示,唯一改变的是与x轴的角度。
RoPE 引入了一个新颖的概念。它不是添加位置向量,而是对词向量应用旋转。旋转角度 (θ) 与单词在句子中的位置成正比。第一个位置的向量旋转 θ,第二个位置的向量旋转 2θ,依此类推。这种方法有几个好处:

RoPE的技术实现涉及到旋转矩阵。在 2D 情况下,论文中的方程包含一个旋转矩阵,该旋转矩阵将向量旋转 Mθ 角度,其中 M 是句子中的绝对位置。这种旋转应用于 Transformer 自注意力机制中的查询向量和键向量。
对于更高维度,向量被分成 2D 块,并且每对独立旋转。这可以被想象成一个在空间中旋转的 n 维。听着这个方法好好像实现是复杂,其实不然,这在 PyTorch 等库中只需要大约十行代码就可以高效的实现。
import torch import torch.nn as nn class RotaryPositionalEmbedding(nn.Module): def __init__(self, d_model, max_seq_len): super(RotaryPositionalEmbedding, self).__init__() # Create a rotation matrix. self.rotation_matrix = torch.zeros(d_model, d_model, device=torch.device("cuda")) for i in range(d_model): for j in range(d_model): self.rotation_matrix[i, j] = torch.cos(i * j * 0.01) # Create a positional embedding matrix. self.positional_embedding = torch.zeros(max_seq_len, d_model, device=torch.device("cuda")) for i in range(max_seq_len): for j in range(d_model): self.positional_embedding
[i, j] = torch.cos(i * j * 0.01) def forward(self, x): """Args:x: A tensor of shape (batch_size, seq_len, d_model). Returns:A tensor of shape (batch_size, seq_len, d_model).""" # Add the positional embedding to the input tensor. x += self.positional_embedding # Apply the rotation matrix to the input tensor. x = torch.matmul(x, self.rotation_matrix) return x

为了旋转是通过简单的向量运算而不是矩阵乘法来执行。距离较近的单词更有可能具有较高的点积,而距离较远的单词则具有较低的点积,这反映了它们在给定上下文中的相对相关性。

使用 RoPE 对 RoBERTa 和 Performer 等模型进行的实验表明,与正弦嵌入相比,它的训练时间更快。并且该方法在各种架构和训练设置中都很稳健。
最主要的是RoPE是可以外推的,也就是说可以直接处理任意长的问题。在最早的llamacpp项目中就有人通过线性插值RoPE扩张,在推理的时候直接通过线性插值将LLAMA的context由2k拓展到4k,并且性能没有下降,所以这也可以证明RoPE的有效性。
代码如下:
import transformers old_init = transformers.models.llama.modeling_llama.LlamaRotaryEmbedding.__init__ def ntk_scaled_init(self, dim, max_position_embeddings=2048, base=10000, device=None): #The method is just these three linesmax_position_embeddings = 16384a = 8 #Alpha valuebase = base * a ** (dim / (dim-2)) #Base change formula old_init(self, dim, max_position_embeddings, base, device) transformers.models.llama.modeling_llama.LlamaRotaryEmbedding.__init__ = ntk_scaled_init
旋转位置嵌入代表了 Transformer 架构的范式转变,提供了一种更稳健、直观和可扩展的位置信息编码方式。
RoPE不仅解决了LLM context过长之后引起的上下文无法关联问题,并且还提高了训练和推理的速度。这一进步不仅增强了当前的语言模型,还为 NLP 的未来创新奠定了基础。随着我们不断解开语言和人工智能的复杂性,像 RoPE 这样的方法将有助于构建更先进、更准确、更类人的语言处理系统。
以上就是大语言模型中常用的旋转位置编码RoPE详解:为什么它比绝对或相对位置编码更好?的详细内容,更多请关注其它相关文章!
# 令牌
# seo如何编辑原创文章
# white hat seo
# 益阳网站建设详细内容
# 龙江张槎网站建设
# 盘锦视频营销推广
# 关于网站建设内容
# 天心区微信营销推广中心
# 东营网站建设推广服务
# 吕梁推广全网营销优势
# 青岛网站优化推广软件
# 第二个
# 自然语言处理
# 转录
# 都有
# 是在
# 的是
# 旋转矩阵
# 自然语言
# 开源
# 它比
# llama
# 相对定位
# 大语言模型
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
彬州市第三届青少年机器人创新大赛成功举办
AI与5G的强强联合:唤醒数字时代的无尽潜能
生成式AI爆发,亚马逊云科技持续专注创新,助力企业数字化转型
ChatGPT会成为你家新的语音助手吗?
国家发改委组织工业机器人产业高质量发展现场会
上影节直击 | AI技术降低了短片拍摄门槛?金爵奖评委不赞同
WPS AI 官网上线:可申请体验官资格,支持 Windows、安卓端下载
“木头姐”:特斯拉的人工智能训练——“赢家通吃”的机会
2025智源大会AI安全话题备受关注,《人机对齐》新书首发
360发布数字安全和人工智能的强大结合:360安全大模型
利用AI技术更好地发展农村电商
13万个注释神经元,5300万个突触,普林斯顿大学等发布首个完整「成年果蝇」大脑连接组
马斯克称未来机器人数量将多于人类,特斯拉愿共享自动驾驶技术
V社谈AI制作游戏被ban:为确保开发者有素材所有权
AI数字人业务频频获点赞,谦寻积极引领示范作用
明略科技发布免费开源TensorBoard.cpp,促进大型模型的预训练工作
《自然》杂志拒绝刊登人工智能生成的图片和视频
争鸣:OpenAI奥特曼、Hinton、杨立昆的AI观点到底有何不同?
如何用户外电源给无人机实现持久续航
腾讯AI首次模拟拼接三星堆文物,工作取得阶段性的成果
尼康尼克尔 Z 180-600mm f/5.6-6.3 VR 镜头发布,12499 元
日媒关注中国推进鸟类识别 AI 普及,除监测保护外还可预防传染性疾病
人工智能框架生态峰会即将召开,聚焦AI大模型技术与科学智能探索!
AIGC 风潮刮到游戏产业,巨人网络与阿里云达成“游戏 +AI ”合作
OpenAI夺冠:人工智能为云计算带来新变革
第二届光合组织AI解决方案大赛赛果揭晓
李开复官宣新公司「零一万物」,进军 AI 2.0
消息称字节机器人团队已有约50人,计划年底扩充到上百人
深企派遣无人机救援队赴京津冀开展防汛救灾任务
第四范式“式说”大模型入选《2025年通用人工智能创新应用案例集》
类GPT模型训练提速26.5%,清华朱军等人用INT4算法加速神经网络训练
360°/180°双模式,佳能公布可折叠小体积的VR全景相机
导演郭帆:人工智能应用可能会影响《流浪地球 3》的创作开发
小米首次曝光 64 亿参数的 MiLM-6B AI 大模型,或将应用于小爱同学
五款 AI 网站构建器,任何人都能快速构建网站
调查:过半数艺术家认为 AI 作图无法帮助他们的工作
OpenAI高管:AI能创造新的就业机会 但也会淘汰一些
美踏控股推出创新人工智能大数据模型“心乐舞河”:虚拟人音舞社交的新体验
网易加速行业AI大模型应用,将覆盖100多个应用场景
传字节内测对话式 AI 产品,代号「Grace」;马斯克嘲讽苹果 头显;比亚迪 F 品牌定名「方程豹」
三个全球首创,青岛西海岸新区“海元宇宙”亮相世界人工智能大会
DreamAvatar数字人使用教程
上新7款产品,美图继续“蹭”AI
华为4G5G通信物联网收费标准公布,多年研发成果,十年花费近万亿
上海发布大模型政策 打造AI“模”都
“无人驾驶船”将首次亮相世界人工智能大会,下半年或开进上海迪士尼
独家视角:首次展示有人与无人协同打击的7000米高空察打一体无人机
人工智能和神经网络有什么联系与区别?
借力AI!PCB全球巨头,有爆发潜质吗?
AI技术加速迭代:周鸿祎视角下的大模型战略
2024-04-01
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。