模型自己说该看哪儿:Declarative Attention 让 LLM 零训练砍掉一半注意力开销

你正在和一个 AI 聊一个百万 token 的长文档。你问了一句:"前面提到的那个实验,对照组的样本量是多少?"

你正在和一个 AI 聊一个百万 token 的长文档。你问了一句:"前面提到的那个实验,对照组的样本量是多少?"

为了回答这一句话,模型的每一层注意力都要把整个百万 token 的 KV 缓存扫一遍——哪怕答案只藏在其中的三行里。这就像你在图书馆找一句话,每读一个字都要把所有书架重新走一遍。

这不是夸张,这是当前 Transformer 推理的真实代价。注意力机制的设计初衷是"全局视野",但在长上下文场景下,全局视野变成了全局税。

模型其实知道该看哪儿

这篇论文提出了一个看似简单到令人怀疑的问题:模型既然能生成正确的答案,说明它已经知道相关信息在哪儿——那为什么还要逼它每一步都重新扫一遍全文?

作者 Namgyu Ho 等人(KAIST + Google DeepMind)提出了 Declarative Attention(DA),让模型在思维链中主动"声明"自己当前需要关注哪些上下文区域。推理引擎解析这些声明,像处理 tool call 一样切换注意力模式,直接跳过不需要的 KV 缓存读取。

三种注意力模式

DA 把生成过程分成三种模式,模型在思维链中自行切换:

  • :全量注意力,扫描整个上下文。用于需要全局推理的场景。
  • :聚焦到某个特定区域,只读取该区域的 KV 缓存。用于回查之前提到的具体细节。
  • :只关注最近的输出,不读历史。用于已经找到答案后的流畅生成。
这就像人的阅读策略:扫读全文用 global,定位具体段落用 focus,写答案时只盯着眼前的草稿用 local。模型不需要被教会这三种策略——zero-shot 提示就够了。

数据说话

在 15 个长上下文任务上测试两个现成模型:

模型注意力 token 减少准确率下降
Gemma-4-31B52.0%1.27pp
Qwen-3.6-27B31.1%2.75pp
一半的注意力开销被砍掉了,准确率只掉了 1-3 个百分点。而且这个差距会随模型规模缩小——越强的模型,DA 的代价越小。

更关键的是 token 节省率与模型规模基本无关。这意味着 DA 不是"小模型的妥协方案",而是一个随规模保持效力的效率杠杆。

为什么这很重要

当前长上下文推理的效率优化主要走两条路:

1. KV 缓存驱逐:根据启发式分数丢掉"不重要"的 token。但什么算"不重要"是外部规则定义的,不是模型自己说了算。 2. 稀疏注意力:在解码时动态选择注意力目标。但选择逻辑仍然是外部评分器,仍然是 O(N) 的扫描代价。

DA 走了第三条路:让模型自己声明需要什么。这绕过了外部评分器的瓶颈,因为模型已经在生成答案时隐式知道相关信息在哪里——DA 只是把隐式知识变成显式声明。

和 tool call 的同构

DA 的设计思路和 function calling 本质同构。在 tool call 中,模型声明"我需要调用这个函数",推理引擎执行调用并返回结果。在 DA 中,模型声明"我需要关注这段上下文",推理引擎调整注意力掩码并跳过其余部分。

两者共享同一个洞察:模型已经知道该做什么,只是需要一个通道来表达。tool call 让模型表达"需要什么外部工具",DA 让模型表达"需要什么内部记忆"。

system-2 KV 缓存卸载

论文还提出了一个更激进的设想:DA 可以作为"system-2 稀疏注意力"的基础。当模型进入 模式时,不需要的 KV 缓存可以被卸载到更便宜的存储层(比如 CPU 内存),只在模型声明 时才重新加载。

这把注意力从"每步都要全量就绪"变成了"按需加载"。类比一下:CPU 缓存 hierarchy 里的 L1/L2/L3 分层,DA 给 KV 缓存加了一个"模型声明的层级"。

局限性

作者诚实地列出了限制:

  • DA 目前只在 global attention layers 生效,local attention 层本身开销就小。
  • 准确率下降虽然小,但在需要精确全局推理的任务上(如 needle-in-haystack 的极端变体)可能放大。
  • Zero-shot DA 是下限,post-training 可以进一步缩小准确率差距。

我的看法

这篇论文的洞察和"判断-闸门解耦"形成有趣对照。在判断-闸门解耦中,模型内部已经知道答案错但行动闸门不咨询判断模块。DA 展示了反面:模型内部已经知道该看哪儿,传统注意力机制不让它表达这个知识。

两者指向同一个设计原则:模型内部有很多隐式知识,关键不是让模型变聪明,而是给它一个通道把隐式知识变成显式控制。tool call 是对"外部工具调用"的显式化,DA 是对"内部注意力路由"的显式化。

当模型规模继续增长、上下文窗口继续扩大,"让模型自己决定看哪儿"会从优化选项变成必需品。百万 token 的全文扫描在物理上就是不可持续的——光是 HBM 带宽就撑不住。DA 提供了一个零训练成本的过渡方案,而 post-training 版本可能进一步抹平准确率差距。


论文arXiv:2609.02737 作者:Namgyu Ho, Huzama Ahmad, Woosung Koh, Se-Young Yun, Tal Schuster 等 代码:论文未提供独立代码仓库,DA 协议可在任意支持 tool call 的推理引擎上实现

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

数字先说对的:52.0%、1.27pp、31.1%、2.75pp,我从 arXiv 页面逐个抠出来核过,全对。15 个任务、两个模型、零训练,也都属实。论文还有个正经标题,叫"Language Models Can Control Their Own Attention",Declarative Attention 是方法名。

但帖子搭的舞台,论文自己拆了一角。

帖子的框架是"模型在思维链中声明该看哪儿"。论文里有一句原话:初步实验中模型在 thinking trace 里根本跟不住这套协议,"所以我们的全部结果都来自非思考模式"。给思维链设计的开关,恰恰在思维链里装不上。装在外面能用。帖子通篇没提这层。

再看"砍掉一半"。52% 省的是解码期被注意的 token 数,延迟要另算。论文自己给了换算:端到端解码时间只有 0.71 倍(Gemma)和 0.77 倍(Qwen)。Gemma 那笔账我手按过:269.1 毫秒降到 192.3,省 28.5%。砍一半 token,怎么才省三成时间?解码步多了 35%,每步都在还利息;Gemma 还有 50 层滑动窗口注意力,那是地板,锯不动。

"准确率只掉一到三个点"也是均值话术。任务级明细里最惨的单任务掉 7.1 个点;例外源里 cwe 崩 30 个点,结构化数据崩 21 个;最小的 Gemma-4-E4B 只剩 29% 的原准确率,大半是 focus 段落解析失败——读得懂指令,填不对格式。

论文里我最喜欢的一个对照,帖子没讲。把掩码拆掉、只留提示词格式(DA-nm),模型反而比原版多读 66.2% 的 token。省下的每一分钱都是引擎那把闸刀省的,提示词本身在倒贴。模型"知道"该看哪儿,其实不稀奇。稀奇的是推理引擎肯听。

论文诚实地补了一句:global 步现在占了 DA 注意力开销的八成以上,上下文越长越糟。旧瓶颈刚搬走,新瓶颈已经排队。这大概是这类方法共同的命运——注意力税减了,声明税来了。

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens