← 返回 2026-02-05

FASA:基于频率感知的稀疏注意力机制 FASA: Frequency-aware Sparse Attention

Yifei Wang, Yueqi Wang, Zhenrui Yue, Huimin Zeng, Yong Wang, Ismini Lourentzou, Zhengzhong Tu, Xiangxiang Chu, Julian McAuley 📅 2026-02-03 👍 154 2026-07-13 08:35
KV缓存压缩 RoPE 注意力稀疏化 长上下文 高效推理

利用 RoPE 频率块的功能稀疏性,训练无关地动态预测 token 重要性以压缩 KV 缓存

前置知识

RoPE(Rotary Position Embedding,旋转位置编码)

RoPE 是一种将相对位置信息嵌入自注意力计算的位置编码方案。它通过对查询向量 $\mathbf{q}$ 和键向量 $\mathbf{k}$ 施加旋转变换来编码位置:对于位置 $t_1$ 的查询和位置 $t_2$ 的键,注意力分数为 $A_{t_1,t_2} = \mathbf{q}_{t_1} R_{t_1} (\mathbf{k}_{t_2} R_{t_2})^\top = \mathbf{q}_{t_1} R_{\Delta t} \mathbf{k}_{t_2}^\top$,其中 $R_{\Delta t}$ 是仅依赖相对偏移 $\Delta t = t_1 - t_2$ 的旋转矩阵。RoPE 将 $d$ 维向量划分为 $d/2$ 个正交的二维子空间(即频率块),每个子空间关联一个角频率 $\theta_i = B^{-2(i-1)/d}$,低维度索引对应高旋转频率。

本文的核心发现——频率块级别的功能稀疏性——正是源于 RoPE 旋转矩阵的这种分块对角结构,理解 RoPE 的频率分块机制是读懂全文的关键。

KV 缓存(Key-Value Cache)

在自回归语言模型推理过程中,每生成一个新 token 都需要对所有历史 token 进行注意力计算。为避免重复计算,模型将每一层每个 token 的键(Key)和值(Value)向量缓存下来,这就是 KV 缓存。随着序列长度增长,KV 缓存的内存占用线性增加——对于一个拥有 $L$ 层、$d$ 维隐藏状态的模型,缓存大小为 $O(L \times t \times 2d)$,其中 $t$ 为序列长度。在长上下文场景下(如 64K token),KV 缓存成为 GPU 显存的主要瓶颈。

FASA 的核心目标就是压缩 KV 缓存,理解其内存增长机制和解码阶段的带宽瓶颈是理解本文动机的前提。

Token 蒸发(Token Eviction)

Token 蒸发是 KV 缓存压缩的一类主流方法,其核心思想是只保留对当前生成最重要的 token 子集,丢弃(蒸发)其余 token。现有方法可分为三类:静态策略(如 Stream 只保留开头和最近 token)、自适应策略(如 SnapKV 在预填充阶段一次性筛选、Quest 按页粒度检索)和学习策略(训练一个 token 重要性预测器)。每种方法都有各自的局限:静态策略不可逆地丢失信息,自适应策略的启发式排名无法捕获 token 重要性的动态本质,学习策略泛化性差。

FASA 属于 token 蒸发范式,但提出了一种全新的、基于频率分析的 token 重要性估计方式,理解现有方法的不足才能体会到 FASA 的创新之处。

上下文一致性(Contextual Agreement, CA)

这是本文提出的一个关键度量指标,用于量化单个频率块(FC)与完整注意力头之间的对齐程度。具体而言,对于查询 $\mathbf{q}_t$ 和键矩阵 $K_{1:t}$,CA 定义为单个 FC 选出的 top-K token 集合与完整注意力头选出的 top-K token 集合之间的归一化交集大小:$CA_{l,h,i}^{K} = |\text{TopK}(\alpha^{l,h}) \cap \text{TopK}(\alpha_{i}^{l,h})| / K$。高 CA 分数意味着该频率块能有效复现完整注意力头的 token 选择行为。

CA 指标是量化功能稀疏性的核心工具,也是识别主导频率块和离线校准的理论基础,贯穿整个方法论。

链式思维推理(Chain-of-Thought, CoT)

链式思维推理是指语言模型在给出最终答案前,先生成一系列中间推理步骤的推理范式。在长链式思维(Long-CoT)场景中,模型可能生成数千甚至上万 token 的推理链,这些推理链中蕴含着动态变化的'思维轨迹'——中间步骤的正确性依赖于对早期推理内容的持续记忆。这对 KV 缓存压缩提出了特殊挑战:任何丢失关键推理步骤 token 的压缩策略都可能导致推理链断裂。

