注意力的 I/O 复杂性:闪快注意力有多优化?
提出了 FlashAttention,一种 IO 感知的确切关注算法。FlashAttention 使用平铺减少 GPU 高带宽内存(HBM)和 GPU 片上 SRAM 之间的内存读取 / 写入次数,并可扩展为块状稀疏关注。FlashAttention 使 Transformers 速度提高,使其具有更长的上下文并获得更高质量的模型,以及实现了 Path-X 挑战的首个 Transformers。
May, 2022
提出一种对 attention 算法的简化,使其在处理长序列时更省内存,并对其进行扩展,以此降低 self-attention 的内存消耗,同时保证数值稳定性和可微分性,通过测试结果表明,这样可以让 self-attention 在推断和不同阶段的内存开销分别降低 59 倍和 32 倍。
Dec, 2021
我们扩展了 FlashAttention 以容纳一大类稀疏性注意力模式,其中包括关键 / 查询删除和基于哈希的注意力。即使具有相对较低的稀疏度,我们的方法在序列长度增加时可见地改进 FlashAttention 的性能。不牺牲困惑度的情况下,我们将 transformer 语言模型的训练速度分别提高了 2.0 倍和 3.3 倍,对于长度为 8k 和 16k 的序列。
Jun, 2023
通过引入可分解的关注机制,我们将注意力机制的计算和内存复杂度从 O (N^2) 降低到 O (N),并保持了注意力矩阵的完整表示,具有稀疏性和全连接关系。经过各种标准设置的测试,结果表明我们的注意力机制具有稳定的性能,并在自我注意力被使用的多种应用领域中具有重要潜力。
Feb, 2024
本文提出了一种新的有效注意机制,其在计算代价和内存使用方面远优于点积注意力,这种资源效率使得它能够更广泛和灵活地集成到网络中,提高了观察精度,可以用于物体检测、实例分割和立体深度估计等领域。
Dec, 2018
LeanAttention 是一种可扩展的自注意力计算技术,通过重新设计解码阶段的执行流程,将自注意力机制的实现扩展到具有挑战性的长上下文长度情况,以并行计算的方式提供 2.6 倍的平均注意力执行加速和最多 8.33 倍的速度提升。
May, 2024
通过对内存进行注意操作与通过输入信号筛选交互相对来说不够优化,可以利用 Luna 或 Memory Augmented Transformer 等模型减少注意计算复杂度或在块处理中传播信息来显著提高性能。
Mar, 2024
我们通过分解提出了一种高效的多头自注意力交互方法,该方法通过建立注意力矩阵中的跨头交互来增强信息流动,并将注意力操作分解成查询和无键组件,以降低注意力矩阵的维度,从而实现更高效的注意力操作。实验结果表明,所提出的跨头交互方法在效率和性能上优于现有的方法和最先进的骨干模型。
Feb, 2024
我们提出了一个名为 HyperAttention 的近似注意力机制,用于解决大型语言模型(LLMs)中使用的复杂长上下文所带来的计算挑战。通过引入两个参数来衡量问题的难度,我们能够实现线性时间采样算法,即使矩阵具有无界的条目或较大的稳定秩。HyperAttention 具有模块化设计,容易集成其他快速底层实现,特别是 FlashAttention。实证上,通过利用局部敏感哈希(LSH)来识别大条目,HyperAttention 优于现有方法,在与 FlashAttention 等最先进解决方案相比,获得了显著的速度改进。我们验证了 HyperAttention 在不同长上下文数据集上的实证性能,例如,ChatGLM2 的推理时间得以加快 50%,而困惑度从 5.6 增加到 6.3。对于更大的上下文长度,例如 131k,并采取因果屏蔽,HyperAttention 在单个注意层上实现了 5 倍的加速。
Oct, 2023