Transformer 目前已成为人工智能领域的主流模型,广泛应用于自然语言处理、语音识别及计算机视觉等任务。然而,标准 Transformer 中的自注意力机制(Self-Attention)计算复杂度与序列长度呈二次方关系(O(N^2)),随着序列长度的增加,显存占用和计算时间会急剧上升,这限制了其在长文本场景下的应用。
为了解决这一瓶颈,学术界和工业界提出了多种优化方案,旨在降低计算复杂度至线性或近似线性,同时保持模型的表达能力。本文整理了 9 篇具有代表性的 Transformer 效率优化论文,涵盖稀疏注意力、长文本处理、运行提效及卷积增强四个方向,帮助开发者更高效地使用模型并寻找创新点。
一、稀疏注意力机制
1. Longformer: The Long-Document Transformer
核心问题: 传统 Transformer 在处理长文档时,全局注意力机制导致计算量过大。
解决方案: Longformer 引入了局部窗口注意力和全局特殊标记注意力相结合的混合机制。它将注意力操作从全连接改为稀疏连接,使得计算复杂度与序列长度呈线性关系。
效果: 能够轻松处理数千个 token 甚至更长的文档,在字符级语言建模和下游任务上取得了 SOTA 结果,支持长文档生成和序列到序列任务。
2. Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting
核心问题: 标准 Transformer 对时间序列的局部上下文不敏感,且存在内存瓶颈。
解决方案: 提出卷积自注意力(Convolutional Self-Attention)和 LogSparse Transformer。前者通过卷积核捕捉局部依赖,后者通过日志稀疏采样降低内存成本。
效果: 在太阳能输出、电力消耗及交通拥堵预测等场景中表现优异,有效平衡了局部特征提取与长程依赖建模。
3. Adaptive Attention Span in Transformers
核心问题: 固定大小的注意力跨度无法适应不同位置的信息密度差异。
解决方案: 提出一种新的自注意力机制,允许模型动态学习最优的注意力跨度。通过软约束控制最大上下文大小,同时保持内存和计算可控。
效果: 在 text8 和 enwiki8 数据集上实现了最先进的性能,显著扩展了 Transformer 的最大上下文处理能力。
二、Transformer 处理长文本
4. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
核心问题: 语言建模中固定长度上下文导致信息碎片化,难以捕捉长距离依赖。
解决方案: 引入段级别循环机制(Segment-level Recurrence)和相对位置编码。通过保留上一段的隐藏状态作为当前段的记忆,实现超越固定长度的依赖学习。
效果: 在短序列和长序列上均优于普通 Transformer,评估速度比标准 Transformer 快 1800 倍以上,解决了上下文碎片化问题。
三、Transformer 运行提效
5. REFORMER: THE EFFICIENT TRANSFORMER
核心问题: 大型 Transformer 在长序列上的训练成本高,显存占用大。
解决方案: 采用两种技术:一是使用局部敏感哈希(LSH)替换点积注意力,将复杂度从 O(L^2) 降至 O(L log L);二是使用可逆残差层(Reversible Residuals),减少激活值存储。
效果: 在长序列上表现相当,但内存效率更高,训练速度更快,适合大规模序列建模。
6. RETHINKING ATTENTION WITH PERFORMERS
核心问题: 标准 Softmax 注意力计算昂贵,难以扩展到超长序列。
解决方案: 利用 FAVOR+ 方法(Fast Attention Via positive Orthogonal Random features)近似 softmax 注意力核。将注意力机制转化为线性空间和时间复杂度的核函数估计。
效果: 以可证明的准确性估计常规全秩注意力,仅使用线性资源即可高效建模可核化的注意力机制。
7. Linformer: Self-Attention with Linear Complexity
核心问题: 长序列训练和部署成本高昂,标准注意力矩阵过大。
解决方案: 提出将键值矩阵投影到低维子空间,从而将注意力矩阵压缩。将复杂度从 O(n^2) 降低到 O(n)。
效果: 在保持性能不变的前提下,显著节省时间和内存,使标准 Transformer 架构更易于扩展。
四、卷积 Attention
8. Conformer: Convolution-augmented Transformer for Speech Recognition
核心问题: Transformer 擅长全局依赖但缺乏局部特征提取能力,CNN 则相反。
解决方案: 结合 CNN 和 Transformer,利用卷积模块捕捉局部依赖,利用自注意力模块捕捉全局依赖。每个 Transformer 块前后加入卷积模块。
效果: 在 LibriSpeech 基准测试中实现 WER 2.1%/4.3%(无 LM),参数量小(10M),兼具局部与全局建模优势。
9. LITE TRANSFORMER WITH LONG-SHORT RANGE ATTENTION
核心问题: 移动端或受限资源下,标准 Transformer 推理延迟高。
解决方案: 提出 Lite Transformer,使用长短范围注意力(LSRA)。一组头用于局部上下文(卷积),另一组用于长距离关系(注意力)。
效果: 在三个语言任务上始终优于普通 Transformer,在 WMT'14 英法翻译任务上 BLEU 分数提升 1.2/1.7,适合资源受限场景。
五、选型建议与总结
在实际工程落地中,选择哪种优化方案取决于具体场景:
- 长文本处理: 若需处理数千 token 以上的文档,Longformer 或 Transformer-XL 是首选,前者侧重稀疏性,后者侧重循环记忆。
- 实时性与低资源: 对于移动端或边缘设备,Lite Transformer 和 Conformer 提供了更好的速度与精度平衡。
- 超大序列训练: 若显存受限且序列极长,Reformer 和 Performer 通过线性复杂度近似能有效降低训练门槛。
- 通用 NLP 任务: Linformer 提供了一种最平滑的升级路径,无需大幅修改原有架构即可享受线性加速。
综上所述,Transformer 的魔改工作主要集中在降低计算复杂度、增强局部感知以及适配特定硬件上。开发者应根据数据规模、延迟要求和硬件资源,选择合适的优化策略,以实现模型效率与效果的最佳平衡。