GCPO
Paper · arXiv 2508.05428v1 · 2025

GCPO:把同组答案建成对撞结构,再用因果投影重加权

GRPO 只用组内相对奖励,等于假设 n 条候选答案互不相干。GCPO 把 q、候选 y_i 与最终融合答案 y_n 写成结构因果模型:y_n 是一个 collider,条件在它上面会让原本独立的候选变得相关。论文据此把每个候选投影到一个因果子空间,用投影对齐度改写优势,并加一个指向因果参考分布的 KL 项。

代价是每组多一轮融合采样与多轮表示前向;论文报告训练成本是 GRPO 的 1.18×。

Ziyin Gu, Jingyao Wang, Ran Zuo, Chuxiong Sun, Zeen Song, Changwen Zheng, Wenwen Qiang arXiv 2508.05428v1 ↗
TL;DR · 30 秒抓住核心

问题不是「奖励不够好」,而是「组内关系没进目标函数」。 GRPO 对每条候选单独算奖励,再在组内减均值、除标准差;这个操作只用到奖励的相对大小,完全不用候选之间的支持、互补或矛盾。论文用 Figure 1 的 support / conflict 两种链说明:同一题的多条推理并不是 n 个独立样本。

因果视角给出的不是一句比喻,而是一个可计算的目标。 把 q → y_i、q → y_n、y_i → y_n 写成 SCM 后,y_n 是 collider:只给定 q 时 y_i 独立,再给定 y_n 后相关。Theorem 1 / Corollary 2 说,投影 Ψ·π*(x)+π*(q) 的误差不大于 π*(x) 或 π*(q)。

GCPO 把这个投影落到两处: 优势 B_i = A_i·Υ_i,其中 Υ_i = α·cos(z_i, Z̄_i − Z̄′_i + z̄);以及一个新的 KL 项,把策略拉向由同一组候选构造的 π′_ref。前者改「谁更值得奖励」,后者改「往哪里更新」。

结果要按百分点读。 三个数学 backbone 的 Avg 都是 GCPO 最高;7B 上是 66.5 对 GRPO 65.1(+1.4 个百分点),对最强基线 GVPO / Dr.GRPO 65.7(+0.8 个百分点)。代价是 1.18× 训练成本。

66.5%
DeepSeek-R1-Distill-Qwen-7B 的 Avg Pass@1
Table 1 中三个 backbone 的最高 Avg
1.4pp
7B Avg 相对 GRPO 的绝对差
66.5 − 65.1
1.18×
训练 GPU 小时 / GRPO
论文 Appendix 报告
01

GRPO 把同组答案当成互不相干的样本

先看清「组内归一化」到底用了什么、漏了什么;这是后面所有因果话术的落点。

GRPO 对每个 query 采样 n 条候选 {y_0,…,y_{n−1}},每条算一个奖励 r_i,再在组内标准化成优势:

Ai = ( ri − mean(r0,…,rn−1) ) / std(r0,…,rn−1)
Eq. 8 · 组内均值与标准差;这个式子只读单个 r_i 与组统计量,不读 y_i 与 y_j 的关系

GRPO 的目标函数里没有位置放这种联系。组内归一化把「同题的其他答案」压缩成两个标量(均值和标准差),于是 y_i 与 y_j 是互补、重复还是互相拆台,对 A_i 没有区别。

论文用 Figure 1 给出两种典型结构:supportive chains 里,几条推理分别负责精确计算、几何解释、快速验证,合起来指向同一个答案;conflicting chains 里,几条推理因为算错、漏步骤或读错题而互相矛盾,混在一起会把错误带进最终答案。两种结构都说明:同一组的候选不是 n 个独立样本。

为什么难

「关系」既不在奖励里,也不在优势里

如果只是把候选拼起来再问一次模型,得到的只是一个新样本;要把「关系」变成训练信号,需要同时回答三件事:关系用什么形式写(因果图)、目标是什么(投影后的预测)、怎么从策略自己的输出里估出来(特征与蒙特卡洛)。论文的三块内容正好对应这三问。

