Co-Evolving Policy Distillation: 把 RLVR 与 OPD 拧成一股绳
速读卡片 (TL;DR)
一句话:把多个 expert 的 RLVR 训练和它们之间的 OPD 完全交错并行,让 expert 互为师生边训边蒸,以此同时绕开 mixed RLVR 的 capability divergence cost 和 sequential pipeline 的 absorption gap,在文本 + 图像 + 视频三路推理上做出 all-in-one 模型,甚至超过各自的 domain expert。
立场:这不是新的 KD 损失或新的 RL 算法,而是训练编排 (training schedule) 论文。核心论点只有一句:teacher 和 student 之间的"行为距离"必须被主动维持在可吸收范围内,而静态 pipeline 必然把这个距离推到吸收效率极低的区域。
1 · 动机 — 多能力整合到一个 policy,究竟难在哪?
1.1 历史脉络: All-in-one 模型的两条主流路线
2024 年之后,RLVR(rule-based verifiable reward 驱动的 RL)逐渐取代 RLHF 成为大模型 post-training 的主流。GRPO / DAPO / GSPO 一批工作把它做成可规模化的训练机制,DeepSeek-R1、Vision-R1、Video-R1 这些系列证明了 RLVR 能专门为某种能力大幅拉升 reasoning 表现。
但只要你想在一个模型里同时容纳多种能力(文本数学 + 图像推理 + 视频理解),就要面对一个老问题: 怎么把这些能力都装进同一组参数。社区里实际跑通的路线有两条:
- Mixed RLVR: 把所有 capability 的数据混在一个 pool 里,跑一次 RLVR。简单粗暴,工业上很常见。
- Sequential pipeline (RLVR-then-OPD): 先用 RLVR 把每个 capability 单独训成 expert,再用 on-policy distillation(MOPD,multi-teacher OPD)把这些 expert 蒸到一个 student 里。Qwen3、Kimi K2.5、GLM-5 都是走这条路。
1.2 Mixed RLVR 为什么不够: capability divergence cost
论文形式化了一个直觉:不同 capability 的最优梯度方向其实是互相冲突的——文本数学的最优 update 可能压缩 visual token attention,而图像推理的最优 update 反过来强化。混合训练时每一步的 update 是这两个方向的平均,体现为 gradient conflict。
这里 X 是把每条数据"完美应用"到 unified policy 时能拿到的最大 capability,而 Φ > 0 是不同 capability 间 gradient 冲突的代价——即论文称的 capability divergence cost。这就是经典的 seesaw effect:数学能力涨了图像就跌,反之亦然,无论怎么调 mixing ratio 都消不掉。
1.3 Sequential pipeline 为什么不够: behavioral pattern gap
OPD 看起来能避开 gradient conflict——每个 expert 单独训,然后再蒸到 student。问题在 OPD 的训练动力学本身:
OPD 的 supervision 落在 student 自己采到的状态 y<t 上。当 teacher 的 token-level distribution 与 student 的差太多——即 πT(·|y<t) 与 πθ(·|y<t) overlap 极低——KL 几乎全部集中在 student "几乎不可能去的方向",梯度推不动 student 实际访问到的状态。
论文的 pilot study 用 top-k token overlap (k=10) 量化这件事,得到两个数据点:
- 静态 RLVR 训出来的 expert 与 base model(student 的代理)的 top-k overlap 在训练过程中单调下降,symmetric KL 上涨一个数量级;
- 把这同一个 teacher 配上不同 overlap 的 student 跑 OPD,gain 与 overlap 强相关 r=0.89,R²=0.79。
结论很硬: "先把 expert 训到 convergence,再 OPD"这个流程的设计点恰好把 teacher-student overlap 推到吸收效率最低的区域。这就是 behavioral pattern gap。
其中 η(O) ∈ [0,1] 是 absorption efficiency,O 是 overlap。Mixed RLVR 是 a=1 但 b=−Φ;static pipeline 是 a=η(Olow) 偏小但 b=0。两条路各自牺牲一半。
1.4 缺失的那一块: 不只是"什么时候蒸",还要"双向 + 持续"
把上面的分析翻译成设计要求,论文识别出三条耦合条件:
- 蒸馏必须发生在 expert 训练过程中而非之后 —— 否则 overlap 已经掉光;
- teacher 必须随 student 一起进化 —— 否则 overlap 又会单方面被 RLVR 推开;
- capability-specific RLVR 不能停 —— 否则 teacher 没新东西可教,信息量退化。
三条同时满足才是 CoPD 的设计:RLVR + 双向 mutual OPD,两个阶段交替,N 个 cycle 跑完。
2 · 背景速查
2.1 关键术语
| 术语 | 含义 |
|---|---|
| RLVR | Reinforcement Learning with Verifiable Rewards. reward 来自规则验证(数学答案对错、代码 unit test 等),取代 RLHF 的学习型 reward model |
| GRPO | Group Relative Policy Optimization. PPO 变体,用 group 内 reward 标准化估 advantage,无需 value model |
| OPD / On-Policy Distillation | 蒸馏发生在 student 自己 sample 出的 trajectory 上,teacher 在每个 token 位给出 KL supervision |
| MOPD | Multi-teacher OPD. 多个 expert 同时作为 teacher,共同蒸到一个 student |
| Mixed RLVR | 把多个 capability 的训练数据混进一个 pool 跑一次 RLVR |
| Capability divergence cost (Φ) | 不同 capability 梯度方向冲突造成的优化损失 |
| Behavioral pattern gap | teacher 与 student 在 student 自己访问的状态上,token 分布的差异 |
| Top-k overlap Ok | Ok(πθ,πT) = E [|Topk(πθ) ∩ Topk(πT)| / k] 沿 student 的 on-policy 轨迹 |
| Absorption efficiency η(O) | OPD signal 实际转化为 capability 增益的比例,论文论证它是 O 的递增函数(到饱和点前) |
| Mutual / bidirectional OPD | 两个 branch 互为师生,各自在对方数据上 rollout、用对方的 logits 作 supervision |
| Hub-and-spoke topology | K 个 branch 时不做 K² 全配对蒸馏,选一个 branch 作 hub 与每个 spoke 做双向 OPD |
2.2 OPD 的标准流程 (复习)
- Student πθ 在 prompt x 上 sample 出 trajectory y = (y₁,...,yT);
- Teacher πT 在每个前缀 (x, y<t) 上 forward 一次,得 token 级分布 πT(·|x, y<t);
- loss = (1/|y|) Σt KL(πT ‖ πθ),反传更新 student;
- 关键: rollout 来自 student,所以 supervision 永远落在"student 实际能采到的状态"上——这是它优于 off-policy KD 的本质。
2.3 GRPO 一行回忆
对 prompt 采 G 条 rollouts,Âi = (ri − r̄)/σr 是 group-relative advantage,ρi,t 是 importance ratio。
3 · 统一分析框架: 三种范式在同一坐标系下
论文 §2.1 给出一个非常聪明的统一公式:
其中 a∈[0,1] 是"信号转化效率",b≤0 是"额外冲突损失"。三种范式落在同一框架的不同点上:
| 范式 | a | b | 主导失败模式 |
|---|---|---|---|
| Mixed RLVR | 1 | −Φ < 0 | capability divergence (gradient conflict) |
| Static RLVR-then-OPD | η(Olow) ≪ 1 | 0 | behavioral pattern gap (低吸收效率) |
| CoPD | η(Omod) ≈ 1 | 0 | —— 两边都规避 |
这是论文的 narrative spine: 它把"两种已有范式的 failure mode"归结为同一个 utility 公式中的不同退化方式。CoPD 的存在就是为了同时让 a 和 b 都靠近最优。
4 · 行为一致性假设 + Pilot Study
4.1 假设
"OPD signal 越易被 student 吸收,当 teacher 与 student 沿 student 自己的 on-policy 轨迹表现出越接近的 token 级分布。"
4.2 实验 1: η 随 overlap 单调上升
固定一个 image-domain teacher,通过调 sampling temperature 在 base 上跑短训得到一系列 student,使它们与 teacher 的 top-k overlap 不同。然后用相同 OPD 配置跑相同 budget,看 WeMath gain。
结果: 线性拟合 r=0.89, R²=0.79。同一个 teacher 下,越行为相近的 student 吸收得越多。
4.3 实验 2: RLVR 训练把 overlap 推向低 η 区
从 shared base π₀ 出发,独立训文本 expert 与图像 expert,定期测每个 expert 与 π₀ 在 on-policy rollout 上的 top-k overlap 与 symmetric KL。π₀ 在这里被当作"最终的 student 代理"。
- Top-k overlap 单调下降;
- Symmetric KL 涨了一个数量级;
- 两个 branch 趋势一致 → 这是 RLVR 训练的普遍属性,不是某种 capability 的特殊。
4.4 钟形 η 的另一面: overlap → 1 也会塌
论文还提出一个边界条件: 当 teacher 与 student 行为完全一致时, KL(πT‖πθ)→0, OPD gain 必然为 0。这意味着"一直跑 OPD 不切换"也不行——teacher 与 student 会收敛到同一个分布,从此再无新信号。所以 CoPD 的"周期性插入 RLVR phase"不只是工程方便,而是主动制造适度的行为差距,让 supervision 保持信息量。
5 · CoPD 方法详解
5.1 总体: alternating 两阶段 × N cycles
5.2 Phase I: Branch-specific RLVR
第 n 个 cycle 的 Phase I,每个 branch k 各自在自己的 Dk 上做 SRL 步标准 GRPO:
这一步刻意把两个 branch 拉开——若不拉开就没东西可教对方。
5.3 Phase II: Bidirectional Mutual OPD
在 Phase II,branch k 拿对方的 prompt x'∼Dj sample 自己的 rollout,然后用对方 branch j 的 logits 作 token-level supervision。论文给出的 token-level advantage 形式很巧妙:
即把"teacher 给 student 实际产出 token 的 log-prob 增量"当成 token 级 advantage,再用 PPO/GRPO 那套 clipped surrogate 优化。这等价于一种 reverse KL 蒸馏,但被嫁接到 RL 框架里——同一份 update 路径既能跑 RLVR 也能跑 OPD。
Algorithm 1 里 mutual OPD phase 实际还包含同时进行的 native RLVR (line 10–12),不是纯蒸馏。这把"capability-specific 训练不能停"显式编码进算法。
5.4 K > 2 时的 hub-and-spoke
K 个 branch 全配对蒸馏要 K(K−1) 对 OPD,O(K²) 复杂度。论文用 hub-and-spoke: 选一个 branch 做 hub(三路设置里是文本 branch,因为 image/video branch 都是 VL 模型,reasoning 大头都靠 LLM 子组件),其余 spoke branch 只与 hub 双向 OPD。这样 OPD 对数降到 O(K)。
6 · Worked Example: 两个 expert 跑 4 个 cycle 的内部状态
抽象不够实在,这里把 paper 里 Figure 4 的 dynamics 数据(top-k overlap、symKL)结合算法流程,用一个具体的 trace 走一遍。设置: branch₁ = text(数学题,Polaris-53K), branch₂ = image(MMFineReason-123K), 同 base π₀ = Qwen3-VL-4B-Instruct, SRL=15, SOPD=10, β=1.0。
| 时刻 | 动作 | O10(θ₁,θ₂) | symKL | 变化机制 |
|---|---|---|---|---|
| cycle 0 / 起点 | θ₁=θ₂=π₀ | 1.00 | 0 | 同一个 base,完全一致 |
| cycle 1 · Phase I | 各自 RLVR 15 步 | 0.93 | 0.4 | 两个 branch 沿不同 capability gradient 偏离 |
| cycle 1 · Phase II | 互蒸 10 步 (双向) | 0.96 | 0.2 | 每个 branch 在对方 prompt 上 rollout,用对方 logits 拉回 |
| cycle 2 · Phase I | RLVR 15 步 | 0.91 | 0.5 | 再次拉开,但起点已含对方知识 |
| cycle 2 · Phase II | 互蒸 10 步 | 0.94 | 0.25 | 新一轮 mutual OPD 把双方 capability 又混合一次 |
| ... | 共 N cycle | 稳定 ≥ 0.90 | 低 | 每 cycle 一推一拉,overlap 围绕 ~0.92 振荡 |
| 对照: static pipeline | 跑同样总 step 但全是 RLVR | ~0.50 | ~5× | 单调下降到低 η 区,此时再跑 OPD 已晚 |
| cycle N 结束 | Merge θ₁, θ₂ | — | — | θ* 同时具有两个 branch 的能力 |
具体 token 级 trace (Phase II, branch₁ = student / branch₂ = teacher)
设 prompt x'∈D₂(图像题): "图中三角形三边为 3, 4, 5,求面积"。student θ₁(text branch)生成 rollout:
"由 勾股 定理, 这是 直角 三角形, 面积 = (3×4)/2 = 6"
对 token "勾股" 这一位:
- θ₁(text, 推理强): logπθ₁("勾股"|x', y<t) = −0.18 (常见 token,概率高)
- θ₂(image, 视觉对齐): logπθ₂("勾股"|x', y<t) = −0.05 (image expert 在数学概念识别上其实更准)
- δt(1←2) = (−0.05) − (−0.18) = +0.13
- 这个正的 token-level advantage 推 θ₁ 提高 "勾股" 的产生概率——image expert 在它擅长的数学+视觉融合点上把 text branch 拉了一手
反之若某 token θ₁ 的 log-prob 已经显著高于 θ₂(text branch 自己更专),δ 为负或接近 0,update 微弱——OPD 不会让 student 退步到老师水平。这与 PPO clip 的语义一致。
反向论证: 假如取消"双向"会怎样?
论文 Table 3 的 ablation 给出了清楚答案。把 I-OPD(image branch 教 text)拿掉,text reasoning avg 从 58.76 跌到 57.41;把 T-OPD 拿掉,image reasoning avg 从 56.97 跌到 56.48。每条单向 OPD 都有独立贡献——这是"互"的实证必要性,不是冗余对称。
反向论证: 假如取消"过程中"(把 OPD 全堆到最后)?
这就退化为 static OPD pipeline。Table 1 显示 OPDV→T overall 56.09, OPDT→V 56.29, 而 CoPD 57.71。差距 ~1.4 pt 全部来自"OPD 在低 η 区跑 vs 高 η 区跑"的 absorption 差异。Figure 4(c) 进一步显示, 即使把 SRL:SOPD 比例调成各种值,CoPD 也始终高过 static OPD baseline。
7 · 实验关键结果
7.1 Two-branch (text + image) 主表
| Model | Image Avg | Text Avg | Overall |
|---|---|---|---|
| Base (Qwen3-VL-4B) | 54.00 | 55.78 | 54.74 |
| Image-Expert (单独 RLVR) | 55.76 | 55.51 | 55.65 |
| Text-Expert (单独 RLVR) | 54.88 | 57.89 | 56.13 |
| Mixed RLVR | 55.69 | 55.48 | 55.60 |
| OPD (V→T) | 55.99 | 56.23 | 56.09 |
| OPD (T→V) | 56.44 | 56.09 | 56.29 |
| CoPD | 56.97 | 58.76 | 57.71 |
三个值得注意的现象:
- Mixed RLVR 在 text 上 (55.48) 比 base (55.78) 还跌: 这是 capability divergence 的直接证据,数据混合干扰干净。
- Static OPD 两个方向都救不回来全部: V→T 让 text 涨到 56.23(仍低于 Text-Expert 的 57.89),T→V 让 image 涨到 56.44(略高于 Image-Expert 56.97 — 略好,但 text 不动)。
- CoPD 在两个能力上同时超过各自 expert (57.89→58.76 text, 55.76→56.97 image)。这是论文最 punchy 的发现: 两个能力不是 zero-sum 而是 mutual gain——这违反"一个 model 总会在某个能力上不如专家"的 conventional ceiling。
7.2 Three-branch (text + image + video) 拓展
| Model | Image | Text | Video | Overall |
|---|---|---|---|---|
| Mixed RLVR | 56.17 | 55.39 | 59.62 | 56.79 |
| MOPD (3 teacher) | 56.37 | 56.80 | 58.32 | 56.99 |
| CoPD | 57.12 | 58.63 | 59.21 | 58.12 |
有意思的是 Mixed RLVR 在video 上反而最高(59.62),论文解释为 video reasoning 受益于多样化数据;但代价是 text 跌到最低 (55.39)。CoPD 把 text 拉回 58.63,同时 video 保持 59.21,是真正的 "no trade-off"。
7.3 Ablation 关键发现
| Variant | Image | Text | Overall |
|---|---|---|---|
| CoPD (full) | 56.97 | 58.76 | 57.71 |
| w/o I-OPD | 56.78 | 57.41 | 57.04 |
| w/o T-OPD | 56.48 | 57.78 | 57.02 |
| Text-Branch only (no merge) | 56.26 | 58.61 | 57.24 |
| Image-Branch only (no merge) | 56.78 | 57.17 | 56.94 |
关键观察: 即使不做 merge,单个 branch 已经超过 static OPD baseline(57.24 / 56.94 vs 56.09 / 56.29)。也就是说 mutual OPD 让每个 branch 在各自训练过程中就已经吸收了对方的能力——merge 是锦上添花而非依赖。这也意味着 CoPD 还能用作"训出多个互补 expert,部署时按需要 route"的方案。
7.4 SRL : SOPD ratio
Figure 4(c): 1.5:1 在 image / text / overall 都最优。论文解释: SRL 太短 → 拉不开足够 capability gap, OPD 没新东西可传;SRL 太长 → overlap 跌出可吸收范围, OPD 来不及救。1.5:1 是"探索-巩固"的 sweet spot。
7.5 Training dynamics 的图证 (Fig 4 a/b)
- Static OPD baseline: 两 branch 间 top-k overlap 单调跌, symKL 涨一个数量级。
- CoPD: top-k overlap 始终 ≥ 0.90 (在每个 cycle 内 RLVR 阶段微跌, OPD 阶段又涨回来), symKL 始终低。
这张图直接对应方法的核心论证:RLVR 制造分化 → 蒸馏才有信息;mutual OPD 拉回邻近 → 信号可吸收。
8 · 与同类工作对比
| 工作 | 路线 | 与 CoPD 的关系 |
|---|---|---|
| Vanilla RLVR (DeepSeek-R1, Vision-R1, Video-R1) | 单 capability RL | CoPD 的"branch-specific RLVR phase"就是 vanilla RLVR; CoPD 在它之上加 mutual OPD |
| Mixed RLVR / scaling-laws-for-mixtures (Shukor 2025) | 混合数据训一个 model + tune mixing ratio | CoPD 论证无论 ratio 怎么调都消不掉 Φ,这是结构性的 |
| Sequential KD / MOPD (Qwen3, Kimi K2.5, GLM-5) | 独立训 expert → 一次性蒸到 student | CoPD 直接 target 它的 absorption gap;Table 1 / Table 2 直接打过 |
| On-Policy Distillation (Thinking Machines blog, 2025) | OPD 作为单向 KD 配方 | CoPD 把它升级为双向 + 持续 |
| MoE routing alternatives (DeepSeek-V3, GLM-MoE) | 用 MoE 把 capability 分到 expert,运行时 route | 正交路线: CoPD 不改架构,只改训练;但训完的 model 仍是 dense,推理简单 |
| TIDE (2604.26951) | 跨架构 (AR ↔ dLLM) on-policy distillation | 同样是"OPD 不要静态"的思路,但聚焦 cross-architecture, CoPD 聚焦 cross-capability |
| Multi-task RL (PCGrad, GradVac) | 梯度投影减少 task 间冲突 | 处理 Φ > 0 的另一思路 — 修 gradient 而不绕开;CoPD 是从结构上把每个 capability 隔离成独立 branch |
| RL frameworks (verl/EasyR1) | 训练栈 | CoPD 实现在 EasyVideoR1 (verl + EasyR1) 之上 — 它是调度层,不需要新 framework |
| RLSD / NPO (作者前作 Self-Taught RLVR series) | "informed self" / "temporal self" | CoPD 是同系列第三篇 "parallel self" — 多个并行的自己互教 |
9 · 局限 / 个人 take / 待验证问题
论文承认 / 我读出的局限
- Parameter merge 的可行性高度依赖 "branch 没漂太远"。三 branch 已经报告 OK,但 K=5/10 时 mutual OPD 维持的 overlap 是否还够 merge?Hub-spoke 结构里 spoke-spoke 没有直接拉力,可能更早断。
- 所有实验都基于 Qwen3-VL-4B-Instruct 一种 base。Mixing ratio / behavioral overlap 的动力学未必对其他 base 成立(尤其原生 reasoning 模型如 Qwen3-Think)。
- SRL:SOPD = 1.5:1 是经验值,论文没给"如何根据 capability 数 / 数据规模自动选"的指导。
- 3-branch 上 video reasoning 没超过 mixed RLVR (59.21 vs 59.62)。论文承认 video 受益于数据多样性;CoPD 在某些"靠数据 diversity 而非 capability specialization"的能力上可能不显著。
- Hub 选择是手工的 (text=hub),论文没消融"image=hub"或"video=hub"的对比。
- 计算成本被低估。Phase II 里每 step 要在对方 dataset 上 rollout + forward 对方 model,这相比 mixed RLVR 显然更贵——但论文只说"total steps 与 static OPD 相同"是否包含 rollout 成本不清楚。
我的疑问 (落地后想验证)
- "互蒸"用 reverse KL (δ = log πj − log πk) 对应 mode-seeking 行为,如果换成 forward KL (mean-seeking) 是否会让 overlap 维持更稳但 capability 提升变弱?
- Phase II 内同时跑 native RLVR + cross-branch OPD,两者 batch 怎么混?Algorithm 1 line 12 说"combine native and cross-branch batches",但相对权重 βk = 1 是固定还是 schedule?
- 能否把 mutual OPD 改造成 sample-level (而非整个 phase),即每条 prompt 上都同时算 RL loss + OPD loss?这会让 overlap 维持得更紧,但梯度方向冲突是否变成另一个 Φ?
- 对于 capability 高度相关的子集(如 image math 与 text math),是否还需要 explicit branch 分离?会不会一个 capability 就够?
- K → 大时,merge 应该用什么(simple average / TIES / DARE)?论文没说。merge 失败时 fallback 到"每 branch 单独部署 + router" 的 cost 多大?
- 这套机制能否扩展到 RLHF (preference-based reward)?reward 不再是 verifiable rule 时,branch-specific reward 之间冲突可能更微妙。
记忆点
核心 teacher-student 行为距离决定 OPD absorption,必须主动维持
公式 U = a·X + b: mixed (a=1, b=−Φ); static (a=η(O_low), b=0); CoPD (a=η(O_mod), b=0)
证据 r=0.89 (overlap↔gain), CoPD overlap ≥0.90 vs static 跌至 ~0.5
惊讶 CoPD 在 text/image 都超过各自 expert — 打破"unified ≤ specialist"的 ceiling
尺度 2-branch + 3-branch 都验证;hub-and-spoke 把 OPD 数从 O(K²) 降到 O(K)
精读笔记 v1 · 2026-05-09 · 配套 PDF: /data/szhang967/papers/paper-notes/models/CoPD_2604.27083.pdf
相关阅读: TIDE · MTP · RL frameworks