【AI大模型面试真题】Llama为何要采用RoPE旋转位置编码?

RoPE(旋转式位置编码) 对q,k进行操作(f())使得他们带上位置m,n的绝对位置信息, 通过内积后,希望结果带上相对位置信息,因此假设存在下列恒等关系 假设f(q,0)=q 和f(k,0)=k 先求出在二维情景下的情况,在推广到高纬度借助复数来求解。在复数中有⟨q,k⟩=Re[qk∗],Re[] 代表复数的实部,所以我们有 简单起见,我们假设存在复数g(q,k,m−n),使得f(q,m)f∗(k,n)=g(q,k,m−n),然后我们用复数的指数形式,设 那么代入方程后就得到方程组... 阅读详情

前言

最近在做 LLM 窗口外推的相关工作,因此刚好也回顾一下目前最流行的位置编码 RoPE。

1、关于RoPE

RoPE(Rotary Position Embedding),是苏剑林大神在 2021 年就提出的一种 Transformer 模型的位置编码。

RoPE 是一种可以以绝对位置编码形式实现的相对位置编码,兼顾了模型性能和效率。

2023 年上半年的时候,大模型位置编码尚有 Alibi 和 RoPE 在相互比拼,而到了 2023 年下半年,及今 2024 年,新开源出来的模型,大部分都是使用 RoPE 了。当然 Alibi 也有其优势,这个在讲 Alibi 的时候来说。

苏神在他的个人网站科学空间中对 RoPE 有相关文章进行了介绍,本篇是在这个基础上,对 RoPE 进行理解(公式和符号上也会沿用苏神的写法)。

2、以绝对位置编码的方式实现相对位置编码

前面提到,RoPE 是一种一绝对位置编码的方式实现的相对位置编码,那么这么做能带来什么收益?

先说原因:

在文本长度不长的情况下(比如 Bert 时代基本都是 256/512 token 的长度),相对位置编码和绝对位置编码在使用效果上可以说没有显著差别。

如果要处理更大长度的输入输出,使用绝对位置编码就需要把训练数据也加长到推理所需长度,否则对于没训练过的长度(训练时没见过的位置编码),效果多少会打些折扣。

而使用相对位置编码则更容易外推,毕竟 token-2 和 token-1 的距离,与 token-10002 和 token-10001 的距离是一样的,也因此可以缓解对巨量长文本数据的需求。

但是传统相对位置编码的实现相对复杂,有些也会有计算效率低的问题。由于修改了 self-attention 的计算方式,也比较难推广到线性注意力计算法模型中。

总结来说,就是绝对位置编码好实现,效率高,适用线性注意力,而相对位置编码易外推,因此就有了对“绝对位置编码的方式实现相对位置编码”的追求,去把二者的优点结合起来。

下面简单回顾一下绝对位置编码和相对位置编码。(对位置编码比较熟悉的朋友可以直接跳到第3节。)

(1)绝对位置编码

先回顾一下带绝对位置编码的 self-attention。

(2)相对位置编码

直观来说,比如词表大小是 1 万,模型训练窗口最大长度是 512,那么对于模型来说,实际上要区分的输入是 1 万×512=512 万个。

看起来虽然不少,但是在海量的数据和训练量下,这也不算什么事儿,模型确实能 handle。

Google 式

为什么要增加一个 clip 操作?因为直观上,一个词对其左右附近的其他词的位置关系理应更加敏感。

比如“我请你吃饭”中,“吃饭”这个词需要以高分辨率明确区分出前面三个词“我”、“请”、“你”的位置,以免理解成了“你请我吃饭”。

而随着距离越来越远,这种高分辨率的需求也就越来越低,十万个 token 之前的内容顺序对于当前 token 来说,影响比较小了,在位置向量上可以一视同仁。

另外这也是方便了位置信息的外推,比如我们可以只训练 256 个相对位置编码信息,而在应用是可以外推到>256 的长度。

本来到这里就可以了,相对位置信息已经加入了,但是 Google 除了在 input 端增加了相对位置信息,在输出端也增加了相对位置信息。

本来输出端的计算是:

XLNET 式

XLNET 也使用了相对位置编码,思路类似 Google,只是具体的操作不同。

在公式(2)的基础上继续展开:

