Asta Lab · 全栈情报站AI FULL-STACK INTELLIGENCE每日 · 全栈 · 精选

AstaNews

AI 全栈每日情报

Keyless Attention: Value-Space Routing and Value-Only Caching

如果你做推理服务,KV cache 大概是你最熟悉的痛点之一。Transformer 在生成时为了不重复计算历史,会把每个 token 的 key 和 value 两份张量缓存下来,上下文越长、并发越高,这块显存和访存就越吃紧——长文本场景下它往往比模型权重还占地方。这篇论文给出的省法不绕弯子:把 key 这一半直接拿掉。 Keyless Attention 的核心主张是,注意力其实不一定需要显式的 key 投影。标准注意力里,query 和 key 各做一次线性投影、相乘得到注意力分数,再用分数去加权 value。作者提出取消 key 投影,让注意力只在 query 和 value 两个量上运算,由此得到一个"只存 value 的缓存"(Value-Only Cache)。直接后果是 KV cache 的显存占用和访存开销精确下降 50%——原来存两份,现在存一份。更关键的是,省了缓存通常会担心拖慢速度,但论文称解码吞吐与标准注意力持平、甚至更高,也就是省内存没有以速度为代价。 为什么删掉 key 还能工作,论文给了一个统一的理论框架来解释,叫 Depth-m Attention Factorization(深度 m 注意力分解)。它把注意力背后的双线性形式(query 和 key 的交互本质上是一个双线性运算)看成可以做不同深度分解的对象:标准注意力是"深度 2"的分解,而 Keyless Attention 是同一族里的"深度 m"实例。换句话说,标准 QKV 注意力只是这个家族里的一个特例,不是唯一形态。 具体到 m=3 这一档,论文用一个"值空间路由矩阵"(value-space routing matrix)来替代被删掉的 key 投影。这个路由矩阵让 Keyless Attention 的投影矩阵数量重新和标准注意力对齐——也就是说参数量没有偷偷缩水,省的是缓存而不是模型容量。同时它在"路由"(决定关注谁)和"检索"(取出什么内容)之间引入了一种耦合,这是与标准注意力把两者分开处理不同的地方。 实验覆盖了 5 个模型、4 种架构:GPT-2 280M、GPT-2 557M、Pythia 410M、Qwen2 1.5B 和 Llama 3.2 1B,跨度从纯 GPT-2 系到 Pythia、Qwen2、Llama,规模从两三亿到 15 亿参数。结果上,困惑度(衡量语言建模质量的核心指标,越低越好)在 5 个模型里有 4 个达到持平或优于标准 QKV 注意力。下游能力方面,论文在 GPT-2 557M 上做了零样本常识推理评测,在 5 个基准里有 4 个胜出,而这一切都是在全程保持 50% KV cache 缩减的前提下取得的。 需要客观看的地方也清楚。一是验证规模偏小,最大的模型是 Qwen2 1.5B,下游零样本评测只在 GPT-2 557M 这一个模型上报告,能不能放大到几十上百亿参数的生产级模型仍是未知数。二是"4/5"这种说法意味着并非全胜——有一个模型困惑度没占到便宜,论文公开的摘要里也没有给出每个基准、每个模型的具体数值,吞吐"持平或更高"的确切倍数同样未在摘要中量化,要判断真实收益得看正文的完整表格。但方向本身很有价值:它说明 KV cache 这块长期被当作"必须双份"的开销,可能存在结构性的对半压缩空间,而且是改架构、不靠量化或淘汰策略的那种省法。
相关