Generative Modeling via Drifting
Recently I have made a OpenClaw pipeline of reading paper and posting blogs. This blog, of course, is a test sample of the pipeline. So actually this blog is more like a fun.
Generative Modeling via Drifting:把迭代从推理期搬到训练期,会发生什么?
论文链接:https://arxiv.org/abs/2602.04770
领域:generative modeling / image generation / one-step generation / diffusion-adjacent methods
最近几年,生成模型的发展有一个几乎默认不被质疑的前提:想要高质量生成,就得让模型在推理时一步一步地走。diffusion 是这样,score-based model 是这样,flow / ODE 类方法本质上也是这样。它们的差别更多在于这条 trajectory 怎么定义、怎么离散、怎么求解,而不是要不要 trajectory 本身。
《Generative Modeling via Drifting》最有意思的地方,就在于它正面挑战了这个前提。作者没有继续在“怎么把 50 步压到 10 步、再压到 4 步”这条路上卷 sampler,也不是走一条典型的 teacher-student distillation 路线,而是换了一个问题问法:生成过程中那部分“逐步逼近数据分布”的计算,为什么一定要发生在 inference 阶段?如果把这部分迭代前移到 training,最后能不能直接得到一个 one-step generator?
我觉得这是这篇工作真正值得读的原因。它不是单纯把 FID 又刷低了一点,而是在 generative modeling 里提出了一种很有后劲的 framing:迭代不是某个特定算法的附属物,而是一种可以在 training 与 inference 之间重新分配的计算资源。 这个视角对 image generation 当然重要,但对 diffusion language model、音视频生成、机器人控制这些同样被 inference latency 困住的方向,也都很 relevant。
先把我的总体判断放在前面:这篇论文值得精读,而且不是那种“结果不错,细节未必重要”的 paper。我会把它看成一篇 idea 很亮、实验也很硬的强 paper。它的概念新意很高,工程潜力也很高,实验说服力相当强;相对弱一点的地方在于理论闭环还没有完全封死,一些关键部分仍然带有 heuristic 色彩。如果我是 reviewer,大概会把它归到 strong accept / accept 这一档:不是毫无疑问的完美 paper,但明显是一篇有顶会竞争力、而且很可能会被后续工作反复提到的 paper。
它到底在解决什么问题
高质量生成模型为什么慢,这件事大家其实都很熟悉了。以 diffusion 为代表的方法之所以强,是因为它们把“从简单分布到数据分布”的过程显式地拆成了很多小步:从噪声开始,一点点 denoise,一点点往数据流形上靠。这样做的好处是训练稳定、mode coverage 往往不错、生成质量也高;坏处同样明显——推理要跑很多步,延迟高,交互性差,落到视频、控制、实时系统上尤其痛苦。
过去几年围绕这个问题,社区大致有三条主线。第一条是做更快的 sampler,比如 DDIM、DPM-Solver、高阶 ODE/SDE solver。这条路的价值很大,但本质上还是“少一点步数的多步生成”;从 1000 步变成 50 步、20 步、10 步,已经很好了,可真要 one-step,质量通常还是会明显掉。第二条是蒸馏,把强 teacher 的 trajectory 压缩成 few-step 甚至 one-step student,比如 Progressive Distillation、Consistency Models、DMD 等。这条路线很有代表性,但常见问题是训练复杂、依赖 teacher,而且最后 student 的上限仍然经常受制于 teacher trajectory 的可蒸馏性。第三条是回到 GAN。GAN 天生 one-step,但训练稳定性、mode collapse、复杂数据分布下的鲁棒性问题,社区其实已经非常熟悉了。
Drifting 这篇工作提出的问题,比“怎么更快”更往上一层:我们为什么默认分布演化一定要在推理时发生? 作者给出的答案很直接:不一定。与其在 test time 修正单个 sample 的 trajectory,不如在 train time 持续修正整个生成分布,让 generator 自己学会一上来就落在更对的位置上。最后 inference 只做一次前向传播,NFE=1。
这个 conceptual shift 才是全文主线。你可以把它理解成:传统方法把 attention 放在 sample trajectory 上,而 Drifting 把 attention 放在 training 过程中 generated distribution 的 evolution 上。
核心直觉:不是“多走几步”,而是“提前学会走到那里”
论文从一个很朴素的设定出发。给定噪声 \(z \sim \mathcal{N}(0, I)\),generator \(f_\theta\) 把它映射成样本 \(x = f_\theta(z)\)。这个 generator 诱导出一个生成分布 \(q = f_\theta \# \mathcal{N}(0, I)\),目标当然还是让 \(q\) 尽量逼近真实数据分布 \(p\)。
区别在于,它不再去学习一个 test-time denoising rule,也不显式地求解一条 ODE/SDE,而是想定义一个 drifting field \(V_{p,q}(x)\):对于当前来自生成分布 \(q\) 的样本 \(x\),如果想让整个分布更接近 \(p\),它局部上应该朝哪个方向移动一点。
这个设计的直觉并不难理解。一个生成样本如果靠近真实数据附近、但还不够对,那么来自真实分布的邻近样本应该把它往“更像真的地方”拉;与此同时,来自当前生成分布的样本又在提醒它“别在错误区域里越堆越多”,于是会形成一种排斥。最后,drifting field 表示的就是这种 attraction-repulsion 共同作用下的局部更新方向。
论文里有一个很重要的性质:
\[ V_{p,q}(x) = -V_{q,p}(x) \]
这意味着它天然带着一种平衡态结构。当 \(p\) 和 \(q\) 一致时,正负作用应当抵消,drift 消失,训练不再推动分布继续移动。这个性质听起来很自然,也确实是方法成立的核心直觉之一。
如果你熟悉 contrastive learning、kernel method、energy-based model,或者 MMD / interacting particles 这类思路,会很容易感到一种“亲缘感”。它当然不是直接等同于这些方法,但味道确实相通:都在利用局部相似性结构来定义一个“应该往哪儿走”的几何信号。
方法上真正关键的两步:构造 drifting field,以及在 feature space 里做 drifting
从形式上看,论文里的 drifting field 本质上是一个核加权的正负样本差分结构。直观地写,可以理解成类似
\[ V_{p,q}(x) \propto \mathbb{E}_{y^+ \sim p, y^- \sim q} \left[k(x, y^+)k(x, y^-)(y^+ - y^- )\right] \]
这里最重要的不是常数怎么设,而是这个结构表达出的意思:真实样本 \(y^+\) 提供吸引,生成样本 \(y^-\) 提供排斥,kernel 决定谁和谁算局部邻居。于是一个样本并不是被某张 ground-truth image 监督着去“对齐”,而是在当前分布与真实分布的相互作用里,被告知应该朝哪里挪一步。
接下来训练目标就很自然了。模型先生成 \(x = f_\theta(z)\),再计算它的 drifting 向量 \(V_{p,q}(x)\),得到一个被停止梯度的目标位置
\[ x_{\text{target}} = \operatorname{stopgrad}(x + V_{p,q}(x)) \]
然后让 generator 去拟合这个目标,例如最小化
\[ \|f_\theta(z) - x_{\text{target}}\|^2. \]
这一步非常关键,因为它说明训练监督的对象不是“某张真图”,也不是 teacher 在某个 time step 上的输出,而是“当前生成样本沿着 distribution-correction direction 挪一步之后的位置”。所以整套训练更像是一种 self-bootstrapping 的分布修正过程。stop-gradient 的角色也正是在这里体现出来:它把 drifting target 固定成当前迭代的外部目标,避免梯度直接穿过 drifting field 本身导致训练信号纠缠得过于复杂。
不过,真正让这套想法在 ImageNet 这种复杂视觉分布上站住脚的,并不是上面这些公式本身,而是作者非常清醒地意识到:不能只在 pixel space 里做 drifting。
如果直接在像素空间里用欧氏距离定义局部邻居,问题几乎是立刻出现的。pixel-level 的接近不一定对应 semantic-level 的接近,高维空间里的 kernel 也很容易退化,最后 drift direction 很可能只是在补纹理,而不是在修语义。作者因此把样本先送进一个 pretrained encoder 的 feature space,用 \(\phi(x)\) 而不是原始 \(x\) 来定义相似性与局部几何。这一步我认为是全文最聪明、也最决定成败的设计之一。
原因很简单:一旦你承认 drifting field 本质上是在利用局部几何做分布修正,那么“局部几何在哪里定义”几乎就是全部问题。feature space 选得好,邻近关系就更语义化,drift direction 更可能沿着类别、结构和语义在动,而不是被 pixel noise 带偏;feature space 选不好,这个范式就可能迅速失去支撑。也正因为如此,我会觉得这篇工作对多模态很有启发,但也天然带着对 representation quality 的依赖——将来做 audio、video、joint audio-video drifting,选什么 encoder,绝对不会只是 implementation detail。
条件生成与 one-step inference 为什么能成立
在 ImageNet 这类 class-conditional 设定下,作者把 drifting 做成了条件化版本。直觉上并不难:正样本来自目标类别,负样本来自当前生成分布以及不匹配的类别区域,于是模型学到的就不只是“往真实图像分布靠近”,而是“往指定 class conditional distribution 靠近”。这让它可以自然处理条件生成,也更容易兼容 classifier-free guidance 之类的实践。
而 one-step inference 之所以成立,本质上正是因为训练期已经持续做了分布修正。diffusion / flow 那类方法把“纠偏”放在推理时显式执行,所以采样必须沿 trajectory 走;drifting 把“纠偏”前移到了训练过程本身,于是 generator 被训练成了一个已经内化 correction 结果的映射。推理时采样一个噪声,过一次 generator,图像就直接出来了。换句话说,它不是把多步过程压缩成了一步,而是试图让“一步”从一开始就成为 native output。
为什么我觉得它真正厉害的地方,不只是 one-step
只说 one-step 生成,其实并不新。真正让我觉得这篇工作有分量的,是它没有把 one-step 仅仅当成一个 distillation endpoint,而是把它组织成了一个相对 principled 的 training paradigm。
第一层当然是结果够硬。按照论文报告的结果,ImageNet 256×256 上 1-NFE 的 FID 非常强,公开数字里 latent drifting 大约到 1.54,pixel drifting 大约到 1.61。对于 one-step generation,这已经是相当猛的成绩了。更重要的是,这不是那种“one-step 但大家都知道画质还是差一截”的结果,而是真的进入了“快且强”的区间。
第二层是效率优势不只是表面上的 NFE=1。论文里给出的 FLOPs 对比也相当夸张,比如 drifting pixel 大约 87G FLOPs,而 StyleGAN-XL 在公开对比里大约是 1574G。也就是说,它不是靠更大的计算代价去硬堆 one-step quality,而是在质量和成本两边都打出了很强的 trade-off。这个点尤其重要,因为 one-step 方法很多,但真正能把“便宜”和“高质量”同时做出来的并不多。
第三层,也是我最看重的一层,是这个想法的可迁移性。它并不只是在说“我有一个更强的 ImageNet 256 baseline”,而是在提出一种新的 thinking template:如果生成任务的瓶颈在于 test-time refinement,那么有没有可能把 refinement 的一部分乃至大部分,迁移成 train-time distribution evolution?一旦这样想,video generation、audio generation、diffusion policy,甚至更远一点的 latent language generation,都会自然进入这套视野。
实验该怎么看:亮点在哪里,哪些地方还只是初步验证
这篇工作的主战场非常明确,就是 ImageNet 256×256 的条件图像生成。评估指标仍然是大家最熟悉的 FID,所以结果的可比性没有什么问题。在这个 benchmark 上,如果论文的数字完全站得住,那么它最强的叙事就是:在最苛刻的 1-NFE 设定下,它不是“勉强可用”,而是做到了真正具有竞争力的高质量生成。
论文同时报告了 pixel space 与 latent space 版本,这一点也很值得注意。首先,这说明 drifting 并不被某一种表示空间锁死;其次,两者的性能差异也在暗示一个更深的问题:这个范式本身可能是 general 的,但它对表示空间的几何性质非常敏感。 latent 版本更优,某种意义上并不令人意外,因为更“几何友好”的空间往往更适合做局部平滑的分布修正。反过来说,这也再次说明 feature design 不是边角料,而是方法主体的一部分。
作者还把同样的思想扩展到了机器人控制 / diffusion policy 场景,这一点是加分项,因为它至少表明 drifting 不是纯粹依赖图像纹理统计的小 trick,而更像一种 distribution evolution principle。不过如果实话实说,这部分更多还是 concept validation。真正让这篇 paper 在社区里站住、让人认真看待它的,仍然是 ImageNet 上极强的 1-step generation 结果。
这篇工作真正的贡献,我会怎么概括
如果不按论文里常见的 contribution list 写法,而是从研究价值上压缩,我会把它的贡献概括成四层。
第一层,也是最核心的一层,是它重新定义了 training 与 inference 之间的分工。它告诉你,生成模型里的“迭代”未必要在 test time 显式跑出来,这本身就是一个强概念贡献。
第二层,是它提出了 drifting field 作为 distribution correction signal。这和直接学习 denoiser、score、velocity 都不一样,也不是标准的 adversarial discriminator loss。它更像是在真实分布和当前生成分布之间定义了一种局部几何相互作用,然后用这个 interaction 来驱动 generator 的更新。
第三层,是 feature-space drifting 让这个想法真正从“有意思”变成“可用”。如果没有这一层,方法大概率只会停留在 toy setting;正是因为引入了 pretrained representation,drifting 才有机会在复杂视觉语义上成立。
第四层当然是硬结果:one-step SOTA 级别的质量,以及非常漂亮的效率优势。没有这一层,这仍可能是一篇令人欣赏的 idea paper;有了这一层,它就成了一篇真正会被认真对待的方法论文。
它最让我在意的局限性
说完优点,问题也得讲透。对我来说,这篇工作最明显的短板并不在结果,而在它还没有把理论与方法边界完全封死。
我最在意的,是 equilibrium condition 的严格性。论文的核心直觉是:当 drifting field 消失时,生成分布已经和真实分布对齐。这个说法在直觉上非常顺,但从理论上看还远远不够。究竟在什么条件下 \(V_{p,q}(x)=0\) 可以推出 \(p=q\)?这是逐点意义、分布意义、还是某种 kernelized IPM / RKHS 意义下的结论?如果 kernel 的表达能力不够,或者 feature space 本身已经丢失了某些信息,会不会出现“feature-level 平衡了,但 data-level 其实没完全对齐”的伪平衡?这些问题如果不能更 formal 地说明,方法的理论闭环就还不算真正完成。
第二个非常实际的问题,是它对 pretrained feature encoder 的依赖很重。论文里的成功并不是一个“完全自洽、从零开始、只靠 drifting 就能学到全部语义几何”的故事,而是在很大程度上建立在强 representation 已经存在的前提上。这当然不是原罪,现代很多方法都离不开 pretrained features,但它确实会模糊“范式本身的贡献”和“表征系统替你做了多少工作”之间的边界。更重要的是,一旦离开 ImageNet 这种已有成熟表征生态的领域,问题会立刻变得棘手:audio 用什么 encoder?video 的时间语义怎么编码?joint audio-video feature 怎么定义?这些都不是一搬就通的事。
第三个局限,是 kernel 与局部几何的设计仍然相当 heuristic。为什么这个 kernel 最合适?bandwidth 怎么选?对 batch size 是否敏感?feature norm 会不会显著影响 dynamics?正负样本的构成是否会改写训练行为?如果这些部分的 ablation 不够系统,那么方法虽然有效,但还是会留下一种“有很多经验性 knobs”的感觉。
第四个问题是训练动力学本身还不够透明。凡是这种 moving target + self-bootstrap 的方法,我都会天然多留一个心眼:它会不会早期 collapse?会不会 overshoot?在不同 initialization 下会不会落进不同 basin?drifting field 的估计噪声对稳定性影响有多大?这些问题不一定构成致命缺陷,但如果作者未来想把这条路真正发展成一条清晰的方法线,训练动态的分析会非常重要。
最后,还有一个更宏观的限制:现在的成功主要集中在 ImageNet 256 和一个辅助性的 policy 实验上。这个范围已经足够让人重视,但如果要从“强 benchmark paper”走向“公认的新范式 paper”,它还需要在更多数据域、更高分辨率、更多条件形式、甚至 text-conditioned generation 上继续证明自己。
放在相关工作里看,它站在哪个谱系上
我觉得看这篇论文,不能只按 related work 列表去记名字,更重要的是搞清楚它在 generative modeling 的谱系里到底站在哪里。
和 diffusion / score-based / flow generation 这一脉相比,它们解决的是同一个大问题:如何把简单分布映射到真实数据分布。不同的是,前者把 transformation rule 显式地部署在 inference 里,所以 test time 必须沿 trajectory 走;drifting 则把 distribution evolution 前移到 training,用训练过程本身去吸收这条 trajectory 的作用。从这个意义上说,它不是在 sampler 层面竞争,而是在“迭代该放在哪个阶段”这个更高层上改写游戏规则。
和 one-step / few-step distillation 方法相比,它最大的区别在于它不是一个 compressed multi-step model,而是试图做一个 native one-step model。Consistency Models、Progressive Distillation、DMD 这些方法大都绕不开 teacher。drifting 的野心更大:它想直接定义一种无需借助 teacher trajectory 的 one-step training principle。如果这个目标真的成立,它在 conceptual 上当然比很多蒸馏路线更有独立性。
和 GAN 比较时就更有意思了。GAN 也是 one-step,也同样从 latent/noise 直接映射到 sample,但它依赖的是 generator-discriminator 的 minimax game,而 drifting 依赖的是由真实分布与当前生成分布局部相互作用构成的修正场。换句话说,它不是 adversarial training 的变体,而更像一种 distribution correction / geometric interaction 机制。如果将来 drifting 真能稳定提供比 GAN 更好的质量-效率平衡,它完全有机会成为 one-step generation 的另一条主线。
再往深一点看,它和 kernel-based distribution alignment、particle transport、energy-based attraction-repulsion 这些想法也有隐约亲缘。reviewer 很可能会问:这和 MMD gradient flow 到底是什么关系?是否可以被更统一地解释成某种 feature-kernel metric 下的 transport direction?我觉得这恰恰说明它的理论拓展空间很大。现在这层关系还没有被完全讲透,但也正因此,这篇工作不太像一个走到头的 engineering trick,反而像一个刚刚打开的新接口。
Novelty 怎么看
如果分层判断 novelty,我会给它相当高的评价。
概念 novelty 很高,因为“把 inference 里的迭代前移到 training”这个 framing 本身就不是常规 incremental improvement,而是一个会改变你看问题方式的提法。
技术 novelty 我会给中高。drifting field 与 kernel interaction、feature geometry 显然不是从真空里长出来的,它和很多已有思想都有血缘;但把这些元素组织成一个有效的 one-step generative training framework,本身仍然是明显有原创性的。
实验 novelty 也很高,因为它不是停留在概念层面,而是真的在最硬的 benchmark 上做出了足够惊人的结果。综合起来,我会把它的 novelty 归到 high,而且是那种有机会带出后续工作线的 high,而不是局部小修小补式的“新意”。
如果站在 reviewer 视角,我会怎么写
如果必须用 reviewer 口吻压缩总结,我大概会这么写:这篇工作提出了一种新的 generative modeling 范式,不再在 inference 阶段显式执行多步 trajectory,而是在 training 阶段通过 drifting field 持续修正生成分布,最终训练出一个 one-step generator。核心思想清楚,问题 framing 很强,ImageNet 256×256 上的 1-NFE 结果非常有说服力,也展示了向 policy learning 的初步迁移能力。主要疑问集中在理论闭环、对 pretrained encoder 的依赖,以及若干关键设计是否已经被足够系统地 ablate。
具体说 strengths,我会强调三点:一是 idea 很强,不是普通的工程增量;二是结果真的硬,one-step + ImageNet 256 + 强 FID 这组标签本身就很有分量;三是它不是蒸馏模型的附庸,而是在尝试建立一种 native one-step training principle。
weaknesses 则主要有三类:第一,equilibrium 与 distribution matching 的关系还没有被严格刻画;第二,方法对外部 feature geometry 的依赖相当重,这既是优势也是限制;第三,kernel、bandwidth、样本构成、训练动态这些部分还需要更充分的解释和 ablation。
如果要给总体 recommendation,我会偏向 Strong Accept / Accept。它不一定是那种理论上完全无懈可击的 paper,但很像一篇会在后续研究里被反复提到的 work。至于 venue,如果论文主打 benchmark result 和视觉生成表现,CVPR / ICCV 会很合适;如果后续进一步补强理论、强调生成建模范式上的重新定义,NeurIPS / ICML 也完全说得过去。
对 diffusion language model 和音视频生成有什么启发
这部分其实是我觉得你会最关心的地方。
对 diffusion language model 来说,这篇工作最有价值的不是某个具体公式,而是它抛出的元问题:语言生成里的 iterative refinement,是否也有一部分可以从 inference 前移到 training?当然,语言是离散 token,问题会比图像难很多,不能生搬硬套。但如果讨论的是 latent language model、continuous relaxation、representation-space generation,或者某种 semantic editing trajectory,那 drifting 的视角并不是完全无处落脚。
更具体一点,DLM 里一个长期存在的 tension 就是:refinement 往往能换来更强的全局一致性和更好的 sample quality,但 inference latency 又会迅速变高。Drifting 给出的不是直接答案,而是一种非常值得借用的提问方式:你真正需要在 test time 显式执行的 refinement,到底有多少?哪些部分本质上是 distribution-level 的修正,其实可以在训练期被内化?如果以后有人把这件事做进连续 latent token space,我一点也不会意外。
对音视频生成也是类似。尤其是 feature-space drifting 这件事,几乎可以直接改写成另一句话:选对表征空间,很多原本难学的生成几何会突然变得可学。 这对 video latent、audio representation、cross-modal feature alignment 都非常 relevant。你现在做音视频模型,如果哪天碰到“想做低步数甚至 one-step,但质量总差一口气”的问题,这篇文章提供的未必是现成方案,但很可能是一个很好的 research trigger。
我会怎么建议你读、以及值不值得复现
我的建议是:值得精读,也值得尝试分层复现,但别一上来就冲 ImageNet 大实验。
最先要吃透的,其实不是实现细节,而是那套直觉:为什么 attraction real samples、repulsion generated samples,会推动整个分布对齐?为什么 equilibrium 值得相信?为什么 feature space 的选择会比 pixel space 关键得多?这些想清楚之后,再去看训练目标、stop-gradient、kernel 设计,就会顺很多。
如果要复现,我会强烈建议先做 toy version。比如 2D toy distribution、CIFAR-10、小型 latent generator,先看 drifting 是否稳定、kernel / feature design 是否敏感、会不会 collapse 或 overshoot。因为这类方法最怕的是只在大 benchmark 上看到最终数字,却没有真正理解它的训练动力学。一旦 toy 版跑通,再往更复杂的视觉任务,乃至你自己的方向——latent video generation、audio representation drifting、continuous latent language generation——去想迁移,才比较有把握。
如果只让我挑一个最值得借鉴的点,我会选这个:不要把“迭代”默认锁死在 inference。 把它看成一种可以在 training 与 inference 之间重新分配的资源,这个思路本身就很值钱。它不保证你下一个想法一定能成,但会显著改变你看 generative efficiency 问题的方式。
最后的判断
我对这篇论文的总体评价很明确:它是一篇高质量、强新意、强结果,而且对后续研究方向很有启发性的工作。它最打动人的地方,不是单纯做到了 one-step,而是提供了一个很强的主张:生成里的迭代未必非得出现在推理时,训练过程本身也可以承载分布演化。
这件事如果只是个漂亮想法,那它会是一篇“有意思”的论文;现在的问题在于,它还真把 ImageNet 256 的 1-NFE 结果做得非常强,于是它就不只是有意思,而是值得认真对待。
如果只回答一句“该不该花时间”,我的答案还是:该,而且不只是读结论,值得认真拆它的方法、framing 和它背后的研究口味。