Self-OPD:去掉教师机的流匹配模型 On-Policy 蒸馏

为什么要"无教师"的 On-Policy 蒸馏?

Flow Matching(FM)模型通过学习一条从噪声到数据的连续速度场,已经成为高质量文生图的主流骨架(SD3、FLUX 等都属此类)。但生成质量好并不等于对齐做得好------文本渲染、组合正确性、人类偏好这类下游目标,往往需要额外的后训练才能搞定。

现有的两类后训练方案都各有痛点。

第一类是直接用 RL 把去噪过程当成序列决策 ------Flow-GRPO、DiffusionNFT、GRPO-Guard 等都属于这一类。它的一大限制是奖励只有"终态"才有(完整去噪到一张图后才能打分),需要把一个终态奖励反向传播到几十步去噪过程中的每一步。这就带来了高方差梯度,多目标对齐时还容易出现"跷跷板"------把美学分拉上去,文本正确性就掉下来。

第二类是On-Policy Distillation(OPD)------Flow-OPD、DiffusionOPD 等。它用一个预训练好的、专门针对某任务的教师模型在每一步给学生提供稠密的 MSE 监督信号(教师速度 → 学生速度),训练稳定、样本效率高。但它把瓶颈换到了教师上:每加一个新目标就要重新训一个专门教师;学生被教师的质量和偏差"封顶";多个目标时只能让多个教师在场空间里路由融合(field-level fusion),不同教师的梯度方向相互冲突。

核心问题:能否既保留 OPD 那种稠密的逐步监督,又完全不要外部教师

Self-OPD 给出的答案是:用学生自己的 SDE 局部探索 + 自身的 ODE 自参考基线来产生逐步的稠密监督信号,奖励只在分支排序时使用,不进入梯度,从而也顺便解决了多目标对齐时的梯度冲突。

维度 Flow-GRPO Teacher-based OPD Self-OPD
无教师
逐步监督
在线数据
信用分配 终态 稠密 稠密
适配学生
探索范围 整条轨迹 教师 局部

下面这张图把三种范式画在同一张画面里对比:左边 RL 路径多步走、中间 Teacher-OPD 引入教师 T 给出 vTv_TvT 监督学生 θ\thetaθ、右边 Self-OPD 把"教师"完全替换为来自 vθv_\thetavθ 自身的 SDE 分支。

图中三栏分别对应 (a) RL 微调(多步 SDE + 终态 rir_iri)、(b) Teacher-OPD(vTv_TvT 直接回归 vθv_\thetavθ)、© Self-OPD(v+v_+v+ 拉、v−v_-v− 推)。

二、方案:Self-OPD 的自探索与全分支拉推蒸馏

2.1 从 FM 到反向 SDE

FM 把数据 x0x_0x0 与噪声 ϵ\epsilonϵ 之间的轨迹参数化为 xt=(1−t)x0+tϵx_t = (1-t)x_0 + t\epsilonxt=(1−t)x0+tϵ,学习一个速度场 vθ(xt,t)v_\theta(x_t,t)vθ(xt,t):

LFM=Et,x0,ϵ∥vθ(xt,t)−(ϵ−x0)∥2 \mathcal{L}{\mathrm{FM}} = \mathbb{E}{t,x_0,\epsilon}\bigl\\\|v_\\theta(x_t,t) - (\\epsilon - x_0)\\\|\^2\\bigr LFM=Et,x0,ϵ∥vθ(xt,t)−(ϵ−x0)∥2

推理时反向积分 ODE dxt/dt=vθ(xt,t)\mathrm{d}x_t/\mathrm{d}t = v_\theta(x_t,t)dxt/dt=vθ(xt,t),从 t0=1t_0=1t0=1 到 tS≈0t_S\approx 0tS≈0,步长 Δtj=tj+1−tj<0\Delta t_j = t_{j+1}-t_j < 0Δtj=tj+1−tj<0。

