RL 训练中该看哪些指标:从 entropy 到 faithfulness 的尺度梳理
做 RL post-training 时最容易犯的错误,是把"loss 降了、reward 涨了"当成训练 healthy 的充分证据。这两个指标确实是必要条件,但远远不够。Reward 能在 policy 已经 mode collapse 的情况下继续涨,loss 能在 reasoning 已经 spurious 的情况下继续降。真正的训练诊断需要在多个尺度上同时观察。
这篇梳理 RL 训练中值得监控的指标,按它们所处的观察尺度组织,并指出每个指标实际能告诉观察者什么、不能告诉什么。
一、先建立一个尺度坐标
所有 RL 相关指标可以放进一个三维坐标:在什么里面算 × 跨什么维度波动 × 衡量什么对象。
| 坐标轴 | 取值 |
|---|---|
| 算的范围 | 单 token / 单 rollout / 同 prompt 的 group / 整个 batch / 整个训练过程 |
| 波动维度 | 词表 / rollout / prompt / 时间 |
| 衡量对象 | 策略不确定性 / 任务难度 / 路径多样性 / 推理质量 |
同一个词(比如 “variance”)在不同轴上指向完全不同的含义。先把坐标搭起来,后面所有指标就各归其位。
二、Token 尺度:生成内部的犹豫
- Token entropy
定义:在生成每个 token 时,策略分布在词表上的熵。
公式:H = −Σ π(v|context) log π(v|context)
衡量的是模型在这一步有多犹豫。高熵意味着在多个 token 之间举棋不定,低熵意味着几乎确定选哪个。
这是 Clip-Cov 那条线的核心关切。RL 训练存在系统性的"entropy squeeze"——随着训练推进,策略会越来越 confident,entropy 单调下降,最终丧失探索能力。Clip-Cov 的修正思路是避免 clip 掉高熵 token 的梯度,因为这些高熵位置恰恰是策略还在探索的地方。
Entropy 的局限:它是局部指标,高熵可能是深思熟虑,也可能是乱蒙,单看 entropy 不能判定 reasoning 质量。
- Policy gradient clip fraction
被 PPO-style clip 截断的 token 比例。
| 范围 | 含义 |
|---|---|
| 过低 | 更新幅度小,学习缓慢 |
| 中等稳定 | Healthy |
| 过高 | 更新过于激进,被大量截断 |
clip fraction 和 entropy 应当一起看。Entropy 高但 clip fraction 低,说明在充分探索且更新温和;Entropy 低但 clip fraction 高,是典型的训练不稳——模型已经收敛到窄模式但更新还在试图拉它离开,两股力打架。
- KL divergence to reference
新策略与参考策略(通常是 SFT checkpoint)的 KL。过低意味着没学到新东西,过高意味着偏离 pretrain 太远、可能损失基础能力。HGPO 训练曲线的一个有意思对比:GRPO 的 KL 偏低(学得慢),GiGPO 的 KL 偏高(太激进),HGPO 居中(稳)。KL 的绝对值本身没有标准,但训练过程中的轨迹形状非常能说明问题。
三、Rollout 尺度:单条轨迹内部的信号
- Response length 与 correctness 的联合分布
R1 和 o1 观察到的现象是:RL 训练中 response length 单调上升,模型"学会了长思考"。
但这是个双刃观察。DrGRPO 明确指出 GRPO 存在 “length bias”——advantage 按 token 数归一化的方式会系统性奖励更长的 response,哪怕内容在重复废话。真正值得看的不是 length 本身,而是 length 与 correctness 的条件相关性:
| 观察 | 诊断 |
|---|---|
| 长响应 → 正确率升高 | Healthy,长思考真的在帮 |
| 长响应 → 正确率不变 | 虚假 length 增长 |
| 长响应 → 正确率下降 | Overthinking / hallucination 风险 |
- Think / Answer / Tool call 的分段质量
这是很多训练监控里容易被忽略的点。一条 rollout 在 agent / reasoning 场景下通常有多段结构(
| 段落 | 关键指标 |
|---|---|
| 长度分布、重复率、内部 entropy、是否真在推理 | |
| 格式合规率、与 | |
| <tool_call> | 调用次数、参数格式、重复调用率 |
| 对后续 |
一个实际容易出现但不被察觉的失败模式:模型学会了在
- Tool call efficiency(search-augmented 场景)
GiGPO 的 search-QA 实验里报了一个很值得借鉴的指标:平均工具调用次数。在 tool use 场景下,调用次数是 agency quality 的直接 proxy:
| 现象 | 诊断 |
|---|---|
| 调用次数稳定在 1.0 左右 | 高效,只在需要时调用 |
| 调用次数接近上限 | 模型在机械地重复调用 |
| 调用次数方差大 | 策略不稳定 |
redundant tool call 是 agent RL 里一个很隐蔽的失败模式——reward 看起来没问题(最终答对了),但每个 query 被反复搜索了 3-5 次,推理成本和延迟都爆炸。只看 reward 完全看不出来。
四、Group 尺度:同 prompt 跨 rollout 的波动
- Reward variance(GRPO 里的 σ_G)
这是 group-based RL 算法里用来归一化 advantage 的那个 σ。衡量的是同一 prompt 下 N 条 rollout 的 reward 标准差。
| σ_G 的取值 | 含义 |
|---|---|
| 0(全对) | 任务对当前 policy 太简单 |
| 0(全错) | 任务对当前 policy 太难 |
| 中等 | 有对有错,最有学习信号的区间 |
σ_G = 0 的 prompt 在 GRPO 里白采——advantage 全是 0,没有梯度。DAPO 的 Dynamic Sampling 就是显式用这个信号过滤 prompt。监控 batch 里 σ_G = 0 的比例是判断"当前数据集对 policy 是否合适"的直接指标。
- Pass@k − Pass@1 gap
同一 prompt 采 N 条 rollout,看 k 次里至少对一次的概率与单次正确率的差距。
| 差距 | 诊断 |
|---|---|
| 大差距 | Policy 知道怎么做但不稳定,有多条潜在有效路径 |
| 小差距且 Pass@1 高 | 稳定地会 |
| 小差距且 Pass@1 低 | 稳定地不会 |
Pass@k 差距大是一个正面信号——意味着模型有潜力,只是当前输出分布没有把潜力集中到第一次采样。这种情况下,self-consistency / majority vote 通常能显著提升性能。
- Trajectory diversity
同 prompt 下 N 条 rollout 的轨迹空间距离,不是 reward 空间距离。三种常见做法:
| 度量 | 适用场景 |
|---|---|
| Action sequence edit distance | 离散动作空间(ALFWorld、WebShop) |
| State visitation 覆盖率 | 环境 state 空间小 |
| CoT embedding pairwise cosine | Reasoning 场景 |
GiGPO 的 Figure 5 实际上隐式报了这个——“step-level group size 分布向 N=8 集中” 就是 trajectory diversity 坍缩的证据。作者当成"policy 学稳了"来读,但反过来也可以读成 “exploration 丢了”。一个健康的训练应该在 exploitation 和 exploration 之间有明确的节奏感,而不是单调坍缩。
五、Prompt 尺度:跨 prompt 的分布
- Prompt-level reward 分布
整个训练 batch 里,不同 prompt 的 reward 分布形状。长尾(少数 prompt 拿到所有正 reward)意味着学习信号集中在一小部分数据,其余数据对 policy 贡献接近零。这种情况下 effective batch size 远小于实际 batch size。
- Prompt 难度分层的梯度流
健康训练的一个特征:中等难度 prompt 贡献主要梯度。如果发现简单 prompt(σ_G=0)占比过高,说明课程已经过时;困难 prompt 占比过高,说明 policy 被甩开太远。Curriculum / 动态数据过滤就是在操作这个分布。
- OOD 性能偏移
HGPO 的一个有意思观察:所有 baseline 在 ALFWorld 的 out-of-distribution 任务上都有显著性能降低,HGPO 降得最少。这个 in-distribution 与 out-of-distribution 的 gap 值得单独监控——它直接反映 policy 是真的 generalize 了,还是只在训练分布上 overfit。
六、时间尺度:训练过程的轨迹
- Entropy 随训练步数的衰减曲线
单调下降是常态,但下降速度很说明问题。前 50 步急剧下降(collapse)与平滑下降(learning)差异巨大,前者几乎一定伴随后期性能饱和。
- Reward 增长与 Pass@k 增长的解耦
Reward 还在涨但 Pass@k 不涨——模型在把更多采样集中到已知的正确模式上,没有在发现新模式。这是 mode collapse 的早期信号,远早于 reward 开始掉头。
- Gradient norm 与 update magnitude
训练稳定性的基础指标,但容易被忽略。Gradient norm 突刺通常对应某条极端 reward 的 rollout,常见于稀疏奖励场景。
七、Reasoning 质量:真正困难的那一层
前面所有指标都是"训练机制内生的”——被算出来是为了让算法 work,顺便被拿来看 policy 状态。它们的定义域里没有 reasoning 质量这个变量。
一条正确轨迹是深思熟虑得出的,还是 spurious reasoning 蒙对的,在前述所有指标下不可分辨。衡量这件事需要更贵的指标。
- Faithfulness probe
核心思路:干预 CoT(删除中间步、注入错误、paraphrase),观察最终答案是否变化。
| 干预后答案稳定性 | 诊断 |
|---|---|
| 干预后答案不变 | CoT 是装饰,非 causal(unfaithful) |
| 干预后答案按预期改变 | CoT 是真实推理链条(faithful) |
这是 Anthropic 2023 “Measuring Faithfulness in CoT” 和 Turpin 2023 “CoT Can Be Unfaithful” 那条线的核心方法。主要成本是需要为每条待评估的 rollout 额外生成 k 条干预版本,评估成本线性放大。
Turpin 的反直觉 finding 值得记住:看起来推理清晰的 CoT 经常反而是更 unfaithful 的。“清晰"可能只是在表演清晰,真正的决策过程发生在别处。这个 finding 直接质疑了"reward CoT 质量能提升推理能力"的朴素假设。
- Self-consistency gap
Majority vote over N samples 的准确率减去单次准确率。这是一个便宜的 faithfulness proxy——如果 CoT 真的在做推理,不同 CoT 路径应当收敛到同一正确答案,majority vote 会显著高于单次。
- Intermediate step verification
在有 ground truth intermediate state 的环境里(如数学题的中间等式、代码的中间变量值),可以直接验证
八、监控仪表盘的搭建建议
把上述指标组织成一个多层仪表盘,每层回答一个问题:
| 层 | 核心问题 | 主要指标 |
|---|---|---|
| L1 训练稳定性 | 优化在 work 吗 | Loss、gradient norm、clip fraction、KL |
| L2 策略行为 | Policy 在如何变化 | Token entropy、response length、tool call 次数 |
| L3 学习信号 | 数据对 policy 有价值吗 | σ_G 分布、Pass@k−Pass@1、prompt 难度分布 |
| L4 探索健康度 | 还在探索吗 | Trajectory diversity、group size 分布 |
| L5 泛化 | 学到的是模式还是背题 | ID vs OOD gap、hold-out 性能 |
| L6 推理质量 | CoT 是真在推理吗 | Faithfulness probe、self-consistency gap |
大多数工作只看 L1 和 L5,少数工作看 L2-L4,几乎没有工作在训练过程中持续监控 L6。这不是因为 L6 不重要,而是因为 L6 贵——但越是靠近上层的问题越接近 RL 的本质,越是被忽略的指标越可能成为下一代方法的突破口。
九、结语
监控指标的选择本身就是研究品味的体现。只看 reward 是对 RL 最浅的理解;看 entropy 和 KL 是标准实践;看 trajectory diversity 和 σ 分布是对 group-based RL 的成熟理解;看 faithfulness 和 CoT causal structure 是在质疑 RL 框架本身能否塑造真实的 reasoning。
指标的层级和研究方向的层级有对应关系。选择在哪一层看训练、在哪一层提出新指标,本身就决定了工作能触达的天花板。