MLE / Research · ML Domain / ML System Design

Classifier-Free Guidance:从条件概率到两路预测混合

明确scale参数化,解释条件强度与多样性的取舍。

题目重点:明确scale参数化,解释条件强度与多样性的取舍。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • x_t为同一噪声时刻状态;s_c=∇logp(x_t|c)、s_u=∇logp(x_t)。
  • 训练时随机drop条件以学习条件/无条件预测;guidance scale约定g,g1为条件预测、g0无条件。

解题路线

  1. Bayes给∇logp(c|x_t)=s_c−s_u,常数p(c)无x梯度。受引导score可写s_g=s_u+g(s_c−s_u)。
  2. 若模型输出epsilon,采用一致参数化ε_g=ε_u+g(ε_c−ε_u),不要混合不同t、不同noise或不同输出类型。论文常写(1+w)ε_c−wε_u,对应g=1+w。
  3. 每步需条件与无条件预测,可拼batch但计算/显存不是免费。增加g通常加强条件约束,需评估质量/多样性与失真,不能保证越大越好;近似score也不保证精确采样某个简单幂密度。

手动走一遍

ε_u=(1,2),ε_c=(3,1),g2得(5,0);g1为(3,1),g0为(1,2)。若条件本来缺失,条件/无条件相同则任意g都不改变结果,这是实现不变量。

规模与取舍

K采样步通常约2K次网络评估或K次双batch调用;吞吐、显存和延迟取决于batch与模型,不能只看调用次数。

易错点与追问

容易失分的边界

  • CFG不是另训练一个分类器;classifier guidance才直接用分类器梯度。
  • 不同库scale同名可能对应不同参数化,先写等式再谈取值。

继续深挖

  • 训练drop概率太高或太低对两路估计可能有什么影响?
  • 怎样评估高guidance造成覆盖降低、过饱和或细节伪影?

技术参考

✓已复制微信号!