《生成扩散模型漫谈(三十):从瞬时速度到平均速度》 —— 苏剑林
一步生成真正需要平均速度
对 ODE dxt/dt=v(xt,t),从较晚时间 t 走到较早时间 r<t 的精确更新为
xr=xt−(t−r)u(xt,r,t),(1)
其中沿真实轨迹的平均速度定义为
u(xt,r,t)=t−r1∫rtv(xτ,τ)dτ.(2)
普通 Flow Matching 学的是 v,一步欧拉法却拿瞬时量代替整段平均量;MeanFlow 直接建模 uθ(xt,r,t),所以 r=0,t=1 时一次调用即可生成。边界上有
u(xt,t,t)=v(xt,t),(3)
这是平均速度退化到瞬时速度的极限,不需要另外定义两套网络。
对积分恒等式求导
由公式 (2),
(t−r)u(xt,r,t)=∫rtv(xτ,τ)dτ.
对上端点 t 求全导数。左边既显式依赖 t,也通过 xt 依赖 t:
dtd[(t−r)u]=u+(t−r)[Jxudtdxt+∂tu].
右边由微积分基本定理得到 v(xt,t)。再用 dxt/dt=v(xt,t)=u(xt,t,t),得到核心恒等式
v(xt,t)=u(xt,r,t)+(t−r)[Jxu(xt,r,t)u(xt,t,t)+∂tu(xt,r,t)].(4)
括号是 u 沿 ODE 轨迹和时间上端点的方向导数,可用 JVP 计算,不必显式构造高维 Jacobian。
用 ReFlow 提供瞬时速度监督
在线性插值
xt=(1−t)x0+tx1
下,条件瞬时速度目标是 x1−x0。把它代入公式 (4),可直接训练平均速度:
LMF=Er,t,x0,x1∥uθ(xt,r,t)+(t−r)[Jxuθuθ(xt,t,t)+∂tuθ]−(x1−x0)∥2.(5)
它是单个显式最小化目标,不需要教师、对抗训练或 EMA。在函数容量充足并达到全局最优时,ReFlow 的边缘速度保证与公式 (4) 一起约束出正确的平均速度。
实现时常把恒等式右侧构造为 stop-gradient target,以避免二阶导数并节省显存。这会让实际优化动力学与纯公式 (5) 有差别;理论上“无 stop-gradient”的目标与工程实现不能混为一谈。
一步与多步使用同一模型
一步生成直接取
x0=x1−uθ(x1,0,1),x1∼N(0,I).
若一步质量不足,可选网格 1=tN>⋯>t0=0,逐段使用
xtn=xtn+1−(tn+1−tn)uθ(xtn+1,tn,tn+1).
每段预测的本来就是该区间平均速度,所以这不是缩小步长来修补普通欧拉截断误差,而是换用更短、通常更容易拟合的区间条件。
与 AMED、Shortcut 和一致性模型的关系
AMED 试图找一个中间点瞬时速度来近似平均速度,仍属于定制 Solver,并需要少量蒸馏。Shortcut 将步长作为条件,用“两小步等于一大步”直接正则平均速度的组合性质。MeanFlow 则从定义求导得到公式 (4),把平均速度连接回可监督的瞬时 Flow。
一致性模型学习的是同一路径上不变的端点映射;MeanFlow 学的是任意区间位移除以区间长度。两者都能一步生成,但预测对象、边界条件和训练恒等式不同。