找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3683

积分

0

好友

506

主题
发表于 2026-2-12 07:41:05 | 查看: 32| 回复: 0

无需训练、不依赖特定硬件,仅用 12%的 KV 对就能实现接近全注意力的效果——这就是 Qualcomm AI Research 带来的全新稀疏注意力算法 QuoKA,旨在破解大语言模型(LLM)推理的效率瓶颈。

近年来,随着大型语言模型(LLM)的广泛应用,其推理效率逐渐成为制约落地的重要因素。尤其是在预填充阶段,也就是模型需要一次性处理整个输入提示,并初始化 KV 缓存的环节,计算负担最为沉重。据统计,这一阶段常常占据整体推理时间的 70% 以上。在 CPU、消费级 GPU 以及各类边缘设备上,由于计算和内存资源有限,这一问题更为突出。

为缓解长序列带来的压力,业界普遍采用分块预填充技术:将输入序列切分成较小的块,逐块处理。虽然这种方法改善了任务调度与内存利用,但由于 Transformer 注意力机制具有二次复杂度,其计算开销依然巨大。

而现有的加速方案,主要是稀疏注意力方法,又分为两大方向:

  • 基于固定模式的稀疏化,通常依赖特定硬件内核,移植性差;
  • 另一种是基于查询的动态选择,虽然在单查询生成时有效,但在预填充阶段面对多个查询同时处理时,性能会明显下降。

不同稀疏注意力方法的复杂度对比

那么,有没有一种方法,既能显著降低计算量,又能保持模型精度,还能轻松部署在不同硬件上呢?

QUOKA 论文标题页

Qualcomm AI Research 提出了一种面向查询的 KV 选择稀疏注意力算法 QUOKA,专为大语言模型(LLM)分块预填充推理加速设计。该方法无需训练、硬件无关,通过挖掘查询与键的几何特征实现亚二次复杂度的注意力计算,有效解决了 LLM 预填充阶段的高延迟瓶颈。

现有稀疏注意力方法或依赖定制内核导致移植性差,或在多查询预填充场景下性能大幅下降,而分块预填充因注意力的二次复杂度仍存在高计算成本。

QUOKA 分块预填充与 KV 选择流程

QUOKA 基于一个核心发现——与平均查询余弦相似度低的查询会与更多键产生强交互,设计了查询子选择、余弦相似度评分、组感知聚合三步策略。它保留高信息度查询,通过余弦相似度衡量查询-键相关性,结合最大聚合与平均聚合分别保留关键交互、适配 GQA 架构,且仅采用标准线性代数操作,兼容主流密集注意力内核。

实验在 Needle-In-AHaystack、LongBench 等多类长上下文基准测试中验证:

  • QUOKA 减少 88% 的 KV 对使用,精度接近稠密注意力,显著优于现有稀疏方法;
  • 在英伟达 GPU 上实现 5 倍注意力提速、3 倍首 Token 时间降低,英特尔 Xeon CPU 提速近 7 倍;
  • 在 Llama3、Qwen3 等多模型及 MoE、GQA 架构中均表现良好,超参数鲁棒性强,且可适配生成阶段,在 Math500 推理任务中优于生成专用稀疏方法。

QuoKA 为资源受限环境下的 LLM 推理加速提供了高效方案,未来可通过挖掘通道稀疏性进一步优化计算效率。

引入图:高通提出的创新方案

关键问题

问题一:关于 QUOKA 方法的核心假设与泛化能力

论文中指出,QUOKA 方法的有效性建立在一个关键观察上:“与平均查询余弦相似度较低的查询与更多键交互更强,对最终注意力得分的贡献更大”。这一观察在 Llama 等模型上得到了验证,但这是否普遍适用于所有 LLM 架构(如 MoE、非 Transformer 结构)和所有类型的输入(如代码、数学推理、多模态输入)?如果某些模型或任务中查询分布不符合这一几何特性,QUOKA 是否会失效?论文中未对不同注意力头、层数或模型规模的敏感性进行系统分析,这是否意味着 QUOKA 的“硬件无关性”优势是以牺牲结构适应性为代价的?

核心假设有效,但泛化性有边界,已在多种架构中得到验证。

QUOKA 的核心观察——即与平均查询余弦相似度低的“离群查询”主导注意力——并非凭空臆测,而是基于对现代 LLM 注意力几何特性的实证分析。

注意力几何特性实证观察

