On-Policy Distillation 与 RL Bootstrapping 的同构

为什么说 OPD 本质上是一种"on-policy 的、以外部教师为 target 的自举"

先做一个澄清:是哪个 "bootstrapping"

机器学习里 "bootstrapping" 有两个完全不同的东西,对应的类比深度差别极大:

名称含义与 OPD 的契合度
统计 Bootstrap(Efron 1979)有放回重采样估方差牵强 —— 只是都"用自己的数据"
RL Bootstrapping(Sutton-Barto Ch.6-7)用自己当前的估计去更新自己的估计深刻同构 ← 本文重点

它的精神被 Sutton 一句话点破:

"TD methods learn a guess from a guess." —— 用一个猜测去更新另一个猜测。

一、两者的更新式,逐符号拆开

TD TD(0) Bootstrapping 的更新

价值函数 V 在状态 s_t 的更新
$$ V(s_t) \;\leftarrow\; V(s_t) + \alpha\Big[\underbrace{r_{t+1} + \gamma V(s_{t+1})}_{\text{TD target(自举目标)}} - V(s_t)\Big] $$

关键点:目标里的 $V(s_{t+1})$ 是网络自己当前的估计,不是真值。它不等到 episode 结束拿真实回报 $G_t$(那是 Monte Carlo),而是借用自己对下一步的估计"垫"出当前的学习信号——这就是 bootstrap(自己拽自己的鞋带)。

OPD On-Policy Distillation 的更新

学生在自己 rollout 的状态上,最小化对教师的反向 KL
$$ \mathcal{L}(\theta) = \mathbb{E}_{s_t \sim \pi_\theta}\Big[ D_{\mathrm{KL}}\big(\pi_\theta(\cdot\mid s_t)\,\big\|\,\pi_T(\cdot\mid s_t)\big)\Big] $$
逐 token 的学习信号(per-token reward)
$$ r_t = -\log\frac{\pi_\theta(a_t\mid s_t)}{\pi_T(a_t\mid s_t)} = \underbrace{\log \pi_T(a_t\mid s_t)}_{\text{教师打分(自举目标)}} - \log \pi_\theta(a_t\mid s_t) $$

关键点:学生在自己采样出来的状态 $s_t$ 上,用教师分布作为"目标"去拉自己。

叠在一起看——结构完全同构

要素TD BootstrappingOn-Policy Distillation
状态从哪来当前策略 $\pi$ 在线交互产生 $s_t$学生 $\pi_\theta$ 在线 rollout 产生 $s_t$
被更新的量$V(s_t)$$\pi_\theta(\cdot\mid s_t)$
学习目标 target$r_{t+1}+\gamma V(s_{t+1})$$\log\pi_T(a_t\mid s_t)$(dense per-token)
目标的性质比终态回报便宜得多的代理信号比稀疏 reward 便宜得多的 dense 信号
误差信号TD error $\delta_t=\text{target}-V(s_t)$KL/logratio $=\text{target}-\log\pi_\theta$
更新方向把 $V(s_t)$ 拉向 target把 $\pi_\theta$ 拉向教师

逐位置自举是两者最硬核的共同点:都不等序列/episode 走完拿"真值"(MC 的 $G_t$ / RL 的最终 reward),而是在每一步就地借一个现成的目标信号来更新

二、四个层次的"相同之处"

相同点 1 · On-policy:数据分布与被更新对象绑定

二者治的是同一个病:off-policy 的分布漂移 / 复合误差。离线蒸馏(≈SFT/behavior cloning)和离线价值估计都会因"训练分布 ≠ 部署分布"而崩。on-policy 这味药两边一模一样:让训练分布 = 部署/评估分布

相同点 2 · 用"便宜的代理目标"换掉"昂贵的真值"

这是两者最本质的共同动机,放进同一张偏差-方差 / 信号密度权衡表:

方法目标信号信号密度方差偏差
Monte Carlo(RL)真实回报 $G_t$稀疏(episode 末)无偏
TD Bootstrapping$r+\gamma V(s')$每步 dense有偏(靠自己的估计)
RL w/ sparse reward(LLM)终态对错 0/1极稀疏(序列末)无偏
On-Policy Distillation教师 per-token logp每 token dense有偏(靠教师质量)

完全平行:MC ↔ RL-sparse-reward 是"无偏但高方差、信号稀疏、信用分配难";TD ↔ OPD 是"引入一个有偏代理目标,换来 dense 低方差的逐步信号"。OPD 之于 RLVR/RLHF,几乎就是 TD 之于 Monte Carlo。

相同点 3 · Credit Assignment 被打散到每一步

Thinking Machines 的博客原话即"OPD 把奖励从 episode-level 下放到 token-level"——这跟 TD 把 credit 从 episode 末下放到每一步是同一个机制。

相同点 4 · 稳定性靠"目标相对固定"+ 不动点收敛

漂亮的对应:蒸馏里的"冻结教师",在 RL bootstrapping 里对应"target network"——都是为会自我引用的更新提供稳定参照系。区别仅在于 OPD 的 target 是更强的外部模型,TD 的 target 是自己的滞后副本。

三、一句话总结这层同构

On-policy distillation 本质上就是一种 bootstrapping:它在"学生自己采样的状态分布"上(on-policy),用"一个冻结的、便宜的代理目标"(教师 per-token logp ↔ TD target 里的 $V(s')$)替换掉"昂贵稀疏的真值回报"(终态 reward ↔ MC 的 $G_t$),从而把稀疏的、episode-level 的、高方差的信用分配,变成 dense 的、逐位置的、低方差的就地更新

对应字典
$$ \pi_T(\cdot\mid s_t) \;\Longleftrightarrow\; r+\gamma V(s_{t+1}) $$ $$ \text{冻结教师} \;\Longleftrightarrow\; \text{target network} $$ $$ \text{OPD} : \text{RLVR} \;\approx\; \text{TD} : \text{Monte Carlo} $$

四、必须点破的不同之处(避免类比走过头)

维度TD BootstrappingOn-Policy Distillation
目标来源自己的滞后估计(真·自举,自我引用)外部更强的教师("借外脑",非纯自指)
自举的对象价值函数 $V/Q$(标量预测)策略分布 $\pi$(整个 softmax)
是否会发散自指 → 可能发散,需 target net / 收缩映射教师固定 → 几乎不发散
偏差来源自己估计不准教师不完美 / 学生容量不够
最重要的一条哲学差异
纯 TD 的 bootstrap 是"自己拽自己"(estimate from its own estimate);而 OPD 是"从一个更强的固定目标拽自己"。所以 OPD 更精确的定位是 "on-policy 的、以外部教师为 target 的 bootstrapping"——它继承了 bootstrapping 全部的"on-policy + dense 代理目标 + 逐步更新"骨架,只是把"自我引用的 target"换成"外部冻结的 target",反而把 TD 最头疼的发散风险消掉了。

顺带:《Rethinking OPD》观察到"更强的教师反而可能学不动、更弱的教师反而成功",本质就是这个 bias-variance 与 "target 可达性" 的权衡在作怪。