把绝对位置相关的几个参数改成相对位置相关的参数,变成:

此外,XLNET 只对输入端做了处理,输出端则直接把位置相关的计算去掉了,即:

当然,也有简单一点的实现,比如 T5 的方法。

T5 式

(从最早提出,到 XLNET,以及 DeBerta,T5 等,可以看到相对位置编码的实现有一个简化的趋势,而效果也越来越好,正所谓大道至简,有时候有用的东西未必需要很复杂)

(3)对比

看来相对位置编码确实比较复杂,说个大概需要这么多篇幅;并且相对绝对位置编码,也没有那么直接明了,需要对 attention 计算做一些改造。

公式(1)的绝对位置编码中,可以看到在进 softmax 操作前需要做 3 次矩阵加法,3 次矩阵乘法。

从公式(8)可以看到,共有 4 组矩阵计算要做,每组要做 3 次矩阵乘法,相对会比较复杂。

公式(3)也有类似的情况。当然同时也有一些针对相对位置编码的高效计算被提出,这些就需要针对不同的计算方案来优化了。

总之在实现方式上和计算效率上,绝对位置编码具有一些优势。而在输入输出窗口外推方面,相对位置编码有着天然的优势。

另外,绝对位置编码保持 self-attention 的经典形式,使得应用面更广,如可以使用到 linear attention 方案中去,这个以后再展开讲(又挖了个坑)。

4、RoPE的设计思路

(1)保持 attention 计算形式

回顾完经典的绝对位置编码和相对位置编码,回到 RoPE 上来。

先说设计思路:

首先我们想要保持经典 self-attention 的计算方式,即公式(1)中的形式,输入端 = 内积 + softmax,至于输出端则保持完全不变。softmax 我们不去动,那这里留给我们操作的就是内积。

也就说,现在问题是,我们怎么在只做内积的情况下,把内积结果变成只和相对位置有关,而和绝对位置无关的结果。

写成公式就是:

当然理论上这里是存在无数多组答案的,那么 RoPE 怎么找到一组好实现的组合呢?

(2)借用复数寻找组合

这里先回顾一下复数的知识。任意复数都可以表示成复平面的一个 2 维向量。

现在考虑 query 和 key 向量都是 2 维的情况,那么可以代入复数的操作。

(先把 hidden size = 2 的情况推理清楚,后续再推广到更高维的情况)

那么在 2 维复数平面上有什么操作可以满足公式(11)的要求呢?Roformer 论文中提出的是这组:

先证明一下这个组合的正确性,是不是真的满足公式(11)。(也可以先跳过证明,选择先相信这个组合)

回顾一下欧拉公式:

(这里沿用式(1)中,默认向量为行向量的设定,所有有个 transpose,实际上是行向量还是列向量都没关系,只是推算的时候写法问题)

类似地,有:

用了三角函数和差公式:

(3)“旋转”位置编码

发现式(17)可以写成这样:

如果从向量视角来看,则有:

看式(22)和(23),可以看到等号右边都有:

这也是为什么叫做“旋转”位置编码。

(4)从 2 维推广到高维

答案是把高维输入拆分成两个两个一组(这要求输入是偶数维,目前的模型也都是偶数维,所以没问题),则高维的“旋转”矩阵有多个小旋转矩阵组成。

(5)高效率实现

式(25)中的矩阵在高维的情况下很稀疏,直接使用这么个矩阵来计算效率并不高,可以使用一个这样的高效率实现方式。

只需进行两组 element-wise 乘法即可。形式上看起来是类似乘性绝对位置编码的做法。

另外,看 LLAMA 中的实现,可以看到旋转位置编码是在每一个 decoder 层的输入都加了的。每次都强化一次位置信息,也有助于模型更好识别不同距离的内容。

(6)远程衰减的特性

至此,旋转位置编码已经完备,具备了计算高效,实现容易,便于外推,适用于线性注意力的特性。实际上它还具备另一项优点:有远程衰减的特性。

直观看起来远程衰减很符合直觉,毕竟注意力机制随着距离的衰减而降低,这个机制和人类也很像。

4、小结

总之,RoPE 在设计和实现上还是挺巧妙的,性质上也很有很多优势,所以被广泛应用到 transformer 模型中去了。

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

