闪电关注 - 2:在大型语言模型中处理无限序列长度的免费午餐

💡 原文中文,约1300字,阅读约需4分钟。
📝

内容提要

该文综述了提升Transformer长序列建模效率的多种注意力改进方法:Luna用嵌套线性注意力逼近Softmax,实现线性复杂度;GLA引入门控机制,训练速度媲美FlashAttention-2;LongNet用扩张注意力处理超10亿标记序列;FLASH结合门控注意力单元与线性近似,训练提速最高4.9倍;线性对数正态注意力优于其他线性替代方案;ALiBi通过线性偏置提升长序列泛化;扩展FlashAttention支持稀疏注意力模式;LightSeq优化长上下文LLM训练通信;Linformer将复杂度从O(n²)降至O(n)。

🔎

延伸解读

长序列建模的两条技术路线

文章综述的方法大致分为两类:一类用线性注意力或线性近似替代Softmax注意力,如Luna、Linformer、线性对数正态注意力,将复杂度从O(n²)降至O(n);另一类保留原始注意力结构但优化计算模式,如扩展FlashAttention支持稀疏注意力、ALiBi通过线性偏置增强外推。读者可据此判断不同方法在精度与效率之间的取舍。

效率提升的实际幅度与条件

文中给出了具体数据:FLASH在Wiki-40B和PG-19上训练速度最高提升4.9倍(自回归)和4.8倍(掩蔽语言模型);扩展FlashAttention在8k和16k序列上分别提速2.0倍和3.3倍,且不牺牲困惑度。这些数字提示效率收益与序列长度、任务类型相关,并非所有场景都能获得同等加速。

超长序列与训练通信的专门优化

LongNet通过扩张注意力可处理超过10亿标记的序列,同时不牺牲短序列性能;LightSeq则针对长上下文LLM训练,比Megatron-LM通信量更少并重叠计算,借助新的梯度检查点方案实现高效注意力计算。这两项工作分别从序列长度上限和分布式训练通信两个维度推进长上下文可行性。

选择方法时需关注的权衡

线性注意力类方法虽降低复杂度,但文章提到线性对数正态注意力是在与原始自注意力的分布模拟度量下优于其他线性替代方案,暗示不同线性近似在保真度上存在差异。ALiBi在WikiText-103上表现更好,但属于偏置外推策略而非复杂度改造。实际选型需结合任务对长程依赖的敏感度与硬件条件综合判断。

❓

Q&A

Luna 注意力机制是如何实现线性复杂度的?

Luna 使用两个嵌套的线性注意力函数来逼近 Softmax 注意力机制,从而将时间和空间复杂度降至线性。

LongNet 能处理多长的序列?它用了什么技术?

LongNet 引入了扩张注意力(dilated attention),能够处理超过 10 亿个标记的序列,同时不牺牲短序列的性能。

FLASH 模型在训练速度上有什么提升?

FLASH 结合门控注意力单元和线性近似方法,在 Wiki-40B 和 PG-19 的自回归语言模型上训练速度最多提升 4.9 倍,在掩蔽语言模型上提升 4.8 倍。

ALiBi 方法如何提升 Transformer 的长序列泛化能力?

ALiBi 通过引入线性偏置(Attention with Linear Biases)来拟合模型,使其能够推广到更长的序列,并在 WikiText-103 基准测试上表现优于多种其他方法。

Linformer 如何降低自注意力的复杂度?

Linformer 通过近似自注意力矩阵,将自注意力机制的时间和空间复杂度从 O(n²) 降低为 O(n),显著提高了 Transformer 的内存和时间效率。

扩展的 FlashAttention 支持哪些稀疏注意力模式?效果如何?

扩展的 FlashAttention 支持关键/查询删除和基于哈希的注意力等稀疏模式。即使稀疏度较低,也能在序列长度增加时改进性能,在不牺牲困惑度的情况下,对长度为 8k 和 16k 的序列分别将训练速度提高 2.0 倍和 3.3 倍。

🏷️

标签

➡️

继续阅读