本周聚焦 credit assignment——Pignatelli survey、SHARP、LangMARL 对比;
把上周周报被追问的几个点补清楚(GRPO vs PPO / CAD-GRPO 岭回归 / RLHF reward model);
顺手把 policy gradient 方法的演进时间线梳了一遍。
本周清单
- 阅读信用分解的 survey
- 上周周报内容的 Q&A
- 一些概念的理解
- to-do
1. 阅读 survey
让 claude code 推荐了几篇围绕 credit assignment / credit decomposition 的论文进行精读。因为最近申报书定的方向就是 CAD-GRPO,所以这周读的论文基本都是围绕"多智能体场景下如何把 team reward 拆回给每个 agent"这个问题展开的。
主要挑了三篇:一篇是之前 3.15-3.21 读过的 Pignatelli 的 survey,一篇是 SHARP(用 Shapley 值做 marginal credit,是 CAD-GRPO 关键竞品之一),还有一篇是上周已经精读过的 LangMARL(这里主要是把它和 SHARP 放在一起做一个对比)。
1.1 Pignatelli et al., A Survey of Temporal Credit Assignment in Deep Reinforcement Learning (TMLR 2024)
专门讲 credit assignment 的数学本质的 survey。temporal CA 在 single-agent 里面的三个挑战:
- Depth(延迟效应,reward 离 action 越远越难归因)
- Density(稀疏奖励,trajectory 里几乎没有中间信号)
- Breadth(credit 稀释,joint action space 里每个 action 的贡献都被"平均"掉了)
还把 credit assignment 形式化成了一个赋值函数:
其中 是 context, 是 action, 是 goal/outcome, 是分配给该 (context, action) 的 credit 值。
对我现在做 CAD-GRPO 的启发:
- Breadth challenge 就是 MARL 场景下 credit contamination 的另一个说法。
- CAD-GRPO 用观察性因果推断去解决 breadth 这个问题,从 survey 的分类来看确实是一个没被系统讨论过的新路径。
1.2 SHARP: Who Deserves the Reward? Shapley Credit-based Optimization for Multi-Agent System
这篇是 CAD-GRPO 申报书里直接对标的 baseline,所以这次精读主要是想搞清楚它到底怎么做的信用分解的,以及开销到底有多大。
核心 idea: 把 Shapley 值从合作博弈搬到 multi-agent LLM RL 里,用反事实 mask来近似每个 agent 的 marginal contribution。具体来说,给定一条轨迹 和 worker agent :
其中 是把 agent "mask 掉"之后重新跑出来的 trajectory。对 planner agent,它用所有正向贡献的 worker credit 取平均作为 planner 的 credit:
最后把这个 marginal credit 和 broadcast accuracy reward、tool process reward 加权合成一个 tripartite reward(也是 SHARP 名字里的那个 “tripartite”)来做 GRPO 的 policy update。
启发:
SHARP 本质上是一个介入性方法,必须显式地生成反事实轨迹 来估计 credit。论文里的 cost analysis(附录 D)显示,当完全开启 Shapley 分配()时,per-batch 训练时间从 684s 涨到 1345s,几乎翻了一倍。这个开销和我们申报书里写的 “~2x” 是吻合的。
但 SHARP 的优势在于,它的 credit 估计是基于反事实 mask 的无偏估计,只要 counterfactual trajectory 本身可靠,理论上没有 observation-based 方法(区别于 interventional)的"质量指标 充分性"的假设依赖。
CAD-GRPO 其实可以把 SHARP 的 Shapley 估计当成一个 oracle 上界——在合成环境里,如果 CAD-GRPO 的 在零开销下能逼近 SHARP 的 Shapley 到一定水平,就是一个比较有说服力的结果。
同时 SHARP 的 reward decomposition 是加性的(),这一假设和 CAD-GRPO 的线性可加性 assumption 是同一个 family 的。也就是说如果 SHARP 能 work,那 CAD-GRPO 在这种场景下大概率同样 work。
1.3 LangMARL 补充
上周精读 LangMARL 的时候主要写了 framework overview,这次关注和 SHARP 的对比。SHARP 用的是数值空间里的 Shapley 反事实,LangMARL 用的是语言空间里的 critic LLM 做因果归因,二者其实都是介入性方法的变体。
所以它们的共同问题就是开销大且依赖一个额外的机制(反事实采样 or critic LLM)。CAD-GRPO 的优势位置就是不生成反事实、不调额外的 LLM,纯用 batch data 里的自然变异做统计分解。但是目前还处于空想阶段,肯定不可能是一个普通的 linear regression 就能解决的问题。
2. 上周的 Q&A
2.1 关于 GRPO vs PPO,以及 CAD-GRPO 的岭回归
Q: GRPO 里面的 adv 和 PPO 里面的 value 有什么区别?为什么能够通过 group 的方式去掉了 PPO 里面的 critic network,还能达到其效果?GRPO 的 adv 是如何分配的,或者说它的 credit 是如何分配的?为什么 group 后 agent 较难感知自己的贡献?CAD-GRPO 里面的岭回归的目标是啥,为什么能让 agent 知道自己的贡献?MAS 下是需要在 single-agent credit 之外多一步 per-agent credit 吗?那岭回归为什么能跨越两次回传到 agent 本身进行更新呢?
A:
(1)PPO 的 value vs GRPO 的 advantage
PPO 的 value 是从状态 出发、按当前 policy 走下去能拿到多少期望回报。PPO 的 advantage 是把这个绝对 value 作为 baseline 来算的:
本质上 是由一个 critic network 学出来的。
GRPO 的 advantage 是:给定一个 prompt ,采样 个 rollout ,得到 个 reward ,然后做组内归一化:
这里的 baseline 就是这个 prompt 下其他 个 rollout 的平均奖励。
(2)为什么 group 能去掉 critic 还 work?
我的理解是:PPO 中的 critic 本来就是在估一个 baseline 来降低 policy gradient 的方差。GRPO 相当于用更多的 rollout(每个 prompt 条而不是 1 条)换掉了 critic 那部分计算。因为它的方差随 增大而减小,只要 够大(DeepSeek R1 用的是 或者更大),variance 是可接受的。
本质是 Monte Carlo vs TD bootstrapping 的 tradeoff。在 LLM RL 场景下,rollout 相对便宜、critic 训练相对麻烦(long horizon、sparse reward),所以 MC 的性价比更高。
(3)GRPO 的 credit 怎么分配?
在 single-agent GRPO 里,credit 分配主要是轨迹粒度和 token 粒度:
- Trajectory level: 一条轨迹 内所有 token 都共享同一个 advantage
- Token level: policy gradient 的时候是 ,对每个 token 用的都是同一个
(4)为什么 group 后 multi-agent 下单个 agent 难感知自己的贡献?
多智能体场景下,一条轨迹是 个 agent 联合生成的:
team reward 同时取决于所有 个 agent。如果直接套 standard GRPO:
然后把这个 同时赋给 agent 1 到 agent N 的所有 token,就会出现"agent 1 明明输出很好,但队友 agent 2 出了 bug 把 task 搞砸了,结果 agent 1 也收到负的 advantage 信号"——体现为 agent 1 的处理效果被 agent 2 的行动混淆了。
(5)CAD-GRPO 的岭回归目标是啥?
假设在一个 batch 内部,团队奖励可以近似线性分解为各 agent 质量指标的加权和:
其中:
- 是常数项
- 是 prompt 的固定效应(控制不同问题难度带来的 baseline 差异)
- 是 agent 的可验证质量指标(比如编译成功率、单元测试通过率、格式合规性等)
- 是我们要估计的 agent 对团队奖励的边际贡献系数
- 是残差
岭回归的目的就是用批次内样本去拟合这个线性模型,得到 。然后每个 agent 的去混淆优势定义为:
捕获的是"当 agent 的质量 变化一个单位时,团队奖励平均变化多少"。这个信号扣除了其他 agent 贡献带来的污染,因为回归里已经把 作为控制变量放进去了。
(6)“MAS 下是需要在 single-agent credit 之外多一步 per-agent credit 吗?岭回归怎么跨越两次回传?”
这是这个问题里最关键的一层,我想了好一会。我觉得其实有两个 credit assignment 是正交的问题:
我认为 CAD-GRPO 解决的只是 agent-level 的 credit,而没有讨论 action-level 或者说 token-level 的 credit。只是给每个 agent 单独估一个去混淆后的 advantage ,然后这个 在 policy update 的时候只作用于 agent 自己的 token 序列:
因为每个 agent 有自己的 policy (或者猜测可以共享参数但用 role-specific prompt),它只对自己那一段 token 的概率做微分。所以 只会通过 这一条路径更新到 agent 的参数上,不会跨 agent 进行回传。policy update 就是标准的 per-agent policy gradient,每个 agent 只看自己的 和自己的 。
(这里我也不完全确定"每个 agent 有独立 policy 还是 share parameters"这个细节在不同工作里的处理方式,SHARP 和 MHGPO 都是 shared policy + role prompt,下周可以再系统看一下。)
2.2 关于 RLHF 里的 reward model 表述
Q: RLHF 里面的 reward model 应该是通过构造的人类偏好数据集来学习对应的偏好,"先训一个 reward model 来捕获人类偏好"这个好像有点反了。这里可以思考 RL 里面的 value 和 reward 的区别,从而就知道为什么会有 reward hacking 了。
A: 上周周报里确实写得不够精确。当时写的是:
“RLHF 则高度依赖于迭代式、可扩展的人类评估和偏好数据,先训一个 reward model 来捕获人类偏好,然后用 PPO/GRPO 这类策略优化方法去最大化这个 reward”
严格来说应该是这样:
- 先构造人类偏好数据集 ,其中 是人类偏好的 response, 是较差的 response
- 再用这个数据集训一个 reward model ,通常用 Bradley-Terry 损失:
- 最后用训好的 当成 RL 的 reward signal,跑 PPO/GRPO 最大化
然后就是 value 和 reward 的本质区别。reward 是环境在单步给出的即时信号,是外部定义的一个静态标量。value 或 是从状态 出发按某个 policy 走下去能拿到的期望,是 policy-dependent 的:
reward 是目标的局部信号,value 是 policy 真正在优化的东西。
为什么会 reward hacking?
只是人类偏好的近似:
这个近似只在训练分布内成立。一旦 policy 的优化驱动输出分布偏离训练分布过多, 的预测就可能完全失准:
- Policy 在优化 ,不是
- 当 policy 找到 的某个"漏洞"(比如某类词汇特别讨 reward model 喜欢、或者某种格式会被 reward model 误判为高质量), 的分数会飙高
- 但实际上人类看了这些 response 可能觉得"啊这是什么玩意儿"——reward 上去了,用户满意度反而下降
这就是 Goodhart’s law 在 RL 里的体现:
When a measure becomes a target, it ceases to be a good measure.
这个问题在 multi-agent 场景下会更复杂——agent 级别的 reward hacking、tool-use 级别的 reward hacking、最终 response 级别的 reward hacking……所以 CAD-GRPO 强调了质量指标 的充分性。如果 本身是一个非常容易被 hack 的 proxy,那整个系统就会退化。
3. 概念理解(部分 AI 辅助整理)
3.1 Policy Gradient 方法整理
按时间线梳理了一下 policy gradient 系列的演进。
(1)REINFORCE(1992, Williams)
最朴素的 policy gradient,直接用 Monte Carlo return 当信号:
问题: 方差巨大,基本没法直接用。
(2)Actor-Critic(1999, Konda & Tsitsiklis)
引入一个 critic 作为 baseline 来降方差,policy gradient 变成:
(3)A2C / A3C(2016, Mnih et al.)
把 baseline 这件事做得更彻底——用 advantage 替代 raw return 减 baseline。A3C 同时跑多个异步 worker 加速训练,A2C 是 A3C 的同步版本。
(4)TRPO(2015, Schulman et al.)
提出了一个重要的观察——policy 每次更新不能走得太远,否则容易 collapse。TRPO 通过显式的 trust region 约束(KL 散度上界)来限制每步更新的幅度:
问题: 要解一个 constrained optimization,实现上很麻烦(要算 Fisher 信息矩阵、conjugate gradient 等)。
(5)PPO(2017, Schulman et al.)
用一个 clipped ratio 代替 TRPO 的 KL 约束,工程上友好很多:
其中 是 importance ratio。clip 操作把 ratio 强行锁在 区间内,防止策略走太远。PPO 因为简单、稳定、好调,变成了当前(包括 LLM RL)事实上的默认算法。
(6)GRPO(2024, DeepSeek)
GRPO 的 motivation 是针对 LLM RL 这个场景的痛点:critic 很难训(long-horizon、sparse reward)。于是它直接去掉 critic,改用 group 内相对排名做 baseline:
剩下的 clip objective 和 PPO 完全一样。GRPO 在 DeepSeek-R1 的训练里被证明非常 work,之后变成了 reasoning-focused LLM RL 的默认选项。
(7)MAPPO / COMA / QMIX(多智能体 variants)
这几个是 multi-agent 场景下的延伸,主要针对 cooperative Dec-POMDP:
- MAPPO (2022, Yu et al.): 就是把 PPO 搬到 multi-agent 上,用 centralized value function + decentralized policy(CTDE 范式)。surprisingly effective——很多 cooperative MARL benchmark 上 MAPPO 都能打平甚至超过专门设计的 MARL 算法。
- COMA (2018, Foerster et al.): 用counterfactual baseline做 credit assignment,对每个 agent 估"如果我换一个 action,team reward 会怎么变"。这个思想就是 SHARP、CCPO 的祖师爷。
- QMIX / VDN (2017, 2018): value decomposition 派的代表——把 joint Q-function 分解成各 agent Q-function 的某种组合(VDN 是求和,QMIX 是一个单调混合网络)。
从 critic → baseline → trust region → clip → group relative,其实都是在做方差缩减和策略更新的稳定。
3.2 GAE(Generalized Advantage Estimation)
PPO 的标配 advantage 估计方法,Schulman 他们 2015 年的工作。
背景: advantage 可以用 -step return 估计:
- 很小(比如 ,TD(0)):低方差,高偏差(bias 由 critic 的质量决定)
- 很大(,MC):高方差,低偏差
GAE 的想法是对所有 -step advantage 做一个指数加权平均:
其中 是 one-step TD error。参数 控制 bias-variance tradeoff:
- :纯 TD,,低方差高偏差
- :纯 MC,,高方差低偏差
- 实际中 PPO 一般用 左右,两边折中
GRPO 没有 critic,所以 GRPO 也不涉及 GAE。但 GRPO 在 long-horizon 场景下 pure MC 方差会炸,会表现得不如 PPO,原因就是少了 GAE 的 平滑。
4. To-do
(1)复现 Claude Code 的 harness
一直想开工的一件事,估计一周肯定学不明白,可能要花的时间长一点,主要想学习 cc 的 tool-use loop、context management 和 multi-agent manage。
(2)继续读 credit assignment 相关论文
本周 survey 还没读完,初步决定下周读的东西:
- CCPO (arXiv:2603.21563):申报书里第二个主要 baseline,要和 SHARP 一起横向对比
- C3 (arXiv:2603.06859):contextual counterfactual credit,和 CCPO 思路相近但做 step-level
- Dr.MAS (arXiv:2602.08847):zero-cost 但只做 normalization 不做分解,是 CAD-GRPO 要超越的 “baseline 下界”
- MHGPO (arXiv:2506.02718):异构 agent 的 GRPO 分组策略(上周已经读过一遍,再过一遍做笔记)