02

PPO 学 critic 代价高,GRPO 绕开 critic 却压掉组内关系

理解 GRPO 为什么高效,才能理解 GCPO 为什么选「改优势 + 加 KL」而不是「再学一个 critic」。

PPO 系

学一个 value function 来估基线

PPO 用 critic 估 V(s),用 advantage 降方差;代价是要训练和存一个与策略同量级的 value network,显存和计算都上去。

卡点:对 LLM 这种长序列、大词表的策略,critic 的训练稳定性和开销都不便宜。

GRPO 系

用组内相对奖励替代 critic

同一 query 采一组答案,用组内均值当基线、组内标准差当尺度;不需要 value function,显存和实现都轻。

卡点:组只用来算均值和标准差,候选之间的关系被压掉了。

沿 GRPO 往下走的变体不少:GVPO 把 KL 约束奖励最大化的解析解塞进梯度权重;Dr.GRPO 关注 token 效率;LC-R1 加长度与压缩奖励;L2T 用信息论目标减少推理 token。论文对它们的共同判断是:这些方法仍然把候选响应当作独立个体,没有显式建模组内结构。

所以 GCPO 的位置很清楚:不引入 critic,保留 GRPO 的组采样框架,另加一轮融合采样,然后在「优势」和「KL 参考」两个已有接口上做因果修正。这样既能复用 GRPO 的工程栈,又能把组内关系写进目标。

03

把同组答案建成对撞结构,再把因果投影变成优势权重

这一节有三层:因果图给出「为什么相关」,定理给出「投影为什么更好」,Eq. 11 / Eq. 13 给出「怎么在策略上算出来」。

3.1 因果图:y_n 是一个 collider

论文的 SCM 只有三类边:q → y_i、q → y_n、y_i → y_n。前两条让 q 成为 fork,后一组让 {y_i} 共同指向 y_n,形成一个 collider。由此得到两条条件独立关系:

把这两条关系做成可切换的图:

q y_0 y_1 y_{n−1} y_n 实线:SCM 边;高亮环:当前条件集
当前条件集
只给定 q:q 是 fork,y_i 之间没有开放路径 → 互相独立(见 §Causal Analysis 的条件独立陈述)。

这不是说候选答案在生成时真的互相看过——它们仍然是从 π_old(·|q) 独立采样出来的。变化发生在「用它们共同推断 y_n」之后:y_n 一旦被观察到,y_i 之间就通过它产生了后门以外的第二条路径。

手算:d-分离检查两组条件集与上面的交互同一套图结构

条件集 {q}:路径 y_i ← q → y_j 在 q 处被阻断;路径 y_i → y_n ← y_j 在对撞节点 y_n 未条件化时也被阻断。两条路径都关,y_i 与 y_j 独立。

条件集 {q, y_n}:fork 路径仍在 q 处被阻断;但 y_n 被条件化后,collider 路径 y_i → y_n ← y_j 打开。y_i 与 y_j 通过 y_n 变得依赖,这就是论文说的 collider-induced dependency。

图结构按 Figure 2 的三类边整理;这里只做 d-分离的路径检查,不涉及数值。

3.2 定理:投影后的预测误差不大于两端

论文把 π*(x) 定义为给定完整上下文 x={q,y_1,…,y_n} 的 Bayes 最优预测,把 π*(q) 定义为只看 query 的预测。定义条件期望算子 Φ·π*(x)=E[π*(x)|q,y_1,…,y_{n−1}],残差算子 Ψ=Id−Φ,于是:

πproj(x) = Ψ·π*(x) + π*(q)
Eq. 2 + 附录 Eq. 15 · 先把「能被 q 与其他候选解释的部分」投影掉,再把 query-only 基线加回来

Theorem 1 与 Corollary 2 分别给出:

Δ( π*(x), πproj(x) ) ≥ 0     Δ( π*(q), πproj(x) ) ≥ 0
Eq. 4–5 · Δ 在正文 Eq. 3 写成期望残差之差,附录证明 Eq. 16 用平方误差之差;两处定义并列,见 07 节

关键细节在附录证明里:当 Φ·π*(x)=π*(q) 严格成立时,π*(x)=πproj(x),Δ 正好为 0;证明随后考虑 Φ·π*(x)≠π*(q)(模型不是完美 Bayes 估计)的情形,得到 Δ=‖Φ·π*(x)−π*(q)‖²≥0。所以定理保证的是「不更差」,严格收益来自近似误差——这一点决定了 07 节的边界。

这解释了为什么 GCPO 不直接拿 π*(x) 当目标:它要的是一个在「候选互相相关」的结构下仍然可估的投影,而不是一个理论上等于原预测的恒等式。本页概括(由 Theorem 1 / Corollary 2 的「不更差」性质与 Eq. 11 的构造读出)

3.3 优势:B_i = A_i·Υ_i,用余弦对齐度改写权重

论文把 Corollary 2 的「离投影越近越好」落成一个乘在优势上的因子:

Bi = Ai · Υi      Υi = α · cos( zi, Z̄i − Z̄′i + z̄ )
Eq. 11 · α 是缩放系数;z_i 是 o_i = y_i + 中间推理 的末层末 token 表示;括号里的三项分别近似 π*(x)、Φ·π*(x) 与 π*(q)(中间项带负号)

三个特征量的构造是 Method 小节的 Step 1–5,按顺序是:

按 §The Proposed Method 的 Step 1–5 整理(非原文表格)
Step构造近似对象
1把 o_i = y_i + 中间推理 喂回 π_θ,取末层末 token 表示 z_i;z̄ = mean(z_0,…,z_{n−1})π*(q)
2构造 x_i:Step 2 散文写 {q,y_0,…,y_n} ∖ {y_i},Algorithm 1 第 8 行写 {q,y_0,…,y_{n−1}} ∖ {y_i};本页采用后者。喂入 π_θ n 次,得 {Z_i,j};Z̄_i = mean(Z_i,1,…,Z_i,n)π*(x)
3令 y_{n,0}=y_n,x_{i,j} = {q,y_0,…,y_{n,j}} ∖ {y_i},重复 Step 2,得 Z̄′_iΦ·π*(x)
4组合 Z̄_i − Z̄′_i + z̄Ψ·π*(x)+π*(q)
5Υ_i = α·cos(z_i, Z̄_i − Z̄′_i + z̄)Eq. 11

直观上,Υ_i 不是「答案对不对」的另一个奖励,而是「这条答案的表示与因果投影方向有多接近」的余弦。它乘在 A_i 上:对齐得好的候选优势被放大,方向相反的候选优势会被压小;按 Eq. 11,cos<0 时 B_i 与 A_i 反号。推断(α=2>0,故 sign(Υ_i)=sign(cos))

这里有一个容易忽略的点:z_i 取的是「答案 + 中间推理」o_i 的表示,不是只看最终答案;Z̄_i 与 Z̄′_i 则是对排除掉 y_i 的上下文做多次采样后的平均。也就是说,因果因子用的是「策略自己的表示空间」,不需要额外的 critic 或人工标注。推断(由 Step 1–5 只使用 π_θ 的表示与组内采样读出)

3.4 KL:把「往哪里更新」也改成因果参考

GCPO 的目标函数在 GRPO 的 clipped 目标上多了一个 KL 项:

JGCPO = E[ 1/n Σi 1/Ti Σj { min( Ri,j(θ) Bi, Ξi,j Bi ) − β DKL(πθ‖πref) } − κ DKL(πθ‖π′ref) ]
Eq. 10 · β KL 在 token 求和的花括号内(token 级);κ KL 在 1/n Σ_i 之外、期望之内(每组一次)。前一个 KL 是 GRPO 原有的「别离旧策略太远」;后一个 KL 是 GCPO 新增的「靠近因果参考」

