4.1 CLIP 全解:架构、训练、损失与特征¶
所属章节:第 4 章 条件控制与个性化
课时:90 分钟
前置:Transformer 基础、对比学习直觉
对应面试题:A1、A15
一句话目标:学完能写 CLIP 双塔结构和对称 InfoNCE,解释零样本,并分析 CLIP 特征在 AIGC 中的优缺点。
1. 学习目标¶
学完本节,你应该能够:
- 画出 CLIP 的双塔架构;
- 写出 对称 InfoNCE 损失;
- 解释 大 batch、温度、L2 normalize 的作用;
- 说明 CLIP 如何做零样本分类;
- 列出 CLIP 特征的 5 个局限;
- 解释 SD 为什么用 CLIP、SD3 为什么加 T5;
- 用 90 秒回答 A1/A15。
2. 为什么 AIGC 面试总问 CLIP¶
CLIP 在 AIGC 里有四个位置:
- 文本编码器:SD1.x/2.x 用 CLIP 把 prompt 变成 token 特征;
- 图像编码器:IP-Adapter 用 CLIP 图像特征做 image prompt;
- 评估:CLIPScore 衡量图文对齐;
- 检索/零样本:多模态应用的基础模型。
所以 CLIP 不是“一个分类模型”,而是图文语义空间的基础设施。
3. 双塔架构¶
3.1 图像编码器¶
- ResNet-50/101;
- 或 ViT-B/32、ViT-B/16、ViT-L/14;
- 输出图像特征 \(u\)。
3.2 文本编码器¶
- Transformer;
- BPE tokenizer;
- 取
[EOS]/末位 token 的表示; - 输出文本特征 \(v\)。
3.3 投影与归一化¶
- 图像/文本特征分别线性投影到共享维度(如 512/768);
- L2 normalize;
- 用 cosine 相似度。
3.4 温度¶
- 可学习的 logit scale;
- 控制 softmax 的锐度;
- 常写成 \(\exp(t)\) 或 \(1/\tau\)。
3.5 架构图¶
图像 ──Image Encoder──> u ──project──> u/||u||
文本 ──Text Encoder───> v ──project──> v/||v||
│
▼
cosine 相似度矩阵
4. 训练方法与损失¶
4.1 数据¶
- 约 4 亿图文对;
- 网络爬取;
- 图像只做随机裁剪/缩放等轻量增强;
- 文本用 BPE tokenizer,截断/填充。
4.2 大 batch¶
- 典型 batch 32,768;
- 每个 batch 内,图像和文本两两计算相似度;
- 对角线是正样本,其余是负样本;
- batch 越大,负样本越多,对比信号越强。
4.3 对称 InfoNCE¶
设图像特征 \(u_i\)、文本特征 \(v_j\),温度 \(\tau\):
损失:
- 第一项:image-to-text;
- 第二项:text-to-image;
- 对角线正样本;
- 其余为负样本。
4.4 为什么用对比学习¶
- 不需要人工类别标签;
- 图文对天然提供正样本;
- 大 batch 提供负样本;
- 学到的空间适合零样本/检索。
5. 零样本分类¶
步骤:
- 为每个类别构造 prompt,如 “a photo of a {class}”;
- 文本编码器得到每个类别的文本特征;
- 图像编码器得到图像特征;
- 算 cosine 相似度;
- 取最高分。
提升技巧:
- prompt ensemble:多个模板取平均;
- 类别同义词;
- 领域 prompt。
6. CLIP 特征的优点¶
- 语义强:大规模图文对比学习,捕捉对象/场景/风格;
- 零样本:不需要下游标签;
- 共享空间:图像/文本可直接算相似度;
- 鲁棒:对域偏移通常比 ImageNet 监督模型稳;
- 工程友好:可冻结、推理快、生态成熟;
- 图像特征适合全局条件:IP-Adapter、风格参考、图文评估。
7. CLIP 特征的缺点¶
- 77 token 限制:长 prompt 被截断;
- bag-of-words:弱词序、否定、数量、空间关系;
- 组合性弱:属性绑定容易错;
- 细粒度空间弱:图像特征是全局语义,不适合密集预测;
- 计数弱:不擅长“几个物体”;
- 提示词敏感:模板/同义词/标点影响结果;
- 数据偏差:性别、种族、文化偏见;
- 模态 gap:图像/文本特征仍存在分布差异;
- CLIPScore 可被刷:相似度高不等于生成质量好。
7.1 一个例子¶
Prompt:“a red cube on a blue sphere.”
CLIP 可能捕捉到 red/blue/cube/sphere,但不一定正确绑定“红方块在蓝球上”。这就是组合性/属性绑定问题。
8. CLIP 在 SD 中的使用¶
8.1 SD 1.x/2.x¶
- CLIP 文本 token → cross-attention 的 K/V;
- 文本编码器冻结;
- 77 token。
8.2 SDXL¶
- CLIP-L + OpenCLIP bigG;
- token 特征拼接;
- pooled text embedding 加入时间步条件;
- 更强语义/风格。
8.3 SD3¶
- CLIP-L + OpenCLIP bigG + T5-XXL;
- T5 补长文本/组合推理/文字渲染;
- CLIP 仍提供强语义。
8.4 IP-Adapter¶
- CLIP 图像编码器提取参考图特征;
- 投影后做 image prompt;
- 不需要文本描述风格。
9. 90 秒回答:CLIP 的架构、训练、损失¶
面试官问:介绍 CLIP 的模型架构、训练方法与损失函数。
参考回答:
“CLIP 是双塔模型:图像编码器用 ResNet 或 ViT,文本编码器用 Transformer,输出分别投影到共享维度并 L2 normalize。训练用约 4 亿图文对,在一个大 batch 里做对称 InfoNCE:图像和文本两两算 cosine 相似度,对角线是正样本,其余是负样本,两个方向的交叉熵取平均。温度是可学习的 logit scale。它不需要分类标签,学到的共享空间可以做零样本分类和检索,也常作为 SD 的文本编码器。”
10. 90 秒回答:CLIP 特征的优缺点¶
面试官问:谈谈 CLIP 编码特征的优缺点。
参考回答:
“优点是语义强、零样本、图像和文本共享空间、工程上好冻结,适合做 SD 的文本条件、IP-Adapter 的图像条件和图文评估。缺点主要是 77 token 限制、bag-of-words、组合性弱、计数/空间/否定不行、细粒度不足,还有数据偏差和 prompt 敏感。CLIPScore 也容易被刷,不能单独当生成质量指标。所以 SD3 会加 T5 补长文本和组合推理。”
11. 常见误区¶
- 把 CLIP 当生成模型:它是图文匹配/表示模型。
- 只写单向交叉熵:CLIP 是对称的。
- 忽略 L2 normalize:相似度是 cosine。
- 认为 CLIP 理解复杂空间关系:它弱于组合推理。
- 把 CLIPScore 当唯一指标:它不衡量图像质量。
- 说 SD3 不用 CLIP:SD3 仍用 CLIP-L/OpenCLIP,只是加了 T5。
12. 课堂练习¶
答案见 06 章节练习与答案。
- 画 CLIP 双塔结构。
- 写对称 InfoNCE。
- 解释大 batch 和温度。
- 列 5 个 CLIP 局限。
- 解释 SD3 为什么加 T5。
- 用 90 秒回答 A1/A15。
13. 自测清单¶
- [ ] 能画 CLIP 架构;
- [ ] 能写 loss;
- [ ] 能解释零样本;
- [ ] 能说 5 个局限;
- [ ] 能解释 SD/SDXL/SD3 的文本编码器差异;
- [ ] 能 90 秒回答 A1/A15。
14. 本节材料为什么这样设计¶
- 先架构再损失:面试常先问“怎么搭”,再问“怎么训”。
- 对称 loss 单列:最容易写错。
- 优缺点分点:A15 需要结构化表达。
- SD 使用场景:把 CLIP 和 AIGC 连起来。
- 不写代码:本节是模型/公式,不是实现。
详细设计理由见 08 材料设计理由。