1 模型背景与动机
1.1 标准Transformer的序列长度限制
标准Transformer架构采用全注意力(full attention)机制,每个token需要与序列中所有其他token计算注意力权重。该机制的计算复杂度为O(n²),其中n为输入序列长度。当序列长度超过512或1024个token时,显存占用和计算时间急剧增长,导致在长文档处理场景中难以直接应用。诸如BERT等经典预训练模型的默认最大输入长度通常被限制在512个token以内,这严重制约了模型对长程依赖关系的建模能力。
1.2 长序列处理需求的兴起
随着自然语言处理任务从短文本(如句子级分类)向文档级任务(如法律文书分析、科研论文理解、长篇幅问答)扩展,对能够处理数千乃至上万token的模型的需求日益增长。金融、医疗、法律等领域的长文本包含大量跨段落、跨章节的上下文线索,标准Transformer无法有效捕捉此类长程依赖。Longformer正是在此背景下由Allen AI等机构于2020年提出,旨在平衡计算效率与长序列建模能力。
2 注意力机制设计
2.1 整体架构概述
Longformer保留了Transformer的编码器-解码器(或仅编码器)架构,核心差异在于注意力机制。它采用稀疏注意力模式替代全注意力,使每个token仅关注局部邻居以及少数全局预设位置,从而将计算复杂度从O(n²)线性降低至O(n)。模型提供多种尺寸(如Longformer-base、Longformer-large),并支持自定义注意力配置。
2.2 稀疏注意力模式
2.2.1 局部滑动窗口注意力
局部滑动窗口注意力是Longformer的基础组件。每个token只关注其固定窗口大小(如512个token)内的相邻token,窗口沿序列滑动。该模式捕获局部上下文信息,计算复杂度为O(n×w),其中w为窗口宽度。通过控制窗口大小,可灵活调节局部感知范围。
2.2.2 全局注意力
为弥补局部窗口无法覆盖长程依赖的局限,Longformer引入全局注意力机制。用户可选择部分token(如分类符[CLS]、特殊查询标记)作为全局token,这些token关注整个序列中的所有token,同时所有token也关注这些全局token。全局token的数量通常很少(例如每层固定几个或按任务指定),因此额外带来的计算开销呈线性增长,整体仍保持O(n)复杂度。
2.2.3 扩张滑动窗口注意力(进阶变体)
在后续变体(如Longformer的某些扩展版本)中,为进一步扩大感受野而不大幅增加窗口宽度,可采用扩张滑动窗口注意力。与空洞卷积类似,窗口中的token间隔一定步长(dilation)进行采样,例如窗口大小为256但每两个token采样一个,等效覆盖范围扩大至512。该模式在保持线性复杂度的同时,提升了模型对远距离信息的整合能力。
2.3 与全注意力及Sparse Transformer的比较
相比全注意力(O(n²)),Longformer在长序列上可节省90%以上的计算量,且显存占用随序列长度线性增长而非平方级增长。与Sparse Transformer的固定稀疏模式(如固定间隔注意力)相比,Longformer的局部窗口+全局注意力模式更加灵活,能够适应不同任务对局部细粒度信息和全局结构信息的混合需求。BigBird则在此基础上引入随机注意力,进一步增强了长程连接的多样性。
3 预训练与微调
3.1 预训练任务与数据
Longformer沿用BERT的掩码语言模型(MLM)预训练任务。其预训练数据来源于大规模英文语料(如书籍、维基百科),但预处理时保留原始段落长度(通常超过512 token),以充分利用长上下文。训练过程中,模型学习通过局部上下文和全局注意力推断被掩码的token。预训练后的模型权重可在Hugging Face等平台获取。
3.2 微调适配策略
3.2.1 任务特定头设计
在下游任务微调时,用户需在Longformer编码器顶部添加任务特定的输出头。例如:序列分类任务添加线性分类层(聚合[CLS]表示);问答任务添加指针网络层预测答案起始和结束位置;序列标注任务添加逐token分类层。由于Longformer的[CLS] token默认设置为全局注意力,其表示能聚合整个文档信息,适合全局决策任务。
3.2.2 长文本输入的分块处理
当输入文本超过模型预训练的最大长度(如4096 token)时,可采用分块(chunking)策略:将文档切分为多个重叠或非重叠片段,依次送入Longformer编码,再通过池化或拼接得到文档整体表示。实践中也可利用Longformer对更长的序列进行直接建模(需调整位置编码及显存),但分块策略在资源受限时仍是常见做法。
4 主要应用场景
4.1 文档分类与情感分析
Longformer可对整个文档(如电影评论、法律判决书、科研论文)进行全局分类,无需将文档截断为短片段。例如对一本数百页书籍的总体情感倾向判断,Longformer能利用长上下文捕捉前后文矛盾或转折,提升分类准确率。
4.2 长文本问答(如HotpotQA、TriviaQA)
在需要多段落证据推理的问答任务中,Longformer能够一次性编码所有相关段落(可能超过1000 token),通过全局注意力同时关注问题与所有候选证据。在HotpotQA、TriviaQA等基准上,其表现优于基于全注意力的BERT变体,且推理速度更快。
4.3 序列标注与信息抽取
对于命名实体识别、关系抽取等需要细粒度标签的任务,Longformer的滑动窗口注意力可为每个token提供局部上下文,而全局注意力可捕捉跨句子的实体共指关系。在长法律文档、生物医学文献上的信息抽取任务中表现良好。
4.4 生成式任务中的编码器角色
在编码器-解码器架构(如Longformer-Encoder-Decoder,LED)中,Longformer作为编码器处理长输入序列,解码器使用交叉注意力生成输出。该变体适用于长文本摘要、文本生成等任务,编码器复杂度远低于使用全注意力的标准Transformer。
5 性能评估与基准
5.1 在标准长文数据集上的表现
Longformer在多个长文档分类和问答数据集上进行了评测。例如在超长文档情感分析数据集(如IMDb长评论、Hyperpartisan新闻检测)上,其准确率比基于截断BERT的方法提升3-8个百分点。在HotpotQA上,F1分数达到82.3(相比BERT的79.5),且推理时间减少40%。
5.2 计算效率与显存占用分析
实验显示,对于长度为4096 token的序列,Longformer-base的显存占用约为全注意力BERT-base的1/4(约4GB vs 16GB)。训练时间随序列长度线性增长,而全注意力呈平方级增长。当序列长度达到8192时,全注意力在标准消费级GPU上已无法运行,而Longformer仍可在12GB显存内完成推理。
5.3 与其他长文本模型(如BigBird、Reformer)的对比
与BigBird相比,Longformer在局部模式上更精细(窗口可调,扩张可选),BigBird额外引入随机注意力以增强全局连通性。在多数长文本分类任务上两者性能接近,但Longformer的注意力模式更易解释。与Reformer的LSH(局部敏感哈希)注意力相比,Longformer的确定性稀疏模式无随机性,结果可复现性更好,而Reformer在处理极端长序列(>16000 token)时内存更优。
6 实现与使用
6.1 Hugging Face Transformers集成
Longformer已完全集成到Hugging Face Transformers库中,支持直接加载预训练权重。示例代码:
from transformers import LongformerModel, LongformerTokenizer
model = LongformerModel.from_pretrained("allenai/longformer-base-4096")
tokenizer = LongformerTokenizer.from_pretrained("allenai/longformer-base-4096")
用户也可通过配置参数调整注意力窗口大小、全局token索引等。
6.2 自定义注意力掩码配置
Longformer的注意力掩码是核心可自定义项。用户可通过设置attention_mask参数指定每个token的注意力模式:0表示该token不参与全局注意力,1表示该token作为全局token。此外,可设定局部窗口宽度(local_attention_window)和扩张率(attention_dilation)。注意掩码需与输入序列位置编码对齐。
6.3 推理与训练优化建议
- 使用混合精度训练(FP16)可降低显存占用约50%。
- 训练时可采用梯度累积处理超长序列(单样本无法装入显存时)。
- 推理时可预先计算并缓存所有非全局token的局部注意力结果。
- 对于解码器任务,LED变体支持分块生成,但需处理交叉注意力中的长序列。
- 利用FlashAttention等加速库可进一步优化稀疏注意力实现。
7 局限性及后续发展
7.1 内存与速度权衡
尽管Longformer将复杂度降为O(n),但其显存占用仍随序列长度线性增长。对于超过10万token的极长文档(如整本书),单独使用Longformer编码仍然不现实,需结合检索或层次化模型。此外,全局token的选择若不合理(如数量过多),会导致计算量回升至接近O(n²)。
7.2 全局注意力的选择策略
全局注意力token的选取目前多依赖领域知识或启发式规则(如将[CLS]、特殊查询标记设为全局)。若任务无明显全局锚点,则需通过训练自动学习全局模式,但可能增加模型复杂度。现有研究尝试使用可学习的稀疏注意力权重来动态决定全局位置,但尚未广泛集成。
7.3 后续改进方向(如Longformer-QA、LED变体)
- Longformer-QA:针对抽取式问答优化全局注意力分配,将问题中的每个token都设为全局,提升答案定位精度。
- LED (Longformer-Encoder-Decoder):将Longformer编码器与标准解码器结合,用于长文本摘要和生成任务,在arXiv论文摘要生成等基准上表现优异。
- 动态扩张窗口:自适应调整窗口宽度和扩张率,根据任务需要局部细粒度或全局粗粒度信息。
- 多层次稀疏注意力:结合局部-全局-随机多种模式,构建更高效的注意力图谱(类似BigBird的框架)。
- 与检索增强模型融合:先通过检索缩小候选范围,再用Longformer精细编码,可处理海量文档级别的应用。
Longformer作为长序列处理的里程碑模型,启发了后续一系列稀疏注意力研究,并已在工业界和学术界广泛部署。其思想也被应用于多模态、长视频理解等拓展领域。