High-Entropy Minority Tokens
RLVR · NeurIPS 2025 · arXiv 2506.01939v2

RLVR 的收益几乎全藏在 20% 的高熵词元里:只训「岔路口」,8B 持平、32B 反超全词元训练

RLVR 对每条回答的所有词元一视同仁地做策略梯度,但 CoT 里绝大多数词元只是顺着句子往下走,只有少数几个在决定「接下来走哪条推理路」。 论文用量化到词元的熵把这批「分岔词元」找出来,只保留 top 20% 高熵词元的梯度, 做法只是在 DAPO 目标上乘一个指示函数,却在 Qwen3-32B 上把 AIME'24 / AIME'25 的 Acc@16 分别推高 7.71 / 11.04 个百分点,且模型越大优势越大。

Qwen Team, Alibaba · LeapLab, Tsinghua arXiv 2506.01939v2 ↗ 项目页 ↗
TL;DR · 30 秒抓住核心

观察一:CoT 里超过一半的词元熵低于 10⁻²,只有约 20% 高于阈值 0.672。高熵那批人是 "wait / however / thus / suppose" 这类逻辑转折词,低熵那批人是词尾、代码片段和算式成分——前者是岔路口,后者是沿路走。

观察二:按词元熵分开设解码温度后,AIME'24 + AIME'25 的平均分在 62.71 ~ 72.22 之间浮动(Figure 3 上的标注值)。压低分岔词元的温度时,平均分从 71.04(T=1)掉到 62.71,而同样压低其它词元只掉到 68.33——低端相差 5.62 个百分点(68.33 − 62.71,相对 62.71 高 9.0%);高端把分岔词元调到 3.0 到 72.22,其它词元调到 5.0 却回落到 70.76,相差 1.46 个百分点(72.22 − 70.76)。论文原文的措辞是 "significantly degrades" 与 "substantially better"。

观察三:RLVR 基本延续 base model 的熵分布(训练收敛时 top 20% 高熵位置与初代的 overlap 仍有 86.67%),主要改动的也是高熵词元。

于是方法只有一句话:在 DAPO 的损失里只保留每个 mini-batch 中熵最高 20% 的词元。低熵 80% 的梯度直接丢弃,在 32B 上不仅不掉点,反而大幅超过全词元训练,规模越大越明显。

50.64%
Qwen3-8B 思维模式下 10⁶ 词元中熵低于 10⁻² 的占比(Figure 2 / §3)
+11.04
Qwen3-32B · AIME'25 的 Acc@16 绝对百分点差:45.63 → 56.67(Table 2)
86.67%
Qwen3-14B,step 1360 训练模型与 base(step 0)的 top 20% 高熵位置重叠率(Table 1)
01

RLVR 有效是事实,但没人说清是哪几个词元在起作用

先把「词元熵」和「分岔词元」两个概念立起来,这一节不涉及任何训练改动。

RLVR 的现状是:算法不断迭代(PPO → GRPO → DAPO),但几乎所有实现都对一条回答里的每一个词元计算策略梯度,并默认它们贡献相同。论文指出,这忽略了词元在推理中承担的不同功能——大量的语法规整词元可能只是噪声,真正决定推理走向的词元却混在里面被平均掉了。§7 Related Work

词元熵衡量的是「此刻有多犹豫」

对生成的第 t 个词元,模型先给出 vocab 上的概率分布 pt,当然可以算出它的香农熵:

Ht := −Σj=1V pt,j log pt,j,   pt = Softmax(zt / T)
Eq. 1 · 熵越高,模型越不确定「下一个该说哪个词」。注意它定义在分布上,而不是词本身——Appendix 的 Figure 12–17 把整段 CoT 的词元熵逐点画出来§3 / Appendix

Qwen3-8B 思维模式下的真实分布

作者用 Qwen3-8B、温度 T=1.0、强制 thinking 模式,在 AIME'24 / AIME'25 上生成了超过 10⁶ 个词元,统计结果高度偏斜:熵低于 10⁻² 的占约 50.64%,熵高于 0.672 的恰好是最高的 20%(0.672 就是这批 10⁶ 词元的 80% 分位点)。§3 / Figure 2(a)