该观察在 Llama、Qwen、GPT-OSS 等多个主流“仅解码器”模型家族上得到验证,并且论文结果和相关工作中明确指出,该方法在 RoPE/NoPE 位置编码、MoE 架构以及分组查询注意力(GQA)上均表现良好,这为其“跨架构泛化”的主张提供了直接证据。这表明该【几何特性】很可能是现代密集或 MoE 型 Transformer 注意力机制中的一个普遍涌现现象,而非单一模型的巧合。

然而,这种泛化能力存在明确边界。作者承认,其方法依赖于注意力矩阵固有的稀疏性,并主要针对解码器架构的文本模型进行优化。对于完全不同的架构如纯编码器或非 Transformer 模型,或对于注意力模式可能截然不同的输入模态,如图像、音频,该假设是否成立未经检验。此外,论文未系统分析不同注意力头之间这一特性的异质性。虽然“分组感知聚合”处理了 GQA,但不同层、不同头对“离群查询”的依赖程度可能不同,统一的子选择策略可能并非所有头的最优解。因此,QUOKA 的“硬件无关性”优势确实建立在当前主流文本 LLM 共享的注意力几何先验之上,对于超出此范围的模型,其有效性需重新评估。

问题二:关于 QUOKA 在实际部署中的真实效率与系统开销

作者宣称 QUOKA 在多种硬件(GPU、CPU)上实现了显著的加速比(最高 7 倍),且“无需训练、兼容标准线性代数库”。然而,QUOKA 在每次块处理中都需要执行查询选择、余弦相似度计算、聚合等额外步骤,这些步骤虽然时间复杂度较低,但在实际系统中可能引入不可忽略的内存访问开销、分支预测代价与线程同步延迟。尤其是在边缘设备或低带宽环境下,这些额外操作是否真的能带来端到端的延迟降低?论文中缺少与真实系统中其他优化技术(如 FlashAttention、KV Cache 压缩)的协同效果分析,这是否意味着 QUOKA 在系统集成中可能面临“隐藏成本”?

额外开销可控,实测带来净加速,但与系统级优化的协同仍是开放问题。

QUOKA 确实引入了查询选择、归一化和余弦相似度计算等额外步骤。然而,论文通过算法设计和复杂度分析证明,这些操作的开销是次线性的,且核心是轻量级的向量操作(余弦相似度),完全由标准 BLAS 库支持,避免了定制内核的启动和同步开销。其复杂度关键依赖于 KV 头的数量 $n_{KV}$,而非通常更大的查询头数量 $n_Q$,这得益于其“预聚合”设计,从理论上节省了计算和内存。

在不同硬件上的注意力延迟与TTFT加速比

解码阶段注意力与端到端延迟加速比

更重要的是,实证数据支持其端到端效率。上图示,在 A100 GPU、RTX 2080 乃至 Intel Xeon CPU 上,QUOKA 在模块级(注意力)和端到端(TTFT)均实现了显著的净加速——最高 5-7 倍。这说明,通过大幅减少送入昂贵稠密注意力内核的 KV 对数量(减少 88%),所节省的二次方计算与内存带宽成本,远超过线性预处理的开销。尤其是在内存带宽受限的 CPU 和消费级 GPU 上,减少数据搬运带来的收益更为突出。

但是,论文确实未深入探讨与最底层系统优化的深度集成。例如:

  • QUOKA 筛选后的 KV 缓存如何与极致优化的 FlashAttention 内核在内存布局上完美耦合?
  • 在极低功耗边缘设备上,额外步骤的固定开销占比是否会升高?

这些“隐藏成本”在极端场景下【可能】显现。因此,虽然 QUOKA 在评测中证明了其独立部署的价值,但如何与 FlashAttention-3、PagedAttention 等底层内存管理系统以及动态批处理调度器无缝协同,以实现系统级最优,仍是一个需要未来工作探索的开放性问题。

一、推理瓶颈,预填充的算力黑洞

当前 LLM 推理主要分为两个阶段:预填充生成。预填充阶段处理整个输入提示,计算复杂度为 $O(n^2)$,其中 $n$ 是输入序列长度。

对于长上下文场景,这成为主要的计算瓶颈。生成阶段每次只处理一个新查询,复杂度为 $O(n)$,随着输出增长,KV 缓存的内存与带宽压力逐渐成为瓶颈。

