Poly-OPD:面向异构多教师在线策略蒸馏的能力可选流模型 Poly-OPD: Heterogeneous Multi-Teacher On-Policy Distillation for Capability-Selectable Flow Models
用像素桥接与可切换适配器把异构教师能力蒸馏进单一学生
前置知识
流匹配(Flow Matching)
一种连续生成建模方法,通过学习一个向量场 $v_\theta$,把简单分布(如高斯噪声 $\epsilon \sim \mathcal{N}(0, I)$)沿直线(rectified flow)连续传输到数据分布。训练目标是拟合连接噪声与数据的插值轨迹 $z_\sigma = (1-\sigma) z_{clean} + \sigma \epsilon$ 的速度场。SD3.5、FLUX、Z-Image 等现代文生图模型均采用流匹配作为底座。
本文的学生 SD3.5-Medium 与两个教师都基于流匹配,但噪声调度不同;理解速度场、Euler 采样与噪声级别 $\sigma$ 的索引方式,才能看懂为什么跨模型直接匹配速度/轨迹会失效,以及噪声幅度对齐(noise-magnitude alignment)为何能补救。
在线策略蒸馏(On-Policy Distillation, OPD)
传统蒸馏(离线/off-policy)用教师生成的样本作为固定监督信号,学生只拟合教师分布;在线策略蒸馏则让学生先生成自己的样本(rollout),再由教师对「学生实际产出的状态」进行修正,监督学生真正会经过的轨迹,从而消除训练-推理不匹配(train-inference mismatch),让学生有能力超越教师的样本上界。
Poly-OPD 的核心就是「异构在线策略蒸馏」。理解 OPD 的原理才能明白为什么学生能在 GenEval 上超过两个更大的教师——这是纯模仿教师样本永远达不到的,是验证 on-policy 有效性的关键证据。
变分自编码器(VAE)与潜空间
扩散/流模型通常不在像素空间直接训练,而先用 VAE 编码器 $\mathcal{E}$ 把图像 $x$ 压成潜变量 $z$,解码器 $\mathcal{G}$ 再还原像素。不同模型族(SD3.5、FLUX、Z-Image)采用不同的 VAE,潜空间的通道数、缩放比、统计分布互不兼容,彼此的 $z$ 无法直接比较或迁移。
正是 VAE 的不兼容造成「异构教师」难题:教师的潜变量对学生而言是无效的坐标目标。本文绕过潜空间、改走像素空间 $x^S = \mathcal{G}^S(z), \bar{z}^e = \mathcal{E}^e(x)$ 作为唯一公共坐标系,是整篇方法的基石。
LoRA 与梯度相容性(Gradient Compatibility)
LoRA 用低秩分解 $W \leftarrow W + BA$($A,B$ 为低秩矩阵)对冻结权重做参数高效微调。多任务/多教师学习时,不同任务的梯度方向可能冲突(destructive interference)。梯度相容性 $\kappa = E[\frac{\langle \nabla L^{pref}, \nabla L^{comp}\rangle}{\|\nabla L^{pref}\|\|\nabla L^{comp}\|}]$ 用余弦相似度衡量两个目标梯度是否同向。
本文最巧妙的设计是用实测的梯度相容性来决定哪些模块该共享、哪些该隔离:注意力层梯度同向→共享注意力 LoRA,前馈层梯度反向→给每个能力单独 FFN 适配器。这正是「capability-selectable adapters」的理论依据。
DINOv2 自监督视觉特征
DINOv2(Oquab et al. 2023)是用自监督方法训练的视觉 Transformer,其 CLS 嵌入特征对模型特定的像素统计具有不变性——即不管图像由 SD3.5 还是 FLUX 生成,只要语义内容相同,DINOv2 特征就接近。这使其成为跨模型图像对齐的理想公共语义空间。
Poly-OPD 把监督损失 $\mathcal{L}^{OPD} = 1 - \cos(f(\tilde{x}^S), f(x^e_{ref}))$ 放在 DINOv2 的 CLS 空间而非潜空间或像素空间,正是借助其对像素分布的不变性,才能在不兼容的潜空间之间进行有意义的比较。消融实验证明换成 ConvNeXt/SigLIP 或学生潜变量 MSE 都会变差甚至崩溃。
研究动机
当前开源文生图模型呈现「能力专精化」格局:FLUX.1-dev(12B)在美学与人类偏好上领先,但常丢失提示词里的空间关系、颜色、物体数量等组合约束;Z-Image(6B)则在计数、属性绑定、位置上更忠实,但视觉吸引力弱。二者优势很少共存于一个权重里。更棘手的是这些专精模型构建在不同底座上——使用不同的自编码器(VAE)、去噪器和噪声调度——导致潜空间互不通用,彼此的潜变量与采样轨迹不能互相当训练目标。一个同时需要两种能力的应用只能部署多个大模型并路由,付出显存、延迟与维护成本。已有蒸馏方法(score/velocity/trajectory matching)都假设师生共享自编码器和噪声调度,对异构教师完全不适用;退而用教师生成图像做监督(off-policy)又会带来训练-推理不匹配,使学生无法逼近、更无法超越教师。即便强行塞进一个网络,偏好与组合梯度会在网络某些部分指向相反方向造成灾难性干扰,而组合能力各子技能进展不均(单物体/颜色早早饱和,位置/属性仍是瓶颈),均匀采样预算被系统性错配。
本文的目标是作者把这个问题形式化为「多能力整合(multi-capability consolidation)」:给定一组冻结的、架构异构的教师(每个教师专精一种能力),把它们蒸馏进单一的流匹配学生,使得(i)学生上每种能力都达到对应教师的水平;(ii)能力之间不互相损害;(iii)推理时能在 negligible 成本下「切换」激活的能力。具体到实验,目标是把 FLUX.1-dev(偏好/美学)和 Z-Image(组合)两个教师,整合进一个 2.5B 的 SD3.5-Medium 学生里,用一个底座同时拿下 DrawBench 偏好指标与 GenEval 组合指标,并通过换一个适配器而非换一个模型来切换两种模式。
与已有工作不同的是,本文的独特切入角度有三处反直觉之处。第一,不再强求师生共享潜坐标,而是承认像素空间是异构模型唯一共享的坐标系,让学生先采样出图像 $x^S$,解码到像素后再用教师编码器重新编码进教师潜空间,由教师做修正——这条路绕开了「异构潜空间不兼容」这个公认死结。第二,监督不放在潜空间也不放在像素空间,而是放在冻结的 DINOv2 语义特征空间,利用其对模型特定像素统计的不变性,让「跨潜空间的比较」变得有定义。第三,能力之间的「共享 vs 隔离」边界不靠惯例或拍脑袋,而是用实测的梯度相容性来决定:注意力层梯度同向就共享,前馈层梯度反向就隔离;同时训练预算不按难度而按「剩余的师生差距」分配,差距闭合后预算自然退火回均匀。这三点合起来,把一个看似不可解的异构多教师蒸馏问题转化成可工程化、可验证的方案。
核心方法
Poly-OPD 的整体思路是「先让学生贴近教师分布,再让学生在自己的轨迹上接受教师修正」。直觉上:让学生先采样出它自己会生成的图,再让教师在像素层面对这张图做一次精修,把精修后的图当监督目标——学生学到的是「在它自己会经过的状态上,教师希望它走向哪里」,既绕开了坐标系问题,又消除了训练-推理不匹配。技术上分两阶段:Stage 1 暖启动 500 步,用教师生成样本 $x^e_\star=Sample_{T_e}(c)$ 经学生 VAE 重编码后做流匹配监督,把学生拉到教师分布附近;Stage 2 在线策略蒸馏(800 步、20 步学生 Euler 采样器)通过像素桥接让教师修正学生自己的样本,在 DINOv2 CLS 特征空间算余弦距离损失。能力共存靠可切换适配器——共享一个注意力 LoRA、每种能力一套 FFN 适配器,切换能力只换适配器。预算分配靠 gap-aware 采样,每 $K=50$ 步用 32 个探针评估师生残差并更新采样分布。整条链路把异构多教师蒸馏拆成「坐标系桥接 + 语义空间监督 + 实测共享边界 + 自适应预算」四个可独立验证的部件。
核心创新是「像素桥接的异构在线策略蒸馏」与「实测共享-隔离边界」。与传统潜空间蒸馏的本质区别:传统方法必须师生共享自编码器和噪声调度,监督信号 $v_\theta-v_{teacher}$ 在同一坐标系里才有意义;Poly-OPD 放弃潜空间匹配,让学生先无梯度 rollout $\{z^S_i\}=Euler^S(z^S_0, 0\to N_S, c;\theta)$,解码到像素 $x^S=\mathcal{G}^S(z^S_{N_S})$,再用教师编码器重编码 $\bar{z}^e_{clean}=\mathcal{E}^e(x^S)$,从按幅度(而非时间步)匹配的噪声级别 $\sigma_{k_e}$ 出发让教师跑剩余 $r$ 步得精修图 $x^e_{ref}$;学生从同噪声幅度缓存状态 $j=\max\{i:\sigma^S_i\geq\sigma_{k_e}>\sigma^S_{i+1}\}$ 重走 $N_S-j$ 步得 $\tilde{x}^S$,在 DINOv2 空间算 $\mathcal{L}^{OPD}=1-\cos(f(\tilde{x}^S), sg[f(x^e_{ref})])$。第二本质创新是用梯度余弦相似度 $\kappa$ 实测出注意力层同向、前馈层反向,把共享-隔离边界从「惯例」变「测量」,避免「全共享平均掉冲突」或「全隔离参数翻倍且丢弃可迁移更新」两种极端。
方法步骤详情
流程分四步。Step 1 暖启动:对模式 $e\sim\pi$,教师生成 $x^e_\star=Sample_{T_e}(c)$,用学生编码器重编码 $z^S_{e,clean}=\mathcal{E}^S(x^e_\star)$,按学生调度插值 $z^S_\sigma=(1{-}\sigma)z^S_{e,clean}+\sigma\epsilon$,损失 $\mathcal{L}^{WS}_e=E\|v_\theta(z^S_\sigma,\sigma,c)-(\epsilon{-}z^S_{e,clean})\|^2$。Step 2 学生无梯度 rollout:从 $z^S_0\sim\mathcal{N}(0,I)$ 走 Euler 到 $z^S_{N_S}$,解码得像素 $x^S=\mathcal{G}^S(z^S_{N_S})$。Step 3 教师精修:采深度 $r\in[15,20]$,令 $k_e=N_e-r$,重编码 $\bar{z}^e_{clean}=\mathcal{E}^e(x^S)$ 并重噪化到 $\sigma_{k_e}$(按幅度而非时间步匹配),教师跑剩余 $r$ 步得精修图 $x^e_{ref}$;学生从匹配噪声幅度的缓存状态 $j$ 有梯度重走得 $\tilde{x}^S$,在 DINOv2 算 $\mathcal{L}^{OPD}=1{-}\cos(f(\tilde{x}^S), sg[f(x^e_{ref})])$。Step 4 模式目标 $\mathcal{L}^{(2)}=E_{e\sim\pi}[\mathcal{L}^{OPD}_e+\lambda_{WS}\mathcal{L}^{WS}_e]$,每步只更新共享注意力 LoRA 与当前模式 FFN 适配器,冻结底座与未激活适配器。Step 5 gap-aware:每类 $k{=}32$ 探针+缓存教师分 $s^T_a$,每 $K{=}50$ 步评 $s^S_a$,更新 $g_a\leftarrow\beta g_a+(1{-}\beta)\max(s^T_a{-}s^S_a,0)$($\beta{=}0.8$),分布 $p(a){=}\exp(g_a/\tau)/\sum\exp(g_{a'}/\tau)$($\tau{=}0.1$)。
技术新颖性
技术新颖性体现在三处可独立迁移的设计。其一,像素桥接 + 噪声幅度对齐 + DINOv2 语义监督的组合,第一次让「潜空间互不兼容的异构教师」也能提供 on-policy 监督;论文还证明了教师重新噪化与学生恢复的两个入口点一旦学生接近收敛就内容一致到一阶,从理论上解释了为什么先暖启动后 OPD。其二,用实测梯度相容性 $\kappa_u^l$ 来设定共享-隔离边界——这是一个方法论层面的贡献:与其按惯例(全共享或全隔离)拍板,不如测量后再决定;这一思想可推广到任何多教师/多任务适配。其三,gap-aware 采样把「按难度采样」换成「按剩余师生残差采样」,并在残差 $\max(s^T_a - s^S_a, 0)$ 处裁零,使已掌握的类别权重自然衰减,无需外排程就能退火到均匀分布。此外精修深度 $r$ 被设计成一个连续旋钮:$r = N_e$ 时退化为 off-policy 模仿教师样本,$r=1$ 时退化为对学生样本的局部修正,中间值连续插值——这也超越了本文场景。消融证明这些设计缺一不可(去掉适配器选择损失 11.0 GenEval 点,去掉暖启动损失 24.1 点)。
实验结果
核心发现是 2.5B 学生在两能力轴上同时提升,且组合能力超过两个更大教师。偏好模式(Table 1,DrawBench):ImageReward 0.922→1.168 超 12B FLUX(0.916);HPSv3 9.341→11.354,恢复约 78% 师生差距;UR 三项 +0.149/+0.068/+0.104;PickScore 持平(0.869 vs 0.866,最接近原始训练信号)。组合模式(Table 2,GenEval):总体 67.30→73.30,超 Z-Image(69.40) 3.90 分、超 FLUX(65.20) 8.10 分;增益集中在结构化类别——双物体 +14.93(82.07→97.00)、属性 +8.25(58.75→67.00,且 67.00 高于两教师 52.80/44.30,证明学生未被教师天花板封顶)、位置 +7.20;DPG-Bench 84.51→85.80 逼近 Z-Image(86.08)。消融(Table 3/4):去掉 CSA(共享适配器)最伤,损 11.0 GenEval 点、1.24 HPSv3,验证共享适配器平均掉冲突 FFN 更新;去掉 gap-aware 主要伤大差距类别(双物体 88.4 vs 97.0、属性 54.8 vs 67.0);去掉暖启动 GenEval 暴跌 24.1。Table 5 显示组合提示需教师在更高噪声 $[15,20]$ 介入,偏好指标对噪声级别不敏感(HPSv3 波动 0.24)。Table 6 显示 DINOv2 最佳,换 ConvNeXt/SigLIP 各掉约 7 分,学生潜变量 MSE 直接崩溃。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| GenEval 总体(组合能力) | Overall Accuracy ↑ | 73.30(Poly-OPD-Composition 2.5B) | SD3.5-Medium 2.5B 67.30;Z-Image 6B 69.40;FLUX.1-dev 12B 65.20 | +6.00 相对原学生,且超过两个更大教师(超 Z-Image 3.90,超 FLUX 8.10) |
| DPG-Bench(组合指令) | Overall ↑ | 85.80 | SD3.5-Medium 84.51 | +1.29,逼近 Z-Image 86.08,关系分 85.20 最佳 |
| DrawBench ImageReward(人类偏好) | ImageReward ↑ | 1.168 | SD3.5-Medium 0.922;FLUX.1-dev 0.916 | +0.246 相对学生,并超过 12B 教师 |
| DrawBench HPSv3 | HPSv3 ↑ | 11.354 | SD3.5-Medium 9.341;FLUX.1-dev 11.925 | +2.013,恢复约 78% 师生差距 |
| DrawBench UnifiedReward-Alignment | UR-Alignment ↑ | 3.206 | SD3.5-Medium 3.057;FLUX.1-dev 3.199 | +0.149,超过 12B FLUX 教师 |
局限与改进
作者承认的局限主要在方法设定边界:师生必须都是流匹配类模型才能做噪声幅度对齐与 Euler rollout,纯 score-based 或离散扩散是否能套用未验证;精修深度 $r$、模式先验 $\pi(pref)=\lambda$、暖启动步数等是手工调的超参,论文未给出自动选择机制;gap-aware 依赖为每个组合类别预存 32 个探针提示和离线教师分数,新类别需重新评测。从论文本身还能观察到几点:其一,两能力目前是「可切换」而非「同时融合」——推理时仍要显式选模式,并未实现一个适配器同时最优;其二,实验只在 SD3.5-Medium(2.5B)单一学生上做,且只有 FLUX+Z-Image 两个教师,方法在 3 个以上异构教师、或在视频/3D 等更高维生成任务上的可扩展性未验证;其三,GenEval 计数项(59.90)几乎没涨甚至略低于 FLUX(70.00),说明并非所有组合子能力都被救起来;其四,公平比较上学生用了 SD3.5-Medium 协议而教师用各自官方采样设置,虽作者称固定了适配器但采样器/引导的差异可能放大了对比。
独立分析的弱点
独立分析的弱点有四。第一,能力「共存」其实是「可切换」而非「融合」:偏好与组合仍由两套 FFN 适配器分管,用户必须知道当前任务切哪个模式,无法在一个适配器内同时最优——改进方向是用路由/LoRA-MoE 让单次推理自动融合。第二,gap-aware 的探针开销与冷启动:每类 32 探针 + 离线教师分 + 每 50 步评测,类别增多或加新教师时评测成本线性膨胀,新类别需先离线跑教师——改进方向是引入学习到的价值头近似 $s^T_a-s^S_a$ 或主动选少量代表性探针。第三,方法对「师生都是流匹配 + 可微 Euler」前提较硬:对 score-based 扩散、一致性模型、token-based 生成器,噪声幅度对齐与缓存恢复可能失效——改进方向是把像素桥接推广到「采样器即黑箱」设定。第四,公平性与规模泛化:仅在 2.5B 单学生、两教师、512×512 上验证,且学生用 SD3.5 协议而教师用各自官方设置——改进方向是在统一采样协议、3+ 教师(如加文字渲染)、更大学生与高分辨率上复现,以确认「超教师」现象非采样器差异所致。
未来方向
作者明确点出的延伸有两条:精修深度 $r$ 作为连续旋钮可推广到任何 off-policy→on-policy 的插值场景;实测共享-隔离边界可推广到任意多教师/多任务适配。基于成果还可延伸:其一,把 capability-selectable 适配器升级为隐式路由的「单适配器多能力」架构(如 LoRA-MoE),让推理时无需显式选模式;其二,把 gap-aware 的「师生残差」思想与在线 RL(如 Flow-GRPO)结合,用真实奖励而非探针近似来驱动预算分配;其三,扩展教师池到 3+ 异构教师(例如再加一个专精文字渲染或长文本理解的模型),检验梯度相容性诊断在更高维能力空间是否仍能给出干净的共享-隔离划分;其四,把像素桥接 + DINOv2 监督迁移到视频扩散与 3D 生成,验证「唯一公共坐标系是像素」这一论断在时序/多视图一致性下是否成立;其五,研究 gap-aware 的温度 $\tau$、动量 $\beta$、探针数 $k$ 的自适应调度,替代当前固定值。整体上,本文把「异构多教师蒸馏」从不可能变为可行,后续工作很可能沿「更多教师 + 更强融合 + 更通用桥接」三条线展开。
复现评估
复现评估中等偏上。论文给出较完整训练配方:学生 SD3.5-Medium 2.5B、教师 FLUX.1-dev(12B)与 Z-Image(6B) 均开源、提示源 Pick-a-Pic 与 Flow-GRPO 的 GenEval 风格划分、暖启动 500 步+OPD 800 步、20 步学生 Euler 采样器、DINOv2 CLS 监督、精修范围 $r\in[15,20]$、gap-aware 参数 $K=50/k=32/\beta=0.8/\tau=0.1$、评估 512×512,完整采样器/引导/调度称在 supplement。所有评测基准(DrawBench、GenEval、DPG-Bench、HPSv3、ImageReward、PickScore、UnifiedReward)均公开,方程 (1)-(8) 与适配器结构清晰可照实现。不利因素:supplement 完整超参未在正文给出;gap-aware 探针池与缓存教师分未公开,新类别需自行离线评测;暖启动 500 步与 OPD 800 步对应算力/显存未披露,2.5B 学生+12B/6B 两教师同时驻留显存成本不低;教师官方采样设置与学生 SD3.5 协议不一致的公平性细节需核对。论文未提代码/权重开源,严格复现需自行实现整条 pixel-bridge 链路,门槛偏高但材料足够。
论文图表
左半展示两类教师的互补短板:FLUX.1-dev 生成的图视觉漂亮但漏掉「左右」「球拍」「黑色三明治」等组合细节,Z-Image 更忠实于计数/位置但美感偏弱;右半是雷达图,对比 FLUX.1-dev、Z-Image、SD3.5-Medium 基座与 Poly-OPD(2.5B),展示蒸馏后的学生在偏好(ImageReward/HPSv3/PickScore)与组合(颜色/双物体/位置)两个轴上同时强于基座学生。
这张图最直观地回答了「为什么需要异构多教师蒸馏」与「蒸馏是否奏效」两个核心问题,是理解论文动机与总成果的最佳入口。
两组定性对比:(a) DrawBench 美学对比,FLUX 画面漂亮但在第三列漏掉狗的数量、第五列漏掉猫与球拍的空间关系,Poly-OPD 既保持美感又补上细节;(b) GenEval 组合对比,Z-Image 遵循组合提示但第二列漏掉烤面包机、第五列粉色物体过饱和,Poly-OPD 兼顾物体存在性、计数、颜色与空间关系。
定性图把表格里的数字增益可视化成肉眼可见的差别,帮助读者直观相信「同时拿下两能力」不是指标游戏而是真实图像质量提升,是 results 部分的有力补充。