熵 → 0(几乎确定)熵 → 高(高度犹豫)
低熵多数词元(沿路走) 高熵分岔词元 top 20%(H ≥ 0.672)

示意图:每格代表等数量的词元,颜色按 Figure 2(a) 的统计比例上色(精确到百分比见下方工具栏),不是原始直方图。

固定为 top 20% 分位点(论文取值)
H < 10⁻²
506,400
H ≥ 0.672
200,000
其余(中间地带)
293,600
读法Figure 2 / §3
拖动滑块改变词元总量,三格的绝对数在变,但比例不变:50.64% / 20% / 29.36%(29.36% = 100% − 50.64% − 20%,为派生值)。这正是「多数低熵、少数高熵」的偏斜结构。

熵高熵低,对应的词确实不一样

从出现频次 > 100 的常用词元里,各取平均熵最高 / 最低的 100 个做词云(Figure 2(b)(c)):

高熵 · 分岔

逻辑连接与假设引入

wait、however、unless(转折 / 换路)、thus、also(推进 / 补充)、since、because(因果)。

数学推导里还常出现 suppose、assume、given、define——都在引入假设、已知条件或定义。

低熵 · 沿路

词尾、代码片段、算式成分

多是单词后缀、源码片段或数学表达式中的固定成分,确定性极高——模型在这些位置几乎只有一个合理选择。

它们的作用是「把当前半步走完」,不改变方向。

论文据此把这些高熵词元称为 forking tokens(分岔词元):用熵、而不是「答案对错」来给词元分重要性。这也是整篇工作的立足点——论文自己的说法是,相对前人按输出正误判断词元重要性,它提出"token entropy as a criterion that may more accurately reflect the underlying mechanisms"(§7),用词是 may,不是已证实的结论。§3 / §7

02

前人的探索只看整体熵,判断依据也靠「对错」

论文把已有工作归成两条路,各自差了一口气,但合起来正好搭出本文的位置。

路线 A

看生成熵,但只看平均值

Qwen3、VAPO 等工作都注意到 entropy 在 CoT 推理中很重要,但核算时对所有词元做平均。§3 开头

平均值被大量近零的低熵词元稀释,看不清「少数词元撑起了探索」这件事,更无法据此挑出要训练哪些位置。推断(依据:§3 只说前人「analyze the entropy of all tokens collectively」,未逐词元分析;「被稀释」与「无法据此挑位置」是据此推出的,原文未就此点做实验)

路线 B

找「关键 token」,但按对错判定

Vassoyan et al.(2025)识别「critical tokens」——模型容易出错的决策点,用改 KL 惩罚的方式驱动探索;Lin et al.(2024)找对错误结果贡献大的词元。

这个定义是部分结果导向的:Vassoyan et al.(2025)与 Lin et al.(2024)都以输出是否出错来判定词元重要性,而错误要等答案生成完才知道,所以这个判断必须先看到结果。它挑的是「容易出错的点」,不一定是「该探索的分岔点」。§7 Related Work

本文用一次控制实验把「分岔词元」的角色坐实

作者不满足于定性观察,直接在解码时按词元的熵分别调制温度(Eq. 5)——高熵位置用一个温度,其它位置用另一个温度,在 AIME'24 + AIME'25 上评测 Qwen3-8B(最大响应长度 28,672):

p′t = Softmax(zt / T′t),   T′t = Thigh(若 Ht > 0.672) /  Tlow(否则)
Eq. 5 · 0.672 正是从 10⁶ 词元里算出的 80% 分位点,也就是 top 20% 的门槛。注意原文图里用的判据是严格大于 Ht > 0.672,本文其余公式用 ≥§3 Eq. 5

把其中一组温度固定在 T = 1(Thigh = 1 或 Tlow = 1),另一组在 0.05 ~ 5.0 间扫(Figure 3 横轴为 T = 0.0 / 0.05 / 0.3 / 0.6 / 1.0 / 2.0 / 3.0 / 5.0),得到 Figure 3 的两条曲线(纵轴是 AIME 2024 与 AIME 2025 的平均分)。下表只收录原图上数值与所属曲线都无歧义的标注;「—」表示该温度处的标注落在两条曲线之间、无法归属(见下表脚注),数字不猜:

