超长文本注意力机制如何突破传统 O(n²) 瓶颈
介绍了当前在超长文本(可达百万级及以上 Token)生成与预测中,注意力机制如何突破传统 O(n²) 瓶颈,并阐释多种高效注意力算法如何支持 超长上下文处理能力。
概览
当前主流 Transformer 在处理长序列时,由于每个 Token 都要与其它所有 Token 计算注意力分数,导致时间和内存复杂度均为 O(n²),当 n 达到 10 万甚至百万时,几乎无法在常规硬件上运行 。
为解决该瓶颈,研究者们提出了多种IO 感知、稀疏化/线性化以及层次化/记忆增强注意力机制,显著降低了计算和存储开销,使得部分模型已能在实际推理中处理 100K 级以上的上下文 。
稀疏/线性化注意力
FlashAttention 系列
-
FlashAttention 通过将 Attention 矩阵划分为适合 GPU SRAM 缓存的小块,最大限度减少 HBM 与 SRAM 之间的数据读写,在保持精确计算的前提下,大幅降低内存带宽瓶颈 。
-
DISTFLASHATTN 则在 FlashAttention 基础上,采用跨卡令牌级负载均衡和重计算感知的梯度检查点等技术,将单卡支持的序列长度从 32K 扩展至512K 以上,并在多卡环境中实现近 5 倍速度提升 。
稀疏注意力变体
-
Longformer 的滑动窗口注意力(Sliding Window),只在局部窗口范围内计算注意力,将复杂度从 O(n²) 降至 O(n·w),适合文档建模等长内容场景 。
-
Reformer 利用局部敏感哈希(LSH)对 Query-Key 进行稀疏化选择,复杂度近似 O(n·log n),同时减少记忆占用 。
线性注意力
-
Performer 提出基于随机特征映射(FAVOR+)的近似 Softmax Attention,将注意力计算重写为矩阵乘法顺序可交换的形式,复杂度降为 O(n) 。
-
其他Kernelized Attention方法(如 Token Statistics Transformer、Latte)也通过学习或选择性近似,将 Attention 替换为线性时间操作,对超长输入的支持同样非常友好 。
层次化与记忆增强
分段层次化(Hierarchical Memory)
-
HMT(Hierarchical Memory Transformer) 将长文本划分为固定大小的段落,通过“感官记忆”存储各段摘要,并在段间进行注意力交互,大幅降低全局计算量,同时保持段间长距离依赖捕捉能力;在 100K Token 评测中表现优异 。
循环记忆增强
-
RMT(Recurrent Memory Transformer) 在预训练 Transformer 之外,额外引入“可重置记忆”层,将历史信息压缩存入外部记忆,并在后续批次中读取,已验证能够支持200 万 Token级别的上下文学习,且保持较低的线性计算开销 。
空洞/膨胀注意力
-
LongNet 采用膨胀注意力(Dilated Attention),使注意力感受野随着距离呈指数增长,并利用分布式训练架构,可无损扩展至10 亿 Token级上下文,兼顾性能与可伸缩性 。
位置编码与对齐技术
-
RoPE(Rotary Position Embedding) 通过对查询与键进行旋转位置编码,使模型自然支持任意长度序列;结合 FlashAttention 等算法,可在扩展上下文时保留准确的相对位置信息 。
-
新一代位置编码扩展(如 XPos、Alibi)进一步优化长序列的相对位置对齐,使得在百万 Token 范围内仍能有效捕捉远距离语义关联。
实际落地与案例
-
多家商用/开源大型模型(如 GPT-4、Anthropic Claude 2、NousResearch/YaRN-Mistral-7b-128K)均已在实测中展现处理100K+ Token的能力,虽仍面临成本与延迟挑战,但技术路线已基本成熟 。
小结
通过IO 优化(FlashAttention 系列)、稀疏/线性化 Attention(Longformer、Reformer、Performer 等)、层次化与记忆增强(HMT、RMT、LongNet)以及位置编码改进,当下的 Transformer 生态已形成多条可行路径,实现从数万到百万乃至亿级 Token 的上下文处理,为超长文本生成与推理提供了稳健支撑。