推理的信用该记在哪个 token 头上?FlowTracer 用注意力信息流给出了一个答案

强化学习训练大模型推理,有个被长期忽略的尴尬:算法把一句话里的每个 token 都当成同等重要的功臣。"Step 1: Determine the total" 里真正扛起推理的是 "Step""Determine" 这种结构骨架,还是 "the""to" 这种填充词?GRPO 这类主流方法一律按相同权重分配回报,决定性的推理步骤和顺手写下的连接词拿到一样的信用。

ICML 2026 的这篇 FlowTracer(arXiv:2606.10646)把推理过程重新建模成一张注意力诱导的有向无环图,让答案沿着这张图反向"回溯",看清究竟是哪些 token 在真正承载信息流,再把强化学习的奖励精准地塞给它们。

论文标题:How Does Reasoning Flow? Tracing Attention-Induced Information Flow for Targeted RL in LLMs arXiv:2606.10646(25 页,7 图,11 表,已被 ICML 2026 接收) 作者:Zhichen Dong, Yang Li, Yuhan Sun, Weixun Wang, Yijia Luo, Zinian Peng, Taiheng Ye, Chao Yang, Wenbo Su, Yu Cheng, Bo Zheng, Junchi Yan

FlowTracer 总览

上图是整套方法的全景。左边是聚合后的注意力图,每个格子代表 token 之间的注意力强度,彩色箭头表示图里的边;右上把推理流拆成三段——橙色的 Question 区域、蓝色的 Reasoning 区域、黄色的 Answer 区域,中间那行 \(\sum flow_{in}=\sum flow_{out}\) 是全文的技术核心,意思是经过归一化后每个节点流入与流出的信息量守恒;右下则是按吞吐量给 token 排序,只在高吞吐 token 上做信用分配。

问题出在哪:token 级信用分配的缺位

先把场景说清楚。RL 训练推理模型(典型如 GRPO)拿到的监督信号往往只有一个结果级的奖励:答案对了给正分,错了给负分。这个奖励要分摊到生成序列的每一个 token 上。

主流做法是均匀分摊,或者用优势函数做整体缩放,结果是序列里所有 token 共享同一份信用。问题在于推理根本不是均匀的。一道数学题的解答里,真正推进逻辑的可能就是几个关键的计算步骤和转折,剩下大量 token 是在维持语言流畅性。把信用平摊下去,等于让模型搞不清自己到底是哪一步做对了,学习信号被稀释。

已有的几种 token 重要性度量也都不太够用:基于熵的方法偏向不确定的 token,基于梯度的方法噪声大且开销高,基于相关性或原始注意力的方法又容易被图结构本身的偏差带偏。FlowTracer 想要的是一个能直接回答"这个 token 对最终答案贡献了多少信息"的度量。

核心思路:把推理看成图上的信息流

FlowTracer 的建模很干脆:一段推理序列就是一张有向无环图(DAG)。每个 token 是一个节点,节点之间的边来自聚合的注意力权重。对于位置 \(i\) 的 token 和它之前位置 \(k\) 的 token(\(k \lt i\),注意因果掩码下 token 只能看见前面的),边容量定义为

\[W_{ik} \coloneqq a(x_k, x_i)\]

也就是 \(x_i\)\(x_k\) 的注意力。这张图天然是无环的,因为注意力只能往回看。

但原始注意力权重直接拿来用有个毛病:它带着图拓扑本身的偏差。某些 token 仅仅因为位置或者句法角色就吸引了大量注意力,未必真的和答案相关。于是论文做了两件关键的事——重加权和流守恒。

Doob-h 式的势函数重加权

这里借用了概率论里 Doob h-变换的思想。先定义一个势函数 \(h\),从答案节点 \(s\) 出发:

\[h(s)=1, \quad h(i)=\sum_{k \gt i} W_{ik}\, h(k)\]

直观理解,\(h(i)\) 衡量的是从节点 \(i\) 出发、最终能"流到答案"的总能力。一个 token 哪怕注意力权重很高,但如果它连向的全是与答案无关的死端分支,它的势就上不去。

然后用这个势函数对边重加权:

\[W'_{ik} \coloneqq \frac{W_{ik}\, h(k)}{h(i)}\]

局部流守恒(定理 3.1)

重加权之后会得到一个漂亮的性质,论文以定理 3.1 给出:对任意节点 \(i\)

\[\sum_{k \gt i} W'_{ik}=1\]

每个节点流出的权重恰好归一化为 1。这正是图里那行 \(\sum flow_{in}=\sum flow_{out}\) 的来源。它的意义是消除了图拓扑带来的系统性偏差,并自动抑制那些流入死端分支的路径——信息只会沿着真正通往答案的通道流动。

提取信息流主干

有了守恒的边权,就可以做前向传播来提取"信息流主干"。先引入一个虚拟源节点连到所有问题 token,注入初始流量,然后逐层往前传:

\[f(k)=\sum_{i \lt k} f(i)\, W'_{ik}\]

每个 token 最终拿到一个吞吐量指标,把流经它的信息量加总:

\[\tau(k)=f(k)+\sum_{j \gt k}\phi(k\to j)\]

\(\tau(k)\) 越大,说明这个 token 在"问题 → 推理 → 答案"的信息通路上越关键。这就是后面做信用分配的依据。

高流量 token 到底长什么样

光有公式不够,得看模型实际把信息流压在了哪些 token 上。

Qwen3-4B 上答案导向的 token 流重要性分布

这是 Qwen3-4B 在一道 GSM8K 看护费计算题上的可视化。深色高亮的高流量 token 集中在 "Step""1"":""Determine""the""."、以及 "Final""answer""boxed" 和最终数字 "9 9 6" 这些位置。

这个分布很有说服力:高流量 token 几乎都是结构性的推理骨架——标记步骤、引导计算、锁定答案;而大量低流量 token 是在维持语言通顺。模型实际上把"生成推理逻辑"和"维持语言流畅"这两件事在 token 层面解耦了,FlowTracer 的吞吐量指标恰好捕捉到了前者。

高流量与低流量 token 的词云对比

词云进一步佐证了这点。高流量一侧聚集着数字、运算相关词、步骤标记这类承载推理的词;低流量一侧是冠词、介词、标点这些填充成分。这种区分不是人为设定的规则,而是从注意力信息流里自然涌现出来的。

怎么用:把奖励塞给高流量 token

度量有了,用法就顺理成章。FlowTracer 在 GRPO 的 loss 里引入一个非均匀的缩放因子:先按吞吐量 \(\tau(k)\) 排序,选出 Top 40% 的高流量 token,给它们的奖励乘上 \(\gamma_{\mathrm{flow}}=1.5\),其余 token 保持系数 1。

这样一来,决定性的推理 token 拿到放大的学习信号,填充词则被相对压制,整个梯度更新被引导到真正推进推理的方向上。注意它没有改变 GRPO 的算法骨架,只是重新分配了信用权重,所以可以即插即用。

开销几乎可以忽略

很多人担心额外算注意力图会拖慢训练。论文的做法是只额外做一次前向传播,提取中间层(大约 \(L/3\)\(2L/3\) 层)的注意力——这些层被发现承载了最有意义的信息流信号。

不同层范围的注意力信号对比

这张图比较了用不同层范围的注意力来构建信息流的效果,中间层的信号质量明显优于浅层和深层,验证了取 \(L/3 \sim 2L/3\) 的选择。最终边际计算开销只有 2.2%–4.5%,相对于性能收益基本可以忽略。

实验:因果干预先把度量本身验明正身

在比拼训练性能之前,论文先做了一件很关键的事——用因果干预证明高流量 token 确实因果地决定了答案,而不只是相关。

做法是扰动被标记为高流量的 token,观察答案变化。结果是扰动高流量 token 导致 45.9% 的答案发生改变、14.9% 的正确性发生逆转;作为对照,随机扰动同样数量的 token 只造成 29.5% 的答案改变和 4.5% 的正确性逆转。

高流量 token 引起的破坏性远超随机基线,说明 FlowTracer 抓到的确实是因果上的关键节点。这一步给后面的训练增益提供了机理层面的解释。

训练性能:稳定且一致的提升

Qwen3-8B-Base 的 RL 训练性能曲线

这是 Qwen3-8B-Base 上的训练曲线(分别在 1K 和 8K 设置下)。FlowTracer 相比 GRPO 基线在整个训练过程中保持稳定领先,而且收敛更快、最终精度更高。

论文在多个模型上做了系统验证,覆盖 Qwen3-4B、Qwen3-8B、Llama-3.1-8B、Llama-3.2-3B,并在数学推理等多个基准上对比了一系列 token 重要性度量作为 baseline:Random(随机)、High-entropy(高熵)、Gradient(梯度)、Correlation(相关性)、Attention(原始注意力)。FlowTracer 在这些对照中都取得了最优或接近最优的表现,相对 GRPO 基线的提升在各模型上一致存在。

消融:Top-k 还是 Bottom-k,比例多少合适

不同 token 选择比例下 Top-k 与 Bottom-k 的训练曲线

这组消融非常说明问题。如果反过来给低流量 token(Bottom-k)加权,性能反而下降——这从反面证明了高流量 token 才是有效信号所在。同时论文扫了不同的选择比例,发现 Top 40% 是一个稳健的甜点:选太少会漏掉关键 token,选太多又会把填充词重新混进来稀释信号。

放大系数 \(\gamma_{\mathrm{flow}}=1.5\) 同样是调出来的平衡点,太大容易让训练不稳,太小则起不到区分作用。

我的几点观察

FlowTracer 最让我觉得舒服的地方,是它没有引入额外的可学习模块,也没有改动 RL 算法本身,纯粹靠对注意力的一次重新解读就把 token 级信用分配这件事做扎实了。流守恒那个定理是整套方法的支点——它把"消除拓扑偏差"这件含糊的事变成了一个可证明的归一化性质,这比单纯用原始注意力当重要性靠谱得多。

因果干预那组实验也值得点赞。很多讲 token 重要性的工作止步于相关性可视化,而这篇直接做扰动验证,把"重要"落到了"因果决定答案"上,方法论上更诚实。

当然也有可以追问的地方:吞吐量指标依赖中间层注意力的质量,在注意力模式更发散的超长推理链或者多模态场景下还稳不稳定,论文主要验证集中在数学推理,泛化到代码、agent 这类任务上效果如何,值得后续观察。但作为一个开销只有几个百分点、即插即用、还自带机理解释的改进,FlowTracer 给"RL 训练推理该把信用记在哪"这个问题提供了一个相当干净的答案。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我。