表 1 · Figure 3 的两条温度曲线(AIME'24 + AIME'25 平均分,Qwen3-8B)
扫描的温度0.051.02.03.05.0
A · 只动其它词元
Thigh=1,扫 Tlow
68.3371.04——70.76
B · 只动分岔词元
Tlow=1,扫 Thigh
62.7171.04—72.2270.94
两组曲线在 T = 1.0 处是同一设置,交点处原图标注为 71.04。原图挤在一起的 71.67 / 71.11 / 71.67 / 70.73 四个标注都横在两条曲线之间,按像素位置无法可靠判断哪个属于蓝线(其它词元)、哪个属于红线(分岔词元),因此 2.0 / 3.0 列留空、不做插值。0.3 / 0.6 等中间点同样不做插值。(同理,2.0 列两个标注不收录。)

看两条曲线在低端的差别:把分岔词元的温度压到 0.05,成绩掉到 62.71;而同样把其它词元压到 0.05,还有 68.33,两者相差 5.62 个百分点(68.33 − 62.71,即其它词元组比分岔词元组高 9.0% 相对值)。原文措辞是 "lowering Thigh significantly degrades performance compared to lowering Tlow"。高端方向,分岔词元调到 3.0 时达到 72.22,其它词元调到 2.0 之后一路回落到 5.0 处的 70.76(原文:"increasing Thigh results in substantially better performance than increasing Tlow";此时两者相差 1.46 个百分点,72.22 − 70.76)。论文对此的解读是:分岔词元需要更高的熵才配得上它们作为「岔路口」的角色,而其它词元一味加温,会让模型生成无意义的输出(原文"which can even cause LLMs generating nonsensical outputs";图中 Tlow 越出横轴常规范围、Tlow = 20 处的离群标注为 20.14,Thigh = 0.0 处为 0.14)。

03

方法只有一处改动:在 DAPO 的损失上乘一个「只剩 top 20%」的指示函数

看懂 Eq. 6 相比 Eq. 4 改了什么、没改什么,就掌握全文。

基线是 DAPO,它的目标是在整条回答所有词元上做因 token 级别的裁剪重要性比与 group 内标准化后的优势的乘积之和,再除以总词元数做平均(Eq. 4)。论文的做法是:

STEP 1照常 rollout,得到每条回答每个词元的 pt 与 Ht
STEP 2在整个 mini-batch 内取熵的 top-ρ(ρ=20%) 分位点 τ
STEP 3损失里乘上 I[H ≥ τ],低熵词元贡献归零
STEP 4归一化分母也换成「通过筛选的词元数」,保证量级稳定
JHighEnt(θ) = EB,{oi}~π[ (1 / Σi,t I[Hit ≥ τBρ]) · Σi Σt I[Hit ≥ τBρ] · min( r Âit, clip(r, 1−εlow, 1+εhigh) Âit ) ]
Eq. 6 · 只在高熵词元上求和的 DAPO 目标;clip-higher、动态采样、token-level 损失、超长奖励塑形都沿用 DAPO§5.2

与 DAPO(Eq. 4)逐项对照,差异只有红色的两处:

差异 1 · 分子

优势项乘指示函数

只有在(mini-)batch B 内熵值不低于阈值 τBρ 的词元才进入损失;其余词元的梯度直接不参与反向传播。§5.1

差异 2 · 分母

平均范围换成「被选中的词元」

原本除以全 batch 的词元总数,现在除以通过筛选的词元数。§5.1 否则丢掉 80% 词元会让损失缩水 5 倍(只保留 1/5 的词元),有效学习率等于被悄悄改了(1 ÷ 0.2 = 5 倍)。推断(依据:Eq. 6 的分母;原文只给出归一化项的定义,没有讨论学习率影响)

阈值 τ 是每个(mini-)batch 内动态计算的分位点,不是固定常数,所以即便不同问题、不同长度的回答熵分布差异大,「取了多少比例的词元」也是稳定的。§5.1