自然语言处理:第五十七章 RoPE旋转位置编码 本人项目地址大全:Victor94-king/NLP__ManVictor: 优快云 of ManVictor论文地址: RoFormer写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!RoPE(Rotary Position Embedding),是苏剑林大神在 2021 年就提出的一种 Transformer 模型的位置编码。RoPE 是一种可以以绝对位置编码形式实 阅读详情

相关推荐

【LLM】长文本大模型之扩展Context长度(RoPE等方法)

展LLM的Context长度其实已有不少,但多数是通过结合检索或者摘要的方式来缩短样本的长Context,如Unlimiformer。由于不是直接处理长Context,因此通常无法做精细的阅读理解,而且这些方案往往需要在训练阶段就考虑进去,而不是事后即插即用到已有的LLM模型中。 2. PCW方法 以前能够不微调地扩展Context长度的方案是Parallel Context Window(下面简称PCW),出自论文《Parallel Context Windows for Large Language

发现问题,并解决问题,批判性思维 6283

一文通透位置编码:从标准位置编码、复数、欧拉公式到旋转位置编码RoPE(含其推导与代码实现)

关于位置编码和RoPE为彻底解决这个位置编码/RoPE的问题,我把另外两篇文章中关于这部分的内容抽取出来,并不断深入、扩展、深入,最终成为本文。

结构之法 算法之道 8万+

AI大模型与碳足迹评估结合模式及示范案例

AI大模型与碳足迹评估相结合,可以提供更精确、更快速的碳排放量计算,优化减排策略,并促进可持续发展目标的实现。

贾贾的博客 3944

大模型都在用的:旋转位置编码

绝对位置编码和相对位置编码都有局限性,比如绝对位置编码不能直接表征token的相对位置关系;相对位置编码过于复杂,影响效率。于是诞生了一种用绝对位置编码的方式实现相对位置编码的编码方式——旋转位置编码(RotaryPositionEmbedding,RoPE),兼顾效率和相对位置关系。 RoPE的核心思想是通过旋转的方式将位置信息编码到每个维度,从而使得模型能够捕捉到序列中元素的相对位置信息。现在已经在很多大模型证明了其有效性,比如ChatGLM、LLaMA等。

xian0710830114的专栏 9815

Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)

请勿叫我大神,我只是互联网的搬运工~ 前言 本教程以Ubuntu20桌面版作为示范,服务器版同样适用,但可能稍微麻烦一点,服务器版本的话安装Xmanage套装使用可能会相对轻松一些,由于后面会使用到vbox的使用,对vbox命令行操作不熟悉的小伙伴用xmanage可能会相对轻松一点。 提示:以下是本篇文章正文内容,下面案例可供参考 安装ubuntu20桌面版 步骤1:转到https://ubuntu.com/download/desktop下载下载.iso。 步骤2:使用您选择的虚拟机监控程序(VMWa

ElsonHY的博客 1万+

(MIUI)小米手机录音文件深度寻踪:从系统缓存到数据目录的实战解析

本文深入解析了MIUI系统中录音文件丢失的常见原因及解决方案,包括系统升级兼容性问题、应用缓存机制异常和存储权限变动。通过实战操作指南,详细介绍了如何从系统目录、数据库层面恢复录音文件,并提供了预防措施和自动化备份方案,帮助小米手机用户有效找回重要录音数据。

weixin_42699679的博客 518

【AI大模型面试真题】Transformer为什么需要“位置编码”?

对于序列处理模型,他的位置信息需要通过显式或者隐式的方式传入给模型。 transformer 系列模型的位置编码常用包括:包括绝对位置编码(包括静态位置编码和可学习位置编码)、相对位置编码、旋转位置编码,下面详细介绍这种位置编码的原理和优缺点。

嘴巴吃糖了 1465

Localizing LabVIEW Application to Different Languages

本文探讨了LabVIEW应用程序的多语言本地化实现方案。文章首先分析了LabVIEW对多语言的支持现状,指出其默认仅支持ANSI编码,对Unicode支持有限,且仅适配中英法德日韩六种语言。然后重点介绍了JKISimpleLocalization工具包的使用方法,该工具能导出/导入JSON词典文件,实现界面语言的实时切换。文章还结合实际工程案例,分析了该方案的局限性:部分控件不可翻译、切换速度较慢(33个界面需50秒)、小语种支持不足等。最后提供了完整的应用流程和工具包附件,包括词典文件转换工具和工程案例。

