外观
大语言模型位置编码技术全景
内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。
1. 什么是位置编码?
句子中不同词语之间的位置信息至关重要,但 Self-Attention 机制本身无法直接利用位置信息。因此研究者提出了多种方法将位置信息编码到学习过程中。
2. 为什么需要位置编码?
Transformer 中 Attention 机制的本质是计算输入序列中每个 token 与整个序列的注意力权重。假设 q_m 和 k_n 分别表示词向量 q 位于位置 m 和词向量 k 位于位置 n:
在未添加位置信息时,无论 q 和 k 的位置如何变化,注意力权重 a(m,n) 均不会改变,即位置无关。
这显然与直觉不符——相近的词应该有更高的注意力权重,距离较远的词权重应该更低。
因此需要引入位置编码函数 f,为词向量 q 注入位置信息 m,得到 q_m = f(q, m),使注意力权重能够感知位置距离。
3. 位置编码分类
位置编码
├── 绝对位置编码
│ ├── 训练式位置编码(BERT、GPT 等)
│ └── Sinusoidal 位置编码(原始 Transformer)
└── 相对位置编码
├── XLNet 式
├── T5 式
└── DeBERTa 式4. 绝对位置编码
绝对位置编码将位置信息直接加到输入中:在第 k 个向量 x_k 中加入位置向量 p_k,得到 p_k + x_k,其中 p_k 仅与位置 k 相关。
4.1 训练式位置编码
每个位置的向量随模型一起训练。假设最大输入长度 512,向量维度 768,初始化一个 512×768 的位置编码矩阵参与训练。
注入方式: 直接相加,即 x_m + p_m。
应用: BERT、GPT、ALBERT 等早期 Transformer 模型。
问题: 不具有长度外推性。位置编码矩阵大小预设,扩展会破坏预训练阶段学习到的位置信息。例如将 512×768 扩展为 1024×768,新增的 512 个位置向量缺乏训练。
4.2 Sinusoidal 位置编码
Google 在原始 Transformer 论文中提出,形式如下(d 为词向量维度,k 为位置索引):
PE(k, 2i) = sin(k / 10000^(2i/d))
PE(k, 2i+1) = cos(k / 10000^(2i/d))两大优点:
| 特性 | 说明 |
|---|---|
| 周期性 | 每个分量都是正弦/余弦函数,具有周期性。越靠后的分量波长越长,频率越低 |
| 远程衰减性 | 对两个相同词向量,距离越近内积分数越高,越远则震荡衰减 |
5. 相对位置编码
相对位置编码通过微调 Attention 结构的计算方式来引入位置信息。Attention 矩阵计算公式可展开为:
不同模型对位置相关项的处理方式:
| 模型 | 策略 |
|---|---|
| XLNet | 将 p_n 替换为 Sinusoidal 生成式编码 R_{n-m},p_m 替换为可训练向量 u, v |
| T5 | 删除第二、三项,第四项替换为可学习偏置 b_ |
| DeBERTa | 舍弃第四项,保留第二、三项并替换为相对位置向量 |
6. 旋转位置编码(RoPE)
6.1 核心思路
旋转位置编码作用于每个 Transformer 层的 Self-Attention 块,在计算 Q/K 之后施加旋转,再计算 Attention Score。
6.2 数学原理
希望 q_m 和 k_n 的内积仅与输入 x_m, x_n 及相对位置 m-n 有关。利用复数运算法则,用复数的指数形式表示向量变化,通过旋转变换实现相对位置编码。
6.3 优点
通过绝对位置编码的方式实现了相对位置编码,具有良好的外推性。
6.4 应用模型
LLaMA、GLM-130B、PaLM 等大语言模型均采用 RoPE。
7. 长度外推问题
7.1 问题定义
训练和推理的长度不一致,主要体现在两方面:
| 问题 | 描述 |
|---|---|
| 位置编码不一致 | 推理时遇到训练未见过的新位置编码 |
| Attention Span 不一致 | 推理时 Attention Span 更大,导致熵增 |
7.2 解决方案
| 问题 | 解决方法 |
|---|---|
| 位置编码不一致 | ALiBi、KERPLE、Sandwich、XPOS、PI、NTK-RoPE / YaRN 等(NTK-RoPE 曾是常用免微调方案,后续还有 YaRN 等) |
| Attention Span 不一致 | Softmax 时乘以 log(n)/log(512)(即 log_{512} n)系数做缩放 |
8. ALiBi(Attention with Linear Biases)
8.1 核心思路
在计算完 Attention Score 后,直接为 Attention Score 矩阵加上一个预设的偏置矩阵。
8.2 偏置矩阵
根据 q 和 k 的相对距离来惩罚 Attention Score:相对距离越大,惩罚项越大,即两个 token 距离越远,相互贡献越小。
8.3 优缺点
ALiBi 具有良好的外推性。
8.4 应用模型
BLOOM 采用 ALiBi 位置编码。
9. 位置编码技术总结对比
| 方法 | 类型 | 外推性 | 代表模型 |
|---|---|---|---|
| 训练式 | 绝对 | 无 | BERT、GPT |
| Sinusoidal | 绝对 | 弱 | 原始 Transformer |
| XLNet 式 | 相对 | 弱 | XLNet |
| T5 式 | 相对 | 弱 | T5 |
| RoPE | 绝对+相对 | 强 | LLaMA、GLM-130B、PaLM |
| ALiBi | 相对 | 强 | BLOOM |