跳转至

第 3 章面试题库:90 秒答案与追问

用途:把第 3 章知识压缩成面试语言。
方法:先自己答,再看参考;每题至少练 3 遍,第 3 遍录音。

标记:S = 必须熟练;A = 高频;B = 加分。


1. 本章 7 道核心题

题号 题目 重要度 主材料
A2 AE/VAE/VQ-VAE 的区别 S 3.1
A3 重参数技巧 A 3.1
A5 SD 的核心优化 S 3.2
A6 SD 怎么训练 S 3.4
A8 SD 中的交叉注意力 S 3.3
A16 self/cross attention 的区别 S 3.3
D7 Offset Noise A 3.4

2. A2:AE/VAE/VQ-VAE 的区别(S)

90 秒版

“AE 是确定性自编码器,只学重建,隐空间没有先验,不能直接采样。VAE 把隐变量建模成高斯,用 ELBO 训练,重参数化让采样可导,隐空间连续平滑,但重建容易模糊、可能 posterior collapse。VQ-VAE 把连续特征量化到 codebook,得到离散 token,损失是重建 + codebook + commitment,用 straight-through 传梯度;它需要额外先验来生成。Stable Diffusion 用的是连续 VAE,不是 VQ-VAE,因为扩散更适合连续 latent。”

追问 1:VAE 为什么模糊?

像素级重建 + KL 压缩;后验被约束到先验,细节容易丢。

追问 2:VQ-VAE 为什么需要先验?

它只是 tokenizer;生成要在离散 token 上训练 PixelCNN/Transformer 等先验。

追问 3:SD 为什么不用 VQ-VAE?

扩散在连续空间更自然;量化会丢细节;连续 latent 更适合高斯去噪。

易错点

  • 说 AE 能直接采样;
  • 说 VQ-VAE 仍用高斯 KL;
  • 说 SD 的 VAE 是 VQ-VAE。

3. A3:重参数技巧(A)

90 秒版

“把随机采样写成确定性变换加外部噪声。\(z\sim\mathcal N(\mu,\sigma^2)\) 写成 \(z=\mu+\sigma\odot\epsilon\),\(\epsilon\sim\mathcal N(0,I)\),随机性只来自 \(\epsilon\),梯度可以对 \(\mu,\sigma\) 反传。VAE 用它训练编码器;Diffusion 的前向加噪也是同一个技巧,所以 \(x_t\) 可以直接从 \(x_0\) 采样。VQ-VAE 的离散选择不能用普通重参数化,通常用 straight-through。”

追问 1:为什么不用 REINFORCE?

方差大;重参数化是低方差的路径导数。

追问 2:VQ-VAE 为什么不用它?

离散选择不可导;straight-through 有偏。


4. A5:SD 的核心优化(S)

90 秒版

“核心是 Latent Diffusion:先用 VAE 把图像压到 8 倍下采样、4 通道 latent,扩散在 latent 上做,而不是像素空间。512×512×3 变成 64×64×4,空间元素少约 48 倍,注意力和卷积成本大幅下降。然后 UNet 去噪,文本通过 CLIP + cross-attention 注入,推理用 CFG 增强 prompt 跟随。VAE 只编码/解码一次,所以整体比像素扩散快很多。代价是 VAE 重建质量会成为上限。”

追问 1:为什么不用像素扩散?

计算量太大;latent 压缩后可以在有限算力下训练大模型。

追问 2:VAE 是瓶颈吗?

是;VAE 重建差会限制最终质量,所以 SD3 用 16 通道 VAE。

追问 3:文本怎么进去?

CLIP token → cross-attention 的 K/V;图像特征做 Q。


5. A6:SD 怎么训练(S)

2 分钟版

“分两阶段。第一阶段训练 VAE:编码器把图像压到 8 倍下采样、4 通道 latent,解码器重建,损失是重建 + perceptual + adversarial;训练好后冻结。第二阶段在 latent 上训练扩散 UNet:图像编码成 \(z_0\),加噪得到 \(z_t\),CLIP 编码文本,UNet 预测噪声,用 MSE 训练。文本编码器通常冻结,训练时以约 10% 概率丢弃文本条件,支持 CFG;还用 EMA、混合精度、分辨率分桶和数据过滤。推理时从噪声开始,用 UNet 逐步去噪,再 VAE 解码。”

追问 1:为什么冻结 VAE?

联合训练不稳定、计算大;VAE 负责压缩,扩散负责去噪。

追问 2:为什么要 CFG dropout?

让同一网络同时有条件/无条件能力,推理时才能做 CFG。

追问 3:为什么要分辨率分桶?

多宽高比训练,减少裁剪/变形,提升多比例生成。


6. A8:SD 中的交叉注意力(S)

90 秒版