为了应对长序列输入,分块预填充被广泛采用。它将输入序列划分为多个不重叠的块,按顺序处理每个块。例如一个包含 6 个 Token 的提示可以分为 3 个块,每块 2 个 Token 。对每个块,模型需要计算该块内所有查询与当前块及之前所有块的键之间的注意力。

虽然分块能改善调度和内存利用率,但注意力计算依然是二次复杂度。例如在处理第 $i$ 个块时,需要计算 $Q_i$$K_{1:i}$ 的注意力,其中 $K_{1:i}$ 包含之前所有块的键。

这种情况下,即使使用 FlashAttention 等优化内核改善内存访问模式,也无法改变算法复杂度的根本问题。

二、稀疏注意力,两条路线的困境

现有的稀疏注意力方法主要分为两大类:基于模式基于查询

2.1 基于模式的稀疏注意力

如块稀疏、带状稀疏,采用固定的稀疏模式,通过跳过部分注意力计算来减少计算量。

这类方法通常依赖高度优化的定制 CUDA 内核来实现加速,例如 Sparse FlashAttention、Block-Sparse Attention 等。虽然它们在特定硬件上可以获得不错的加速比,但其可移植性差,难以在 CPU、移动 GPU 等不同硬件上获得一致性能。

更重要的是,在分块预填充场景下,由于需要反复调用内核并移动 KV 缓存,这些方法的实际加速效果大打折扣。

2.2 基于查询的稀疏注意力

如 SPARQ、LoKI、SampleAttention,则采用另一种思路:为每个查询动态选择最相关的 KV 对。

这类方法在生成阶段表现良好,因为每次只需为单个查询选择 KV。但在预填充阶段,需要同时为多个查询选择 KV,现有方法通常简单地将各查询的评分平均,这导致重要但罕见的查询-键交互被淹没,性能显著下降。

Qualcomm AI Research 的研究团队发现了一个关键现象:与平均查询余弦相似度较低的查询【倾向于】与更多的键交互

这一观察直观上很合理:如果一个查询与“典型”查询差异很大,它可能需要关注更多样化的键来获取所需信息;而接近平均的查询则可能只需要关注一小部分共享的关键键。

三、QuoKA 三阶段:查询优先的 KV 选择

基于这一观察,Qualcomm 团队提出了QuoKA,一个三阶段的稀疏注意力算法:

QUOKA KV缓存子选择算法伪代码

下面,我们来看看这个算法的三个阶段。

3.1 第一阶段:查询子选择

QuoKA 首先从当前块的所有查询中挑选出最具代表性的 $N_Q$ 个查询。选择标准是查询向量与平均查询向量之间的余弦相似度,具体来说是选择相似度最低(即差异最大)的那些查询。

为什么要这样做?

定理 1 从几何角度提供了理论支撑:若某个查询 $q$ 与键 $k$ 有较强的正相似度($q \cdot k > 0$),而平均查询 $\bar{q}$ 与同一键 $k$ 呈负相似度($\bar{q} \cdot k < 0$),则查询 $q$ 与平均查询 $\bar{q}$ 的余弦相似度会被约束在一个$q \cdot k$ 变化的上界内

直观地看,这一定理表明:与平均查询差异较大的查询(即 $q \cdot \bar{q}$ 较小甚至为负)往往与某些键有更强的正交互,因此它们对最终注意力分布的贡献更为关键QuoKA 正是通过保留这类“离群查询”来近似全注意力的行为。

实践中,QuoKA 计算每个查询 $q$ 与平均查询 $\bar{q}$ 的余弦相似度 $S_q$,然后选择 $S_q$ 最小的 $N_Q$ 个查询。这一步将查询数量从 $B_{cp}$ 减少到 $N_Q$,大幅降低了后续计算复杂度。

3.2 第二阶段:余弦相似度评分

对于选出的代表性查询,QuoKA 计算它们与所有候选键的余弦相似度矩阵 $S$

为什么使用余弦相似度而非点积?点积受向量范数影响大,且在不同查询间难以比较。余弦相似度通过归一化消除了范数影响,提供了一个有界 $[-1,1]$、稳定的注意力权重代理。

实验表明,在 RULER 基准测试中,使用余弦相似度比点积提高子选择质量 10% 以上。

注意力得分偏离均值的分布

3.3 第三阶段:跨查询与 KV 组的聚合

QuoKA 需要将 $N_Q$ 个查询的评分聚合为每个键的单一重要性分数。简单的平均会淹没那些重要但罕见的查询-键交互,因此 QuoKA 采用最大值聚合:对每个键,取所有查询评分的最大值作为其最终分数。

