Skip to content

大语言模型位置编码技术全景

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

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 矩阵计算公式可展开为:

A=QKT=(xq+pm)WqWkT(xk+pn)T=xqWqWkTxkT位置无关+xqWqWkTpnT位置相关+pmWqWkTxkT位置相关+pmWqWkTpnT位置相关

不同模型对位置相关项的处理方式:

模型策略
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