为什么「20%」不是拍脑袋

作者在 Qwen3-8B / 14B / 32B 三个规模上分别只训 top 10%、top 20%、top 50%、100%,或反过来只训最低 80%(Figure 7)。训练过程中的整体平均熵是一条很干净的信号:ρ 取 10%、50% 或 100%(以及只训 bottom 80%)时,整体平均熵都显著更低(原文:"significantly reduced overall entropy"),也就是探索不足。论文的解释是:真正参与探索的只有约 20% 的高熵词元——砍到 10% 误伤了一些有用的分岔点,扩到 50% / 100% 则混进了大量低熵词元(论文原文的措辞是 "adds low-entropy tokens"),反而削弱了探索效果。§5.3 / Figure 7

下面这个模拟把「top-ρ 选择」落在一个 batch 上,看看 ρ 变成多少时被选中的词元里还剩多少真正能推动探索的部分:

词元数仅为示意(论文 mini-batch 为 32 条回答);ρ 与论文一致时取 0.20
读法§5.2 / Figure 7

模拟里把每个词元按熵排序后按 ρ 截断。手算示例:8,192 个词元里真正的高熵分岔词元是 8,192 × 20% = 1,638 个,ρ=0.20 的截断点正好落在它们之内,选中 1,638 个;ρ=0.50 时选中 4,096 个,其中混入 4,096 − 1,638 = 2,458 个低熵词元;ρ=1.0 时混入 6,554 个。ρ=0.10 时只选中 819 个,仅覆盖真分岔词的 819 / 1,638 = 50.0%——剩下的一半被误伤。

04

训练配方几乎照抄 DAPO,只换掉「哪些词元算梯度」

超参数、训练框架、数据全部对齐,唯一变量就是粒度降到词元级的筛选。

表 2 · 训练配方对照(全部取自 §5.2 Training details,除 Llama 见 §5.4)
项目设置
代码基础verl;训练 recipe 沿用 DAPO(Yu et al. 2025)
训练数据DAPO-Math-17K
模型Qwen3-32B / 14B / 8B base;另测 Llama-3.1-8B(cold-start 后)
选择比例 ρ20%(Eq. 6 中 top 20% 高熵词元)
clip-higherεhigh = 0.28,εlow = 0.2
超长奖励塑形最大回答长度 20,480,cache 长度 4,096
batch / mini-batch512 / 32,每轮 16 次梯度步
学习率10⁻⁶,无 warmup、无调度
KL 损失 / 熵损失均不使用
评估6 个数学基准,zero-shot,T = 1.0,每题 16 条独立回答,报 Acc@16 与平均长度

和「熵正则」思路的对照

常见做法是在损失里加 entropy bonus 鼓励探索。论文在讨论部分指出这在 CoT 推理里可能是次优的:它会同时抬高所有词元(包括本该低熵的确定性词元)的熵,反而破坏低熵多数的稳定性。§6 Discussion 3clip-higher(通过给重要性比 r 高的词元更高上限,间接抬高其熵)之所以有效,恰恰是因为「重要比 r 高的词元往往熵也更高」,天然就瞄准了高熵那部分(原文:"tokens with high importance ratios rt(θ) tend to have higher entropy",是经验观察)。

本文的 top-ρ 选择则是哑铃式的:不改变任何词元的分布,只决定哪个词元的梯度在损失函数中说话。结果并不省算力——rollout 仍要生成完整回答,前向仍要算所有词元的 logits 与熵;省下来的只是反向传播里低熵词元那部分梯度计算,以及它们带来的梯度噪声。推断(依据:Eq. 6 的筛选发生在算完 Ht 之后,rollout 与前向不变;「低熵词元带来梯度噪声」是本文的解读之一,论文原话是 low-entropy tokens "may have little effect on or could even hinder reasoning performance",没有单独测量省下多少反向计算或噪声)

05

一步 RLVR 里,熵筛选插在 rollout 和反向传播之间

对照 Figure 1(b) 的示意,标出新增的「按熵截断」环节到底发生在哪里。

