跳转至

第 4 章练习与答案

目标:用纸笔检查理解,不写代码。
建议:先做,再看答案;错题标记,回到对应讲义。

题量:概念 8 + 推导 5 + 计算 5 + 面试复述 5。


一、概念题(8 题)

  1. CLIP 为什么不是生成模型?
  2. CLIP 的对称 InfoNCE 两个方向分别是什么?
  3. 为什么 CLIP 需要大 batch?
  4. CLIP 的 77 token 限制会带来什么问题?
  5. ControlNet 的零卷积为什么重要?
  6. IP-Adapter 为什么要解耦 cross-attention?
  7. LoRA 和 DreamBooth 是什么关系?
  8. Textual Inversion 为什么文件很小?

二、推导题(5 题)

  1. 写出 CLIP 的对称 InfoNCE。
  2. 写出 LoRA 的权重更新公式,并解释 \(A,B,\alpha,r\)。
  3. 写出 DreamBooth 的 prior preservation 损失。
  4. 写出 IP-Adapter 的解耦 cross-attention 输出。
  5. 写出 ControlNet 的简化数据流(locked/trainable/zero conv)。

三、计算题(5 题)

  1. 设 \(d=k=768\),LoRA rank \(r=8\),求 LoRA 参数量;原矩阵参数量是多少?占比多少?
  2. 若 \(r=16\),重算 LoRA 参数量与占比。
  3. CLIP 图像特征 \(u=(1,0)\),文本特征 \(v=(0.6,0.8)\),求 cosine 相似度。
  4. 若 IP-Adapter 文本 attention 输出为 1.0,图像 attention 输出为 0.8,\(\lambda=0.5\),求总输出。
  5. 若 CLIP 最多 77 token,prompt 有 100 token,有多少 token 会被截断?

四、面试复述题(5 题)

  1. 用 90 秒回答 A1。
  2. 用 90 秒回答 A13。
  3. 用 90 秒回答 A14。
  4. 用 90 秒回答 A12。
  5. 用 90 秒回答 A15。

答案与解析

一、概念题答案

1. CLIP 为什么不是生成模型

它学习图文匹配/共享嵌入空间,不建模 \(p(x)\),也不生成图像。

2. 对称 InfoNCE 两个方向

  • image-to-text:图像找对应文本;
  • text-to-image:文本找对应图像。

3. 为什么大 batch

每个 batch 内其他样本是负样本;batch 越大,负样本越多,对比信号越强。

4. 77 token 限制

长 prompt 被截断,复杂描述/多对象/长文本会丢信息;SD3 加 T5 缓解。

5. 零卷积为什么重要

初始输出为 0,训练开始时不影响原模型,稳定训练,之后逐渐注入条件。

6. IP-Adapter 为什么解耦

文本/图像条件分布不同,共享 K/V 会互相干扰;解耦后可独立调强度。

7. LoRA 和 DreamBooth 的关系

DreamBooth 是少样本主体定制的训练配方;LoRA 是参数高效方法;可以组合成 DreamBooth LoRA。

8. TI 为什么文件小

只存一个新 token 的 embedding,不存模型权重。


二、推导题答案

9. CLIP 对称 InfoNCE

\[ s_{ij}=\frac{u_i^\top v_j}{\tau}, \]
\[ \mathcal L =-\frac{1}{2N}\sum_{i=1}^{N} \left[ \log\frac{e^{s_{ii}}}{\sum_j e^{s_{ij}}} + \log\frac{e^{s_{ii}}}{\sum_j e^{s_{ji}}} \right]. \]

10. LoRA

\[ W'=W+\frac{\alpha}{r}BA. \]
  • \(A\in\mathbb R^{r\times k}\):降维/投影;
  • \(B\in\mathbb R^{d\times r}\):升维;
  • \(r\):秩,控制容量;
  • \(\alpha\):缩放,控制增量强度。

11. DreamBooth prior loss

\[ \mathcal L =\mathbb E\left[ \|\epsilon-\epsilon_\theta(x_t,c)\|^2 +\lambda\|\epsilon'-\epsilon_\theta(x_t',c_{\mathrm{prior}})\|^2 \right]. \]

12. IP-Adapter 解耦 cross-attn

\[ h' =\mathrm{Attn}(Q,K_t,V_t) +\lambda\,\mathrm{Attn}(Q,K_i,V_i). \]

13. ControlNet 数据流

\[ h_{\mathrm{base}} =\mathrm{LockedEncoder}(z_t), \]
\[ h_{\mathrm{cond}} =\mathrm{TrainableEncoder} \left(z_t+\mathrm{CondEncoder}(c)\right), \]
\[ h_{\mathrm{out}} =h_{\mathrm{base}} +\mathrm{ZeroConv}(h_{\mathrm{cond}}). \]

三、计算题答案

14. LoRA 参数量(r=8)

LoRA 参数:

\[ r(d+k)=8(768+768)=8\times1536=12{,}288. \]

原矩阵:

\[ 768\times768=589{,}824. \]

占比:

\[ 12{,}288/589{,}824\approx2.08\%. \]

15. LoRA 参数量(r=16)

\[ 16\times1536=24{,}576. \]

占比:

\[ 24{,}576/589{,}824\approx4.17\%. \]

16. Cosine 相似度

\[ \frac{u\cdot v}{\|u\|\|v\|} =\frac{1\times0.6+0\times0.8}{1\times1} =0.6. \]

17. IP-Adapter 输出

\[ 1.0+0.5\times0.8=1.4. \]

18. 截断 token 数

\[ 100-77=23. \]

四、面试复述题自评

19. A1

  • 是否说双塔?
  • 是否写对称 loss?
  • 是否解释大 batch/温度/零样本?

20. A13

  • 是否说 frozen base + trainable copy?
  • 是否解释 zero conv?
  • 是否说只训分支?

21. A14

  • 是否说 image prompt?
  • 是否写解耦 cross-attn?
  • 是否区分 ControlNet?

22. A12

  • 是否说清四种方法训练对象?
  • 是否解释 DreamBooth prior?
  • 是否能选型?

23. A15

  • 是否列 5 个局限?
  • 是否解释 SD3 加 T5?
  • 是否避免把 CLIPScore 当唯一指标?

五、错题归因

错题 可能原因 回到
9、16 CLIP 损失/相似度 4.1
10、14、15 LoRA 公式/参数 4.4
11、22 DreamBooth 4.4
12、17 IP-Adapter 4.3
13、20 ControlNet 4.2

六、下一步

  • 公式错:重写 CLIP/LoRA/IP-Adapter;
  • 结构错:重画 ControlNet/IP-Adapter;
  • 选型弱:做“需求—方法—代价”表;
  • 表达卡:用 05 的 90 秒答案录音。