尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

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

【AI大模型面试真题】Llama为何要采用RoPE旋转位置编码? 前言最近在做 LLM 窗口外推的相关工作因此刚好也回顾一下目前最流行的位置编码 RoPE。1、关于RoPERoPERotary 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 万×512512 万个。看起来虽然不少但是在海量的数据和训练量下这也不算什么事儿模型确实能 handle。Google 式为什么要增加一个 clip 操作因为直观上一个词对其左右附近的其他词的位置关系理应更加敏感。比如“我请你吃饭”中“吃饭”这个词需要以高分辨率明确区分出前面三个词“我”、“请”、“你”的位置以免理解成了“你请我吃饭”。而随着距离越来越远这种高分辨率的需求也就越来越低十万个 token 之前的内容顺序对于当前 token 来说影响比较小了在位置向量上可以一视同仁。另外这也是方便了位置信息的外推比如我们可以只训练 256 个相对位置编码信息而在应用是可以外推到256 的长度。本来到这里就可以了相对位置信息已经加入了但是 Google 除了在 input 端增加了相对位置信息在输出端也增加了相对位置信息。本来输出端的计算是XLNET 式XLNET 也使用了相对位置编码思路类似 Google只是具体的操作不同。在公式2的基础上继续展开把绝对位置相关的几个参数改成相对位置相关的参数变成此外XLNET 只对输入端做了处理输出端则直接把位置相关的计算去掉了即当然也有简单一点的实现比如 T5 的方法。T5 式从最早提出到 XLNET以及 DeBertaT5 等可以看到相对位置编码的实现有一个简化的趋势而效果也越来越好正所谓大道至简有时候有用的东西未必需要很复杂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 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表