为引入随机探索,反向 ODE 改写为反向 SDE,Euler-Maruyama 离散化下每一步由一个确定性下一状态预测加上各向同性高斯扰动组成:

xtj+1=xtj+1,θ+σtj∣Δtj∣ zj,zj∼N(0,I) x_{t_{j+1}} = x_{t_{j+1},\theta} + \sigma_{t_j}\sqrt{|\Delta t_j|}\,z_j,\quad z_j\sim\mathcal{N}(0,I) xtj+1=xtj+1,θ+σtj∣Δtj∣ zj,zj∼N(0,I)

其中噪声调度 σtj=ηtj/(1−tj)\sigma_{t_j}=\eta\sqrt{t_j/(1-t_j)}σtj=ηtj/(1−tj) ,η∈0,1\eta\in0,1η∈0,1 控制探索半径。

把 score 函数用学生速度 vθv_\thetavθ 表达后代入反向 SDE 漂移,并令 η=0\eta=0η=0 自然回到 ODE 步,最终可以把"确定性下一状态预测"整理成 vθv_\thetavθ 的仿射形式

xtj+1,θ=btj(xtj)+ctj vθ(xtj,tj),ctj=(1+η22)Δtj x_{t_{j+1},\theta} = b_{t_j}(x_{t_j}) + c_{t_j}\,v_\theta(x_{t_j},t_j),\quad c_{t_j} = \bigl(1+\tfrac{\eta^2}{2}\bigr)\Delta t_j xtj+1,θ=btj(xtj)+ctjvθ(xtj,tj),ctj=(1+2η2)Δtj

其中 btjb_{t_j}btj 不依赖 vθv_\thetavθ。这个 affine 关系是后面所有"在转移空间等价于在速度空间做监督"的理论依据。

2.2 SDE 分支 + ODE 自参考:从奖励到优势

在某个 on-policy 的中间潜变量 xtjx_{t_j}xtj 上,学生先用一次前向算出确定性预测 xtj+1,θx_{t_{j+1},\theta}xtj+1,θ,然后只做一次 transformer 调用 ,再在它周围采样 KKK 条 SDE 分支

xtj+1(k)=xtj+1,θ+σtj∣Δtj∣ zk,k=1,...,K x_{t_{j+1}}^{(k)} = x_{t_{j+1},\theta} + \sigma_{t_j}\sqrt{|\Delta t_j|}\,z_k,\quad k=1,\dots,K xtj+1(k)=xtj+1,θ+σtj∣Δtj∣ zk,k=1,...,K

每条分支都用 ODE(η=0\eta{=}0η=0)继续 roll-out 到干净潜变量 x^0(k)\hat{x}_0^{(k)}x^0(k),VAE 解码后由任务奖励模型打分:

r(k)=R(Dec(x^0(k)), c) r^{(k)} = R\bigl(\mathrm{Dec}(\hat{x}_0^{(k)}),\,c\bigr) r(k)=R(Dec(x^0(k)),c)

为了让这个终端奖励变成"低方差、逐步可用"的监督,Self-OPD 又额外跑一条从同一父状态 xtjx_{t_j}xtj 出发的纯 ODE 轨迹 作为自参考基线,记其奖励为 roder^{\mathrm{ode}}rode。分支优势即归一化差值:

Ak=r(k)−rodestd({r(1),...,r(K)})+ϵ A_k = \frac{r^{(k)} - r^{\mathrm{ode}}}{\mathrm{std}(\{r^{(1)},\dots,r^{(K)}\}) + \epsilon} Ak=std({r(1),...,r(K)})+ϵr(k)−rode

这一步的巧思:不需要任何外部教师,奖励的"高于/低于自参考"直接给出每个局部方向值不值得走的信号。

2.3 全分支拉推:方向感知衰减 + SDE 方差归一化

不是只拟合最优分支,而是用全部 KKK 条 做加权:正优势拉、负优势推。但负分支不能无脑推------如果某条负分支的方向和最优分支几乎同向,强行推开就会抵消掉对最优方向的拉 。于是引入方向感知衰减系数

