神经网络Transformer架构中的分块注意力
字数 1462 2025-12-09 12:03:31

神经网络Transformer架构中的分块注意力

  1. 问题定义与动机
    在处理极长序列(如数万甚至数十万个令牌)时,标准的自注意力机制的计算复杂度和内存消耗与序列长度的平方(O(n²))成正比,这使其在计算资源和时间上变得不可行。分块注意力 是一种旨在缓解这一问题的优化技术。其核心思想是:不计算整个长序列上所有令牌对之间的全局注意力,而是将序列分割成固定大小的块,并主要在块内计算注意力,同时辅以有限的跨块信息交互。

  2. 基本原理与分块策略

    • 序列分块:首先,将输入序列(长度为 L)分割为 C 个连续的、不重叠的块,每个块包含大致 L/C 个令牌。例如,一个长度为 16,384 的序列可以被分成 64 个块,每个块 256 个令牌。
    • 局部注意力计算:对于模型中的每个注意力头,注意力计算被限制在每个块内部进行。这意味着,块内的每个令牌只能关注到同一块内的其他令牌,从而将计算复杂度从 O(L²) 降低到 O(C * (L/C)²) = O(L² / C)。内存消耗也从存储一个 L x L 的注意力矩阵,变为存储 C 个 (L/C) x (L/C) 的矩阵。
    • 信息隔离问题:纯粹的块内注意力会导致不同块之间的信息完全隔离,模型无法捕获长距离的依赖关系,这对于理解文档级语义是致命的。
  3. 跨块信息流动机制
    为了解决信息隔离问题,分块注意力必须引入机制来允许信息在不同块之间流动。常见的方法包括:

    • 滑动窗口:在计算块注意力时,除了本块内的令牌,还为每个块额外引入其前后相邻块的部分令牌(如前一个块的后k个令牌和后一个块的前k个令牌)作为可关注的上下文。这形成了一个跨越块边界的局部滑动窗口。
    • 全局令牌:在序列中引入少量可学习的“全局令牌”或“特殊令牌”(例如 [CLS] 或额外的记忆令牌)。这些全局令牌会被添加到每个块中,或者作为一个单独的块。块内的局部令牌可以关注这些全局令牌,而全局令牌可以关注所有块的所有令牌(或大部分)。通过全局令牌作为“信息中转站”,不同块之间的信息得以间接交互。
    • 分层或递归聚合:先对每个块进行块内注意力计算,得到每个块的聚合表示(例如,通过池化或使用一个特殊的块摘要令牌)。然后,在更高一层,对这些块级聚合表示再应用一次注意力机制,使得不同块的摘要信息能够交互。最后,将更新后的块级信息传播回块内的各个令牌。
  4. 实现变体与代表性模型

    • Longformer:结合了局部滑动窗口注意力和任务相关的全局注意力(在特定位置如问题标记上启用全局注意力)。
    • BigBird:使用了随机注意力、局部窗口注意力和全局令牌注意力三种模式,从理论上近似了全局注意力。
    • Reformer:使用局部敏感哈希(LSH)来将相似的令牌分到同一个桶(块)中,计算桶内注意力,这是一种基于内容相似性的动态分块方式。
      这些变体都是分块注意力思想的具体实现,旨在以可承受的计算代价逼近全局长序列建模的效果。
  5. 优势、局限与应用场景

    • 优势:显著降低了超长序列场景下的计算和内存开销,使模型能够处理远超传统Transformer限制的文本、基因组序列或时间序列数据。
    • 局限:不可避免地会损失一部分全局上下文信息,信息传递的路径变长或受限,可能影响对极度分散的长距离依赖的捕获精度。
    • 应用场景:主要用于需要处理长文档的 NLP 任务(如长文档分类、摘要、问答)、代码分析、生物信息学中的长DNA/RNA序列分析,以及高分辨率图像分块处理等。它是构建高效“长上下文”大语言模型的关键技术之一。
神经网络Transformer架构中的分块注意力 问题定义与动机 : 在处理极长序列(如数万甚至数十万个令牌)时,标准的自注意力机制的计算复杂度和内存消耗与序列长度的平方(O(n²))成正比,这使其在计算资源和时间上变得不可行。 分块注意力 是一种旨在缓解这一问题的优化技术。其核心思想是:不计算整个长序列上所有令牌对之间的全局注意力,而是将序列分割成固定大小的块,并主要在块内计算注意力,同时辅以有限的跨块信息交互。 基本原理与分块策略 : 序列分块 :首先,将输入序列(长度为 L)分割为 C 个连续的、不重叠的块,每个块包含大致 L/C 个令牌。例如,一个长度为 16,384 的序列可以被分成 64 个块,每个块 256 个令牌。 局部注意力计算 :对于模型中的每个注意力头,注意力计算被限制在每个块内部进行。这意味着,块内的每个令牌只能关注到同一块内的其他令牌,从而将计算复杂度从 O(L²) 降低到 O(C * (L/C)²) = O(L² / C)。内存消耗也从存储一个 L x L 的注意力矩阵,变为存储 C 个 (L/C) x (L/C) 的矩阵。 信息隔离问题 :纯粹的块内注意力会导致不同块之间的信息完全隔离,模型无法捕获长距离的依赖关系,这对于理解文档级语义是致命的。 跨块信息流动机制 : 为了解决信息隔离问题,分块注意力必须引入机制来允许信息在不同块之间流动。常见的方法包括: 滑动窗口 :在计算块注意力时,除了本块内的令牌,还为每个块额外引入其前后相邻块的部分令牌(如前一个块的后k个令牌和后一个块的前k个令牌)作为可关注的上下文。这形成了一个跨越块边界的局部滑动窗口。 全局令牌 :在序列中引入少量可学习的“全局令牌”或“特殊令牌”(例如 [ CLS ] 或额外的记忆令牌)。这些全局令牌会被添加到每个块中,或者作为一个单独的块。块内的局部令牌可以关注这些全局令牌,而全局令牌可以关注所有块的所有令牌(或大部分)。通过全局令牌作为“信息中转站”,不同块之间的信息得以间接交互。 分层或递归聚合 :先对每个块进行块内注意力计算,得到每个块的聚合表示(例如,通过池化或使用一个特殊的块摘要令牌)。然后,在更高一层,对这些块级聚合表示再应用一次注意力机制,使得不同块的摘要信息能够交互。最后,将更新后的块级信息传播回块内的各个令牌。 实现变体与代表性模型 : Longformer :结合了局部滑动窗口注意力和任务相关的全局注意力(在特定位置如问题标记上启用全局注意力)。 BigBird :使用了随机注意力、局部窗口注意力和全局令牌注意力三种模式,从理论上近似了全局注意力。 Reformer :使用局部敏感哈希(LSH)来将相似的令牌分到同一个桶(块)中,计算桶内注意力,这是一种基于内容相似性的动态分块方式。 这些变体都是 分块注意力 思想的具体实现,旨在以可承受的计算代价逼近全局长序列建模的效果。 优势、局限与应用场景 : 优势 :显著降低了超长序列场景下的计算和内存开销,使模型能够处理远超传统Transformer限制的文本、基因组序列或时间序列数据。 局限 :不可避免地会损失一部分全局上下文信息,信息传递的路径变长或受限,可能影响对极度分散的长距离依赖的捕获精度。 应用场景 :主要用于需要处理长文档的 NLP 任务(如长文档分类、摘要、问答)、代码分析、生物信息学中的长DNA/RNA序列分析,以及高分辨率图像分块处理等。它是构建高效“长上下文”大语言模型的关键技术之一。