智猩猩AI整理
编辑:BugMaker
过去几年,大模型长上下文推理一直在寻找一个问题的答案。
当上下文越来越长,是否一定要牺牲模型能力,换取更低的推理成本?
传统Transformer中的全注意力机制(Full Attention)需要让每个Token关注全部历史信息,随着上下文增加,用于保存历史信息的KV Cache不断增长,推理显存和计算压力也随之上升。
为了摆脱这一限制,研究者提出了线性注意力(Linear Attention)路线,希望通过重新设计注意力计算方式,降低原本随序列长度增长的计算成本。
微软研究团队最近给出了一个反直觉结果:
可能不需要重新训练模型,不需要复杂的结构改造,只需要改变Attention计算范围,就能达到甚至超过许多线性注意力方案。
今天要介绍的这项工作来自微软的研究团队,论文《Sliding-window beats linear attention》系统比较了滑动窗口注意力(SWA)与多种线性注意力后训练方法。
![]()
实验覆盖1.3B到70B规模的大语言模型。结果显示,无需任何训练的滑动窗口注意力在11组通用知识和推理实验中9组取得最佳平均性能,在部分长上下文推理任务中,滑动窗口注意力准确率达到线性注意力方案的2到10倍。
早在2024年,田渊栋参与的StreamingLLM工作就发现,大语言模型在生成过程中会对最开始几个Token产生异常高的注意力,这种现象被称为注意力汇(Attention Sink)。
StreamingLLM利用这一现象,让模型保留前几个作为注意力汇的Token以及最近窗口Token。
微软团队进一步证明,注意力汇并不仅仅服务于流式生成场景。结合滑动窗口注意力后,它也能够超过部分线性注意力后训练方案,成为一种高效推理优化方式。
田渊栋本人也在社交平台转发这项工作,并表示这是“StreamingLLM再次发挥作用”,这一讨论也让注意力汇这一早期发现重新受到关注。
![]()
01
长上下文推理还有另一条路
随着上下文长度增加,Transformer最大的瓶颈来自自注意力机制(Self-Attention)。
在推理阶段,模型需要保存历史Token对应的Key和Value,也就是KV Cache(键值缓存)。每生成一个新Token,都需要继续维护这份不断增长的缓存。
线性注意力提出了一条完全不同的路线。
它通过重新设计注意力计算方式,降低随着序列增长带来的计算和存储压力。
但这类方法仍然存在一些现实问题。
一方面,它需要模型学习“哪些信息应该记住,哪些信息可以遗忘”。
另一方面,现有大模型和硬件优化大多围绕传统注意力机制设计,将Transformer转换为线性注意力通常需要额外训练。
![]()
此前一些工作已经证明,通过数千万甚至数十亿Token的后训练,可以让线性注意力恢复部分性能。
研究人员发现,一个更简单的方法可能被忽略了。
直接结合注意力汇机制的滑动窗口注意力,也许已经足够。
02
保留几个特殊Token,
滑动窗口注意力为什么有效
滑动窗口注意力的核心思想很简单。
模型不再关注全部历史Token,而只关注最近窗口内的信息。
例如窗口大小设置为64,当前Token只查看最近64个Token。
表面看,这似乎会损失大量信息。
Transformer经过多层堆叠后,局部窗口的信息仍然可以逐层传播,因此模型依然能够建立较远距离的信息联系。
研究发现,大语言模型经常会给最开始几个Token分配异常高的注意力,即使这些Token本身并没有重要语义。
这种异常吸收注意力的现象,就是注意力汇。
如果简单使用滑动窗口,当这些Token离开窗口后,模型性能会严重下降。
因此团队采用了一种简单策略,保留前4个Token作为注意力汇位置,同时关注最近窗口中的Token。
![]()
也就是最近窗口负责局部信息。
前几个Token作为注意力汇,避免初始Token离开窗口后造成性能下降。
03
不用训练,简单调整就能
超过部分方案
为了验证这一发现,论文测试了多个主流模型,包括Phi、Mistral、Llama、Qwen等,模型规模覆盖1.3B到70B。
实验指标包括MMLU、ARC、HellaSwag、PIQA等知识推理任务。
实验结果显示,滑动窗口注意力只需要在推理阶段调整注意力掩码(Attention Mask),无需任何训练,就能达到接近甚至超过线性注意力后训练模型的效果。
在MMLU测试中,滑动窗口注意力保留了原始模型93.2%的性能。
而部分线性注意力方法需要额外进行数千万甚至数十亿Token规模的训练,才能达到类似水平。
差距更明显的是长上下文推理任务。
在Needle-in-a-Haystack任务中,模型需要在大量无关文本中找到隐藏信息。
当上下文扩展到4K时,滑动窗口注意力可以恢复Full Attention在该任务上的17.2%—23%性能。
在BABILong长上下文测试中,4K上下文下滑动窗口注意力达到15%的准确率,而LoLCATs只有3%。
![]()
04
更低成本的长上下文推理方案
除了效果,论文还比较了不同注意力方案的推理速度和显存占用。
实验使用NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition进行测试。
结果显示,随着上下文长度增加,Full Attention速度持续下降,显存占用也线性增长。
而滑动窗口注意力在达到窗口大小后,显存基本保持稳定。
其中窗口大小为64的滑动窗口注意力拥有最低显存占用,同时保持较高解码速度。
滑动窗口注意力速度最快,并且在窗口小于512时,显存成本低于或接近线性注意力方案。
![]()
这篇论文并不是证明线性注意力没有价值。
作者也指出,线性注意力依然具有降低推理复杂度的潜力。
论文真正想回答的是,在已有大模型基础上,为了降低长上下文成本,是否真的需要重新设计Attention结构并进行额外训练?
从现有实验结果看,重新设计注意力结构并非唯一选择。
滑动窗口注意力通过一个非常简单的注意力掩码修改,就实现了接近原模型能力的长上下文推理效果。
在固定较小显存成本的场景下,优先考虑带注意力汇的滑动窗口注意力方案。
不过,这项工作目前也有一定限制。
现有实验主要集中在语言模型任务,作者还没有验证更复杂的Agent任务、多模态模型以及更大规模模型上的表现。
对于长上下文大模型而言,这项工作说明:
解决注意力机制瓶颈,不一定总要重新设计模型,有时候重新思考已有结构的使用方式,同样可能带来巨大收益。
关注+星标,获取AI前沿进展与开源一线动态
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.