新增参考分布的定义是:

π′ref(xi) = Ψ·π(yi,j|xi,yi,<j) + π(yi,j|q,yi,<j)
Eq. 12 后的 where 行定义(原文未单独编号)· 与附录 Eq. 15 / 正文 Eq. 4–5 的 Ψ·π*(x)+π*(q) 同构:残差项 + query-only 项

直接算 Φ·π 需要知道条件期望,论文用同一组候选的 n 个融合输出做蒙特卡洛近似,得到 Eq. 13:

π′ref(xi) ≈ π(yi,j|xi,yi,<j) − Σl=0n−1 π(yi,j|xi,yn,l,yi,<j) + π(yi,j|q,yi,<j)
Eq. 13 · 第二项是 Φ·π 的样本平均;原文注明 Eq. 12 的 KL 估计按 token 级计算

两个 KL 项的分工可以这样读:β 项防止策略跑太远,κ 项把策略往「因果投影后的参考」拉。前者是稳定性约束,后者是结构性偏置。论文的消融只去掉 advantage weighting 与新增的 κ KL 项(κ=0),β KL 作为 GRPO 原有项保留;两项消融都会掉点(Table 2)。

04

每组多一轮融合采样与表示前向,账单是 1.18×

GCPO 的工程改动集中在「采样与特征」这一层;优化器仍是 GRPO 那套 clipped 目标。

Algorithm 1 的主循环可以拆成四段:

  1. 采候选:对每个 query 从 π_old(·|q) 采 n 条 {y_i}。
  2. 采融合输出:把 q 与整组候选再喂回 π_old,共采 n 条:y_n(记 y_{n,0})与 y_{n,1},…,y_{n,n−1}。
  3. 算特征:对每个 y_i 构造排除集 x_i 与 x_{i,j},按 Step 1–5 取表示、算 Υ_i 与 B_i。
  4. 更新:用 B_i 替换 A_i,加上 β KL 与 κ KL,按 Eq. 10 更新 π_θ。
训练配置

论文报告的超参与规模

  • 代码基于 TRL 修改;A100 集群,8×A100-SXM4 40GB / 节点,DeepSpeed 0.13.1 + ZeRO-3,BF16,vLLM。
  • 数学训练:DeepScaleR-1.5B 先在 40k 数学题上微调,再用 1989–2023 的 919 道 AIME 继续;DeepSeek-R1-Distill-1.5B 用 NuminaMath 的 4,000 条随机子集。
  • token 预算 16,384;学习率 1e−6,weight decay 0.01,batch size 256,cosine schedule,warm-up 0.1,max prompt 4,096,max generation 16,384;最多 10 epochs,通常 1 epoch 早停。
  • α=2,κ=0.06(正文参数敏感性一句写作 β=0.06;Implementation Details 写 κ=0.06,见 06 节口径备注)。
成本

1.18× 是总 GPU 小时;原文未报告显存峰值

Appendix 的 Computational Overhead Analysis 把 GRPO 的总 GPU 小时归一为 1×,报告 GCPO 为 1.18×;论文把这归因于新增的 KL 正则化因果目标。原文只说明这是总 GPU 小时,没有报告显存峰值或推理成本。

为什么值得多花这 18%?从方法设计看,GCPO 沿用 GRPO 的组相对优势,不引入 critic 或额外的奖励模型;新增的计算主要是「把同一组候选再喂回去取表示」,并复用现有的 GRPO 工程栈。推断(由 Method 的设计与 Appendix 的成本归因读出;原文没有把这套成本论证逐条写出)这个 trade-off 是否划算,取决于 06 节的增益幅度与 07 节的适用边界。

05

一次更新:从 n 条候选到两个 KL 项

把 Algorithm 1 的数据流画成一张图;重点看「排除集」和「两次平均」分别近似了什么。