2301_80383260的博客 1409

【大模型必学】RoPE旋转位置编码详解:从基础到进阶,一篇搞定位置编码!

旋转位置编码RoPE(Rotary Position Embedding)是一种Transformer模型中的位置编码策略,它广泛应用于LLama,ChatGLM等大模型,本篇先介绍RoPE的实现步骤和源码,再深入讲解RoPE涉及到的数学原理,力求做到从易到难,学习曲线平滑。

2401_85327249的博客 871

AI气象预报:数值模式融合与短临预警的工程实践

气象预报正经历从物理推演到数据驱动的认知范式转变。AI气象预报并非替代传统数值模式,而是通过数值模式融合弥补其在参数化误差、初值敏感性和计算效率上的固有瓶颈。其技术价值在于提升短临预警时效性与空间精度,支撑航空调度、电力调控、防洪应急等关键场景。实践中需兼顾物理一致性、可解释性与业务系统兼容性,避免纯黑箱建模带来的外推失效与不确定性缺失风险。本文聚焦AI作为超分辨率引擎、误差矫正器和短临加速器的三类落地路径,解析HEALPix投影、多尺度图建模、轻量级U-Net等核心适配方法。

weixin_28221501的博客 298

基于STM32的智慧农业大棚监测与控制系统设计与实现

摘要:本文设计了一种基于STM32F103C8T6单片机的智慧农业大棚监测与控制系统,集成多参数环境监测、智能控制和远程管理功能。系统可实时采集光照、CO2、温湿度和土壤湿度等参数,通过OLED显示并采用双模式控制机制:自动模式下根据阈值调节设备,手动模式下支持APP或按键控制。通过ESP8266模块接入机智云平台实现数据云存储和远程控制。测试表明系统具有高精度(温度±0.5℃、CO2±50ppm)、快速响应(<2s)和稳定运行(30天无故障)等特点,有效解决了传统大棚调控不及时等问题。创新点包括多参

3254968421的博客 485

【大模型面试】一道快手大模型面试题的挑战与反思,揭示AI领域面试的难点与策略!

本文深入解析Transformer和LLaMA的位置编码区别。Transformer采用三角函数绝对位置编码,本质是线性变换;LLaMA使用旋转位置编码(RoPE),将相对位置关系融入Attention计算。关键区别在于:RoPE通过复数变换将位置编码整合到self-attention中,实现了用绝对编码方式表达相对位置信息。文章还分析了两种编码的数学联系,指出RoPE实际上是三角函数编码的巧妙改进。最后分享了系统学习大模型AI的四个阶段路径,包含提示工程、RAG系统、模型训练等核心内容。

2401_85390073的博客 751

手把手教你玩转服务器芯片架构​专栏--​​3.5 实战案例:用SystemC搭建一个多核服务器芯片的NoC模型(含流量分配与延迟仿真)​

通过SystemC搭建多核NoC模型,可深入验证流量分配策略与延迟特性。实际工程中需结合FPGA原型验证(如Xilinx Alveo)进行时序收敛分析,并通过参数化设计适配不同服务器芯片需求。

MHD0815的博客 3047

【面试实录】快手大模型面试题,差点没通过……

最后总结一下,所谓 RoPE,就是在 Attention 模块让模型感知到相对位置,但是它不改变 Attention 的结构,反而像绝对位置编码一样,在输入层做文章,对输入向量做改造。改造后 Attention 模块能够重新感知到相对位置,同样能把位置信息弥补回来,因此 RoPE 可以说是使用绝对位置编码的方式实现了相对位置编码,是两者的融合。

2401_84204413的博客 734

Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)

Flink运维监控在实时计算场景中至关重要,因为Flink作业需要7×24小时稳定运行,对性能、资源、故障感知和状态变化的实时监控是保障系统稳定的关键。Flink自带的Metrics系统提供了基本的监控能力,但为了更全面的监控,Prometheus+Grafana成为最主流的解决方案。通过配置PrometheusReporter和Grafana仪表盘,可以实现对Flink作业的全面监控,包括CPU、内存、吞吐量、Checkpoint状态、KafkaSink性能等关键指标。此外,自定义指标采集和报警机制的配置

