线上文生图服务原本固定 CFG=7.5。运营要求'更听 prompt 的话',你把 CFG 提到 15,结果 CLIP-score 提升约 8%,但人工差评里'画面崩坏 / 过饱和'的比例从 3% 涨到 12%。请给出你的诊断和处理方案(可以涉及 guidance rescale、dynamic thresholding、负向 prompt、scheduler 与参数化选择),说明你会用什么方式量化'遵循度 vs 画质'的取舍;同时说明 CFG 从 7.5 提到 15 对单张推理成本的影响。
面试官在考什么
判断候选人是否真正理解 classifier-free guidance 是对 cond/uncond 预测的线性外推及其导致过饱和的机制,以及能否用工程手段替代'把 scale 调大'这种粗暴做法。
回答框架 · 前两步
- CFG 本质是对 cond 与 uncond 预测的线性外推,s>1 会把 x0 估计推到训练分布之外,表现为过饱和与结构崩坏;这是机制问题,不是'参数没调好'。
- CFG 的 scale 不改变每步的前向次数,cond 与 uncond 两个分支照跑,所以 7.5 提到 15 的计算成本基本相同;真正影响成本的是采样步数与是否用少步 solver 或蒸馏。
还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「CV 与多模态」方向页
同一能力域的其他题
- 你负责训练一个 128×128 动漫头像 GAN(DCGAN 类结构,生成器用 ConvTranspose2d(k=4,s=2,p=1) 逐级上采样)。训练到约 2 万步时,D 的 loss 掉到 0.01 左右,G 的 loss 从 3 涨到 8,采样出的图开始出现明显的棋盘格纹理,且不同 z 采样出的头像越来越像。请说明:① 你判断这里同时存在哪几类失效,各自依据是什么;② 给出你的排查顺序,每一步具体做什么操作、预期看到什么现象;③ 棋盘格和多样性下降是不是同一个原因,怎么分别验证。
- 你接手一个 GAN 训练任务:判别器 loss 长期低于 0.02,生成器 loss 从 2.1 一路涨到 8.4。用当前 checkpoint 采 4096 张图,distinct-1 从 0.72 掉到 0.31,肉眼能看到约 60% 的样本是少数几个模式的近重复。配置是 batch=64、D:G 更新比 1:1、损失用 WGAN-GP 的梯度惩罚。请给出你的诊断顺序和前三步具体动作,并说明为什么'先降低生成器学习率'不是正确的第一步。
- 你们已有一条基于 GAN 的 256×256 商品图生成流水线,线上跑了一年:清晰度尚可,但生成多样性差、审核通过率低。现在业务要求支持 1024×1024,并让生成多样性明显改善。你手上只有 8 张 A100、4 周时间、2 名工程师。请给出你的技术决策:先动分辨率还是先动多样性?你会优先改生成器、判别器、损失函数还是数据管线?为什么?并说明你如何验证改动有效,以及灰度上线的验收标准。
- 标准 GAN 中生成器用 saturating loss:L_G = E_{z~p_z}[log(1 − D(G(z)))]。训练中你观察到判别器很快就能把真假样本分得很准(D(G(z)) 接近 0),同时 G 的 loss 居高不下、生成的样本几乎没有变化。请说明此时 G 的梯度为什么会接近 0(写出梯度里与 D(G(z)) 相关的因子),并给出两种具体改法。
- 你在 512×512 数据上训 DDPM,采用线性 beta 调度、T=1000,推理用 250 步采样。整体图看着还行,但毛发、文字这类高频区域发糊。同事说“把 T 加到 2000 就好了”。请回答:① DDPM 前向加噪的闭式表达是什么,ᾱ_t 与信噪比是什么关系;② 为什么单纯增大 T 不一定改善细节;③ 你会改哪两个超参或设计来提升细节,说明预期效果与代价。
- 你的线上服务是 512×512 文生图,当前 DDIM 50 步,单张 A100 约 1.8s。产品要求把延迟压到 300ms 以内(大约 8 步),并接受 FID 相对 50 步基线退化不超过 10%,同时要求不重新训练基座模型,只给你 8 张 A100 40GB、3 天的后处理预算。请给出你的方案选择和取舍:走更高阶的 solver(DPM-Solver++/UniPC 这类)还是蒸馏成少步学生模型,或者两者结合?并说明你用什么验收指标来判定'退化不超过 10%'。