1 每组采 n 条候选 {y_0, …, y_{n−1}} ~ π_old(·|q) 2 把 q 与整组喂回 π_old,采融合输出 y_n 与 {y_{n,i}} 3 对每个 y_i 构造排除集 x_i = {q, y_0, …, y_{n−1}} ∖ {y_i};x_{i,j} 则再换入 y_{n,j} 4 取末层末 token 表示,算因果目标 z_i, Z̄_i, Z̄′_i, z̄;g_i = Z̄_i − Z̄′_i + z̄ 5 算因果因子,乘到优势上 Υ_i = α·cos(z_i, g_i);B_i = A_i·Υ_i 6 替换 A_i,加两个 KL,更新 π_θ β KL(π_θ‖π_ref) + κ KL(π_θ‖π′_ref) Step 1–2 采样 · Step 3–5 特征与因果因子 · Step 6 优化
按 Algorithm 1 第 5–16 行整理的数据流;本页自绘,未展开 token 级 clip 与 Eq. 7 / 12 的 KL 估计细节。

图里有两个容易混淆的「平均」:Z̄_i 是对「排除 y_i 后的上下文」重复采样 n 次的平均,近似 π*(x);Z̄′_i 是对「再替换成融合输出 y_{n,l}」的 n 个上下文各取平均后再平均,近似 Φ·π*(x)。两者相减,留下的是「不能被 q 与其他候选解释的部分」,也就是 Ψ·π*(x);再加上 z̄ 的 query-only 基线,才是 Eq. 11 里的目标。

这也是 GCPO 与「简单地把候选拼进 prompt 再问一次」的区别:后者只产生一个新的 y_n,前者把 y_n 当作条件化工具,反推出每个候选在因果投影下的表示偏移。本页概括(对照 Algorithm 1 的 Step 3–5 与 Eq. 11)

06

三个 backbone 的 Avg 都是 GCPO 最高,但对最强基线只领先 0.5–0.8 个百分点

先看原表,再看「领先多少」和「领先谁」;这两个问题在笔记里容易被合成一句「显著超过」。

Table 1 是三个数学 backbone × 五个基准的 Pass@1。论文正文与表题都写 Pass@1;附录 Implementation Details 另写 report maj@4 scores,两处指标名不同,读绝对值时要先记住这一点。

Base GRPO ReST-MCTS GVPO Dr.GRPO GCPO
完整转录 Table 1(18 行,+ 表示从该 base 微调)Pass@1
Table 1 · Pass@1(按原表逐行转录主数值,省略括号内相对 base 的增量;模型名单独成行以便阅读)
模型 / 方法AIME 2024AIME 2025AMC 2023MATH500MinervaMATHAvg.
DeepScaleR-1.5B-Preview
Base42.836.783.085.224.654.5
+GRPO44.539.381.584.924.755.0
+ReST-MCTS45.539.583.484.823.955.4
+GVPO46.139.783.685.725.356.1
+Dr.GRPO45.839.682.185.325.155.6
+GCPO46.740.384.186.325.956.8
DeepSeek-R1-Distill-Qwen-1.5B
Base28.726.069.980.119.844.9
+GRPO29.827.370.580.322.146.0
+ReST-MCTS30.528.671.180.420.346.4
+GVPO30.628.271.580.523.146.7
+Dr.GRPO30.428.471.380.822.946.9
+GCPO31.029.071.881.623.447.4
DeepSeek-R1-Distill-Qwen-7B
Base55.550.285.187.442.164.1
+GRPO56.951.785.587.743.565.1
+ReST-MCTS57.152.485.787.942.865.2
+GVPO57.552.186.388.544.265.7
+Dr.GRPO57.452.386.488.244.065.7
+GCPO58.353.087.389.145.066.5

把表拆开看,有三条比「Avg 最高」更有信息量的结论:

以上 Avg 差值由 Avg 列相减;AIME24/AIME25/MinervaMATH 的差值由对应列相减。「百分点」不是相对提升。7B 对 GRPO 的 66.5 − 65.1 = 1.4,对 GVPO / Dr.GRPO 的 66.5 − 65.7 = 0.8。