问题 qDAPO-Math-17K
Rollout · 16 条回答温度 T = 1.0
算每词元 Ht对训练策略 πθ 取熵(Eq. 1)
Ht ≥ τ ?τ = batch 内 top-ρ 分位点
是 · 约 20%
保留策略梯度I[H ≥ τ] = 1,进入损失
Eq. 6 · 只在选中词元上求和分母 = 被选中词元数
反向传播只更新那 20% 位置的梯度
否 · 约 80%
丢弃I[H ≥ τ] = 0,梯度不回传
Figure 1(b) 的流程重绘:红色是本文新增的「按熵筛词元」环节,插在算完 logits、算出熵之后,损失求平均之前。rollout、分组、奖励塑形、clip 等其余步骤与原 DAPO 一致。

两个设计细节值得重点标出:门槛 τ 是整个(mini-)batch 的一个分位点(不是每条回答各自取 20%),所以长短回答会被放到同一池子里比较——一篇长回答能贡献更多的「被选中词元」,短回答可能几乎全军覆没。这也解释了为什么归一化项用全 batch 被选中词元数(Eq. 6 里对 i、t 一起求和),而不是每条回答自己的选中数。§5.1 长回答占更多名额这一点是直接由「batch 内统一分位点」推出来的。推断(依据:Eq. 6 的阈值 τBρ 在 batch B 内统一;论文未按回答长度分桶统计选中比例)

06

8B 持平、14B/32B 反超,低熵 80% 单独训练直接崩

这是全文最反直觉的地方:丢掉 80% 词元的梯度,不但没掉点,在大模型上还能明显涨。下表 3 摘自原文 Table 2 的 Acc@16(每题 16 条独立回答的平均准确率,zero-shot,T = 1.0)。

表 3 · DAPO 全词元 vs. 仅 top 20% 高熵词元,Acc@16,摘自原文 Table 2
模型基准 DAPO
全词元
DAPO
top 20%
Δ Acc
Qwen3-32BAIME'2455.8363.54+7.71
Qwen3-32BAIME'2545.6356.67+11.04
Qwen3-32BAMC'2391.8894.22+2.34
Qwen3-32BMATH50094.3694.88+0.52
Qwen3-32BMinerva45.7045.82+0.12
Qwen3-32BOlympiad66.1669.02+2.86
Qwen3-32B平均66.5970.69+4.10
Qwen3-14BAIME'2445.2150.42+5.21
Qwen3-14BAIME'2538.1342.92+4.79
Qwen3-14B平均61.4064.39+2.99
Qwen3-8BAIME'2433.3334.58+1.25
Qwen3-8BAIME'2525.4226.25+0.83
Qwen3-8BAMC'2377.8177.19−0.63
Qwen3-8B平均53.7154.23+0.53
数据来自 Table 2(Δ Acc 由原表两列相减得到,单位是绝对百分点);AMC'23 在 8B 上为负(原文 −0.625,表格保留两位)。

提升随模型规模放大

Figure 8 把 8B → 14B → 32B 的 Acc@16 提升画成一张趋势图(单位均为绝对百分点):AIME'24 上 +1.25 / +5.21 / +7.71,AIME'25 上 +0.83 / +4.79 / +11.04(顺序为 8B / 14B / 32B)。8B 基本持平(AMC 上甚至是负的),14B 有可观增益,32B 的增益最大。论文把这种随规模放大的模式归因于「较小的模型可能容量不足,限制了它从增强探索中获益的能力」("This may be due to the insufficient capacity of the smaller model, which restricts its ability to benefit from increased exploration."),同样的解释也出现在原文对 Qwen3-8B 的分析中("probably due to the model's lower capacity");原文是直接比较 8B / 14B / 32B 的增益趋势,并没有针对三个规模分别做验证。推断(依据:§5.3 与 introduction 的归因句;论文没有做「限制容量 / 放开容量」的控制实验)

