大模型小白必看:Transformer位置编码全解析(收藏版)
Transformer模型中的位置编码是理解和构建大模型的关键模块。本文将带你深入了解位置编码的作用、类型和在大模型中的应用包括绝对位置编码如可学习绝对位置编码和正弦余弦位置编码、相对位置编码如经典相对位置编码、XLNet式相对位置编码、T5式相对位置偏置、RoPE旋转位置编码、ALiBi等。此外还将探讨位置编码在长上下文建模中的作用以及如何解决长度外推问题。通过学习本文你将更全面地理解位置编码在大模型中的重要性为你的学习和研究提供帮助。今天我们来详细了解一下大模型中的位置编码内容较长建议收藏。无论是搞科研还是找工作面试这篇都会对你有帮助。在Transformer模型中位置编码是一个看起来很小、但非常关键的模块。很多人第一次学习Transformer时会把注意力机制、Q、K、V作为重点却容易忽略一个问题Transformer本身并不天然知道输入序列的顺序。比如下面两句话我喜欢你你喜欢我它们包含的词几乎一样但意思完全不同。区别在哪里区别就在于词的顺序不同。对于人来说这很容易理解。但对Transformer来说如果不引入位置信息它看到的更像是一组Token的集合而不是一条有先后顺序的句子。所以位置编码要解决的核心问题就是不仅要告诉模型这个Token是什么还要告诉模型这个Token在什么位置。为什么Transformer需要位置编码在RNN中序列是从左到右一步一步输入的我→喜欢→你因为输入过程本身就是递归的所以RNN天然带有顺序信息。CNN也有一定的位置感知能力。卷积核在局部窗口内滑动能够捕捉邻近区域的结构关系同时Padding等操作也会在一定程度上泄漏边界和位置信息。但Transformer不同。Transformer的核心优势是并行计算它会把一句话中的所有Token同时送入模型然后通过Self-Attention计算Token之间的关系。这样做效率很高但也带来一个问题纯粹的Attention模块本身不区分Token的输入顺序。换句话说如果没有位置编码Self-Attention并不知道“我”在第1个位置“喜欢”在第2个位置“你”在第3个位置。因此Transformer必须额外引入位置信息。位置编码到底在编码什么Token-Embedding表示的是这个Token是什么。Position-Encoding表示的是这个Token在哪里。最常见的做法是把两者相加输入向量Token向量位置向量例如第1个Token输入“我”的Token向量位置1的位置向量第2个Token输入“喜欢”的Token向量位置2的位置向量第3个Token输入“你”的Token向量位置3的位置向量这样模型看到的不再只是词本身还能知道这些词分别出现在什么位置。从大的方向看位置编码主要有两类思路第一类把位置信息加到输入向量中也就是绝对位置编码。第二类在Attention计算中引入相对距离也就是相对位置编码。前者更关注这个Token在第几个位置后者更关注两个Token之间相隔多远。绝对位置编码告诉模型这是第几个Token绝对位置编码是最直观的一类方法。它的基本思想是每个位置都有一个对应的位置向量。如果最大上下文长度是512隐藏维度是768那么可以准备一个512×768的位置编码矩阵。位置0→位置向量P0位置1→位置向量P1位置2→位置向量P2……位置511→位置向量P511每个Token输入模型时都加上自己所在位置对应的位置向量。形式上可以写成第k个输入向量xkpk其中:xk表示第k个Token的嵌入向量pk表示第k个位置的位置向量。绝对位置编码又可以分为几种常见形式其中最典型的是可学习绝对位置编码和正弦余弦位置编码。1、可学习绝对位置编码让模型自己学习位置向量最直接的方法是把位置编码当作模型参数。例如最大长度为512隐藏维度为768就初始化一个512×768的位置编码矩阵然后在训练过程中不断更新。这类方法常见于很多早期BERT和GPT模型。它的优点很明显简单、直接、灵活。模型可以根据训练数据自己学习每个位置应该如何表示。但它的问题也很明显长度外推能力较弱。如果模型训练时只见过512以内的位置那么推理时突然输入长度为1024的文本后面那些位置向量可能根本没有被训练过。当然可以给更长的位置随机初始化然后继续微调也可以通过一些位置扩展方法缓解这个问题。但从原始形式看可学习绝对位置编码确实对预训练时设定的最大长度比较敏感。2、正弦余弦位置编码用固定函数生成位置向量Transformer原论文中使用的是Sinusoidal-PositionEncoding也就是正弦余弦位置编码是Google的论文《Attention is All You Need》提出来的。它不是训练出来的而是通过固定公式计算出来的PE(pos,2i)sin(pos/10000^(2i/d_model))PE(pos,2i1)cos(pos/10000^(2i/d_model))其中pos表示Token的位置i表示位置向量中的维度索引d_model表示模型隐藏维度token嵌入向量长度假设模型的隐藏维度d_model100那么位置编码也是100维。第0/1维对应sin(pos/1)和cos(pos/1)位置每移动一步函数值都会明显变化因此属于高频维度适合区分相邻Token。第50/51维对应sin(pos/100)和cos(pos/100)位置移动一步时函数值只发生很小变化因此更适合表示较长范围内的位置趋势。到了第98/99维分母约为8317.64函数变化非常慢只有当位置跨度很大时编码值才会明显变化。简单理解就是用不同频率的sin和cos函数为每个位置生成一个独特的向量。低频函数变化慢适合表示长距离位置变化高频函数变化快适合区分相邻位置。这类方法有两个特点。第一它不需要训练。只要给定位置编号就能直接算出位置向量。第二它具有一定的外推能力。因为它不是查表而是函数生成所以理论上可以计算训练长度之外的位置。不过需要注意能算出来不等于模型一定能用好。上层Transformer参数是在有限长度上训练的即使位置编码函数可以延伸到更远位置模型也不一定能稳定处理远超训练长度的文本。正弦余弦位置编码还有一个重要性质位置ab的表示可以通过位置a和位置b的三角函数关系组合出来。这是因为sin和cos满足和差公式。例如sin(ab)sin(a)cos(b)cos(a)sin(b)cos(ab)cos(a)cos(b)-sin(a)sin(b)这说明它虽然属于绝对位置编码但天然带有表达相对位置关系的潜力。相对位置编码告诉模型两个Token相隔多远绝对位置编码关注的是这个Token在第几个位置相对位置编码关注的是当前Token和另一个Token之间相隔多远这更符合自然语言的特点。比如我今天去银行办理业务。模型判断“银行”是什么意思时最重要的信息不是“银行在第几个位置”而是它附近出现了“办理业务”。这里真正关键的是相对距离和上下文关系。相对位置编码通常不再简单地加到输入向量上而是在Attention计算时引入位置关系。Self-Attention本来要计算AttentionScoreQK^T相对位置编码会在这个计算过程中加入距离信息让模型在判断两个Token是否相关时同时考虑它们相隔多远。1、经典相对位置编码在K和V中注入相对位置信息经典相对位置编码来自Google的论文《Self-Attention with Relative Position Representations》。这个方法的核心思想是模型在计算Attention时不仅要看两个Token的内容是否相关还要看它们之间相隔多远。要理解相对位置编码最好先从普通的绝对位置编码开始看要把计算公式展开才能发现创新点。在绝对位置编码中每个Token输入模型前都会先把Token向量和位置向量相加。假设第i个Token的Token向量是xi它的位置向量是pi那么送入Attention前的输入就是xi pi也就是说xi告诉模型这个Token是什么pi告诉模型这个Token在第几个位置。在Self-Attention中模型会基于这个输入生成Query、Key和Value。带绝对位置编码的Attention可以写成这里qi表示第i个Token的Query向量可以理解为我想查找什么信息kj表示第j个Token的Key向量可以理解为我能提供什么匹配信息vj表示第j个Token的Value向量也就是它真正提供给其他Token汇总的信息。ai,j表示第i个Token对第j个Token的注意力权重。这个权重越大说明第i个Token越关注第j个Token。最后oi就是第i个Token把所有Token的信息加权汇总之后得到的输出。这里最关键的是注意力分数这个分数用来衡量第i个Token和第j个Token之间的相关程度。把和代入进去可以得到如果进一步展开可以看到里面其实包含四类关系这四项可以这样理解第一项是内容和内容的关系也就是第i个Token和第j个Token在语义内容上是否相关。第二项是第i个Token的内容和第j个Token的位置之间的关系。第三项是第i个Token的位置和第j个Token的内容之间的关系。第四项是两个位置之间的关系。这说明在绝对位置编码中位置信息确实进入了Attention计算。但问题在于这里的pi和pj都是绝对位置向量强调的是第几个位置。而自然语言中很多关系更依赖相对距离。比如在“我今天去银行办理业务”这句话中模型判断“银行”的含义时不一定最关心“银行是第几个Token”而更关心“办理业务”离“银行”有多近。也就是说相比绝对位置自然语言常常更需要相对位置。因此经典相对位置编码的做法是在Attention计算中直接加入两个Token之间的相对距离信息。具体来说原来的Key来自第j个Token本身相对位置编码会额外加入一个相对位置向量于是注意力权重变成这里的可以理解为Key侧的相对位置向量。它描述的是当第i个Token关注第j个Token时二者之间的相对位置关系。这样一来Attention分数就不只是由内容相似度决定还会受到相对距离的影响。也就是说模型在判断第i个Token要不要关注第j个Token时会同时考虑两个问题第一它们的内容是否相关第二它们之间相隔多远。除了Key侧经典相对位置编码还会在Value侧加入相对位置信息。在普通绝对位置编码中Value可以写成相对位置编码会把其中的绝对位置部分替换成相对位置向量于是输出变成这里的可以理解为Value侧的相对位置向量。它会影响第i个Token最终从第j个Token那里汇总到什么信息。简单说Key侧的相对位置向量影响该不该关注Value侧的相对位置向量影响关注之后拿到什么信息。不过如果和真的为每一组(i,j)都单独设置参数参数量会非常大而且很难泛化到更长序列。因此真正使用时它们通常不直接依赖(i,j)这两个绝对坐标而是只依赖相对距离(i-j)。也就是说这里的(i-j)就是两个Token之间的相对距离。例如当第10个Token关注第8个Token时(i-j2)当第10个Token关注第12个Token时(i-j-2)。正负号可以表示方向数值大小可以表示距离。clip表示截断操作。它会把相对距离限制在一个固定范围内例如限制在[pmin, pmax]之间。如果两个Token距离太远就统一截断到边界位置。这样做的好处是模型不需要为所有可能的距离都准备单独的位置向量只需要维护一个有限大小的相对位置表。近距离可以精细区分远距离可以统一处理。这样既控制了参数量也让模型能够适配不同长度的文本。所以经典相对位置编码可以总结为一句话它不再只告诉模型“这个Token在第几个位置”而是直接告诉模型“当前Token和被关注Token之间相隔多远”。它把相对距离信息注入到Key和Value中使Self-Attention在计算Token关系时同时考虑内容相关性和位置距离。这类方法更直接地表达了自然语言中的相对距离关系因此在很多任务中表现很好。2、XLNet式相对位置编码XLNet式位置编码最早来源于Transformer-XL的论文《Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context》。后来XLNet采用了Transformer-XL的架构并在一些任务上超过了BERT因此这种相对位置编码方式也常被称为XLNet式位置编码。要理解XLNet式位置编码我们还是可以先从绝对位置编码下的Attention打分公式展开看起。在绝对位置编码中第i个Token的输入可以表示为第 j个Token的输入可以表示为其中xi和xj表示Token向量pi和pj表示绝对位置向量。因此第i个Token对第j个Token的Attention打分可以写为将其完全展开可以得到四项上面已经说过这四项分别表示第一项表示内容与内容之间的相关性也就是第i个Token和第j个Token本身语义之间的匹配程度。第二项表示当前位置内容对目标位置的感知即第i个Token的内容如何关注第j个位置。第三项表示当前位置对目标内容的影响即第i个位置本身如何影响它对第j个Token内容的关注。第四项表示位置与位置之间的关系即第i个位置和第j个位置之间的位置匹配关系。Transformer-XL的核心改动是不再使用绝对位置向量pj而是将其替换为相对位置向量。这里的表示第i个位置和第j个位置之间的相对距离。同时展开式中的两个pi也不再保留而是分别替换为两个可训练向量u和v。于是上面的四项可以改写为不过在Transformer-XL的实际实现中还会进一步调整。由于相对位置向量和Token向量xj所在的表示空间不一定完全相同所以Transformer-XL给相对位置向量单独设计了一个投影矩阵。也就是说内容向量使用相对位置向量使用同时和可以直接合并成新的可训练向量u和v。因此Transformer-XL最终使用的Attention打分公式可以写为这个公式也可以理解为四个部分其中第一项表示 Token 内容之间的匹配关系第二项表示当前 Token 内容对这里的ai,j是经过softmax归一化后的Attention权重。也就是说T5式相对位置编码只影响Attention权重也就是影响“看谁”但不直接改变Value内容也就是不直接改变“取出来的信息”。T5比较有特点的地方在于它并不是简单地为每一个相对距离i − j i-ji−j都设置一个独立的偏置参数而是对相对距离进行了分桶处理。也就是说真正使用的不是而是其中f ( i − j ) f(i-j)f(i−j)表示将相对距离i − j i-ji−j映射到某一个桶编号中。例如相对距离和桶编号之间可以形成如下关系继续往后距离更远的位置会被分到更粗的桶中这个设计的直觉很简单距离较近的位置关系更重要因此需要区分得更细。例如0 ∼ 7 0\sim70∼7这些相对距离每个距离都可以分配一个独立的位置偏置。但是距离稍远以后比如8 ∼ 11 8\sim118∼11模型未必需要精确区分每一个位置所以可以让它们共用同一个位置偏置。距离越远共用范围越大。最后当距离超过某个最大范围后直接进行clip也就是所有更远的位置都共享同一个偏置。因此T5式相对位置编码可以概括为一句话Attention打分内容相关性相对位置偏置也就是这种方式非常简洁。它不再显式构造复杂的位置向量交互而是把位置信息压缩成一个可以学习的Attention偏置项。类似的思想也出现在微软ICLR 2021论文《Rethinking Positional Encoding in Language Pre-training》提出的TUPE位置编码中。4、DeBERTa式位置编码内容和位置解耦DeBERTa提出了Disentangled Attention也就是解耦注意力。它认为Token的内容信息和位置信息不应该简单混在一起而应该分开建模。普通Attention更关注这个词和那个词在语义上是否相关。T5的做法是去掉中间两项只保留“位置-位置”项并将其简化为一个相对位置偏置。而DeBERTa的思路相反它去掉“位置-位置”项保留“内容-位置”和“位置-内容”两项。因此DeBERTa的Attention打分可以写为其中R i , j R_{i,j}Ri,j表示位置i ii和位置j jj之间的相对位置向量。这个公式可以拆成三部分第一项表示Token内容之间的语义匹配。第二项表示第i ii个Token的内容如何感知第j jj个Token相对于它的位置。第三项表示相对位置信息如何影响第j jj个Token内容被关注的程度。DeBERTa进一步区分内容-内容关系内容-位置关系位置-内容关系这样模型在判断两个Token之间关系时不仅考虑词语本身还能更细致地考虑词语与位置之间的交互。可以简单理解为DeBERTa不是把位置编码简单加到词向量里而是让内容信息和位置信息在Attention中分别发挥作用。这种做法比普通位置编码更精细也更适合理解复杂语言关系。5、RoPE旋转位置编码把相对位置关系融入Q和K的内积RoPE全称Rotary Position Embedding中文通常叫旋转位置编码。它最早在RoFormer中提出后来被PaLM、LLaMA等大模型广泛采用。RoPE的核心思想可以概括为一句话不要把位置向量直接加到Token向量上而是根据Token所在的位置对Query和Key向量进行旋转。这样做有一个很重要的好处虽然它对每个位置使用的是绝对位置旋转但是在计算Attention内积时最终自然会表现出相对位置的效果。1为什么要旋转Query和Key在Transformer中Attention的核心计算是Query和Key的内积如果我们希望模型感知位置信息就需要让Query和Key带上位置。假设第m mm个位置的Query经过位置编码后变成第n nn个位置的Key经过位置编码后变成其中m mm和n nn分别表示两个Token的位置。在Attention中真正参与计算的是二者的内积如果想实现相对位置编码一个很自然的目标是这个内积结果不仅要和q 、 k q、kq、k有关还要和相对距离m − n m-nm−n有关。也就是说我们希望存在下面这样的关系这里的关键点是m − n m-nm−n它表示第m mm个位置和第n nn个位置之间的相对距离。因此RoPE要解决的问题就是能不能设计一个函数f ( x , m ) f(x, m)f(x,m)使得两个向量经过位置变换后它们的内积天然只依赖于相对位置m − n m-nm−nRoPE给出的答案是可以。方法就是旋转。2从二维向量开始理解RoPE为了方便理解我们看二维情况。假设Query向量是二维的RoPE的做法是如果这个Query位于第m mm个位置就把它旋转一个角度m θ m\thetamθ。旋转矩阵为于是加入位置编码后的Query可以写为也就是同理第n nn个位置的Key可以写为其中3为什么旋转后能得到相对位置现在我们计算旋转后的Query和Key的内积根据矩阵乘法性质有由于旋转矩阵满足所以因此也可以写成这个公式非常关键。它说明虽然我们分别对Query和Key加入的是绝对位置信息m mm和n nn但是二者做内积之后绝对位置会自动合并成相对位置m − n m-nm−n这就是RoPE的核心。也就是说RoPE表面上是在做绝对位置编码实际上在Attention内积中体现出来的是相对位置信息。4RoPE的直观理解RoPE可以这样理解普通的绝对位置编码是Token向量 位置向量也就是直接把位置向量加到输入中。而RoPE是根据位置旋转Query和Key位置越靠后旋转角度越大。第m mm个位置旋转第n nn个位置旋转二者做内积时旋转角度相减所以Attention自然获得了相对位置信息。这也是RoPE最巧妙的地方绝对位置旋转⟹ \implies⟹相对位置内积5RoPE 为什么适合大模型RoPE有几个明显优点。第一它不需要额外引入可训练的位置向量参数量少。第二它天然具有相对位置性质。Attention打分时直接依赖m − n m-nm−n更适合建模Token之间的相对距离。第三它对长文本外推比较友好。由于RoPE使用类似正弦、余弦的位置变化方式在一定程度上可以推广到训练长度之外的位置。第四它实现简单。只需要在计算Attention前对Query和Key做旋转变换即可不需要改变Value也不需要额外修改Attention结构。因此在很多大语言模型中RoPE已经成为非常常用的位置编码方案。RoPE的本质是把位置编码变成对Query和 Key的旋转操作。它的关键性质是也就是说RoPE虽然是分别根据绝对位置m mm和n nn旋转Query和Key但二者在Attention内积时会自然转化为相对位置m − n m-nm−n。这使得模型既能感知位置又能更好地建模Token之间的相对距离关系。6、ALiBi直接给AttentionScore加距离惩罚ALiBi的思路比RoPE更直接。它不使用显式的位置向量也不旋转Q和K而是直接在AttentionScore中加入一个线性偏置。可以理解为两个Token距离越远注意力分数受到的惩罚越大。形式上可以写成AttentionScoreQK^TBias其中Bias和两个Token之间的距离有关。比如距离1惩罚小距离10惩罚更大距离100惩罚更大这样模型天然更关注近处Token同时保留关注远处Token的可能。ALiBi有一个很重要的特点它不需要训练位置编码参数。偏置矩阵是预设的不像可学习位置编码那样依赖固定长度的位置表。因此ALiBi在长度外推方面表现比较突出。训练时如果只用较短文本推理时扩展到更长文本它通常比普通可学习位置编码更稳。不过ALiBi也有不足。它对位置关系的表达比较粗粒度本质上是一种距离惩罚表达能力没有RoPE这类方法丰富。因此在很多大模型中RoPE仍然是更常见的选择。7、NoPE真的可以不用位置编码吗还有一种特殊思路叫NoPE也就是不显式加入位置编码。这听起来有些反直觉。既然Transformer没有顺序感为什么还能不用位置编码原因在于Decoder-only语言模型通常会使用CausalMask。CausalMask规定当前位置只能看见自己和前面的Token不能看见后面的Token。这个约束本身会引入一定的方向性。因此有研究会把NoPE作为对照方法研究模型是否可以通过Causal Mask和训练数据间接学习到顺序关系。但需要注意的是NoPE不是说顺序信息不重要而是不显式设计位置编码。在实际大模型中NoPE不是主流方案。它更像是帮助我们理解位置编码到底贡献了什么的研究工具。8、其他位置编码思路除了上面这些主流方法还有一些较少见但有启发性的方案。1递归式位置编码递归式位置编码借鉴RNN思想。如果从一个初始位置向量p 0 p_0p0出发通过递归公式p(k1)f(p_k)就可以逐步生成每个位置的编码。进一步发展还可以用微分方程来建模连续位置变化例如FLOATER方法使用神经微分方程生成位置编码。这类方法的优点是灵活并且具有一定外推潜力缺点是递归结构可能削弱Transformer原本的并行优势。2乘性位置编码常见位置编码是相加x_k p_k乘性位置编码则尝试使用x_k \times p_k也就是用位置向量对Token向量进行缩放或调制。这种方式可以理解为不同位置会改变Token向量各个维度的强弱而不只是简单叠加一个位置向量。不过这类方法没有像RoPE、T5Bias、ALiBi那样成为主流。3复数式位置编码复数式位置编码尝试用复数表示词向量和位置信息。它把位置变化表示成复平面上的相位变化。从直觉上看这和RoPE有相通之处位置变化可以理解为角度变化。不过复数模型在工程中没有成为大规模语言模型的主流路线更多体现为一种理论和结构探索。长度外推为什么长上下文不只是把位置编号变大现在大模型越来越强调长上下文能力。例如从4K、8K扩展到32K、128K甚至更长。这就引出了一个重要问题模型训练时只见过短文本推理时能不能处理更长文本这就是长度外推问题。可以简单概括为train short, test long训练时输入较短推理时输入更长。模型需要在没见过的长度范围内仍然保持稳定效果。长度外推不只是位置编码的问题它至少涉及两个方面。第一位置编码本身要能扩展到更长位置。第二序列变长后Attention分布会发生变化。Token数量越多注意力越容易变得分散模型需要重新适应更长范围内的信息选择。所以长上下文扩展不是简单地把max_length改大。1、直接外推为什么容易失败假设模型训练时最大长度是4096推理时直接输入32768。如果使用可学习绝对位置编码4096之后的位置向量没有经过训练模型自然不稳定。即使使用RoPE这类函数式位置编码也不能保证完美外推。因为虽然RoPE可以计算更长位置的旋转角度但模型上层参数并没有在这些远距离位置关系上训练过。可以理解为位置编码能算出来不代表模型学会了如何使用它。这也是为什么很多长上下文扩展方法还需要继续微调。2、位置插值把长位置压缩回模型熟悉的范围Position Interpolation是一种常见的长上下文扩展方法。它的思想很直接既然模型熟悉0到4096的位置范围那就把0到32768的位置压缩映射回0到4096附近。例如原来位置范围扩大了8倍就可以把位置编号除以8。原始位置0到32768 压缩后位置0到4096这样模型看到的位置值仍然落在训练时比较熟悉的范围内。但问题是相邻Token之间的距离也被压缩了。原来相邻位置差1压缩后可能变成0.125。位置变得更“拥挤”模型需要通过微调重新适应这种变化。3、NTK缩放调整RoPE频率尺度NTK-AwareScaling和DynamicNTKScaling是RoPE长上下文扩展中常见的方法。如果说位置插值主要是在调整位置编号那么NTK缩放更像是在调整RoPE中的频率尺度。RoPE通过不同频率的旋转来表示位置。上下文变长后如果仍然使用原来的频率分布远距离位置可能会出现表示不稳定或区分度不足的问题。NTK缩放的核心思路是通过调整RoPE的频率参数让模型在更长上下文下仍然保持较合理的位置分布。可以简单理解为不是强行让模型认识全新的位置而是重新安排位置频率让长文本位置关系更平滑。DynamicNTKScaling则会根据实际输入长度动态调整缩放比例比固定缩放更灵活。4、YaRN、LongRoPE和xPos面向更长上下文的RoPE改进随着长上下文需求越来越强围绕RoPE的扩展方法也越来越多。xPos可以看作RoPE的一种改进。它在旋转位置编码基础上加入缩放机制使模型在处理更长序列时更稳定。简单说RoPE用旋转表示位置。xPos在旋转基础上加入缩放增强长度外推能力。YaRN主要关注如何用较低训练成本扩展上下文窗口。它不是简单地修改一个公式而是结合RoPE缩放、微调策略和长上下文适配让已有模型更高效地扩展到更长上下文。LongRoPE进一步面向超长上下文扩展目标是在扩展上下文长度的同时尽量保持短上下文任务上的能力不下降。这点很重要。因为长上下文模型不能只追求“能输入更长”还要保证短文本场景下的效果不被破坏。最后总结Transformer的Self-Attention很强但它本身没有天然顺序感。位置编码的作用就是为Transformer补上顺序信息。最初的位置编码比较直接给每个位置一个向量让模型知道Token在第几个位置。后来人们发现自然语言更依赖相对位置于是出现了各种相对位置编码把Token之间的距离关系直接放进Attention计算中。再后来大语言模型越来越关注长上下文能力位置编码又开始承担新的任务不仅要表示位置还要在训练长度之外保持稳定这就是长度外推问题。因此理解位置编码不能只停留在Token向量加位置向量这一层。更完整的理解应该是TokenEmbedding解决“词是什么”。PositionEncoding解决“词在哪里”。RelativePosition解决如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取