这种选择基于注意力评分的重尾分布特性——少数重要的查询-键交互决定了大部分注意力权重。

对于采用分组查询注意力(GQA)的模型,不同 KV 头之间的注意力模式往往具有相关性,因此 QuoKA 在跨头聚合时采用平均值

关键的工程优化在于“预聚合”:QuoKA 在计算余弦相似度之前,先将查询向量在 KV 组维度上进行平均(即 Algorithm 1 第 8 行)。

由于平均操作是线性的,且余弦相似度中的归一化不改变线性组合关系,这种预聚合在数学上等价于先计算每个头与所有键的相似度再取平均,但计算复杂度从 $O(n_Q \cdot n_{KV})$ 降到了 $O(n_{KV})$

现代模型中 $n_Q \gg n_{KV}$(例如 GQA 中 $n_Q/n_{KV}=8$),这一优化使 QuoKA 在 GQA 架构上的评分开销骤减,是实现硬件无关高效率的关键之一。

四、实验验证:精度保持与显著加速

为了全面评估 QuoKA 的性能,研究团队在多个基准测试和模型架构上进行了广泛实验。

测试基准包括:

  • Needle-In-A-Haystack:评估模型从长上下文中检索特定信息的能力
  • RULER:综合长上下文能力测试,包含多针检索、多跳追踪等复杂任务
  • LongBench:多任务长上下文理解基准,包含真实世界文档
  • Math500:数学推理任务,测试生成阶段的稀疏注意力效果

比较方法包括:

  • SampleAttention:均匀采样查询的方法
  • LessIsMore:仅在特定层计算注意力的方法
  • SPARQ:在通道维度子选择的方法
  • LoKI:通过低维投影子选择的方法

QUOKA在NIAH基准上的表现

多种稀疏方法在NIAH基准上的表现对比

4.1 RULER 基准测试结果

表 1 显示了在 RULER 基准上,随着上下文长度增加(4k 到 32k),各种稀疏注意力方法的性能对比。QuoKA 在所有模型和长度上都显著优于基线方法。

RULER基准测试结果对比

当上下文长度达到 32k Token 时,QuoKA 的准确率仍然保持在 57.01%,而最佳基线方法 SampleAttention 仅为 31.73%。这表明 QuoKA 能够更有效地保留长距离依赖关系。

固定压缩比下的RULER测试结果

4.2 LongBench 基准测试结果

表 3 显示了 LongBench 上的归一化准确率(相对于稠密基线的比例)。QuoKA 即使在很小的预算 $B_{SA}$ 下也能保持接近基线的性能。

LongBench基准测试结果

值得注意的是,在某些情况下,QuoKA 甚至取得了超过 1.0 的分数,这意味着稀疏化的注意力有时比完整注意力表现更好。一个可能的推测是:稀疏化去除了部分无关或干扰性的 KV 信息,使模型在计算注意力时能更聚焦于真正关键的内容。原论文作者仅客观报告了这一现象,并未给出确切归因,具体机制仍有待进一步研究。不过总得来说,上表整体展示了 QuoKA 在不同模型和预算设置下均保持最佳性能。

五、内存效率提升:从数据中心到边缘设备

QuoKA 不仅在精度上表现出色,在计算效率上的提升更加显著。研究团队在不同硬件平台上进行了全面的延迟测试。

5.1 企业级 GPU 上的性能

在 NVIDIA A100 GPU 上,QuoKA 实现了:

  • 注意力模块级加速:最高 5 倍
  • 首 Token 时间减少:最高 3 倍

随着序列长度增加,QuoKA 的加速效果更加明显在 16k Token 长度时,QuoKA 的注意力计算速度比稠密注意力快约 4.5 倍,而其他稀疏方法通常在 2-3 倍左右。

5.2 消费级硬件上的性能

在更广泛的硬件上,QuoKA 同样表现出色:

  • Intel Xeon W-2125 CPU:最高 7 倍注意力加速
  • NVIDIA RTX 2080 GPU:最高 5-6 倍注意力加速

QuoKA 的硬件无关性使其在不同平台上都能获得可观的加速。这得益于它完全基于标准线性代数运算,不依赖特定硬件的定制内核。

5.3 内存效率提升

除了计算加速,QuoKA 还显著降低了内存带宽需求。在典型的 $B_{SA}=1024$ 设置下,QuoKA 每个注意力评估只使用原始 KV 对的 12%,减少了 88% 的 KV 缓存访问。

