位置编码是加到输入序列每个元素上的向量,用于指示元素在序列中的位置。由于自注意力机制本身无序,位置编码弥补了这一缺陷,帮助模型理解序列的顺序关系。文章介绍了绝对位置编码(如Transformer的正余弦函数)和相对位置编码(如RoPE、ALiBi)的实现方法,对比了它们的优缺点,并提供了选择建议。位置编码对于处理长序列尤为重要,是学习大模型的基础知识。
1、位置编码是什么?
一句话定义 :位置编码是加到输入序列每个元素上的一个向量,用来告诉模型该元素在序列中的位置(或相对位置)。
假设输入是一个长度为 n的序列,每个元素用一个 d维向量表示(例如词嵌入),将这些向量堆叠成矩阵X∈Rn×dX \in R^{n \times d}X∈Rn×d。形式 上 看,对于一个长度为 n 的序列,有一个位置索引pos∈{0,1,…,n−1}pos \in \{0,1,…,n−1\}pos∈{0,1,…,n−1},位置编码会为每个pos 生成一个d 维向量PE(pos)PE(pos)PE(pos),然后与输入词向量相加(或拼接),得到最终的输入表示:
这样,模型既能知道当前词是什么(来自词向量),又能知道它出现在哪里(来自位置编码)。
2、为什么需要位置编码?
- 自注意力的“盲点”——无视顺序
自注意力计算的是“查询”与“键”的点积,它本质上是在计算两个向量的相似度,而不考虑它们在序列中的位置。如果我们将句子中的词随机打乱,然后输入自注意力,由于每个词本身的向量没变,它们之间的注意力分数也不会变,最终输出的表示也是一样的——这意味着 自注意力本身是完全“无序”的 ,它把序列当成一个集合(bag-of-words)来处理。
但语言是有顺序的。比如:
“猫追老鼠” 和 “老鼠追猫” 是两个完全不同的意思。
“我吃饭” 和 “饭吃我” 显然不同。
如果没有位置信息,模型就无法区分这些顺序差异。
- 并行计算带来的挑战
RNN天然有顺序,因为它是一个词一个词处理的,位置信息隐含在时间步中。但Transformer为了并行,一次性输入所有词,这就必须显式地注入位置信息。
所以,位置编码的作用就是给模型补充“顺序感”,让模型在计算时能知道词的前后关系。
3、怎么实现位置编码?
实现位置编码的核心思想是:为每个位置分配一个唯一的向量,并且这些向量之间应该能反映位置的远近关系(相近位置的向量相似,远距离位置的向量差异大)。
方法一:绝对位置编码
- 原始Transformer的正余弦函数
Vaswani等人提出的Transformer使用了固定公式的位置编码,不参与训练。公式如下:对于位 置pospospos和维度索 引iii(iii从0开始):
直观解释 :
每个维度对应一个正弦或余弦函数,频率从高到低变化(随着iii增大,分母指数增大,频率降低)。
这样,不同维度的函数组合在一起,就能唯一标识每个位置。
同时,正弦/余弦函数具有 相对位置关系 的线性表示能力: 对于固定的偏移量kkk,PE∗pos+kPE*{pos+k}PE∗pos+k可以表示为PE∗posPE*{pos}PE∗pos的线性函数(利用三角恒等式),这有 助于模型学习到相对位置信息。
优点 :
无需训练,参数少。
理论上有很好的外推性(可以处理比训练时更长的序列,因为函数是连续的)。
缺点 :
外推性其实有限,当序列长度远超过训练见过的长度时,性能会下降(因为模型没有见过那些位置的组合)。
固定函数可能不够灵活。
- 可学习位置编码
这是更简单粗暴的做法:把位置编码当作一个嵌入层来训练,就像词嵌入一样。模型会为每个可能的位置学习一个向量。BERT、GPT 等模型用的就是这种方法。
优点 :
- 灵活,让数据自己决定最佳的位置表示。
缺点 :
无法外推到训练时未见过的位置(如果训练时最大长度为512,那么处理超过512的序列就没有对应的嵌入,通常需要截断或特殊处理)。
参数量会随最大长度增加而增加。
方法二:相对位置编码
绝对位置编码给了每个位置一个“绝对坐标”,但有时我们更关心的是两个元素之间的 相对距离 。比如在理解“他”指代谁时,我们想知道“他”和前面某个名词之间隔了多少个词,而不是它们各自的绝对位置。
核心思想 :在计算注意力分数时,考虑查询和键之间的相对位置偏移。
- 简单做法:在注意力分数上加一个可学习的偏置
其中b_∣i−j∣b\_{|i-j|}b_∣i−j∣是一个可学习的标量,依赖于相对距离∣i−j∣|i-j|∣i−j∣。Transformer-XL 就采用了类似思路。
- 旋转位置编码
这是目前非常流行的相对位置编码(LLaMA、PaLM等模型使用)。它的核心思想是:将位置信息通过旋 转矩阵融入到qqq和kkk中,使得点积q∗i⋅k∗jq*i \cdot k*jq∗i⋅k∗j自动包含 相对位置信息。
直观理解 :
对每个词向量,我们将其按照位置iii进行旋转,旋转角度与位置成比例。
这样,两个向量的点积就会自动依赖于它们之间的角度差,即相对位置。
优点 :
在长序列上外推性好(因为旋转可以延续到任意长度)。
同时具有相对位置编码的优点,且实现高效。
- ALiBi
另一种简单高效的相对位置编码:直接在注意力分数上加上一个与距离成线性关系的负偏置,让距离远的词受到抑制。公式为:
其中mmm是一个固定的斜率(或每个头不同),该方法在BLOOM等模型中使用,外推性也很强。
4、各种位置编码的对比
| 类型 | 代表模型 | 是否可学习 | 外推性 | 复杂度 | 特点 |
|---|---|---|---|---|---|
| 正弦/余弦 | Transformer原版 | 固定 | 中等 | 低 | 数学优美,无需训练 |
| 可学习绝对 | BERT、GPT | 可学习 | 差 | 低 | 简单,但无法外推 |
| Transformer-XL式 | Transformer-XL | 可学习 | 好 | 中 | 引入相对偏置 |
| RoPE | LLaMA、PaLM | 可学习(旋转矩阵固定) | 好 | 中 | 目前最流行,平衡性好 |
| ALiBi | BLOOM | 固定斜率 | 好 | 低 | 极简,效果好 |
如果在微调一个预训练模型(如BERT),直接沿用它的位置编码即可(通常是可学习的绝对位置编码,最大长度固定)。
如果需要自己设计一个模型,并希望处理长序列(如长文档、长视频),RoPE 或 ALiBi 是很好的选择,因为它们外推性好。
如果序列长度很小且固定,可学习绝对位置编码简单够用。
如何学习大模型 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大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。