你手上有 500 张某客户品牌风格图,只有单卡 24GB 的 4090,要求 1 天内完成微调;上线后要同时服务 10 个客户的风格,每个客户可以随时切换。你会选 full finetune、LoRA、DreamBooth(含 prior preservation)还是 textual inversion?请给出选择和关键的显存、时间量级估算,并说明你怎么防止把基座模型的通用能力训坏。
面试官在考什么
判断候选人能否把微调方法映射到显存、训练时间、可组合性、灾难性遗忘这几个真实工程约束上,而不是停在概念层面的方法对比。
回答框架 · 前两步
- 在 500 张 / 1 天 / 24GB 的约束下,LoRA(只训 attention 的 q/k/v/o 加少量投影)最匹配:显存可压到十几 GB,几小时量级能跑完,产物是小体积 adapter,天然支持按客户加载与卸载。
- full finetune 在 24GB 上要用 gradient checkpointing 加 8bit optimizer 才能真正跑起来,且 500 张极易灾难性遗忘;DreamBooth 更针对主体或概念而非风格,prior preservation 还要再吃一份训练成本;textual inversion 只学 embedding,风格表达力有限但成本最低。
还有 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%'。