SMOPD 深度解读:多奖励强化学习的“先专门化,再蒸馏合并”
大模型后训练经常同时优化多个目标:工具调用既要选对函数和参数,也要满足严格格式;对话模型既要 helpful,也要 harmless。一个自然做法是把多个 reward 加权求和,但当 reward 的密度不同,逐维归一化仍然可能失败:dense reward 几乎每组都有排序信号,binary sparse reward 却经常整组相同,根本没有可用 advantage。
本文精读 SMOPD: Multi-Reward Reinforcement Learning via Specialize-and-Merge Online Policy Distillation(arXiv v2,2026-08-21)。分析基于论文完整正文与附录,包括 9 个核心公式、主要实验表和消融;文中的实验数字均为作者报告,批评与改进建议会明确标为“我的分析”。
一句话结论与论文全景
SMOPD 的核心不是寻找一个更聪明的 reward 权重,而是把“能力获取”和“能力平衡”拆成两个阶段:先用偏置权重训练 reward-specialized teachers,让稀疏或冲突的能力分别学会;再在 student 自己的 rollout 上,以 token-level forward-KL 合并教师分布,同时用 sequence-level GDPO anchor 继续优化均衡任务目标。
这使它处在三个方向的交叉点:
- 它沿用 GRPO/GDPO 的 clipped policy-gradient 骨架;
- 它是多目标强化学习的一种 policy-level merge;
- 它用 on-policy distillation(OPD)把多个 reward 的信息从 sequence-level 标量变成 token-level 密集监督。
论文验证了两个场景:互补 reward 的工具调用 accuracy + format,以及冲突 reward 的 helpful + harmless。最强提升出现在 Qwen2.5-1.5B 工具调用上:format pass 从 GDPO 的 8.8% 升到 97.5%,RLLA composite 从 1.849 升到 2.740。
1. Motivation:逐维归一化为什么仍然不够
1.1 从 GRPO 的 reward masking 说起
对同一 prompt 采样 \(G\) 条回答,设第 \(i\) 条回答有 \(K\) 维 reward:
\[ \mathbf r_i=(r_i^{(1)},r_i^{(2)},\ldots,r_i^{(K)}). \]
朴素多奖励 GRPO 先把每条回答的 reward 相加,再用组内均值和标准差构造 advantage:
\[ \hat A_i^{\text{GRPO}} = \frac{\sum_k r_i^{(k)}-\mu_S}{\sigma_S+\epsilon}. \]
这会丢失 reward-specific information。一个大尺度 reward 可以掩盖另一个小尺度 reward,不同目标的冲突也被压缩进一个标量。
GDPO 的改进是先对每个 reward dimension 独立标准化(论文 §3.1,Eq. 1–3):
\[ \hat A_i^{(k)}= \frac{r_i^{(k)}-\mu^{(k)}}{\sigma^{(k)}+\epsilon}, \]
\[ A_i^{\text{sum}} = \sum_{k=1}^{K}w_k\hat A_i^{(k)}, \qquad \hat A_i^{\text{GDPO}} = \operatorname{Whiten}_{\text{batch}} \left(A_i^{\text{sum}}\right). \]
逐维归一化把各 reward 放到相近尺度,再由 \(w_k\) 控制优先级。这解决了 scale imbalance,却没有解决 signal-density imbalance。
1.2 Scale 不同与 Density 不同是两种问题
论文 Figure 1 给了一个非常关键的构造:一个 batch 有 8 个 prompt group,每组 4 条 rollout。
- dense reward 在所有 8 组中都给出 \([0,1,2,3]\);
- sparse reward 在其中 7 组都是 \([0,0,0,0]\);
- sparse reward 只在最后 1 组给出 \([1,0,0,0]\)。
对前 7 组,sparse reward 的标准差为零,标准化之后四条 rollout 仍然没有相对差异。归一化能放大已有差异,却不能在零方差 group 中创造差异。训练长期由 dense reward 主导,不是因为它的数值更大,而是因为它更频繁地产生可用 policy gradient。
这产生一个单策略困境:
- 保持均衡权重,sparse capability 学不会;
- 提高 sparse reward 权重,最终 policy 又被一个人为倾斜的目标支配。
SMOPD 的研究假设是:不要强迫同一个 policy 在一次优化中同时解决“学会每种能力”和“平衡所有能力”。
2. Method:SMOPD 如何工作
2.1 Stage 1:Reward-Specialized Teacher Training
SMOPD 从同一个 base policy 出发,为每个 reward dimension 设计偏置的 priority profile。目标 reward \(k\) 的 teacher advantage 为(论文 Eq. 4):
\[ \hat A_{\text{teacher},k} = w_k^{\text{high}}\hat A^{(k)} + \sum_{j\neq k}w_j^{\text{low}}\hat A^{(j)}. \]
在工具调用实验中:
- accuracy teacher 使用 \([0.9,0.1]\);
- format teacher 使用 \([0.1,0.9]\)。
因为每一维 advantage 已经被标准化到相近尺度,\(0.9:0.1\) 近似对应目标 reward 约 9 倍的相对梯度权重。format teacher 可以在偶尔出现非零 binary reward 的 batch 中强力积累格式能力,accuracy teacher 则保留工具选择与参数生成能力。
2.2 Stage 2:在 Student 自己的轨迹上合并教师
给定 \(M\) 个冻结教师 \(\{\pi_1,\ldots,\pi_M\}\),student policy \(\pi_\theta\) 先生成自己的 response。对 student prefix \(s_t\),所有教师再给出 next-token distribution,形成均匀 mixture(论文 Eq. 5):
\[ p_T^{\text{mix}}(v\mid s_t) \propto \sum_{m=1}^{M}\alpha_m p_{\pi_m}(v\mid s_t), \qquad \alpha_m=\frac{1}{M}. \]
这里的 on-policy 很重要:教师评价的是 student 真正访问到的 prefix,而不是一个固定的 teacher-generated dataset,因此减少了训练 prefix 与 student 推理 prefix 的 exposure mismatch。
2.3 Top-\(\kappa\) 近似与 Forward KL
保存所有教师在完整词表上的 logits 成本很高。SMOPD 默认让每个教师只输出自己的 top-\(\kappa\) token,再在候选并集中保留最大的 \(\kappa\) 个,默认 \(\kappa=16\)(论文 Eq. 6)。
student 使用 forward KL 学习混合分布(论文 Eq. 7):
\[ \mathcal L_{\text{OPD}} = \sum_t \operatorname{KL} \left( \tilde p_T^{\text{mix}}(\cdot\mid s_t) \,\|\, p_\theta(\cdot\mid s_t) \right). \]
作者选择 forward KL 的理由是 mode-covering:当 format teacher 偏好 XML wrapper token,而 accuracy teacher 偏好函数名或参数 token 时,student 应保留两个教师的高概率区域,不希望 reverse KL 只选中其中一个 mode。
2.4 为什么还需要 GDPO Anchor
纯蒸馏只能把 student 推向固定 teacher mixture。当 \(p_\theta=p_T^{\text{mix}}\) 时,KL 为零,蒸馏梯度也消失;student 无法依靠 OPD 超过 teacher mixture。
SMOPD 因此在 student 上继续计算等权 GDPO loss(论文 Eq. 8–9):
\[ \mathcal L_{\text{anchor}} = \mathcal L_{\text{GDPO}} \left(\pi_\theta;[1/K,\ldots,1/K]\right), \]
\[ \mathcal L_{\text{total}} = \mathcal L_{\text{anchor}} +\lambda\mathcal L_{\text{OPD}}, \qquad \lambda=1.0. \]
两个 loss 分工不同:
| 信号 | 粒度 | 回答的问题 |
|---|---|---|
| GDPO anchor | sequence | 这条完整回答是否应该提高概率? |
| OPD | token | 当前 prefix 下,哪些 token 应得到概率质量? |
这也是 SMOPD 最值得迁移的设计:用 coarse but grounded 的 RL signal 控制任务方向,用 dense but bounded-by-teacher 的 distillation signal 指导局部生成。
2.5 训练与推理阶段
训练需要两个阶段以及多个冻结教师:
1 | |
部署时只需要 student,不需要教师、reward model 或额外 router;主要成本发生在训练阶段。
3. 具体数值例子:从双奖励到 Student Loss
下面用论文 Figure 1 的 reward 结构,加上一个明确标注的教学用 token 分布,完整走一遍方法。为便于手算,暂时省略 GDPO 最后的 batch-wise whitening;真实实现仍会执行它。
3.1 一个有 sparse signal 的 rollout group
设同一 prompt 的 4 条 rollout 得分为:
\[ \mathbf r_{\text{acc}}=[0,1,2,3], \qquad \mathbf r_{\text{fmt}}=[1,0,0,0]. \]
accuracy 的均值为 \(1.5\),总体标准差为 \(\sqrt{1.25}\approx1.118\):
\[ \hat{\mathbf A}_{\text{acc}} \approx[-1.342,-0.447,0.447,1.342]. \]
format 的均值为 \(0.25\),总体标准差为 \(\sqrt{0.1875}\approx0.433\):
\[ \hat{\mathbf A}_{\text{fmt}} \approx[1.732,-0.577,-0.577,-0.577]. \]
等权 GDPO \([0.5,0.5]\) 得到:
\[ \mathbf A_{\text{balanced}} \approx[0.195,-0.512,-0.065,0.383]. \]
第一条回答格式正确但 accuracy 最低,只得到很小的正 advantage;第四条 accuracy 最高但格式错误,反而得到更大的正 advantage。
format teacher 使用 \([0.1,0.9]\):
\[ \mathbf A_{\text{format-teacher}} =0.1\hat{\mathbf A}_{\text{acc}} +0.9\hat{\mathbf A}_{\text{fmt}} \approx[1.425,-0.564,-0.475,-0.385]. \]
现在只有格式正确的第一条 rollout 得到强正信号。accuracy teacher 使用 \([0.9,0.1]\):
\[ \mathbf A_{\text{accuracy-teacher}} \approx[-1.035,-0.460,0.345,1.150], \]
明确偏向 accuracy 更高的第三、第四条 rollout。
但要注意:在论文构造中,另外 7 个 group 的 format reward 都是 \([0,0,0,0]\),format advantage 仍为零。priority profile 的作用是放大罕见但真实存在的信号,而不是解决完全没有正例的数据覆盖问题。
3.2 在一个 token 位置合并两位教师
考虑 student 正在生成工具调用边界。为演示 forward KL,构造三 token 的简化词表:
| Token | Format teacher | Accuracy teacher | 均匀 mixture | Student |
|---|---|---|---|---|
<tool_call> |
0.8 | 0.2 | 0.5 | 0.3 |
weather_api |
0.1 | 0.7 | 0.4 | 0.6 |
| other | 0.1 | 0.1 | 0.1 | 0.1 |
该位置的 forward KL 为:
\[ \begin{aligned} \operatorname{KL}(p_T^{\text{mix}}\|p_\theta) &=0.5\ln\frac{0.5}{0.3} +0.4\ln\frac{0.4}{0.6} +0.1\ln\frac{0.1}{0.1}\\ &\approx0.2554-0.1622+0\\ &\approx0.0932\ \text{nats}. \end{aligned} \]
梯度会推动 student 增加 <tool_call>
的概率,同时保留 accuracy teacher 对 weather_api
的偏好。若教学简化下本条 response 的 GDPO anchor loss 为 \(0.20\),且 \(\lambda=1\),则这个单 token
近似贡献下:
\[ \mathcal L_{\text{total}}\approx0.20+0.0932=0.2932. \]
真实训练会对所有 response token 求和或归约,并使用 top-16 教师支持、clipped GDPO objective 与 batch whitening;这里省略这些高维细节,只展示两个训练信号如何合流。
4. Results:实验究竟支持了什么
4.1 实验设置
| 场景 | Backbone | 训练数据与 Reward | 关键配置 |
|---|---|---|---|
| 互补奖励:工具调用 | Qwen2.5-1.5B、3B | RLLA-4K;accuracy \([-3,3]\) + format \(\{0,1\}\) | 每 prompt 8 rollouts;top-16;\(\lambda=1\);8 GPUs |
| 冲突奖励:安全对齐 | Qwen2.5-3B、7B;Llama-3.2-3B | Alpaca prompts;Useful RM + Harmless RM | 每 prompt 4 rollouts;top-16;\(\lambda=1\);8 GPUs |
工具调用在 80 个 RLLA held-out prompt 上评估,并测试 BFCL-v4 与 API-Bank;安全对齐使用 HH-RLHF、PKU-SafeRLHF 和 Alpaca。API-Bank 主表保留 exact-match 成功样本,并让 qwen3.7-plus 复核 exact-match failure 是否功能等价。
4.2 互补奖励:提升高度依赖 Base Model 的初始稀疏度
| Qwen2.5-1.5B | Acc Reward | Format Pass | RLLA Mean | BFCL AST | API-Bank Judge Avg |
|---|---|---|---|---|---|
| GDPO | 1.761 | 8.8% | 1.849 | 72.6% | 83.6% |
| Format Teacher | 1.771 | 97.5% | 2.746 | 70.5% | 80.2% |
| SMOPD | 1.765 | 97.5% | 2.740 | 70.7% | 87.1% |
SMOPD 相对 GDPO 的 RLLA Mean 绝对提升 \(0.891\),相对提升约 48.2%;format pass 提高 88.7 个百分点,同时 Acc Reward 基本不变。API-Bank judge accuracy 提高 3.5 个百分点。
但 Qwen2.5-3B 的起始 format pass 已是 97.5%,SMOPD 的 RLLA Mean 为 2.738,只比 GDPO 的 2.728 高 0.010。我的分析:SMOPD 的最大价值出现在“某一 reward 真的稀疏到学不动”时;若 base model 已掌握该能力,专门化的边际收益会明显缩小。
4.3 冲突奖励:稳定超过 GDPO,但并非总胜过最强 Baseline
| Backbone | GDPO | GD\(^2\)PO | Useful Teacher | Harmless Teacher | SMOPD |
|---|---|---|---|---|---|
| Qwen2.5-3B | 5.598 | 5.650 | 5.511 | 5.620 | 5.669 |
| Qwen2.5-7B | 5.498 | 5.571 | 5.500 | 5.522 | 5.646 |
| Llama-3.2-3B | 5.583 | 5.605 | 5.308 | 5.242 | 5.590 |
结果支持作者在摘要中的精确主张:SMOPD 在三个 backbone 上都超过 GDPO。它在两个 Qwen backbone 上也超过 GD\(^2\)PO 和单教师,但在 Llama-3.2-3B 上比 GD\(^2\)PO 低 0.015。不能把结论扩大成“SMOPD 对所有 scalarized baseline 都更优”。
4.4 Ablation:Anchor、KL 方向和 Top-\(\kappa\)
论文 Table 3–4 与 Appendix E 给出四个重要诊断:
- Qwen2.5-7B 安全对齐中,OPD-only 为 5.544,加入 anchor 后为 5.639;anchor 使 student 超过两个单教师,并在到达 mixture ceiling 后继续提供 reward gradient。
- top-16 已保留约 99.4% 的 teacher probability mass。
- \(\kappa=16,32,64\) 的 Overall 分别为 5.646、5.639、5.642,最大差只有 0.007。
- sampled-token reverse KL 为 5.563,比 top-16 forward KL 低 0.082;但这只在一个 backbone/场景上验证,不能推出 reverse KL 普遍更差。
作者还尝试基于 teacher confidence、student reward failure 与教师分歧的 sequence/token adaptive gate。它们没有稳定超过无参数均匀 mixture:RLLA Mean 的最大 spread 不超过 0.06,安全 Overall 不超过 0.02。
5. 最具创新性的点
SMOPD 最具创新性的地方,是把多奖励问题从 reward-space scalarization 改写成 policy-space capability acquisition and merge。
以往方法主要追问:怎样归一化、重加权或过滤多个 reward,才能让一个 policy 同时学习?SMOPD 先承认某些信号在均衡状态下根本学不动,让各 teacher 在有利的 reward regime 中获得能力,再通过 student 自身状态分布上的 token-level OPD 合并。
这个创新成立的证据链是:
- balanced GDPO 的 format pass 只有 8.8%,说明逐维归一化没有解决 sparse density;
- format priority teacher 达到 97.5%,说明能力可以在倾斜目标下被获取;
- SMOPD 同时保持 97.5% format pass 与最佳 1.5B API-Bank judged accuracy,说明 merge 没有简单复制一个教师;
- OPD-only 到 OPD + anchor 的消融,证明 token merge 与 task-level RL signal 具有互补作用。
6. 不足与可能的改进
论文没有单独的 Limitations 章节。下面主要是基于方法和实验的独立分析。
6.1 只验证了两个 Reward Dimension
实验中的 \(K\) 都等于 2,而真实 post-training 可能同时包含 correctness、format、style、safety、latency、citation、tool cost 等多个目标。
改进建议:在 \(K=4,8\) 的受控任务上比较 one-teacher-per-reward、按 reward cluster 合并教师,以及共享 backbone + reward-specific adapter。报告 Pareto hypervolume、每维 regret 和最差维性能。adapter 可降低存储,但共享参数可能重新引入 reward interference。
6.2 训练成本没有严格等预算比较
SMOPD 需要先训练多个 teacher,再训练 student;student 的每个 token 还需要多个冻结教师给 top-\(\kappa\) 分布。论文报告所有 run 使用 8 GPUs,但没有把完整两阶段总 FLOPs 与单阶段 baseline 做严格匹配。
改进建议:报告端到端 GPU-hours、teacher-token forward FLOPs、通信量和 time-to-target;在固定总算力下与更长时间训练的 GDPO/GD\(^2\)PO 比较。也可以用 LoRA specialist、teacher logits cache 或按分歧稀疏调用教师降低成本,但 cache 会削弱 on-policy 性质。
6.3 Priority Profile 仍然依赖人工设定
工具调用使用 \([0.9,0.1]/[0.1,0.9]\),安全对齐使用 \([0.7,0.3]/[0.3,0.7]\)。最优偏置依赖 reward density、模型规模和初始能力。
改进建议:根据每维 non-zero-advantage group rate、advantage variance 与梯度 norm 自动设定 specialization strength。验证时应观察自动权重是否稳定恢复手工 profile,并防止对噪声 reward 的过度放大。
6.4 评估规模与 Judge 偏差
工具调用 in-domain test 只有 80 个 prompt。API-Bank 主指标让 qwen3.7-plus 仅复核 exact-match failure,虽能减少字面匹配误杀,却引入 judge calibration 问题。论文附录保留了 strict exact-match,且 3B SMOPD 在 strict overall 上并不领先。
改进建议:增加人工双盲复核子集,报告 judge precision/recall 与置信区间;在更多工具 schema、嵌套参数、多轮工具调用和 adversarial format 上测试。
6.5 与 Long-Horizon Credit Assignment 尚未连接
SMOPD 处理的是 reward dimension 之间的冲突,不是 trajectory 内不同 turn 的时间信用。当前实验主要是单 response 的工具调用和安全对齐。
改进建议:构造二维 credit:先在每个 reward 维度内做 turn-level advantage,再跨 reward 做 specialize-and-merge。与 Turn-PPO/TRACE/BEACON 联合时,应消融“时间粒度收益”和“reward 维度收益”,并在固定 environment-step 预算下比较。
7. 与 PPO/GRPO 主流范式的关系
SMOPD 没有替代 PPO 式 policy update。它在两个位置扩展了现有范式:
- Stage 1 仍使用 GDPO advantage 驱动标准 clipped surrogate;
- Stage 2 用 balanced GDPO 作为 RL anchor,再叠加 token-level distillation loss。
因此它更像一个可以包裹 PPO/GRPO estimator 的多奖励训练编排层。未来可以替换的部件包括:
| 当前 SMOPD 部件 | 可替换方向 |
|---|---|
| GDPO teacher optimizer | PPO、GRPO、DAPO 或 turn-level PPO |
| 手工 reward priority | density-aware / gradient-aware 自动权重 |
| Uniform teacher mixture | 经校准的 sparse gate;论文当前 adaptive gate 未显示稳定优势 |
| Forward-KL OPD | 其他 \(f\)-divergence 或 token-selective distillation |
| Sequence-level anchor | 更强的 GD\(^2\)PO、critic baseline 或 turn-level advantage |
这一视角也解释了它和 long-horizon 研究的差别:Turn-PPO 关心“第几个 turn 应负责”,SMOPD 关心“哪一种 reward capability 应被保留”。二者分别处理时间轴和目标轴。
8. 读者应记住的要点
- 多奖励的 scale imbalance 与 density imbalance 不同;逐维 normalization 只能解决前者。
- SMOPD 先在倾斜 reward regime 中训练 specialists,再把能力蒸馏进一个 student。
- token-level forward KL 提供局部密集指导,sequence-level GDPO anchor 保证任务 grounding,并允许 student 超过 teacher mixture。
- 最强证据是 1.5B 工具调用的 format pass 8.8% → 97.5%,同时 accuracy 基本保持;但 3B 的增益很小,说明收益依赖 base model 是否真的缺少该 sparse capability。
- 方法稳定优于 GDPO,但不是在所有 backbone 上都超过 GD\(^2\)PO。
- 当前最大风险是两阶段多教师训练成本、只验证两个 reward、手工 priority profile,以及尚未验证 long-horizon 多轮组合。
我的总体判断:SMOPD 不是又一个简单的 reward reweighting 技巧。它更重要的贡献是指出:当不同目标的可学习性差异太大时,先让单独 policy 获得能力、再在 student 的 on-policy 状态上合并,可能比强迫一个 policy 从头寻找固定折中更合理。这个范式值得继续研究,但真正成为通用多目标后训练方案之前,必须回答多 reward 扩展与总算力成本两个问题。
点赞与评论
喜欢这篇文章?点个赞,或留下你的想法。登录 GitHub 后即可参与。
如果评论无法加载,请检查网络连接后刷新页面。