Agent训练最容易踩的坑:Credit Assignment Is All You Need

七颜百科 °C 栏目:生活百科
Agent训练最容易踩的坑:Credit Assignment Is All You Need

(来源:haotian PaperWeekly)

训 reasoning-model 的时候,即使输出很长,也不会 care credit-assignment,只要题目足够难、group-size 足够大,训练时间足够长,训推 diff低/entorpy 不炸,基本都能涨到还不错的效果。

但转到 agentic 任务,似乎故事的叙事方法就完全变了。

加入各种 TITO、seq/token-is(有偏/无偏)以及各种不同的算法变种,在笔者的实验中,总是涨点随缘,波动为主。很少能见到类似 reasoning-RL 那样非常明确的涨幅趋势。

从换 data、加 KL(防治分布漂移)、加 entropy(增加探索)等等,似乎都无法解决问题。当模型曲线健康的时候,eval 不涨点会比较难定位问题。

infra 错?但 single-turn 都正常且训推 diff、entropy、KL 都正常。

数据错?换 data 似乎也不解决问题(除非用测试集训练)。

recipe 错?都训不崩、指标健康,recipe 似乎没错。

分析 rollout 样本?不同的任务/task 分析难度不低,LLM-judge 能给出一些初步诊断,但一些问题的解决需要从 data 角度构造(且模型的输出行为需要能符合预期,这个周期也不短)。

加 reward-shape?底座/数据/任务之间,比较难迁移,且不解决长期问题。

思来想去,只能转向credit-assignment。对于 128k 甚至 256k 长度的训练长度,高质量的 rubric 和 LLM-judge 成本很高,拖累训练速度,验证周期也更长。

在 SAO 之前,大家还是更多 group-sampling 这种方法,当 data、recipe 都看着正确的情况下,只能增加 bs 或者 rollout-num-per-group,企图通过更多暴力采样解决问题。

你说 infra 的训推 diff 更小会不会变好,答案肯定是 no,开了 r3、算子对齐,出来也是依托答辩。

最明显的问题:

1. 正确样本里面有 bad-behavior,但如果数据质量不够高,bad-behavior 会被鼓励甚至放大,导致更难的题目直接 fail(1. 造更好的data;2. 加reward-shape)---> 造更好的 data,短期不容易解决;reward-shape 不解决本质问题,且随着底座、数据变化,大概率也是无用功。

2. 错误样本里面,有正确的推理+工具调用路径,GRPO 这种 critic-free 会无差别惩罚--->充分说明,吃大锅饭、非个性化培养,企图用一个信号训模型,训出来的都是垃圾。

解决思路也简单:partial-credit-assignment。只要有就比没有强(不能比 group-mean 还差),质量更高更好[6]

1. 离线 judge bad-pattern,前缀不做优化,只优化后缀(比如出现过明确推理得到的答案但最后验证等等错误);

2. [1][2][3] 里面的提到的方法。

PivotRL:

应用到 credit-assignment,则可以这么做:

1. 离线先 SFT 筛一波数据;

2. 通过 LLM-judge、entropy 等等,找一个合适的 cut-point(比如 first-error-step 检测、高 entropy 分叉点,比如[4]);

3. 离线 cut 后,前缀作为 prompt 丢进去(不做优化,prefix-replay),只优化后缀,还是按照 GRPO 的标准配置。

类似的方法还有 [1],但 [1] 的实现更复杂一些([1] 还同时训了 reflection generation and action retries 等等,复杂度相对高)。

基于 Pivot-RL 的 naive 版本(离线 cut,replay-prefix,只 rollout+optimize suffix),已经在部分 bench 上涨点显著(没出现随机波动),更大的尺寸、更多的训练 step,也符合预期。

但整体上,如果算力比较高,做 tree-rollout,选 pivot-node(比如 [4],再结合 LLM-judge),做后续的 rollout,估计 q-value 等等,也能得到比较 solid 的 pivot-turn 的选择,会是更好的选择。

近期,在多轮 OPD 场景,也有类似的工作 [3],通过各种不同的方法 replay-prefix,提升多轮场景的 credit-assignment 准度和收敛效率。

由于加了 pivot 的 prefix-replay,整体训练速度也会提升(适合短期交付、资源少的场景),且能更稳定的涨点,是一个不错的实践方法。

如果资源充足,还是做一个 value-pretrain 来的划算,即使没有 large-scale-value-pretrain,也能在 RL 的训练数据上做,也会有很不错的效果 [5]

我们在 [5] 中,也粗浅验证了一下 value-pretrain 和 RL 的数据 IID,对于 OOD 涨点也会更好。或者做 tree-rollout,选择合适的分叉 node [4],也能更好的优化 long-horizon agentic task。

一句话总结:credit-assignment 只要不是胡乱搞(不能比 group-mean 还烂,EVPO [6] 里面,有比较明确的实验),在多轮场景下,或多或少都会有些增益,避免过分惩罚错误里面的正确,导致模型的输出质量急剧下降。

参考文献

[1] Agent Reinforcement Learning via Pivotal-Aware Self-Feedback Retry

[2] PivotRL: High Accuracy Agentic Post-Training at Low Compute Cost

[3] Multi-Turn On-Policy Distillation with Prefix Replay

[4] TreeRL: LLM Reinforcement Learning with On-Policy Tree Search

[5] https://zhuanlan.zhihu.com/p/2064452938018322060

[6] EVPO:*Explained Variance Policy Optimization*, arXiv:2604.19485