Table 1 的 Avg 列可以复算,本页主要核对 GCPO 行;1.5B 的 ReST-MCTS / Dr.GRPO 两行见 06 节口径备注。7B GCPO 的五列平均是 (58.3+53.0+87.3+89.1+45.0)/5 = 66.54 → 66.5;1.5B GCPO 是 47.36 → 47.4;DeepScaleR GCPO 是 56.66 → 56.7,但表里印的是 56.8,差 56.8 − 56.66 = 0.14。推断(由 Table 1 五列复算,四舍五入到 0.1;复算假设 Avg 是五列等权算术平均,原文没有说明加权方式)

消融:去掉任一组件都掉点,幅度与最终领先同一量级

Table 2 · 组件消融(Pass@1;Table 2 未在表内注明模型;w/o KL Term 指 κ=0,β KL 保留)
配置AIME 2024AIME 2025AMC 2023MATH500MinervaMATHAvg.
GCPO (Full)46.740.384.186.325.956.8
w/o Adv. Weighting45.039.083.085.424.655.4
w/o KL Term45.339.483.385.324.955.6

Table 2 的 Full 行 56.8 与 Table 1 的 DeepScaleR-1.5B +GCPO 相同,推断(由两表 Full / Avg 行匹配)该消融在同一模型上。去掉 advantage weighting 从 56.8 掉到 55.4(−1.4 个百分点),去掉新增 κ KL 项(κ=0)掉到 55.6(−1.2 个百分点)。两个组件都不是装饰。

但把这两个降幅与「对最强基线的 +0.5–0.8」放在一起看,会得到一个不太浪漫的结论:组件的贡献是真实的,最终相对强基线的净领先却不大。推断(Table 1 的 GCPO−最强基线 vs Table 2 的 Full−w/o 组件)。

代码:HumanEval 的 5-shot 增益更大,但指标名在原文里不统一

代码实验用 Qwen2-7B-Instruct,HumanEval。正文说 GCPO 的 0-shot Pass@1 是 65.1%、5-shot 是 72.0%,比基础模型高 2.9% 和 5.5%;原文只给了百分数,未说明是相对提升还是百分点。按 Figure 3 的图示点(基础模型约 62.2 / 66.5)读,65.1 − 62.2 = 2.9、72.0 − 66.5 = 5.5,是 Pass@1 的百分点差。推断(Figure 3 图示估读;正文未列基础模型数值)Figure 3 的图注写的是 1-shot 与 5-shot,正文却写 0-shot 与 5-shot。HTML 渲染版正文把这张图称作 Figure 4(图注仍标 Figure 3)。Figure 3 只有图示点,没有基础模型的数字标签,也没有解释 0-shot / 1-shot 的差异。