dk={1Ak≥012 ⁣(1−⟨δk,δbest⟩∥δk∥ ∥δbest∥)Ak<0 d_k = \begin{cases} 1 & A_k \ge 0\\4pt \dfrac{1}{2}\!\left(1 - \dfrac{\langle\delta_k,\delta_{\mathrm{best}}\rangle}{\|\delta_k\|\,\|\delta_{\mathrm{best}}\|}\right) & A_k < 0 \end{cases} dk=⎩ ⎨ ⎧121(1−∥δk∥∥δbest∥⟨δk,δbest⟩)Ak≥0Ak<0

其中 δk=xtj+1(k)−xtj+1,θ\delta_k = x_{t_{j+1}}^{(k)} - x_{t_{j+1},\theta}δk=xtj+1(k)−xtj+1,θ,δbest\delta_{\mathrm{best}}δbest 同理。dk∈0,1d_k\in0,1dk∈0,1,对与最优反向 的负分支保持全推力,对与最优同向的负分支衰减到接近 0。

利用 §2.1 的仿射关系 xtj+1(k)=btj(xtj)+ctjv(k)x_{t_{j+1}}^{(k)} = b_{t_j}(x_{t_j}) + c_{t_j}v^{(k)}xtj+1(k)=btj(xtj)+ctjv(k),可把分支展开成"等价速度":

v(k)=vθ−σtj(1+η2/2)∣Δtj∣ zk v^{(k)} = v_\theta - \frac{\sigma_{t_j}}{(1+\eta^2/2)\sqrt{|\Delta t_j|}}\,z_k v(k)=vθ−(1+η2/2)∣Δtj∣ σtjzk

在转移空间加高斯扰动,等价于在速度空间扰动目标。

记 rk=1Ak≥0r_k=\mathbf{1}A_k\\ge 0rk=1Ak≥0,v+(k)v_+^{(k)}v+(k)、v−(k)v_-^{(k)}v−(k) 分别是正/负分支对应的有效速度。步级 Self-OPD 目标为:

LSelf-OPD(j)=(1+η2/2)2 ∣Δtj∣2σtj2 1K∑k=1K∣Ak∣ rk ∥vθ−v+(k)∥2−(1−rk) dk ∥vθ−v−(k)∥2  \mathcal{L}{\text{Self-OPD}}^{(j)} = \frac{(1+\eta^2/2)^2\,|\Delta t_j|}{2\sigma{t_j}^2}\, \frac{1}{K}\sum_{k=1}^{K} |A_k|\Bigl\\,r_k\\,\\\|v_\\theta - v_+\^{(k)}\\\|\^2 - (1-r_k)\\,d_k\\,\\\|v_\\theta - v_-\^{(k)}\\\|\^2\\,\\Bigr LSelf-OPD(j)=2σtj2(1+η2/2)2∣Δtj∣K1k=1∑K∣Ak∣rk∥vθ−v+(k)∥2−(1−rk)dk∥vθ−v−(k)∥2

归一化常数 1/(2σtj2∣Δtj∣)1/(2\sigma_{t_j}^2|\Delta t_j|)1/(2σtj2∣Δtj∣) 不是随便拍的超参------它来自反向 KL 梯度。论文中给出了命题:

命题:对固定的 xtjx_{t_j}xtj 与目标 q∗q^*q∗,反向 KL 对学生转移均值的梯度为

∇xtj+1,θDKL(q∗∥qθ)=1σtj2∣Δtj∣ Extj+1∼q∗ ⁣xtj+1,θ−xtj+1 \nabla_{x_{t_{j+1},\theta}} D_{\mathrm{KL}}(q^*\|q_\theta) = \frac{1}{\sigma_{t_j}^2|\Delta t_j|}\,\mathbb{E}{x{t_{j+1}}\sim q^*}\!\biglx_{t_{j+1},\\theta}-x_{t_{j+1}}\\bigr ∇xtj+1,θDKL(q∗∥qθ)=σtj2∣Δtj∣1Extj+1∼q∗xtj+1,θ−xtj+1

也就是说:KL 最优更新就是把学生均值往 reward-tilted 目标 q∗q^*q∗ 的样本方向移,步长由转移精度 1/(σtj2∣Δtj∣)1/(\sigma_{t_j}^2|\Delta t_j|)1/(σtj2∣Δtj∣) 决定。Self-OPD 用 KKK 条 SDE 分支做蒙特卡洛估计,用 AkdkA_k d_kAkdk 做带符号的重要性权重,再由 affine 关系换回速度空间,就得到上面的损失。换言之,每一步的回归项都对应着同一个 KL 梯度的无偏估计 ,所以不同 Δtj\Delta t_jΔtj 步不能共用一个全局尺度。

整条轨迹的总损失是步级损失的加权和:

Ltotal=∑j=0S−1αj LSelf-OPD(j) \mathcal{L}{\text{total}} = \sum{j=0}^{S-1}\alpha_j\,\mathcal{L}_{\text{Self-OPD}}^{(j)} Ltotal=j=0∑S−1αjLSelf-OPD(j)

权重 αj\alpha_jαj 在早期(高噪声、决定全局语义布局)取较大值,向 t→0t\to 0t→0 平滑衰减。

下面这张 pipeline 图把整个流程画在了一张图上:上方 KKK 条 SDE 分支各自 ODE 滚出到完整图像,奖励 r+,rref,r−r^+,r^{\mathrm{ref}},r^-r+,rref,r−;下方左是归一化优势 AkA_kAk 与拉/推方向,下方右是 dkd_kdk 的几何含义与最终损失。

上半部分的紫/蓝线分别是 ODE 滚出与 SDE 分支;下半部分两个小图分别说明优势的归一化形式(左)与方向感知衰减 dkd_kdk 的几何意义(右)。

2.4 多目标对齐:奖励级融合而非场空间融合

传统多教师 OPD 走的是场空间融合:在共享参数 Θ\ThetaΘ 上对 MMM 个目标损失做加权和 ∑mλmLm(θ)\sum_m \lambda_m\mathcal{L}m(\theta)∑mλmLm(θ)。当两个目标梯度方向相反(⟨∇θLi,∇θLj⟩<0\langle\nabla\theta\mathcal{L}i,\nabla\theta\mathcal{L}_j\rangle<0⟨∇θLi,∇θLj⟩<0)时,就会出现"跷跷板"。

Self-OPD 走的是奖励级融合:把奖励先融合再让梯度去跟随单一轨迹。对每个分支:

r(k)=∑m=1Mλm r~m(k),r~m(k)=rm(k)−μmσm+ϵ r^{(k)} = \sum_{m=1}^{M}\lambda_m\,\tilde{r}_m^{(k)},\qquad \tilde{r}_m^{(k)} = \frac{r_m^{(k)} - \mu_m}{\sigma_m+\epsilon} r(k)=m=1∑Mλmr~m(k),r~m(k)=σm+ϵrm(k)−μm

其中 r~m(k)\tilde{r}m^{(k)}r~m(k) 是第 mmm 个打分器的 z-score。复合奖励 r(k)r^{(k)}r(k) 只用于分支排序 (决定 AkA_kAk 与正/负集合),永远不进入梯度 ;实际回归目标仍是一条具体的轨迹速度 v±(k)v\pm^{(k)}v±(k)。这条速度已经天然落在"多个奖励都偏高"的联合区域,所以一次更新就能让同一张图同时满足多个目标。

论文在 OCR 任务中取 λOCR:λPickScore:λHPSv2=3:1:1\lambda_{\rm OCR}:\lambda_{\rm PickScore}:\lambda_{\rm HPSv2}=3:1:1λOCR:λPickScore:λHPSv2=3:1:1,GenEval 任务类比替换任务打分器,PickScore 和 HPSv2 作为"与任务无关的美学护栏"全程参与,防止奖励作弊。

下面这张图对比了"场空间融合"和"奖励级融合"在多目标下产生的偏好分布差异:DiffusionOPD 在任务提示词上的偏好分明显比在美学提示词上低(PickScore 差 Δ=1.23\Delta=1.23Δ=1.23),而 Self-OPD 两条分布几乎重合(Δ=0.48\Delta=0.48Δ=0.48)------这就是"场空间融合把美学绑死在美学 prompt 家族、奖励级融合在联合高奖励区选轨迹"的直接证据。

蓝/橙分别表示同一模型在 GenEval/OCR 任务 prompt 与美学 prompt 上的偏好分布;峰位取自 Tab. main_mix 的实测均值,展宽为示意。DiffusionOPD 的两峰距离明显大于 Self-OPD。

2.6 创新点

  1. SDE 分支 + ODE 自参考:用学生自身的局部随机探索与确定性基线,把终态奖励转化为低方差、逐步可用的优势信号,不需要任何外部教师。
  2. 全分支拉推蒸馏 :同时利用正/负分支,正向拉、负向推,相比 Best-of-KKK 单点回归显著稳定。
  3. 方向感知衰减 dkd_kdk :防止"与最优方向同向"的负分支推开抵消拉力,是有界 0,10,10,1 衰减门,不是放大器。
  4. SDE 方差归一化 :(1+η2/2)2∣Δtj∣2σtj2\frac{(1+\eta^2/2)^2|\Delta t_j|}{2\sigma_{t_j}^2}2σtj2(1+η2/2)2∣Δtj∣ 来自反向 KL 梯度的 transition precision,让每步回归都是同一 KL 梯度的无偏估计。
  5. 奖励级融合:把多目标融合从参数空间搬到轨迹空间,复合奖励只用于排序、从不进梯度,天然支持黑盒打分器且无梯度冲突。

下面这张消融对比了"只拟合最优分支(红)→ 全分支拉推(绿)→ 再加 KL 归一化(蓝)"的 OCR 训练曲线:Best-of-KKK 几乎不出 baseline;加上全分支后才稳定;再加 KL 归一化则既快又高。

红:Best-of-K(不稳定、几乎不涨);绿:全分支拉推(稳定);蓝:完整 Self-OPD(再加 ∣Δt∣|\Delta t|∣Δt∣-aligned KL 归一化,收敛更快、上限更高)。

实验

参考文献

相关推荐
手写码匠13 分钟前
华为云Flexus+DeepSeek征文|华为云MaaS DeepSeek推理服务 × Flexus云服务器 × Dify一键部署:性能评测实战
人工智能·深度学习·算法·aigc
tzc_fly15 分钟前
Claude Science设计哲学:把 AI Agent 设计成可校准的科研仪器
人工智能
进击的横打23 分钟前
【人工智能】像管理团队一样管理 AI
人工智能
长江后浪博客29 分钟前
陶瓷喷墨 RIP 中的 8 色 ICC Profile 技术原理与 LittleCMS 实现
人工智能·色彩管理·陶瓷喷墨·littlecms·icc profile
江畔柳前堤29 分钟前
字节跳动产品全景图:从应用表象到技术深海的七层解剖
人工智能·chatgpt·架构·json·batch
山西茄子32 分钟前
【无标题】
人工智能
Fxkj88835 分钟前
企业新媒体IP陪跑真实价值解析:合作体验与效果评判标准
大数据·人工智能·tcp/ip·媒体
咖啡星人k35 分钟前
2026 GraphRAG 知识图谱:给大模型装上“关系地图“,多跳问题不再答非所问(MonkeyCode 免费上手)
人工智能·机器学习·语言模型·自然语言处理·知识图谱
Python大数据分析@36 分钟前
DeepSeek harness的开发哲学
人工智能