这对于内存带宽受限的设备(如移动 GPU 和 CPU)尤其重要,在这些设备上,内存访问通常是性能瓶颈。

六、消融实验:理解 QuoKA 的设计选择

为了验证 QuoKA 各个组件的必要性,研究团队进行了一系列消融实验。

实验维度 实验设置与对比项 实验结果与结论
查询子选择的影响 对比随机选、选与平均查询最相似、QuoKA选最不相似查询三种策略 QuoKA策略在RULER基准上准确率高出15-20%,选代表性查询为关键
聚合策略的影响 对比平均值、中位数、QuoKA采用的最大值三种聚合策略 最大值聚合表现最佳,保留罕见重要交互,RULER基准上比平均值聚合高约8%准确率
余弦相似度与点积 对比余弦相似度、点积两种评分函数 余弦相似度子选择质量提升10%以上,对向量范数不敏感,相关性估计更稳定
超参数鲁棒性 测试超参数 $N_Q$ 设为 $B_{cp}/16$(仅保留1/16查询)的表现 准确率下降不足9%,对超参数鲁棒,易在不同硬件约束下调优

七、相关工作:稀疏注意力的演进脉络

QuoKA 建立在大量先前工作基础上,同时解决了它们的局限性。

方法类别 相关方法及核心特点 QuoKA的优势/关联
动态查询依赖的稀疏注意力 SPARQ、LoKI,为单查询动态选KV对,生成阶段表现好,预填充阶段简单平均查询评分致性能下降 选代表性查询再匹配KV,解决多查询聚合问题,优化预填充性能
KV缓存淘汰 H2O、StreamingLLM,淘汰低重要性KV对减内存占用,主打生成阶段,多查询聚合时平等对待所有查询 与该类策略互补,结合使用可提升KV缓存优化收益
内核级稀疏注意力 Block-Sparse FlashAttention、Sparse Attention Kernel,预定义稀疏模式加速计算,依赖特定硬件优化内核,可移植性差 兼容标准稠密内核,无硬件依赖,具备更优的硬件普适性

八、未来展望与结论

QuoKA 展示了查询导向的 KV 选择在加速 LLM 推理方面的巨大潜力。其核心创新在于认识到与平均查询差异大的查询更具代表性,并基于这一观察设计了三阶段选择流程。

这种方法不仅减少了 88% 的 KV 对使用,还在多个基准测试上接近甚至有时超越稠密注意力的性能。更重要的是,QuoKA 完全基于标准线性代数运算,无需训练,不依赖特定硬件,具有良好的可移植性。

未来,QuoKA 可在以下方向进一步优化:

优化方法 说明
与淘汰策略结合 当前 QuoKA 在每个分块处理时均基于完整的 KV 缓存进行子选择,计算完成后子集即被释放,并未减少 KV 缓存本身的长期内存占用。一个自然的演进方向是:将 QuoKA 应用于已经过淘汰策略压缩的 KV 缓存上,例如先使用 H2O、StreamingLLM 等方法永久性移除低价值 KV 对,再在缩减后的缓存上运行 QuoKA 的子选择,从而同时降低计算复杂度与长期内存占用
学习低维投影 通过学习查询和键的低维投影,可进一步降低评分计算成本。
自适应预算分配 根据输入序列特性动态调整 $B_{SA}$,在简单序列上使用更高稀疏度,在复杂序列上保留更多 KV 对。
跨层共享选择 在 Transformer 的不同层之间共享 KV 选择结果,减少重复计算。

随着 LLM 向更长上下文、更多设备部署发展,像 QuoKA 这样的高效推理技术将变得越来越重要。它不仅使长上下文应用更加可行,也为在资源受限设备上部署大模型打开了新的可能性。

对于那些希望优化 LLM 推理效率的研究者和工程师,QuoKA 提供了一个强大而简单的工具——得益于其完全基于标准线性代数算子的设计,QuoKA 可以方便地集成到现有 PyTorch / TensorFlow 推理脚本中,无需定制 CUDA 内核。想了解更多前沿的 人工智能系统架构 优化实践,欢迎访问 云栈社区 与更多开发者交流探讨。




上一篇:2026年AI Agent工程化指南:从单Agent起步,用Skills与MCP构建稳定系统
下一篇:AI赋能个体交易,为何未来仍是“算法代理”的战场?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 12:57 , Processed in 0.739305 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表