论文

Grouped Value Attention:通过按需 key 重建实现高效 KV 缓存

Grouped Value Attention:通过按需 key 重建实现高效 KV 缓存

KV cache 是 Transformer 解码的主要瓶颈:其内存占用与缓存读取流量都随序列长度增长。Grouped-query attention (GQA) 通过共享 key-value heads 降低这一开销,但每一步仍需同时存储一个 key 和一个 value。 我们提出 Grouped Value Attention (GVA):只存储分组后的 value,并用一个可学习的线性映射重建 content key。推理时该映射可被吸收进 query,从而在既定的 decode 路径中无需实际生成 content key。一个小型共享的 decoupled RoPE 通道则通过单独缓存的位置 key 保留位置信息。 在所研究的配置下,该表示相比同等规模的 GQA 将持久缓存标量减少约 45-47%。在 350M 参数规模、30B FineWeb-Edu tokens 上,16 维位置变体在五项任务上取得 44.18 平均准确率,而 GQA 为 44.36,MLA 为 43.88。这表明该方案能以更紧凑的缓存表示达到接近 GQA 的基准准确率。 为将这一紧凑表示转化为更快的自回归推理,我们开发了定制解码 kernel,目前正在评估其端到端推理性能,并计划尽快开源发布。

论文精读

TL;DR GVA 只缓存分组 value 和一个小的解耦 RoPE 位置 key,用可学习线性映射按需重建内容 key,并在解码时将映射吸收进 query,从而把 KV cache 减少约 45-47%,同时保持接近 GQA 的精度。

问题

问题背景:Transformer 自回归解码中,KV cache 随序列长度线性增长,成为长上下文推理的主要内存与带宽瓶颈。业界普遍关注如何在保持注意力质量的前提下压缩缓存规模。

现有方法局限:GQA 通过共享 key-value heads 减少头数,但仍需在每个 token 同时存储 key 和 value 两个流;缓存标量虽减少,但依然线性增长。MLA 将 K、V 压缩为联合 latent,进一步缩小缓存,但在解码时需从 latent 重建 key,引入额外投影计算;同时 MLA 对 RoPE 位置信息的处理较复杂,部分实现需要额外缓存位置 key 或重排投影,增加读取和计算开销。这些方法要么缓存压缩率有限,要么推理路径较绕。

为什么难/重要:核心难点在于,key 携带的内容与位置信息对注意力权重至关重要,直接丢弃会导致精度下降;而用低维 latent 表示时需保证与原始 key 的等价性,线性映射的容量和初始化都需仔细设计。同时,工业界面临长 prompt 场景(代码补全、多轮对话、文档问答)下 KV cache 迅速耗尽显存,降低缓存标量可直接提升并发吞吐、降低延迟。因此业界对更紧凑且推理友好的缓存表示有强烈需求。

行业类比:好比在移动端运行代码补全模型,每层都缓存完整 KV 会让 8GB 手机显存几十步内耗尽;若能只存 value 并按需重建 key,就能让模型处理更长的上下文窗口。

核心洞察

  • GVA 的核心洞察是 key 与 value 之间存在可学习的线性冗余,使得从 value 重构 content key 成为可能,且该线性映射在 decode 阶段可吸收到 query 投影中,从而彻底避免物化 content key。与 GQA 仅共享 heads 但仍存储两份流、MLA 压缩到联合潜在但引入额外投影不同,GVA 直接利用 query-key-value 结构相关性,在缓存标量上减少 45-47%,同时保持接近 GQA 的基准精度,为注意力缓存设计提供了重构而非压缩的新思路。
  • decoupled RoPE 通道设计是 GVA 能成功吸收线性映射的关键:将位置信息限制在小的共享通道上并通过单独缓存的 positional key 注入,避免了位置编码与可吸收的内容映射相互纠缠。与标准 RoPE 直接应用于完整 key/query 的方法相比,这种解耦策略在缓存压缩场景下展示了更精细的位置编码处理方式,使得吸收后位置信息仍能正确作用于注意力计算,是精度不显著下降的重要保障。
  • GVA 的缓存压缩在理论上减少带宽与内存占用,但转化为实际推理加速依赖于定制解码内核。论文明确提到已开发内核并进行端到端评估,与 MLA 类似,紧凑的缓存表示可能引入额外计算开销;但 GVA 的吸收策略使 decode 路径避免计算 content key,有望在保持低延迟的同时获得缓存收益。这提示评估新缓存方法时需关注端到端延迟与实现复杂度,而非仅缓存大小指标。

方法

GVA 核心流程

输入为 token 的隐藏状态,经过投影得到查询 Q 与分组值 V_g(每个 query head 组共享 value)。不再存储内容 key,而是训练一个线性重建映射 M_h,使每个 head 的 key 可由 K_h = V_{g(h)} M_h 从 value 重建。这样在训练时通过该映射约束 key 来自 value,推理时将该映射吸收进 query:先计算 Q' = Q M^T,再与 value 直接做注意力,从而消除 content key 的缓存与读取。

位置信息单独处理:引入一个小的共享 decoupled RoPE 通道,只缓存位置键,将 RoPE 后的相对位置信息注入注意力得分,不占用完整 key。