Long-CoT 推理是本文评估的三大范式之一,也是最能体现 FASA 优势的场景——在这一场景中 FASA 以 10% 的上下文预算达到了接近完整缓存的准确率。

研究动机

大语言模型在处理长上下文输入时面临一个核心瓶颈:KV 缓存的内存占用。以 64K token 序列为例,解码阶段占据了总延迟的 90%(如图 3 所示),因为每个 token 的生成都需要从 GPU 内存中加载完整的 KV 缓存,这是一个严重受限于内存带宽的过程,导致 GPU 计算能力被严重浪费。现有的 token 蒸发方法试图通过选择性保留关键 token 来解决这个问题,但它们各有致命缺陷:Stream 采用固定规则只保留开头和最近 token,在 NarrativeQA 上准确率暴跌 16.7%;SnapKV 在预填充阶段一次性估计 token 重要性,无法适应解码过程中 token 重要性的动态变化;Quest 采用页级粒度检索,被迫整页加载即使只需要其中少数 token,且在 NarrativeQA 上性能下降达 15.4%;H2O 等方法甚至会诱导模型生成冗余输出,增加不必要的计算负担。此外,这些方法在长链式思维推理场景中表现尤为糟糕——SnapKV 在 R1-Llama 上将 AIME24 的准确率从 72.4% 降至 21.6%,因为它们的静态压缩启发式方法无法维持推理所需的逻辑依赖链。

本文的目标是本文的目标是设计一种训练无关(training-free)、高粒度、查询感知(query-aware)的 token 重要性预测机制,能够在解码阶段动态评估每个 token 对当前查询的实际重要性,从而实现高效的 KV 缓存压缩。具体而言,作者希望在将 KV 缓存压缩至 25% 甚至更低的同时,保持接近完整缓存(full-KV)的性能,即性能损失控制在 0.7% 以内。同时,该方法需要在三个核心任务范式——长上下文理解、长序列建模和长链式思维推理——上均表现出色,并提供内存优化(FASA-M)和计算优化(FASA-C)两种硬件感知变体以适应不同部署场景。

与已有工作不同的是,本文的独特切入角度源于对 RoPE 位置编码的一个全新洞察:频率块(Frequency Chunk, FC)级别的功能稀疏性。此前的工作虽然也关注注意力稀疏性,但大多从 token 级别或维度级别入手,忽略了 RoPE 旋转矩阵的内在结构。本文发现,RoPE 将向量划分为 $d/2$ 个二维子空间(频率块),由于每个子空间的旋转速度不同,它们在功能上产生了显著分化——少数'主导'频率块(dominant FCs)承载了语义信息,负责动态的上下文感知,而多数'结构性'频率块主要编码位置信息(如近因偏置和注意力汇聚效应)。这一发现的关键意义在于:主导频率块可以作为 token 重要性的免费代理指标——只需聚合少数主导 FC 的注意力分数,就能准确预测完整注意力头的 token 选择行为。更重要的是,主导 FC 的识别是一次性的、任务无关的过程,其计算开销可忽略不计。这使得 FASA 在无需任何训练的情况下实现了查询感知的 token 蒸发,这是此前所有方法都未能做到的。

核心方法

FASA 的整体思路可以用一个比喻来理解:想象你要在一本 1000 页的书中快速找到最重要的段落。传统方法要么只看开头和结尾(Stream),要么在阅读时用便签标记重要段落但之后就不再更新(SnapKV),要么按章节粗略翻阅(Quest)。FASA 的做法则不同——它发现书中的某些'关键词'(主导频率块)足以帮你快速判断每段话是否重要,而且这些关键词对所有类型的书都一样。具体而言,FASA 采用两阶段的'粗筛-精炼'策略:第一阶段(Token 重要性预测,TIP)利用离线校准识别出的主导频率块,在低维子空间中高效估计每个 token 的重要性分数,筛选出最关键的 token 子集;第二阶段(聚焦注意力计算,FAC)仅对这个精简子集执行完整的、高保真的注意力计算。由于主导频率块的识别是一次性的离线过程,TIP 阶段的额外开销几乎为零,而 FAC 阶段的计算量因 token 大幅减少而显著降低。整个框架的复杂度为 $O(2tN_{\text{tip}} + 2N_{\text{fac}}d)$,在 $N_{\text{fac}} \ll t$ 时接近 $d/N_{\text{tip}}$ 倍的理论加速。

