LLM 长文本处理技术综述:位置编码与注意力机制优化
一、长文本的核心问题与解决方向
1.1 文本长度与显存及计算量之关系
要研究清楚长文本的问题,首先应该搞清楚文本长度在模型中的地位与影响。那么我们便以 Decoder-base 的模型为例来进行分析。
1.1.1 模型参数量
Decoder-base 的模型主要包括三个部分:Embedding(词嵌入层)、Decoder Layer(解码器层)和 Head(输出头)。
其中最主要部分是 Decoder Layer,其由 n 个层组成,每个层又分为两部分:Self-Attention(自注意力机制)和 MLP(多层感知机)。

随着序列长度 $L$ 的增加,模型的显存占用和计算量会显著变化。特别是 Self-Attention 机制,其计算复杂度通常为 $O(L^2)$,这意味着当文本长度翻倍时,计算量和显存占用将变为原来的四倍。这是限制大语言模型上下文窗口长度的主要瓶颈之一。

此外,KV Cache(键值缓存)在推理过程中也会随序列长度线性增长,进一步加剧了长文本场景下的显存压力。

二、长文本与位置编码
在 Transformer 结构的模型中,Attention 模块的值与顺序无关,因此需要加入位置编码以确定不同位置的 token。典型的位置编码方式有两类:
- 绝对位置编码:即将位置信息融入到输入中,如 Learnable Position Embedding。
- 相对位置编码:微调 Attention 结构,使其能够分辨不同位置的 Token,如 RoPE。
随着文本长度的增加,位置编码也会发生相应的变化,因此处理好位置编码问题是解决长文本问题的重要环节。

2.1 绝对位置编码
由于绝对位置编码由两部分组成,且两部分相互独立,因此无法直接计算相对距离。下面介绍几种典型的绝对位置编码:

不同 alpha 下 BERT MLM 的训练准确率对比显示,简单的矩阵式位置编码在当前的大模型中已经比较少采用,仅有 GPT2 等早期模型中采用了这种方式。