输出仍为标准的 attention 聚合结果(value 加权和),但持久缓存只包含分组 value 与小位置键,相比 GQA 减少约 45–47% 的缓存标量。

与原作表述一致:将 M_h 吸收进 query 后,decode 路径不再需要 materialize content keys。

  • 与 GQA 的差异:GVA 不写入 key 流,用 value 重建 key 且重建矩阵可吸收,缓存从 key+value 两流变为 value+小位置键。
  • 与 MLA 的差异:MLA 将 key/value 压缩为联合 latent,需要额外投影且解码时更复杂;GVA 保留 value 本身并仅替换 key,结构更轻,仍接近 GQA 精度。

实验

实验设计

在 350M 参数、30B FineWeb-Edu tokens 上训练 GVA 及对照 GQA、MLA、Shared KV。评估下游五个任务的平均准确率,并统计持久缓存标量(cache scalars)数量。GVA 包含不同位置变体,其中 16 维 decoupled RoPE 是代表性配置。

关键发现

  • GVA (16-dim positional) 平均准确率 44.35,几乎与 GQA 的 44.36 持平,高于 MLA 的 43.88。
  • 持久缓存标量相对 GQA 减少约 45–47%。
  • 表明在极小精度损失下,KV cache 得到显著压缩。

与基线对比

GVA 通过按需重构 content key(K_h = V_{g(h)} M_h)并在 decode 阶段将映射吸收到 query 中,避免物化 content key。相比 GQA 仍存储 key 和 value 双流,GVA 仅存储 grouped value 和极小的 shared positional key。相比 MLA 使用联合 latent 压缩 KV,GVA 保持 key/value 分离的重构路径,精度损失更小(44.35 vs 43.88),同时省去 MLA 的额外投影开销。当前难点在于自定义 decoding kernels 尚未完成端到端基准,工程落地仍需验证。

行业影响

落地场景

GVA 的核心价值在于大幅缩减 KV cache 的持久化标量数量(相对 GQA 减少 45–47%),这直接指向任何受显存与带宽约束的长上下文推理服务。典型场景包括:

  • 多轮对话系统:长对话历史导致 cache 线性膨胀,GVA 可支撑更长的上下文窗口而不显著增加显存。
  • 企业级文档助手 / 知识库问答:输入大量文档片段,推理阶段 cache 占用降低,提升单卡可服务的并发请求数。
  • 代码助手:长代码文件上下文,降低内存压力,提升补全吞吐。
  • 内容平台摘要与检索增强:对长文进行分段处理时,更小的 cache 允许更大 batch size。

商业价值

主要落在降本增效这条线:

  • 显存成本下降:KV cache 减少约一半,可直接降低部署所需的 GPU 显存,或提升单卡可容纳的并发用户数,摊薄推理成本。
  • 带宽压力缓解:cache-read traffic 降低,提升 decode 阶段吞吐,改善 TTFT/TPOT 延迟,带来更好的用户体验。
  • 竞争力差异:与 MLA 相比,GVA 在相近 cache 压缩率下达到更接近 GQA 的精度(44.18 vs 44.36 vs 43.88),为追求性价比的长上下文产品提供了新选项。

与现有产品 / 工作流的接口

GVA 的训练改动集中在注意力层:用分组共享的 value cache 与可吸收的线性重建映射替代显式 key cache,同时增加小型 decoupled RoPE 位置缓存。推理时可将重建矩阵融合进 query 投影,无需单独物化内容 key。集成路径如下:

  • 推理框架适配:需在 vLLM / TensorRT-LLM 等框架中实现定制 attention kernel,作者已开发并将开源,可参考其实现做集成。
  • 模型替换策略:对于现有 GQA 模型,可重训或蒸馏得到 GVA 版本,推理代码只需替换注意力模块,无需改动上层 API。
  • 评估与监控:建议在长上下文 benchmark(如 RULER / LongBench)上对比吞吐、延迟与精度,确认 kernel 优化后的端到端收益。

局限

  • **实验规模有限**:论文仅在 **350M 参数**、**30B FineWeb-Edu tokens** 的单一配置上验证,缺乏更大模型(如 1B/7B/13B)和更多样化任务(长文本、代码、多语言)的对比。该方法在较大模型上的 cache 节省比例、精度保持和训练稳定性尚未得到充分检验,结论推广到生产级模型可能存在风险。
  • **端到端推理收益未验证**:论文承认 custom decoding kernels 仍在评估中,实际 latency/throughput 数据未公布。KV cache 减少并不自动等价于加速,因为 GVA 需要在 query 端吸收重建矩阵,增加计算量,且 decoupled RoPE 引入额外 positional key,可能增加内存访问和 kernel 复杂度。目前还无法判断其相比 GQA/MLA 的实际 serving 优势。
  • **相对于 MLA 的压缩率可能不足**:GVA 仍需存储 grouped values 和 positional key,而 MLA 将 KV 压缩至低维 joint latent,cache 更小。此外,通过线性映射从 value 重建 key 可能限制 key 的表达能力,尤其在需要细粒度位置或内容区分的长序列任务中,可能带来精度损失。论文在五个下游任务上的平均准确率接近 GQA,但未展示更长上下文或检索类任务的鲁棒性。
论文Vishesh Tripathi2026-09-08原文

相关内容