Skip to content
🔗 分享本题
查看我的学习进度 →

序列级奖励与 token 步骤级信用分配机制对比图

🧠 记忆锚点:序列奖励只说结果好坏,信用分配要找出哪一步造成结果;粒度越细,信号也越难做准。

💡 答案要点

信用分配问题 = 强化学习中"最终结果好/坏,到底谁贡献了"的问题

问题场景:
一个100步的推理任务,最终结果错了
→ 是第1步就错了,还是第50步才错的?
→ 中间的99步,哪些该受罚、哪些无辜?

这就是信用分配问题:如何把最终 reward 分配到每一个中间 step/token

Token级别 vs Sequence级别的奖励对比:

维度Seq级别奖励Token级别奖励
分配方式整个序列共享同一个 reward每个 token 独立 reward
细粒度粗糙精细
计算量
效果收敛慢,但稳定收敛快,但可能不稳定
适用场景稀疏奖励稠密奖励

Token级别奖励的实现方式:

python
# 方式1:稀释法(Dilution)
# 最终 reward 按衰减分配给前面的 token
reward_at_step_t = final_reward * gamma^(T-t)

# 方式2:因果贡献法(参考 RLSP)
# 用梯度方法估算每个 token 对最终 reward 的贡献

# 方式3:蒙特卡洛估计(Monte Carlo)
# 多次采样,估算每个位置的平均贡献

面试话术:

"信用分配是 RLHF 最核心的工程问题之一。Seq 级别奖励简单但收敛慢——模型要试错很多次才能知道'哪一步'有问题。Token 级别奖励更精细,但实现复杂,核心难点是如何准确估算每个 token 的边际贡献。实际生产中常用'稀释法'做粗粒度分配,配合 PPO 的 advantage 估计做细粒度调整。"