FASA 最本质的创新在于发现了 RoPE 诱导的功能稀疏性并将其转化为实用的压缩工具。与已有方法的根本区别体现在三个层面。第一,信息来源不同:现有方法(如 SnapKV、H2O)依赖完整的注意力分数来评估 token 重要性,这本身就是昂贵的;FASA 则利用主导频率块在低维子空间中计算的近似分数作为免费代理。第二,动态性不同:静态方法(如 Stream)的策略是固定的,无法适应查询的变化;自适应方法(如 SnapKV)在预填充阶段一次性估计后就不再更新;FASA 的 TIP 阶段在每个解码步骤都基于当前查询动态计算 token 重要性。第三,粒度不同:Quest 采用页级粒度,被迫检索整页内容;FASA 在 token 级别精确选择。更关键的是,FASA 发现主导频率块具有三个重要性质:稀疏性(不到 1% 的 FC 贡献了绝大部分上下文感知能力)、通用性(在不同模型架构和规模上一致存在)和任务不变性(跨任务的主导 FC 重叠率超过 70%)。这三个性质保证了离线校准结果可以跨任务复用,使得 FASA 的实际部署成本极低。

方法步骤详情

FASA 的完整流程分为离线校准和在线推理两个阶段。离线校准阶段(Algorithm 1):给定一个小规模校准数据集 $\Omega$ 和目标数量 $N_{\text{tip}}$,对校准数据中的每个 token 生成步骤,计算每个注意力头 $(l, h)$ 中每个频率块 $i$ 的上下文一致性分数 $CA_{l,h,i}^{K}$,然后取平均,最终选择使预期 CA 分数最大化的一组频率块索引 $I_{l,h}^{\text{dom}}$。这个过程只需在极少量样本上执行一次(实验中仅使用 Qasper 数据集的一个样本),且结果可跨任务复用。在线推理阶段的第一步——Token 重要性预测(TIP):在解码步骤 $t$,对于当前查询向量 $\mathbf{q}_t$ 和历史键矩阵 $K_{1:t}$,仅使用预校准的主导频率块索引 $I^{\text{dom}}$ 聚合注意力分数:$\mathbf{S}_t^{l,h} = \sum_{i \in I_{l,h}^{\text{dom}}} \alpha_{i}^{l,h}(\mathbf{q}_t, K_{1:t})$,然后基于这些分数选出 top-$N_{\text{fac}}$ 个最重要的 token 索引集合 $\mathcal{T}_t$。第二步——聚焦注意力计算(FAC):从原始 KV 缓存中收集 $\mathcal{T}_t$ 对应的键值子集 $K_{\mathcal{T}_t}$ 和 $V_{\mathcal{T}_t}$,对这些选定 token 执行完整的多头注意力计算得到输出 $\mathbf{O}_t^{l,h} = \text{Softmax}(\mathbf{q}_t K_{\mathcal{T}_t}^\top / \sqrt{d_k}) V_{\mathcal{T}_t}$。关键设计是保留被选中 token 的原始绝对位置,从而维护位置嵌入的完整性。

技术新颖性

FASA 的技术新颖性体现在多个层面。首先,'频率块级别的功能稀疏性'是一个全新的发现——此前的工作从未从 RoPE 旋转矩阵的频率分块结构出发来分析注意力稀疏性。Barbero et al. (2025) 和 Wei et al. (2025) 虽然观察到高频和低频 FC 的功能差异,但未将其与 token 重要性预测联系起来。其次,将 CA 指标作为量化工具是方法论上的创新,它提供了一个严格的标准来评估单个 FC 与完整注意力头的一致性,从而为'主导 FC'的概念奠定了实证基础。第三,FASA 的核心定位与低秩压缩方法(如 SparQ、LoKi)有本质区别:低秩方法的目标是降维以减少存储或计算,而 FASA 的目标是利用低秩子空间作为 token 重要性的代理指标来实现动态 token 选择。这使得 FASA 与低秩方法正交且可组合——论文展示了 FASA 与 PyramidKV 的兼容性,两者结合时在 Llama3.1-8B 上进一步提升了 0.7-1.1% 的性能。第四,FASA-C 和 FASA-M 两个变体的设计充分考虑了硬件约束:FASA-M 将非主导键和值缓存卸载到 CPU,仅在 GPU 上保留主导键和被选中的子集;FASA-C 在 GPU 上保留完整缓存但只访问稀疏子集以减少内存 I/O,使用 Triton 实现,实现高达 2.56 倍的解码加速。