原文口径备注:七处需要并列读的地方不改原文,只标注位置
  • 指标名:正文 §Performance Analysis 与 Table 1 表题写 Pass@1;附录 Implementation Details 写 report maj@4 scores。本页 Table 1 的数值按正文的 Pass@1 标注。
  • 7B 平均提升:正文写 2.2%;Table 1 的 64.1 → 66.5 是 +2.4 个百分点。
  • 消融图号:正文 Ablation 小节写 The ablation results are shown in Figure 2;Figure 2 是 SCM 示意图,Figure 4 是参数敏感性图,具体数值在 Table 2。
  • KL 系数名:正文参数敏感性写 α = 2 and β = 0.06;Implementation Details 写 α and κ are set to 2 and 0.06。本页把新增 KL 项系数记作 κ。
  • DeepScaleR 的 Avg:Table 1 印 56.8;五列算术平均是 56.66(≈56.7),差 0.14。按 GCPO 行看,1.5B 与 7B 的 Avg 与五列平均吻合到 0.1;但 1.5B 的 ReST-MCTS(印 46.4,平均 46.18)与 Dr.GRPO(印 46.9,平均 46.76)分别差 0.22 / 0.14,不能按字面推广到全部行。
  • x / x_i 的三种写法:Step 2 散文(p.5)写 x_i = {q,y_0,…,y_n} ∖ {y_i};Algorithm 1 第 8 行(p.10)写 {q,y_0,…,y_{n−1}} ∖ {y_i};Eq. 1 下方写 x={q,y_1,…,y_n}(且 y_{1:n−1}={y_1,…,y_{n−1}}),附录 Proofs(p.10)则写 x={q,y_1,…,y_{n−1}}。本页 x_i 采用 Algorithm 1 的 y_{n−1} 版本,π*(x) 采用 Eq. 1 的 x={q,y_1,…,y_n};各处写法并列,不替原文消歧。
  • 代码实验:正文写 0-shot / 5-shot;Figure 3 的图注写 1-shot / 5-shot。arXiv HTML 渲染版正文把这张图称作 Figure 4,PDF v1 正文与图注都是 Figure 3。两处编号并列,本页按 PDF v1 的 Figure 3 指称。推断(HTML 渲染版与 PDF v1 的图号不同;原文未说明编号差异的原因)。原文未列基础模型的数字标签。
07

定理保证的是 ≥0,收益依赖「π* 不完美」

把「能证明什么」与「实验显示了什么」分开,才能判断什么时候不该用 GCPO。

边界一

非严格不等式:理想 Bayes 下 Δ=0

附录证明在 Φ·π*(x)=π*(q) 时得到 π*(x)=π_proj(x),Δ=0;随后考虑 Φ·π*(x)≠π*(q) 才得到 Δ=‖Φ·π*(x)−π*(q)‖²≥0。定理保证的是「不更差」,不是「一定更好」;严格收益来自模型偏离完美 Bayes 估计的近似误差。

边界二

Δ 的定义在正文与附录不同

正文 Eq. 3 把 Δ 写成 E[Y−π₁*(X)] − E[Y−π₂*(X)](期望残差之差);附录 Eq. 16 用 E[(Y′−f)²] − E[(Y′−f_proj)²](平方误差之差)。两处定义并列,证明用的是后者。读定理时要把这个差异带在身上。

边界三

因果图只有一种 collider

Figure 2 的 SCM 只有 q→y_i、q→y_n、y_i→y_n。候选之间的链式依赖、共同原因、多轮对话里的动态结构都没有进模型;论文的结论只覆盖「同一 query 的一组候选共同影响一个融合输出」这一种设定。推断(Figure 2 只画了三类边;论文未建模链式依赖、共同原因或多轮结构)

边界四

表示是压缩的,期望是蒙特卡洛的

z_i 用末层末 token 的隐藏状态代表整条「答案 + 推理」;Z̄_i、Z̄′_i 用 n 次采样平均近似条件期望。π* 是理想的 Bayes 最优预测,实际只能用策略 π 的表示去近似;论文没有量化这些近似各自带来多少误差。

边界五

实验域是数学 + HumanEval

Table 1 是五个数学基准;代码只报了 HumanEval。开放写作、知识问答、多轮 agent 任务都没有覆盖。论文没有做显著性检验,Table 1 的 Avg 差是 0.5–0.8 个百分点(对最强基线);「显著」不是原文的统计结论。

边界六

矛盾只被间接惩罚

Eq. 11 只奖励「与因果投影对齐」,没有单独的「矛盾检测」项。互相矛盾的候选主要通过低余弦相似度被压低优势;这是间接信号,不是显式的 contradiction loss。推断(由 Eq. 11 的结构读出)

一句话:GCPO 适合「同一题能稳定采出多条有语义差异的候选、且愿意多付约 18% 训练成本」的场景;如果候选几乎一样、或者任务本身没有「融合多条推理」的结构,因果投影能提供的信息就有限。推断(由 Figure 2 的 SCM 与 Eq. 11 的构造读出)