“在 SD 里,cross-attention 的图像特征提供 Query,文本 token 提供 Key/Value。具体是 \(Q=XW_Q\),\(K=CW_K\),\(V=CW_V\),然后 softmax 注意力加权。这样每个图像位置都能关注 prompt 里的不同词,实现 token 级条件注入。它通常放在 UNet 的低分辨率层,文本编码只做一次,每个 block 有自己的投影。局限是 77 token、组合性弱、单向;SD3 改用 MMDiT 的联合注意力。”

追问 1:Q/K/V 形状?

图像 \(N\times d\),文本 \(L\times d\);注意力矩阵 \(N\times L\)。

追问 2:为什么放低分辨率?

\(N\) 小,\(O(NL)\) 成本低;高分辨率用卷积/self-attn。

追问 3:attention map 能干什么?

可视化 token 关注区域;prompt-to-prompt/attention edit。


7. A16:self/cross attention 的区别(S)

90 秒版

“核心是 Q/K/V 的来源。Self-attention 的 Q/K/V 都来自同一个序列,建模模态内部依赖;cross-attention 的 Q 来自目标序列,K/V 来自条件序列,建模跨模态对齐。复杂度上 self 是 \(O(N^2)\),cross 是 \(O(NM)\)。在 SD 里,self-attention 建模图像内部关系,cross-attention 让图像查文本。SD3 的 MMDiT 把两种 token 拼起来做联合 self-attention,但不同模态用不同投影。”

追问 1:cross-attention 能看成条件 self-attention 吗?

可以,把条件 token 拼进序列并加 mask 就是联合注意力的一种形式。

追问 2:为什么 MMDiT 更强?

双向交互、Transformer 易扩展、不同模态独立投影。


8. D7:Offset Noise(A)

90 秒版

“标准高斯噪声每个像素独立、均值为 0,整张图的低频/平均分量很小。SD 训练时很少见到整体偏亮或偏暗的 latent,所以模型倾向于生成中间亮度,极暗/极亮不稳定。Offset Noise 在噪声上加一个每通道共享、空间不变的偏移,让训练样本出现全局亮度变化,模型就学会去噪任意直流偏移。推理时仍用标准噪声。它改善亮度和对比度,但可能影响多样性,是微调技巧,不是扩散理论必需。”

追问 1:为什么普通噪声低频分量小?

空间独立、均值为 0,平均后方差按 \(1/N\) 缩小。

追问 2:Offset Noise 和 zero terminal SNR 一样吗?

不一样。前者补低频亮度分布;后者解决 \(t=T\) 端点不一致。

追问 3:推理时要加 offset 吗?

不需要;它只改变训练分布。


9. 延伸题:10 个高频追问

Q1:VAE 的 ELBO 怎么理解?

重建项 + KL 正则;KL 让后验靠近先验,保证可采样。

Q2:VQ-VAE 的 straight-through 是什么?

前向用量化结果,反向把梯度直接传给编码器输出;有偏但有效。

Q3:为什么 SD 的 VAE 是 4 通道?

压缩率/重建质量的折中;8 倍下采样后 4 通道足够表达,计算又可接受。

Q4:SD 的文本编码器为什么冻结?

降低训练成本,保留 CLIP 语义能力;只训练 cross-attn 和 UNet。

Q5:CFG 在 SD 中怎么用?

训练 dropout 条件;推理组合条件和无条件预测;\(w\) 控制强度。

Q6:Self-Attention 为什么不加位置编码?

SD 的 UNet 有卷积提供空间结构;特征图本身保留空间排列。

Q7:Cross-Attention 为什么是单向的?

Q 来自图像,K/V 来自文本;文本不反看图像。SD3 的联合注意力才是双向。

Q8:Offset Noise 为什么是每通道共享?

要模拟全局亮度偏移,而不是每个像素独立噪声;空间相关才能形成低频分量。

Q9:SDXL 和 SD1.5 的 VAE 一样吗?

架构类似(4 通道/8 倍),SDXL 训练了更好的 VAE;SD3 改用 16 通道。

Q10:SD 训练最难的是什么?

数据质量/caption、VAE 重建、文本条件、训练稳定性/算力;不是单一 trick。


10. 追问树:A5

SD 核心优化
├── 为什么快?
│   ├── VAE 8x 下采样
│   ├── latent 4 通道
│   └── 注意力 N 变小
├── 条件怎么进?
│   ├── CLIP 文本
│   └── cross-attention K/V
├── 怎么增强?
│   └── CFG
└── 瓶颈?
    ├── VAE 重建
    ├── 文本编码器
    └── 采样步数

11. 15 分钟模拟面试脚本

时间 内容 目标
0–2 自我介绍 建立上下文
2–5 A5/A6 架构与训练
5–8 A8/A16 attention
8–12 A2/A3/D7 基础与细节
12–15 追问 + 反馈 深度与表达

12. 练习方法

  1. 看答案,标关键词;
  2. 遮住答案,90 秒复述;
  3. 录音,回听卡壳;
  4. 找人追问“为什么”。

背“结构 + 3 个关键词 + 1 个公式”,不要背全文。


13. 相关材料