由上下文一致性(CA)热力图揭示的频率块功能稀疏性
Figure 1: 由上下文一致性(CA)热力图揭示的频率块功能稀疏性
FASA 方法概览
Figure 2: FASA 方法概览

实验结果

FASA 在三大任务范式上均展现出接近完整 KV 缓存的性能。在长上下文理解任务(LongBench-V1)上,FASA 在所有五个模型(Llama3.2-3B、Qwen2.5-7B、Mistral-7B、Llama3.1-8B、Qwen2.5-14B-1M)上一致性地超越所有基线方法,平均性能损失仅 0.5-1.1%,而最强基线 SnapKV 的损失为 3.4-5.2%。特别值得注意的是,FASA 有时甚至超越了完整 KV 缓存(FKV)的性能——例如在 Mistral-7B 上,FASA 的平均分为 47.8 而 FKV 为 47.4。作者将此归因于 FASA 有效缓解了无关 token 带来的注意力干扰,Oracle 基线同样偶尔超越 FKV 的现象佐证了这一解释。在长序列建模任务上,FASA 在 WikiText、PG-19 和 C4 三个语料库上进行了困惑度评估,结果如图 4 所示:即使在 40% 的 token 保留率下,FASA 的困惑度也与 FKV 几乎一致,而 Stream 在相同设置下困惑度急剧上升。在长链式思维推理任务上,FASA 的表现最为突出:在 DeepSeek-R1-Distill-Llama-8B 的 MATH500 测试中,FASA 在 10% 上下文预算下达到 62.2% 准确率(FKV 为 72.4%),而 SnapKV 仅为 21.6%;在 DeepSeek-R1-Distill-Qwen-32B 的 AIME24 测试中,FASA 达到 73.2%(FKV 为 72.8%),在 500 token 预算下甚至超越了 FKV。效率方面,FASA-C 在 64K 序列长度下实现了 2.56 倍的解码加速(使用 $N_{\text{tip}} = 16$),FASA-M 实现了 8 倍的内存压缩。FASA 与 PyramidKV 的兼容性实验(表 4)显示两者结合时在所有预算下都带来了一致的性能提升(0.1-1.1%),证明了 FASA 的模块化设计优势。

不同数量主导频率块下的复合 CA 分数
Table 1: 不同数量主导频率块下的复合 CA 分数
FASA 在 LongBench-V1 基准上的性能对比
Table 2: FASA 在 LongBench-V1 基准上的性能对比
FASA 在 MATH500 和 AIME24 上的长链式思维推理性能
Table 3: FASA 在 MATH500 和 AIME24 上的长链式思维推理性能
FASA 与 PyramidKV 的兼容性实验
Table 4: FASA 与 PyramidKV 的兼容性实验
主导频率块和非主导频率块的比例
Table 9: 主导频率块和非主导频率块的比例
跨任务主导频率块重叠矩阵
Table 10: 跨任务主导频率块重叠矩阵
FASA 在困惑度评估上与基线方法的对比
Figure 4: FASA 在困惑度评估上与基线方法的对比
不同数量主导频率块和 token 预算的协同效应
Figure 5: 不同数量主导频率块和 token 预算的协同效应
查看结构化数据
任务指标本文基线提升
LongBench-V1(Llama3.1-8B,256 token 预算) 平均分 48.2 SnapKV 45.0 +3.2(相比 FKV 48.7 仅损失 0.5)
LongBench-V1(Qwen2.5-14B-1M,256 token 预算) 平均分 49.2 SnapKV 45.9 +3.3(相比 FKV 50.3 仅损失 1.1)
MATH500(R1-Distill-Qwen-14B,500 token 预算) pass@1 准确率 88.8% RKV 74.0% +14.8(相比 FKV 92.4%)
AIME24(R1-Distill-Qwen-32B,500 token 预算) pass@1 准确率 62.0% RKV 32.7% +29.3(甚至超越 FKV 72.8% 在 1500 预算下的 70.0%)
长序列建模(Llama3.1-8B,WikiText,40% 保留率) 困惑度 约 6.0 Stream 约 7.0,Quest 约 6.5 困惑度接近 FKV 的 5.5
解码加速(64K 序列,FASA-C) 加速比 2.56x 无直接基线 仅使用 18.9% 的缓存

局限与改进