晴天彩虹雨的博客 1368

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

一道快手的大模型面试题,差点挂掉...

最后总结一下,所谓 RoPE,就是在 Attention 模块让模型感知到相对位置,但是它不改变 Attention 的结构,反而像绝对位置编码一样,在输入层做文章,对输入向量做改造。改造后 Attention 模块能够重新感知到相对位置,同样能把位置信息弥补回来,因此 RoPE 可以说是使用绝对位置编码的方式实现了相对位置编码,是两者的融合。

2401_85375298的博客 841

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

小白学大模型:从零搭建LLaMA,大模型入门到精通,收藏这篇就足够了!

LLaMA 的开发基于一个核心理念:在给定计算预算下,通过增加训练数据量而非单纯增加模型参数,可以达到更好的性能。

2301_81888214的博客 751

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

美团面试遭拷打:LLaMA是怎么优化注意力机制的?

训练营学员继拿下腾讯美团字节sp后,百度经过加面,也给了sp offer,且签字费给到了其他大厂的两倍。今天我们来看一道美团的大模型面试真题:LLaMA 是怎么优化注意力机制计算的?这张图来自牛客,是某位面完美团的牛友写的面经,可以看到,针对这道题目,这位同学还专门标注了:“我真的不知道”我们还是老规矩,从面试官的视角出发,来分析一下这道题目。看一下到底应该如何作答,才能让面试官眼前一亮,从众多候选人中脱颖而出。

h1453586413的博客 1122

小白学大模型:从零搭建LLaMA

LLaMA-13B 在大多数基准测试中表现优于拥有 175B 参数的 GPT-3,尽管其模型规模小了十倍。这使得 LLaMA-13B 可以在单个 GPU 上运行,从而“民主化”了大型语言模型的研究和使用。

2301_81888214的博客 788

25道大模型算法面试真题,秋招必刷~

软目标说明:教师模型输出 [0.7, 0.2, 0.1],表示类别 A 的概率为 0.7,类别 B 的概率为 0.2,类别 C 的概率为 0.1,如果是硬目标就直接选择类别 A,但如果是软目标,学生模型输出的概率分布为 [0.6, 0.3, 0.1],KL 散度会计算这两个概率分布之间的差异。当模型过大无法在单个设备(如 GPU)内存中完整训练时,它将模型的不同部分分布在多个设备上进行训练,相比于数据并行,模型并行的核心思想是将模型的不同部分拆分并分布到不同的设备上进行计算,而不是切分数据。

2401_84033492的博客 1156

大模型面试通关秘籍:25道大模型算法面试真题,建议马上收藏!

本文详细解析了大模型算法岗面试高频考点,涵盖Transformer架构原理、位置编码优化、大模型核心技术(如Prompt工程、RAG、微调等)、模型压缩技术及分布式训练策略。内容从基础理论到实践应用,全面覆盖了大模型开发与面试所需知识体系,是算法岗求职者必备的面试宝典。

AI大模型的博客 927

2024年最全AI大模型面试题合集,AI大模型面试从入门到精通!

如果你对这些面试题的答案感兴趣的话,记得添加下方,我会在后台将完整的PDF答案分享给你。你了解ReAct吗,它有什么优点?解释一下langchain Agent的概念langchain 有哪些替代方案?langchain token计数有什么问题?如何解决?LLM预训练阶段有哪几个关键步骤?RLHF模型为什么会表现比SFT更好?参数高效的微调(PEFT)有哪些方法?LORA微调相比于微调适配器或前缀微调有什么优势?你了解过什么是稀疏微调吗?

h1453586413的博客 1248

2025大模型算法工程师面试题来了(附答案)大模型入门到精通,收藏这篇就足够了!

最近大模型相关的招聘也非常多,小编整理了一些大模型面试常见问题,供大家参考。希望在找相关机会的同学能有好的收获。

2301_81888214的博客 1193
上一篇: 【AI大模型】万字长文讲透 RAG 在实际落地场景中的优化
下一篇: 保姆级教程!6个步骤讲清楚用DeepSeek搭建本地知识库
Agent学习路线
博客等级 码龄6年 1万+粉丝 1904原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值