深圳Yolo 视觉
深圳
立即加入
词汇表

Longformer

探索Longformer架构以有效处理长数据序列。了解稀疏注意力如何克服自然语言处理(NLP)和计算机视觉中的内存限制。

Longformer 是一种专门的深度学习架构,旨在高效处理长序列数据,克服了传统模型的局限性。Longformer 最初是为了解决标准 Transformer 的限制而引入的,后者由于内存限制通常难以处理超过 512 个 token 的序列。Longformer 采用了一种改进的注意力机制,将计算复杂度从二次方降低到线性,使 AI 系统能够单次处理整个文档、长篇记录或复杂的基因序列,而无需截断输入。

注意力瓶颈问题

要理解 Longformer 的重要性,必须审视其前身(如 BERT 和早期的 GPT-3 模型)的局限性。标准 Transformer 使用“自注意力”操作,其中每个 token(单词或单词的一部分)都会关注序列中的所有其他 token。这会产生二次方的计算成本;序列长度加倍,GPU 上所需的内存就会增加四倍。因此,大多数标准模型对输入大小施加了严格限制,常常迫使数据科学家将文档切分成更小、不连贯的片段,从而导致上下文丢失。

Longformer 通过引入 稀疏注意力 解决了这个问题。它没有采用完全的“所有对所有”连接,而是结合了窗口局部注意力和全局注意力:

  • 滑动窗口注意力: 每个 token 只关注其直接邻居。这捕获了局部上下文和句法结构,类似于 卷积神经网络 (CNN) 处理图像的方式。
  • 空洞滑动窗口:为了在不增加计算量的情况下扩大感受野,窗口可以包含间隙,使模型能够在文本中“看得更远”。
  • 全局注意力: 特定预选 token(例如分类 token [CLS]) 序列中的所有其他 token 都关注它们,并且所有 token 都关注它们。这确保了模型对整个输入保持高层次的理解,适用于诸如 文本摘要.

实际应用

同时处理数千个 token 的能力为自然语言处理 (NLP)及其他领域开辟了新的可能性。

1. 法律和医疗文档分析

在法律和医疗保健等行业,文档很少是简短的。一份法律合同或患者的病史可能长达数十页。传统的大语言模型 (LLM) 需要将这些文档碎片化,这可能会遗漏第 1 页的条款与第 30 页的定义之间的关键依赖关系。Longformer 允许对整个文档进行一次性命名实体识别 (NER) 和分类,确保全局上下文影响特定术语的解释。

2. 长篇问答 (QA)

标准的问答系统在回答问题需要综合长篇文章中分散的信息时,往往会遇到困难。通过将全文保存在内存中,基于 Longformer 的模型可以执行多跳推理,连接不同段落中的事实以生成全面的答案。这对于自动化技术支持系统和学术研究工具至关重要。

区分关键术语

  • Longformer 对比 Transformer标准Transformer使用完整的$N^2$注意力,这使其精确,但对于长输入来说计算成本高昂。Longformer使用稀疏的$N$注意力,以牺牲可忽略不计的理论容量来换取巨大的效率提升,从而允许处理4,096个或更多token的输入。
  • Longformer 对比 Transformer-XL虽然两者都能处理长序列,但Transformer-XL依赖于循环机制(缓存先前状态)来记住过去的片段。Longformer一次性原生处理长序列,这简化了在Ultralytics平台等平台上的并行训练。
  • Longformer 对比 BigBird它们是非常相似的架构,在同一时期开发。两者都使用稀疏注意力机制来实现线性扩展。BigBird在滑动窗口的基础上引入了一个特定的随机注意力组件。

实现概念

尽管 Longformer 是一种架构而非特定功能,但了解如何为长上下文模型准备数据至关重要。在 PyTorch 等现代框架中,这通常涉及管理超出标准限制的嵌入

以下示例演示了如何为长上下文场景创建一个模拟输入 tensor,并将其与 YOLO26 等标准 detect 模型中使用的典型大小进行对比。

import torch

# Standard BERT-like models typically cap at 512 tokens
standard_input = torch.randint(0, 30000, (1, 512))

# Longformer architectures can handle significantly larger inputs (e.g., 4096)
# This allows the model to "see" the entire sequence at once.
long_context_input = torch.randint(0, 30000, (1, 4096))

print(f"Standard Input Shape: {standard_input.shape}")
print(f"Long Context Input Shape: {long_context_input.shape}")

# In computer vision, a similar concept applies when processing high-res images
# without downsampling, preserving fine-grained details.

与计算机视觉的相关性

尽管 Longformer 最初是为文本设计的,但其背后的原理已影响了计算机视觉。将注意力限制在局部邻域的概念类似于视觉任务中的局部操作。视觉 Transformer (ViT) 在处理高分辨率图像时面临类似的扩展问题,因为像素(或补丁)的数量可能非常庞大。源自 Longformer 稀疏注意力的技术被用于提高图像分类目标 detect 的效率,帮助 YOLO26 等模型在处理详细视觉数据时保持高速。

有关架构细节的更多阅读,AllenAI 的原始 Longformer 论文提供了深入的基准测试和理论依据。此外,此类大型模型的有效训练通常受益于混合精度和高级优化算法等技术。

让我们一起共建AI的未来!

开启您的机器学习未来之旅