尽管 FASA 取得了令人印象深刻的实验结果,但仍存在几个值得注意的局限。首先,FASA 需要进行一次离线校准来识别主导频率块,虽然校准数据量极小(仅一个样本),但这个过程需要在目标模型上运行推理以收集 CA 分数,对于超大规模模型可能带来一定的部署前成本。其次,论文的实验主要在 3B 到 32B 规模的模型上进行,对于更大规模模型(如 70B+)上主导频率块的稀疏性和通用性是否依然成立尚需验证。第三,FASA 的两个变体(FASA-M 和 FASA-C)涉及不同的硬件实现细节,FASA-M 需要 CPU-GPU 数据传输且可能引入延迟开销(虽然可以通过预取技术缓解),FASA-C 的 Triton 实现需要特定的硬件支持。第四,在非 RoPE 模型上的扩展性虽然有初步验证(ALiBi 和 Partial-RoPE),但实验规模和任务范围有限,DeepSeek-V2-Lite-Chat 上的结果与 FKV 相比仍有差距(如 Lcc 上 62.49 vs 63.40)。此外,论文对长上下文场景下不同层的主导 FC 差异分析不够深入,图 13 显示不同层的 FC 分布存在显著变化,这可能影响跨层统一配置的最优性。

独立分析的弱点

从独立分析的角度看,FASA 存在以下几个可改进的弱点。第一,当前的离线校准采用贪心搜索策略选择使 CA 分数最大化的 FC 子集,但这可能陷入局部最优——特别是在不同层的主导 FC 分布差异显著时(如图 13 所示,不同层的热力图模式差异明显),为每层独立校准 FC 集合可能会带来额外的性能提升,虽然会增加校准复杂度。第二,FASA 在 TIP 阶段使用 $N_{\text{tip}} = 16$ 的统一配置(约占维度的 25%),这意味着 75% 的频率信息被忽略,在语义信息可能更分散于多个 FC 的复杂任务上,动态调整 $N_{\text{tip}}$ 可能比固定值更优。第三,FASA 的 FAC 阶段保留了被选中 token 的原始绝对位置,但未考虑 token 蒸发后位置编码的连续性问题——当大量中间 token 被移除时,剩余 token 之间的位置跳跃可能对某些依赖精确位置信息的任务产生微妙影响。第四,论文未充分探索 FASA 与量化方法的组合效果——既然 FASA 与低秩方法正交,那么与 KV 缓存量化(如 KIVI、KVQuant)结合是否能实现更极致的压缩比?改进方向包括:设计自适应的层特定校准策略、开发动态 $N_{\text{tip}}$ 调度机制、探索与量化的联合优化方案。

未来方向

作者在论文中暗示了几个未来研究方向。首先,FASA 对非 RoPE 模型的扩展(第 6 节)是初步的,未来可以深入研究 ALiBi、LLaMA 等不同位置编码方案下的功能稀疏性,探索是否存在一个统一的频率分析框架。其次,FASA 的核心洞察——主导频率块作为 token 重要性的免费代理——可以启发更多下游应用:例如在 RAG(检索增强生成)中用于文档相关性预筛选、在多轮对话中用于历史信息的选择性记忆、在代码生成中用于长代码库的上下文管理。第三,从理论角度深入分析为什么 RoPE 会诱导功能稀疏性——这可能与旋转矩阵的特征值分布、信息在不同频率上的编码效率有关——将为该领域提供更坚实的理论基础。第四,将 FASA 的思想推广到视觉 Transformer 和多模态模型中,探索频率块稀疏性是否是一个跨模态的普遍现象。最后,FASA 与 PyramidKV 的兼容性实验表明模块化设计的潜力,未来可以构建一个更完整的 KV 缓存优化工具箱,将 FASA(选择哪些 token)、PyramidKV(每层保留多少 token)和量化(如何压缩每个 token 的表示)系统性地整合。

复现评估

FASA 的复现性较好。代码已在 GitHub 开源(https://github.com/AMAP-ML/FASA-ICLR2026),基于 HuggingFace Transformers 库实现,采用非侵入式的 monkey patching 方式集成——仅需在 FlashAttention 的 forward 函数中插入一行 token 选择逻辑。所有实验均使用公开的预训练模型(Llama、Mistral、Qwen 系列)和公开基准数据集(LongBench、MATH500、AIME24、WikiText、PG-19、C4),不涉及私有数据。校准过程极为轻量:仅需一个样本即可完成,计算开销可忽略不计。FASA-C 的 Triton 实现基于 SparQ 的开源代码。主要复现成本在于模型推理所需的 GPU 资源——对于 32B 规模模型需要较大显存,但 FASA-M 变体通过 CPU-GPU 卸载策略可以降低硬件门槛。总体而言,一个具备中等 ML 工程能力的团队在拥有单张高端 GPU 的条件下即可复现核心结果。