本文介绍了一项近似注意力机制新研究,耶鲁大学、谷歌研究院等机构提出了 HyperAttention,使 ChatGLM2 在 32k 上下文长度上的推理时间快了 50%。
Transformer 已经成功应用于自然语言处理、计算机视觉和时间序列预测等领域的各种学习任务。虽然取得了成功,但这些模型仍面临着严重的可扩展性限制,原因是对其注意力层的精确计算导致了二次(在序列长度上)运行时和内存复杂性。这对将 Transformer 模型扩展到更长的上下文长度带来了根本性的挑战。
业界已经探索了各种方法来解决二次时间注意力层的问题,其中一个值得注意的方向是近似注意力层中的中间矩阵。实现这一点的方法包括通过稀疏矩阵、低秩矩阵进行近似,或两者的结合。
然而,这些方法并不能为注意力输出矩阵的近似提供端到端的保证。这些方法旨在更快地逼近注意力的各个组成部分,但没有一种方法能提供完整点积注意力的端到端逼近。这些方法还不支持使用因果掩码,而因果掩码是现代 Transformer 架构的重要组成部分。最近的理论边界表明,在一般情况下,不可能在次二次时间内对注意力矩阵进行分项近似。
不过,最近一项名为 KDEFormer 的研究表明,在注意力矩阵项有界的假设条件下,它能在次二次时间内提供可证明的近似值。从理论上讲,KDEFormer 的运行时大约为
;它采用核密度估计 (kernel density estimation,KDE) 来近似列范数,允许计算对注意力矩阵的列进行采样的概率。然而,目前的 KDE 算法缺乏实际效率,即使在理论上,KDEFormer 的运行时与理论上可行的 O (n) 时间算法之间也有差距。
在文中,作者证明了在同样的有界条目假设下,近线性时间的
算法是可能的。不过,他们的算法还涉及使用多项式方法来逼近 softmax,很可能不切实际。
而在本文中,来自耶鲁大学、谷歌研究院等机构的研究者提供了一种两全其美的算法,既实用高效,又是能实现最佳近线性时间保证。此外,该方法还支持因果掩码,这在以前的工作中是不可能实现的。
论文标题:HyperAttention: Long-context Attention in Near-Linear Time论文链接:
https://arxiv.org/abs/2310.05869 本文提出一种名为「HyperAttention」近似注意力机制,以解决大型语言模型中使用的长上下文日益复杂带来的计算挑战。最近的工作表明,在最坏情况下,除非注意力矩阵的条目有界或矩阵的稳定秩较低,否则二次时间是必要的。 研究者引入了两个参数来衡量:(1)归一化注意力矩阵中的最大列范数,(2)检测和删除大条目后,非归一化注意力矩阵中的行范数的比例。他们使用这些细粒度参数来反映问题的难易程度。只要上述参数很小,即使矩阵具有无界条目或较大的稳定秩,也能够实现线性时间采样算法。 HyperAttention 的特点是模块化设计,可以轻松集成其他快速底层实现,特别是 FlashAttention。根据经验,使用 LSH 算法来识别大型条目,HyperAttention 优于现有方法,与 FlashAttention 等 SOTA 解决方案相比,速度有了显著提高。研究者在各种不同的长上下文长度数据集上验证了 HyperAttention 的性能。 例如,HyperAttention 使 ChatGLM2 在 32k 上下文长度上的推理时间快了 50%,而困惑度从 5.6 增加到 6.3。更大的上下文长度(例如 131k)和因果掩码情况下,HyperAttention 在单个注意力层上速度提升了 5 倍。

这里,矩阵 A := exp (QK^T) 被定义为 QK^T 的元素指数。D 是一个 n×n 对角矩阵,由 A 各行之和导出, 这里
。在这种情况下,矩阵 A 被称为「注意力矩阵」,(D^-1 ) A 被称为「softmax 矩阵」。值得注意的是,直接计算注意力矩阵 A 需要 Θ(n²d)运算,而存储它需要消耗 Θ(n²)内存。因此,直接计算 Att 需要 Ω(n²d)的运行时和 Ω(n²)的内存。
研究者目标是高效地近似输出矩阵 Att,同时保留其频谱特性。他们的策略包括为对角缩放矩阵 D 设计一个近线性时间的高效估计器。此外,他们通过子采样快速逼近 softmax 矩阵 D^-1A 的矩阵乘积。更具体地说,他们的目标是找到一个具有有限行数
的采样矩阵
以及一个对角矩阵
,从而满足误差的算子规范的以下约束:



,使得
。
算法的第一步是使用 Hamming 排序 LSH (sortLSH) 将键和查询散列到大小均匀的桶中,从而识别注意力矩阵 A 中的大型条目。算法 1 详细介绍了这一过程,图 1 直观地说明了这一过程。


整合近似对角线
和近似
与值矩阵 V 之间矩阵乘积的子程序。因此,研究者引入了 HyperAttention,这是一种高效算法,可以在近似线性时间内近似公式(1)中具有频谱保证的注意力机制。算法 3 将定义注意力矩阵中主导条目的位置的掩码 MH 作为输入。这个掩码可以使用 sortLSH 算法(算法 1)生成,也可以是一个预定义的掩码,类似于 [7] 中的方法。研究者假定大条目掩码 M^H 在设计上是稀疏的,而且其非零条目数是有界的
。
如图 2 所示,本文方法基于一个重要的观察结果。屏蔽注意力 M^C⊙A 可以分解成三个非零矩阵,每个矩阵的大小是原始注意力矩阵的一半。完全位于对角线下方的 A_21 块是未屏蔽注意力。因此,我们可以使用算法 2 近似计算其行和。
图 2 中显示的两个对角线区块
和
是因果注意力,其大小只有原来的一半。为了处理这些因果关系,研究者采用递归方法,将它们进一步分割成更小的区块,并重复这一过程。算法 4 中给出了这一过程的伪代码。


此外,研究者评估了 LongBench 数据集上 monkey patched chatglm2-6b-32k 的性能,并计算单 / 多文档问答、摘要、小样本学习、合成任务和代码补全等各自任务上的评估分数。结果如下表 1 所示。
虽然替换 HyperAttention 通常会导致性能下降,但他们观察到它的影响会基于手头任务发生变化。例如,摘要和代码补全相对于其他任务具有最强的稳健性。

原文标题:全新近似注意力机制HyperAttention:对长上下文友好、LLM推理提速50%
文章出处:【微信公众号:智能感知与物联网技术研究所】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !