ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

【大模型必备】位置编码终极指南:收藏学习RoPE如何改变Transformer架构

【大模型必备】位置编码终极指南:收藏学习RoPE如何改变Transformer架构 前言来聊一聊位置编码吧位置编码在现在的大模型尤其是在 Transformer 架构中展现出不可或缺的地位它为token 序列中不同位置的元素之间的依赖关系建模提供了宝贵的信息。在此之前很多研究者研究了将位置信息整合到基于 Transformer 的语言模型学习过程中的各种方法但在2021年追一科技提出了一种名为旋转位置嵌入 (RoPE) 的新方法它有效地利用位置信息。具体而言他们提出的 RoPE 使用旋转矩阵对绝对位置进行编码同时将显式相对位置依赖关系纳入自注意力公式。值得注意的是RoPE 有一些好的特性包括序列长度的灵活性、随着相对距离增加而衰减的符元间依赖关系以及为线性自注意力配备相对位置编码的能力。然而作者将这一个成果应用在Transformer结构中并重命名为 RoFormer。回顾讲解选择位置编码前可能我们先要了解一下什么是Transformer现在有哪些编码提到Transformer大家肯定知道的一篇文章《Attention is all you need》地址我也放出来:https://arxiv.org/abs/1706.03762v7。 放归放讲还是要讲一下其实吧 attention就是google 2018年发表的一篇文章里面比较经典的就是三个图一个是Transformer的架构图一个就是多头注意力计算还有一个是注意并行计算图如果你说就这个图有啥用这样告诉你吧现在所有的模型说的是所有的基本都是参考这个架构开发和训练。现在我们来看下这个注意力计算吧根据箭头看重要的就是Q,K,V三个变量整个Transformer就是围绕着三个变量进行计算大模型训练当中这三个变量的训练计算也是占大头。再看看他们的数学公式qkv就是上图中的三个变量;x是输入的token; mn 表示token对应的位置。o表示注意力加权值也可以称为token和token之间的关系值。Attention讲完了咱们在回顾一下绝对位置编码在没有rope之前基本是使用这个编码具体公式如下:你需要知道的是x是输入token p 是postion既绝对位置x和p是直接相加的。这里给出来Bert使用绝对位置编码的一个案例class BertEmbeddings(nn.Module): Construct the embeddings from word, position and token_type embeddings. def __init__(self, config): super(BertEmbeddings, self).__init__() self.word_embeddings nn.Embedding(config.vocab_size, config.hidden_size, padding_idx0) self.position_embeddings nn.Embedding(config.max_position_embeddings, config.hidden_size) self.token_type_embeddings nn.Embedding(config.type_vocab_size, config.hidden_size) # self.LayerNorm is not snake-cased to stick with TensorFlow model variable name and be able to load # any TensorFlow checkpoint file self.LayerNorm BertLayerNorm(config.hidden_size, eps1e-12) self.dropout nn.Dropout(config.hidden_dropout_prob) def forward(self, input_ids, token_type_idsNone): seq_length input_ids.size(1) position_ids torch.arange(seq_length, dtypetorch.long, deviceinput_ids.device) position_ids position_ids.unsqueeze(0).expand_as(input_ids) if token_type_ids is None: token_type_ids torch.zeros_like(input_ids) words_embeddings self.word_embeddings(input_ids) position_embeddings self.position_embeddings(position_ids) token_type_embeddings self.token_type_embeddings(token_type_ids) # embeddeding absolute position embeddings words_embeddings position_embeddings token_type_embeddings embeddings self.LayerNorm(embeddings) embeddings self.dropout(embeddings) return embeddings但是研究者发现位置变量是一个可学习的变量使用正弦函数作为p可以更好的处理一些长序列的问题并且可以保证值是唯一所以下面的公式诞生了。你要知道这帮人都是喜欢折腾的绝对位置编码能满足他们吗显然是不能的所以相对位置编码出现了。相对位置编码就是在QKV三个变量计算的时候做了一些工作具体看下面的公式吧。第一个公式就是QKV; 第二个公式就是QK相乘后的展开式 第三个就是将绝对位置编码用相对位置编码表示。你要知道这帮人都是喜欢折腾的相对位置编码能满足他们吗显然是不能的所以旋转位置编码(ROPE)出现了。注意主角出现了ROPE(旋转位置编码)看下面的图可能大家就更容易理解为啥需要rope了dog和the dog只需要旋转一下其表示范围就变大了接下来就看下它怎么实现的。对于 为了将相对位置信息纳入需要将查询 (m) 和键 (n) 的内积通过一个函数 g 来变换该函数只接受词嵌入 (m)、(n) 以及它们的相对位置 m−n 作为输入变量.假设给定查询 (m) 和键 (n)则g的表示如下其中 Re⁡[⋅] 是复数的实部((k)(n))∗ 表示 ((k)(n)) 的共轭复数。 θ∈ℝ 是一个预设的非零常数则上面的公式可以表示为:该公式可以简化为其中,更高效实现为,如果一堆公式看着不爽就直接看图吧通过图可能容易理解点如下图1、给定一个Query、Key 编码数据2、拿到对应的embedding和position3、设定一个θ 常数将QK的位置编码X(1),X(2)进行rotate给到新的X1和X2。4、根据embedding和rotate position得到新的编码(embeddingrotate position)当然说和实际实现还是有点小区别具体的代码实现如下。def apply_rotary_pos_emb(q, k, cos, sin, position_ids): # The first two dimensions of cos and sin are always 1, so we can squeeze them. cos cos.squeeze(1).squeeze(0) # [seq_len, dim] sin sin.squeeze(1).squeeze(0) # [seq_len, dim] cos cos[position_ids].unsqueeze(1) # [bs, 1, seq_len, dim] sin sin[position_ids].unsqueeze(1) # [bs, 1, seq_len, dim] q_embed (q * cos) (rotate_half(q) * sin) k_embed (k * cos) (rotate_half(k) * sin) return q_embed, k_embed总结从上面的公式和代码可以看到cos和sin值很重要是的整个rope过程就是通过各种计算得到cos和sin,有了这两个值就可以进行embedding的rotate。什么是长期衰减除此之外可以Rope还有一个重要的特性那就是长期衰减这个也是论文中提到的一个重要的点。通俗来说RoPE 的长期衰减就是让模型“更关注近的少理远的”就像人说话更在意最近几句而不是开头说了啥。上图其实就是这个意思随着token之间的距离越来越远其内积值越来越小既atten_score or atten_weight越来越小。实验这里也不做过来的解释了就放两个图吧以此来说明rope比其他编码是有优势的。图中的ReFormer就是用了rope而bert使用的是正弦位置编码(绝对位置编码)。普通人如何抓住AI大模型的风口为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。AI大模型开发工程师对AI大模型需要了解到什么程度呢我们先看一下招聘需求知道人家要什么能力一切就好办了我整理了AI大模型开发工程师需要掌握的知识如下大模型基础知识你得知道市面上的大模型产品生态和产品线还要了解Llama、Qwen等开源大模型与OpenAI等闭源模型的能力差异以及了解开源模型的二次开发优势以及闭源模型的商业化限制等等。了解这些技术的目的在于建立与算法工程师的共通语言确保能够沟通项目需求同时具备管理AI项目进展、合理分配项目资源、把握和控制项目成本的能力。产品经理还需要有业务sense这其实就又回到了产品人的看家本领上。我们知道先阶段AI的局限性还非常大模型生成的内容不理想甚至错误的情况屡见不鲜。因此AI产品经理看技术更多的是从技术边界、成本等角度出发选择合适的技术方案来实现需求甚至用业务来补足技术的短板。AI Agent现阶段AI Agent的发展可谓是百花齐放甚至有人说Agent就是未来应用该有的样子所以这个LLM的重要分支必须要掌握。Agent中文名为“智能体”由控制端Brain、感知端Perception和行动端Action组成是一种能够在特定环境中自主行动、感知环境、做出决策并与其他Agent或人类进行交互的计算机程序或实体。简单来说就是给大模型这个大脑装上“记忆”、装上“手”和“脚”让它自动完成工作。Agent的核心特性自主性能够独立做出决策不依赖人类的直接控制。适应性能够根据环境的变化调整其行为。交互性能够与人类或其他系统进行有效沟通和交互。对于大模型开发工程师来说学习Agent更多的是理解它的设计理念和工作方式。零代码的大模型应用开发平台也有很多比如dify、coze拿来做一个小项目你就会发现其实并不难。AI 应用项目开发流程如果产品形态和开发模式都和过去不一样了那还画啥原型怎么排项目周期这将深刻影响产品经理这个岗位本身的价值构成所以每个AI产品经理都必须要了解它。看着都是新词其实接触起来也不难。从0到1的大模型系统学习籽料最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师吴文俊奖得主给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】适学人群应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。基础篇包括了大模型的基本情况核心原理带你认识了解大模型提示词Transformer架构预训练、SFT、RLHF等一些基础概念用最易懂的方式带你入门AI大模型进阶篇你将掌握RAGLangchain、Agent的核心原理和应用学习如何微调大模型让大模型更适合自己的行业需求私有化部署大模型让自己的数据更加安全项目实战篇会手把手一步步带着大家练习企业级落地项目比如电商行业的智能客服、智能销售项目教育行业的智慧校园、智能辅导项目等等但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下AI时代企业最需要的是既懂技术、又有实战经验的复合型人才**当前人工智能岗位需求多薪资高前景好。**在职场里选对赛道就能赢在起跑线。抓住AI这个风口相信下一个人生赢家就是你机会永远留给有准备的人。如何获取这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表