Classifier-Free Guidance/zh
| Article | |
|---|---|
| Topic area | Generative Models |
| Prerequisites | Diffusion Models, Score Matching |
概述
无分类器引导(CFG)是一种推理时技术,它使得单个条件 扩散模型 能够在不训练单独分类器的前提下,以样本多样性换取对条件信号的保真度。该方法由 Ho 和 Salimans 于 2021 年提出,作为分类器引导的更简洁替代方案。后者此前被用于将文本到图像和类别条件 扩散模型 的样本推向更高质量。其要点是训练一个网络,使其在训练时通过随机丢弃条件输入而同时充当条件模型和无条件模型,然后在 采样 阶段沿着从无条件预测指向条件预测的方向进行外推。
CFG 已成为几乎所有现代条件扩散模型的默认采样策略,包括 Imagen、Stable Diffusion 和 DALL-E 2 等文本到图像系统,以及文本到视频和文本到音频的各种变体。同样的思想已被推广到自回归 生成模型 和流匹配生成模型。一个 标量 引导尺度控制采样器跟随条件信号的强度,使从业者可以用单一旋钮在推理时调节条件性与多样性之间的取舍。
背景:分类器引导
Dhariwal 和 Nichol 的早期工作使用了一个在含噪图像上训练的分类器 $ p_\phi(y \mid x_t) $,用于将无条件 扩散模型 引导至目标类别。在每个反向扩散步骤,含噪数据分布的得分都会被加上分类器对数 似然 的梯度:
$ {\displaystyle \nabla_{x_t} \log p(x_t \mid y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} \log p_\phi(y \mid x_t).} $
将分类器梯度乘以尺度 $ w $ 会锐化条件分布,从而以多样性换取样本质量。其缺点很实际:分类器必须在所有噪声水平的含噪输入上训练,难以扩展到诸如文本之类的自由形式条件,并且分类器本身也是一个需要维护的额外模型。
形式化
CFG 通过将扩散网络重新用作隐式分类器,从而消除了对外部分类器的需求。将 贝叶斯法则 应用于条件得分得到
$ {\displaystyle \nabla_{x_t} \log p(x_t \mid y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} \log p(y \mid x_t),} $
因此隐式分类器梯度就是条件得分与无条件得分之差。引导加权得分通过沿该差值方向以权重 $ w \ge 0 $ 进行外推来定义:
$ {\displaystyle \tilde{\epsilon}_\theta(x_t, y) = (1 + w)\,\epsilon_\theta(x_t, y) - w\,\epsilon_\theta(x_t, \varnothing),} $
其中 $ \epsilon_\theta $ 是噪声预测网络,$ \varnothing $ 是表示"无条件"的可学习空标记,$ w $ 是引导尺度。取 $ w = 0 $ 恢复 条件模型;$ w \to \infty $ 将样本推向条件最强烈偏好的模态。某些文献使用尺度 $ s = 1 + w $ 作用于条件分支并对无条件分支减去 $ s - 1 $ 来参数化同一操作;两种约定是等价的。
改写为 得分 更新形式,同一表达式为
$ {\displaystyle \tilde{s}_\theta(x_t, y) = s_\theta(x_t, y) + w \big( s_\theta(x_t, y) - s_\theta(x_t, \varnothing) \big),} $
这清楚地体现了几何含义:从无条件得分出发朝向条件得分迈出一步,然后继续越过它。因此 CFG 在得分空间中是一种外推,而非插值。
训练
训练一个网络同时处理条件输入和无条件输入。以概率 $ p_\text{drop} $ 将条件 $ y $ 替换为空标记 $ \varnothing $;否则使用真实条件。标准的 去噪目标 变为
$ {\displaystyle \mathcal{L}_\text{CFG} = \mathbb{E}_{x_0, y, \epsilon, t}\big[\,\lVert \epsilon - \epsilon_\theta(x_t, c)\rVert^2\,\big], \quad c = \begin{cases} \varnothing & \text{with probability } p_\text{drop} \\ y & \text{otherwise.} \end{cases}} $
典型的丢弃概率为 10% 到 20%。同一组参数因此学会在所有噪声水平上同时进行有条件和无条件去噪,而无条件路径充当隐式分类器的角色。
推理
在每个反向扩散步骤,采样器执行两次前向传递:一次带条件,一次使用空标记。两个预测按照上述 CFG 公式组合,结果输入到所选的 DDPM 或 DDIM 更新规则中。计算量翻倍是主要的运行成本;实践中两次前向传递通常一起批处理,因此墙钟时间的开销更接近一个常数因子,而不是两倍。
引导尺度是 采样 阶段最主要的 超参数。文本到图像模型常用的默认值约为 $ w = 7.5 $;类别条件 ImageNet 模型通常使用更小的值,约 $ w = 1 $ 至 $ 3 $。较大的尺度提升衡量样本与提示对齐的指标(如 CLIP 得分,奖励对齐),但会劣化 FID,并明显使输出过饱和或简化。最优尺度取决于数据集和模型,通常通过扫描一个小网格来选择。
权衡与病态现象
CFG 在提示保真度与样本多样性之间提供了单旋钮的取舍,但较大的引导尺度会引入系统性伪影。像素空间的 扩散模型 在大 $ w $ 时倾向于颜色过饱和并产生对比度过高的图像;这一现象有时通过动态阈值来缓解,即在 采样 期间对像素统计值进行 裁剪 并重新缩放,使其保持在范围内,如 Imagen 所采用的做法。Stable Diffusion 等潜空间模型也表现出类似倾向,形式上为卡通化纹理和模式坍缩到少数几种规范化构图上。
经验上,CFG 还会放大训练数据中已有的偏差。由于该技术将样本推向模型认为最强烈依赖于提示的模态,刻板的关联被强化。这是模型与数据的属性,而非引导本身的缺陷,但它与引导尺度的相互作用使得审计结果对 $ w $ 的选择十分敏感。
另一个独立的问题是,CFG 并不对应于任何严格意义上的概率分布:受引导的得分通常不是任何可归一化 密度 的得分。因此,CFG 下的采样最好被理解为一种移动 概率质量 的启发式方法,而不是在某个良好定义的 后验分布 下进行精确推理。
变体与扩展
若干改进方案在保留 CFG 优点的同时降低其成本。CFG++ 重新表述引导更新,使大尺度下能更好地保留无条件分布的结构,从而缓解过饱和。Autoguidance 用同一模型的较小版本或较早期检查点作为无条件分支,取代可学习的空标记,从而将引导强度与条件路径和无条件路径之间的质量差距解耦。动态 CFG 在不同噪声水平上调度引导尺度,通常在 采样 早期使用较少引导,在低噪声阶段使用更多引导。负提示将空标记替换为用户指定的负提示 $ y^- $,使采样器远离 $ p(x_t \mid y^-) $ 而趋向 $ p(x_t \mid y) $;这在文本到图像的界面中被广泛使用。
CFG 已被移植到流匹配、整流流 和 一致性模型,以及自回归序列模型——在后者中,对应的做法是在条件传递和无条件传递之间对 logits 进行插值。相关思想还出现在 RLHF 和 奖励倾斜采样中,它们可以被视为隐式分类器的可学习替代方案。
与分类器引导的比较
CFG 与分类器引导产生定性上类似的效果,但在几乎所有现代场景中都更倾向于使用 CFG。它无需训练对噪声敏感的分类器;它能处理任意条件(包括自由形式的文本)而无需修改架构;并且它享有与底层 扩散模型 相同的扩展规律。当确实需要外部 奖励模型 时——例如将生成 偏向 训练条件中未涉及的某种属性——分类器引导仍然保有一席之地。
局限性
推理成本翻倍是最常被提及的局限;关于引导 蒸馏 的持续研究试图将 CFG 的效果折叠到单次前向传递中。由于缺乏严格的概率解释,将 CFG 与需要良定义 似然 的技术(例如某些 后验 采样 方法)相结合并不自然。此外,过饱和、模式收窄和 偏差放大效应意味着 CFG 并非免费的午餐:它在改善名义指标的同时产生的分布在性质上而不仅仅是程度上与无引导模型不同。