AIME'24 Δ
+1.25 · 8B
+5.21 · 14B
+7.71 · 32B
AIME'25 Δ
+0.83 · 8B
+4.79 · 14B
+11.04 · 32B
AIME'24 AIME'25 柱高按组内最大值归一化(AIME'24 以 +5.21、AIME'25 以 +11.04 为满格,与 Figure 8 一致),数值标签为 Table 2 的 Δ Acc(绝对百分点)

其它几个反直觉的结果

07

它没能说明的事:20% 是经验值,小模型收益有限,跨家族靠不住

原文 §8 的 Limitations 与本文补充的批判视角,合在一起就是这张「使用时该注意什么」的清单。

边界一

20% 是超参数,不是定理

论文自己在 Limitations 里写明:换一个 RLVR 设定,"the effective proportion of 20% observed in our experiments may need to be adjusted to a different value to achieve optimal results"。消融(Figure 7)只有 10% / 20% / 50% / 100% / bottom 80% 五档,且都在 Qwen3 + DAPO-Math-17K 上;论文称约 20% 是探索与训练稳定性的「有效平衡」,但没有给出跨任务的 20% 证据。§8 Limitations / §5.3

原文没有讨论「真正驱动推理的词元比率是否随任务结构变化」;推断(依据:Limitations 只笼统地说 20% 可能在别的 RLVR 设定里需要调整,未分析原因,也无跨领域实验)——这属于本文作者视角的提示,不是论文结论,使用时应自行验证。

边界二

模型容量不足时,少即是多会失效

在 Qwen3-8B 上只训 top 20% 与全词元几乎持平:六个基准的平均 Acc@16 为 54.23 vs 53.71(+0.53 个百分点),AMC'23 上 77.19 vs 77.81(−0.625 个百分点,相对 −0.8%)。论文对 8B 的解释是 "probably due to the model's lower capacity"——用词是「可能」,且论文没有做容量控制实验。如果外推到比 8B 更小的模型,「只训高熵」未必再成立。推断(依据:论文没有小于 8B 的规模结果,原文明说 "these findings are based on specific experimental settings")

边界三

跨模型家族的证据很有限

所有主结果都在 Qwen3 家族上。Llama-3.1-8B 上直接用 DAPO 时在训练集(DAPO-Math-17K)上准确率只有约 1%,且早期容易输出重复词;作者只能先用 Qwen3-32B 做 teacher 生成回答并从 DAPO-Math-17K 中随机抽 10,000 条正确答案做 cold-start SFT,剩下 7,398 条再做 RL。即便这样 top 20% 仍优于全词元,但作者自己也承认 "the results on Llama-3.1-8B are less convincing compared to those observed on the Qwen3 models"。§5.4 / §8 Limitations

边界四

任务集中在数学推理

训练数据全是数学(DAPO-Math-17K),评估也以数学竞赛题为主;OOD 只验证了 LiveCodeBench 一个。论文把编程、ARC-AGI 等列为未来方向(§8 Limitations "could be expanded")。在开放、松散的领域(如写作、对话),「高熵词元 = 决策点」这个对应关系未必成立。推断(依据:§8 Limitations 建议把数据扩展到 math 之外;论文未在写作/对话类任务上做实验)

关于「因果」与「相关性」的自我检查一点批判视角
  • 高熵 ≠ 因果上的关键:论文用控制实验(调温度)建立了方向性证据,但立即的因果链条仍是「高熵位置需要更高熵」与「只训高熵仍能学到东西」两个观察;是否存在更底层变量(如概念抽象层级)同时决定了两者,论文没有排除。
  • 低熵词元的长期作用:论文说低熵词元对推理贡献小,但只考察了数学 benchmark 上的推理性能。它们维持的语言流畅性、格式合规性等,本实验不是对照组。
  • 阈值 τ 由训练策略计算:off-policy 设置下,熵按 πθ 算(而不是生成回答的旧策略),论文在 §5.1 明确说明,落地时要小心别算错。§5.1

一句话总结:这篇论文的贡献不是「又找到一个调参技巧」,而是把「哪个词元在驱动推理」这个问题从『整条回答』细化到『单个词元』,并用一个几乎零成本的目标函数改动来验证这个视角。把 20% 当成一个经验起点,而不是一个普适常量,是使用这套方法时最该保持的状态。