论文
Stream-CQSA:精确的内存外恢复以引起注意
Stream-CQSA: Exact Out-of-Memory Recovery for Attention
摘要
长上下文 大语言模型 不仅受到注意力成本的限制,还受到内存不足(OOM)故障的限制。即使内核经过优化,选定的注意调用也可能不适合可用的设备内存。精确和近似注意方法减少了内存使用,但每个固定实现仍然具有特定于设备的容量边界。我们引入了 Stream-CQSA,这是一种基于 CQS 分解的注意力级 OOM 恢复框架,源自循环仲裁集(CQS)理论。 Stream-CQSA 将不可行的注意力调用递归地划分为独立的子序列任务,使用兼容的内部内核执行每个任务,并重构本地统计数据以恢复完整的注意力输出。这种恢复相对于包装的注意力内核来说是精确的,无论该内核是精确的还是近似的。与主要基线 FlashAttention-2 相比,我们的原生 Stream-CQSA 内核相对于密集的 float64 参考改进了 16 位前向输出误差,并在 FlashAttention-2 适合 GPU 内存的情况下匹配 16 位后向梯度误差。在最长的可行基线长度下,前向运行时间花费 $1.5$--$1.9\times$,前向-后向运行时间花费 $2.1$--$2.4\times$。超出序列长度边界,我们的方法在 FlashAttention-2 OOM 时继续返回输出。因此 Stream-CQSA 并不是一种更快的注意力方法。相反,它通过交换额外的计算、主机设备传输和重组来完成,将内存容量故障转换为可恢复的执行路径。