什么是无分类器引导(Classifier-Free Guidance)?
无分类器引导(Classifier-Free Guidance,CFG)是一种在条件扩散模型与流匹配模型中权衡样本质量与多样性的引导方法。它由 Ho 与 Salimans 在论文《Classifier-Free Diffusion Guidance》中提出,核心做法是联合训练条件与无条件两个扩散模型,再组合两者的分数估计,从而无需额外训练图像分类器即可实现引导。
无分类器引导(Classifier-Free Guidance,简称 CFG)是一种用于条件生成模型的引导技术:它通过联合训练一个条件模型和一个无条件模型,并在采样时把两者的分数估计(score estimate)按一定权重组合起来,从而在样本质量与样本多样性之间取得可调的折中。它解决的问题是:此前的分类器引导(classifier guidance)虽然能提升条件生成的保真度,却必须额外训练一个与扩散模型分离的图像分类器,流程更重、依赖更多。
为什么重要
在无分类器引导出现之前,条件扩散模型要提升生成质量,主流做法是分类器引导。按照 Ho 与 Salimans 在论文中的描述,分类器引导把扩散模型的分数估计与一个图像分类器的梯度结合起来,本质上是在训练完成之后对模型做后处理式的调节,其作用类似于其他类型生成模型中的低温度采样或截断(truncation):压低多样性以换取更高的样本保真度。
这种做法带来两个直接负担。第一,它需要一个单独训练的、与扩散模型分离的图像分类器,这意味着额外的训练成本与工程复杂度。第二,它引出了一个自然的问题:引导是否可以在没有分类器的情况下完成?论文正是围绕这个问题展开,并给出了肯定回答——引导可以由一个纯粹的生成模型自身完成,不需要这样一个分类器。这一转变的意义在于,引导从「依赖外部判别模型」变成了「模型内部即可实现」的能力,条件与无条件两种模式共享同一套参数,减少了对外部组件的依赖。
工作机制
论文给出的核心做法可以拆成训练与采样两个阶段来理解。
训练阶段:联合训练条件与无条件模型
关键点在于「联合」二字。模型并不是分别训练两个独立的网络,而是在同一个生成模型上同时承担两种角色:
- 条件模式:接收条件信息(例如文本提示、类别标签等),学习条件分数估计。
- 无条件模式:不接收条件信息,学习无条件分数估计。
论文的表述是「联合训练一个条件扩散模型和一个无条件扩散模型」。在实现层面,这通常意味着在训练时以一定概率丢弃条件信息,使同一组参数既能估计条件分数,也能估计无条件分数。
采样阶段:组合两种分数估计
采样时,把条件分数估计与无条件分数估计按权重组合,得到引导后的分数估计。论文指出,通过这种组合,可以获得与分类器引导相似的、在样本质量与多样性之间的折中效果。引导强度成为一个可调的超参数:强度越高,样本越贴近条件、保真度越高,但多样性相应下降;强度越低,则更接近无条件生成的行为。
这一机制与分类器引导的差别在于梯度来源:分类器引导的额外信号来自一个外部图像分类器的梯度,而无分类器引导的额外信号来自模型自身的条件与无条件估计之差,因此不需要任何额外的分类器。
典型例子
无分类器引导在扩散模型与流匹配(flow matching)模型中被广泛采用。论文《CFG-Zero*: Improved Classifier-Free Guidance for Flow Matching Models》在摘要中把 CFG 描述为「扩散/流模型中广泛采用的技术,用于提升图像保真度与可控性」,并围绕它做了进一步分析。
该论文的分析路径值得单独说明,因为它揭示了 CFG 的一个具体行为特征。作者在一个可解析求解真实流的设定下——即在高斯混合(Gaussian mixtures)上训练的流匹配模型——分析 CFG 的影响,并观察到:在训练早期、流估计尚不准确时,CFG 会把样本导向错误的轨迹。基于这一观察,论文提出 CFG-Zero*,包含两项改进:
- 优化尺度(optimized scale):优化一个标量,用以校正估计速度(velocity)中的不准确之处,论文称这也是名称中星号的来源。
- 零初始化(zero-init):把 ODE 求解器的前若干步置零。
论文称,在文本到图像(text-to-image)与文本到视频(text-to-video)生成任务上的实验显示,CFG-Zero* 持续优于 CFG。论文摘要中列出的文本到图像实验对象包括 Lumina-Next、Stable Diffusion 3 与 Flux,文本到视频实验对象为 Wan-2.1。需要说明的是,这些结论出自该论文自身的实验与表述,属于该工作的主张。
边界与常见误解
第一,无分类器引导并不等于「不需要条件」。它仍然是一种条件生成方法,只是把条件与无条件两种估计放在同一个模型里联合训练,而不是引入一个独立的分类器。把它理解成「无条件生成」是常见的误读。
第二,引导强度并非越高越好。论文把 CFG 描述为在样本质量与多样性之间做折中,这与低温度采样或截断的取舍逻辑类似:提升保真度往往以牺牲多样性为代价。因此引导强度是一个需要权衡的超参数,而不是单调增益的开关。
第三,CFG 的行为与模型所处的训练阶段有关。CFG-Zero* 的论文指出,在训练早期流估计不准确时,CFG 会把样本导向错误轨迹。这说明 CFG 的有效性依赖于底层估计的质量,在估计不可靠的情形下,引导可能产生负面作用。该论文提出的优化尺度与零初始化,正是针对这一问题的修正手段,其效果由该论文的实验支持。
第四,CFG 最初是在扩散模型的语境下提出的,而后续工作把它扩展到了流匹配模型。两者在采样过程(例如 ODE 求解器)上的差异,会影响引导的具体实现方式,例如零初始化这类针对求解器前几步的操作,就是流匹配语境下的处理。