想象你是幼儿园的小雅老师。你拿出一张猫的照片和四张文字卡——「猫」「狗」「太阳」「月亮」,对孩子说:“找一找,哪张卡片和这张图片是一对?”孩子一开始乱猜,但每次只要听到“猫”的发音、看到猫的图片,再看到文字卡「猫」,慢慢就明白了:原来图片和文字之间存在一种“配对关系”。CLIP 对比学习做得正是这件事:它让 AI 在海量的图文卡片中,通过“配对游戏”学会把一张图与一段文字关联起来。图片编码器是“图像翻译官”,文本编码器是“文字翻译官”,它们把各自看到的内容翻译成同一套数字语言,再通过比较数字距离判断图文是否匹配。读完这篇文章,你会彻底看懂 CLIP 的 InfoNCE 损失、温度参数、批次构造与负样本采样,也会明白为什么 CLIP 能零样本分类、跨模态检索。

岗位关联

掌握 CLIP 对比学习,相当于掌握多模态 AI 的“图文翻译核心”,是从事视觉-语言模型、检索与内容理解的必备技能。

目录
  1. 可视化演示
  2. 图文对齐原理
  3. 双塔编码器:两个翻译官
  4. InfoNCE损失:配对游戏的计分规则
  5. 温度参数:老师的宽容度
  6. 批次构建:一场多人配对游戏
  7. 负样本采样:不挑食的干扰项
  8. 零样本分类:没教过也能认
  9. 跨模态检索:一句话翻遍整个相册
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

图文对齐原理

小雅老师发现,孩子要把图片和文字联系起来,靠的不是死记硬背,而是反反复复看“图文成对”出现。CLIP 也是同样的思路:它从互联网收集了约 4 亿对图文,组成一个巨大的“配对卡片箱”。每一对卡片里,一张是图片,一段是文字描述。模型要学的,就是这些图片和文字之间“应该在一起”的对应关系。

在技术上,CLIP 希望把图像和文本放进同一个“语义空间”。空间不是我们熟悉的物理空间,而是一个高维向量空间。每一张图片会被压缩成一个特征向量,每一段文字也会被压缩成一个特征向量。如果图片和文字描述的是同一个事物,它们的向量就应该彼此靠近;如果描述的不是一回事,向量就应该离得远远的。这个过程就是图文对齐。

对孩子来说,当“猫的照片”和文字卡「猫」多次成对出现后,他看照片就能自然想到「猫」这个字。对 CLIP 来说,当 4 亿个图文对训练完成后,它在看到一张新图时,也能从文字中“想起”最匹配的描述。图文对齐就是 CLIP 一切能力的地基。

双塔编码器:两个翻译官

小雅老师请来两位翻译官:图像翻译官和文字翻译官。图像翻译官把一张猫的照片翻译成一份“特征速写”,文字翻译官把「猫」这个字翻译成一份“特征速写”。两位翻译官使用同一种“数字语言”,把各自的输入翻译成固定长度的向量,这样小雅老师才能比较两份速写像不像。

图像翻译官在 CLIP 中就是图像编码器,通常使用 ViT 或 ResNet;文字翻译官就是文本编码器,通常使用 Transformer。它们各自输出一组数字,再通过投影头对齐到同一个维度。得到向量后,最常用的比较方式是余弦相似度:看两个向量的方向是否一致。方向越一致,说明图画和文字越“聊得来”。

有了两个翻译官,每一张图片和每一段文字都能变成可比较的向量。小雅老师只需要看着余弦相似度得分,就知道画面和文字“般不般配”。

sim(I,T)=vI⋅vT∥vI∥∥vT∥\displaystyle \text{sim}(I, T) = \frac{\mathbf{v}_I \cdot \mathbf{v}_T}{\|\mathbf{v}_I\| \|\mathbf{v}_T\|}
这个公式衡量图像特征向量和文本特征向量的“方向贴合程度”,方向越一致,得分越高。
  1. 图像特征向量$0$ 表示图片经过图像编码器后得到的一串数字,它是图片的“特征速写”。
    vI∈Rd\displaystyle \mathbf{v}_I \in \mathbb{R}^d
  2. 文本特征向量$0$ 表示文本经过文本编码器后得到的一串数字,它是文字的“特征速写”。
    vT∈Rd\displaystyle \mathbf{v}_T \in \mathbb{R}^d
  3. 向量点积$0$ 将两个特征向量逐位相乘再相加,衡量它们的重叠程度。
    vI⋅vT=∑k=1dvI,k⋅vT,k\displaystyle \mathbf{v}_I \cdot \mathbf{v}_T = \sum_{k=1}^{d} v_{I,k} \cdot v_{T,k}
  4. 归一化分母$0$ 分别计算两个向量的长度并相乘,抵消向量长短带来的干扰。
    ∥vI∥=∑k=1dvI,k2\displaystyle \|\mathbf{v}_I\| = \sqrt{\sum_{k=1}^{d} v_{I,k}^2}

InfoNCE损失:配对游戏的计分规则

配对游戏的关键是“唯一正确答案”。小雅老师拿出一个图片卡,孩子要从一整排文字卡中选出正确的那个:正确答案得分要高,错误答案得分必须被压下去。InfoNCE 损失就是这套游戏的计分规则。它告诉模型:对你手中的每一张图,请尽量把正确的文字卡顶上去,把所有错误的文字卡踩下去。

在一个 batch 中有 \( N \) 个图文对。对第 \( i \) 张图来说,真正匹配的文本是 \( T_i \),其余 \( N-1 \) 个文本都是干扰项。InfoNCE 计算正确文本的相对得分,并用对数概率鼓励这个相对得分尽可能接近 1。

InfoNCE 并不是单向游戏。每张图要到文本堆里找答案,每段文本也要到图片堆里找答案。CLIP 把两个方向的损失取平均,称为对称损失。这相当于孩子不仅要“看图找字”,也要“看字找图”,双向巩固匹配能力。

L=−1N∑i=1Nlog⁡exp⁡(sim(Ii,Ti)/τ)∑j=1Nexp⁡(sim(Ii,Tj)/τ)\displaystyle \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log \frac{\exp\left(\text{sim}(I_i, T_i) / \tau\right)}{\sum_{j=1}^{N} \exp\left(\text{sim}(I_i, T_j) / \tau\right)}
InfoNCE 就像一个“找正确答案”的计分器:分子表扬正确配对,分母把正确配对和所有干扰项放在一起比较。
  1. 正样本项$0$ 是第 \( i \) 张图与它正确文本的相似度得分,代表配对成功后的奖励。
    exp⁡(sim(Ii,Ti)τ)\displaystyle \exp\left(\frac{\text{sim}(I_i, T_i)}{\tau}\right)
  2. 分母总和$0$ 把当前图片与 batch 里所有文本的得分都加在一起,正确文本只是其中之一。
    ∑j=1Nexp⁡(sim(Ii,Tj)τ)\displaystyle \sum_{j=1}^{N} \exp\left(\frac{\text{sim}(I_i, T_j)}{\tau}\right)
  3. 对数概率$0$ 表示模型找到正确文本的信心,信心越高,损失越小。
    −log⁡aa+b≈−log⁡1=0\displaystyle -\log \frac{a}{a+b} \approx -\log 1 = 0
  4. 平均与取负$0$ 对所有图片的损失求平均,并加上负号变成“越小越好”的优化目标。
    L=−1N∑i=1Nlog⁡pi\displaystyle \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log p_i

温度参数:老师的宽容度

同样是答错了一道题,不同老师的态度会影响孩子的学习节奏。小雅老师如果非常严格,孩子做错一点就会受到强烈“反馈”;如果比较宽容,孩子会觉得“差不多就行”。温度参数 \( \tau \) 就是这种“宽容度”的旋钮。

在 InfoNCE 中,所有相似度都要除以 \( \tau \)。当 \( \tau \) 很小时,相似度的微小差别会被放大,模型被迫把正确配对和错误配对区分得更开,对困难样本的惩罚也更大。当 \( \tau \) 很大时,得分分布变得平滑,模型对错误样本不那么敏感,训练过程更温和。这个软化后的概率分布可以写成:

如果小雅老师太严格,孩子会因为一道细节题惊慌失措,训练不稳定;如果太宽松,孩子又会变得“佛系”,学不到精细差异。CLIP 默认使用一个较小的温度,比如 0.07,让正确配对和困难负样本始终被强烈区分。

pi=exp⁡(si,i/τ)∑j=1Nexp⁡(si,j/τ)\displaystyle p_i = \frac{\exp\left(s_{i,i} / \tau\right)}{\sum_{j=1}^{N} \exp\left(s_{i,j} / \tau\right)}
温度参数决定了模型“把话说得多满”:温度越低,越斩钉截铁;温度越高,越模棱两可。
  1. 相似度得分$0$ 是第 \( i \) 个图文对的相似度,也就是正确答案的分数。
    si,i=sim(Ii,Ti)\displaystyle s_{i,i} = \text{sim}(I_i, T_i)
  2. 温度缩放$0$ 把相似度除以温度,从而放大或缩小分数之间的差距。
    τ→0,si,i/τ→∞\displaystyle \tau \to 0, \quad s_{i,i} / \tau \to \infty
  3. Softmax 分布$0$ 是正确文本被选中的概率,概率越大,代表模型越有把握。
    pi=exp⁡(si,i/τ)∑jexp⁡(si,j/τ)\displaystyle p_i = \frac{\exp(s_{i,i}/\tau)}{\sum_{j} \exp(s_{i,j}/\tau)}

批次构建:一场多人配对游戏

单张卡片的配对游戏学得慢。小雅老师想到一个高效办法:把几十组卡片同时摆上桌,让所有孩子同时玩。每一组卡片里有一张图和一段文字,正确配对藏在自己那组里,其他组的文字全部变成干扰项。这个“同时摆上桌”的规模就是 batch。

假设 batch 中有 \( N \) 个图文对,那么对任意一张图片来说,除了它自己对应的文本,其余 \( N-1 \) 个文本都可以作为负样本。因此每个 anchor 的负样本数量是:

CLIP 在训练时把 batch size 推到很大,例如 32768。这么大的 batch 需要大量 GPU 并行计算,但收益也很明显:每个图文对都会和上万条文本进行对比,特征空间被压得更加紧凑。这就像一群孩子同时玩“找朋友”,场面越混乱,练出来的眼力越厉害。

Nneg=N−1\displaystyle N_{\text{neg}} = N - 1
一个 batch 的规模越大,干扰项就越多,模型被迫做更难的区分,学到更精细的对齐能力。
  1. 批次总数$0$ 表示一次训练中同时参与的图文对数量。
    N=batch size\displaystyle N = \text{batch size}
  2. 负样本数量$0$ 表示每个图像 anchor 对应的错误文本候选数量。
    Nneg=N−1\displaystyle N_{\text{neg}} = N - 1

负样本采样:不挑食的干扰项

有的教学法会特意挑“最难认的字”考孩子,但 CLIP 很“不挑食”。它没有单独设计困难负样本挖掘模块,而是把同一个 batch 里所有其他图文对直接当作干扰项。这样做的好处是简单高效:每张图片都属于某段文字的正确配对,同时又是其他所有图片的干扰项。一个样本既当“考生”,又当“陪跑”,被反复复用。

随机采样听起来容易,但质量取决于 batch 的多样性。如果 batch 足够大,随机抽出的干扰项里自然包含很多“长得像”的困难负样本,比如同样是猫,但品种不同。困难负样本是指那些与图片语义相近、容易混淆的文本。它们对训练特别珍贵,因为模型必须学会区分细微差别。

小雅老师的教学也是这个道理:她不会刻意挑一堆孩子完全不认识的字当干扰项,而是让全班孩子一起做配对游戏,干扰项里有简单的字,也有容易混淆的近义词。这种“自然混合”反而让游戏更真实,因为真实世界里本来就充满各种干扰。

零样本分类:没教过也能认

想象一个孩子从来没学过“老虎”这个词,但你告诉他“老虎是一种有条纹的大猫”。当他看到一张老虎照片时,依然能指出来。CLIP 的零样本分类就是这样:它不需要针对新类别重新训练,只需要把类别名字变成文本描述,再和图片特征比较相似度。

具体做法是:先用提示模板构造每个候选类别的文本,例如 a photo of a cat、a photo of a dog。然后把它们输入文本编码器,得到类别文本向量。最后把待分类图片的特征向量与所有类别文本向量做余弦相似度比较,选最大的那个作为预测结果:

小雅老师不需要提前教孩子认识地球上所有动物,只要给出一句话描述,孩子就能根据语言描述去匹配照片。CLIP 的零样本分类正是这种“用语言迁移知识”的能力。

y^=arg⁡max⁡c∈C sim(I,Tc)\displaystyle \hat{y} = \arg\max_{c \in \mathcal{C}} \ \text{sim}(I, T_c)
零样本分类的关键在于“用语言描述类别”,而不是为每个类别准备训练样本,所以新类别也能即插即用。
  1. 候选类别集合$0$ 表示所有可能类别的集合,比如猫、狗、鸟等。
    C={猫,狗,鸟,⋯ }\displaystyle \mathcal{C} = \{猫, 狗, 鸟, \cdots\}
  2. 类别文本向量$0$ 是把类别名套进提示模板后,由文本编码器生成的向量。
    Tc=TextEncoder(a photo of a {c})\displaystyle T_c = \text{TextEncoder}(a\ photo\ of\ a\ \{c\})
  3. 取最大值$0$ 在候选中找到与图片相似度最高的那个类别。
    y^=arg⁡max⁡csI,c\displaystyle \hat{y} = \arg\max_{c} s_{I, c}

跨模态检索:一句话翻遍整个相册

过去想在几万张图片里找到“夕阳下的红枫林”,你得一张张看。CLIP 训练完成后,所有图片都被提前编码成向量,存在一个“向量相册”里。当你输入一句话时,这句话被文本编码器变成向量,再和相册里所有图片向量算相似度,最后按分数排序返回最匹配的图片。这就是以文搜图。

反过来也一样。你看到一张陌生照片,想找一句合适的描述,就把图片编码成向量,去和库里的文本向量做相似度排序,这叫以图搜文。由于所有内容都已经变成数字向量,检索不再依赖人工标签,而是依赖语义相似度。向量检索库通常还会配合 Faiss 这类索引工具,让百万甚至上亿条向量也能在毫秒级完成搜索。

小雅老师的教室变成了一个巨大的“语义图书馆”:每一张图和每一段文字都被贴上了位置坐标。你说出描述,她立刻能指出坐标最接近的照片;你给她看照片,她也能找到语言上最匹配的句子。跨模态检索的本质,就是让语言和视觉在同一个向量空间里“串门”。

AI 应用场景

以文搜图的素材库检索

阶段:跨模态检索

解决的问题:传统素材库只能靠人工打标签搜索,标签不全或描述抽象时很难找图。CLIP 把图片和文本都编码到同一空间,输入自然语言描述即可直接检索相似图片,无需手工标注。

具体案例:设计师在版权图库中搜索“夕阳下的红枫林”,系统将这句话编码为文本向量,与图库中数百万图片向量计算相似度,瞬间返回构图和意境都吻合的照片,大幅提高素材调用效率。

电商商品零样本分类

阶段:零样本分类

解决的问题:电商平台每天上新大量商品,传统分类模型需要为每个新品类收集标注数据并重新训练。CLIP 直接用类别文本描述完成分类,新品上架也能立刻归入正确类目。

具体案例:一个鞋类商品图片传入系统,候选文本提示为“运动鞋”“高跟鞋”“靴子”等,CLIP 通过比较图片向量与各文本提示的相似度选出最匹配类别,无需训练新分类头。

图文内容一致性审核

阶段:图文语义对齐

解决的问题:互联网内容中常出现“标题党”或图文不符,人工审核成本高。CLIP 能计算图片与文本之间的语义匹配度,快速识别低相关性内容。

具体案例:某内容平台将用户上传的封面图和标题分别编码,当图文相似度低于阈值时,系统自动标记为疑似“标题党”,进入人工复审队列,审核效率提升数倍。

Python 演示

python27 行
import numpy as np def cosine_sim(image_feats, text_feats):    image_feats = image_feats / np.linalg.norm(image_feats, axis=1, keepdims=True)    text_feats = text_feats / np.linalg.norm(text_feats, axis=1, keepdims=True)    return image_feats @ text_feats.T def cross_entropy(logits, labels):    exp_logits = np.exp(logits - logits.max(axis=1, keepdims=True))    probs = exp_logits / exp_logits.sum(axis=1, keepdims=True)    n = len(labels)    return -np.log(probs[np.arange(n), labels] + 1e-12).mean() def clip_loss(sim_matrix, temperature=0.07):    logits = sim_matrix / temperature    labels = np.arange(sim_matrix.shape[0])    loss_i = cross_entropy(logits, labels)    loss_t = cross_entropy(logits.T, labels)    return (loss_i + loss_t) / 2 if __name__ == "__main__":    np.random.seed(0)    image_feats = np.random.randn(8, 64).astype(np.float32)    text_feats = np.random.randn(8, 64).astype(np.float32)    sim = cosine_sim(image_feats, text_feats)    loss = clip_loss(sim, temperature=0.07)    print("CLIP对称InfoNCE损失:", round(float(loss), 4))
目的:用 NumPy 实现最小版 CLIP 训练目标,计算一个 batch 内的图文相似度矩阵,并输出对称 InfoNCE 损失。
  1. image_feats = image_feats / np.linalg.norm(...)先做 L2 归一化,确保后续余弦相似度只关注方向。
  2. return image_feats @ text_feats.T一次矩阵乘法得到所有图像和文本对之间的相似度矩阵。
  3. logits = sim_matrix / temperature用温度参数缩放相似度,控制对比强度。
  4. labels = np.arange(sim_matrix.shape[0])对角位置就是正确图文配对,所以标签设为 0 到 N-1。
  5. loss_i = cross_entropy(logits, labels)计算“图像找文本”方向的损失。
  6. loss_t = cross_entropy(logits.T, labels)转置矩阵后,再计算“文本找图像”方向的损失。
  7. return (loss_i + loss_t) / 2两个方向求平均,得到 CLIP 的对称 InfoNCE 损失。

常见误区

误区我原来以为 CLIP 和普通图像分类一样,需要人工标注“猫”“狗”这样的类别标签才能训练。

正解CLIP 使用的是自然语言描述作为弱监督标签,不需要固定分类标签。互联网上海量的“图片+文字描述”天然构成图文对,模型从中学习图文对齐。分类标签反而限制了可学习的语义范围。

为何常见:因为我们接触的传统监督学习大多依赖类别标签,容易把 CLIP 也归入这类框架。

误区看到 InfoNCE 公式里是“图像找文本”,就以为 CLIP 只训练图像到文本一个方向。

正解CLIP 实际使用的是对称损失,图像到文本和文本到图像两个方向的 InfoNCE 都会计算,再取平均。只有双向对齐,才能让图文匹配关系更稳固。

为何常见:许多资料在画示意图时只画了一个方向的箭头,容易让人忽略对称项。

误区既然温度小能让模型区分得更狠,那是不是把温度设成极小值就能训练出最强模型?

正解温度过小会让大部分样本的 softmax 概率变得极端,模型只关注最困难的负样本,训练极易不稳定甚至崩溃。温度过大又会损失学习信号。CLIP 通常选择一个折中的较小值,如 0.07,需要按任务调参。

为何常见:我们直觉上觉得“越严格越有效”,却忽略了过度严格带来的噪声放大问题。

误区零样本分类是不是意味着模型在训练时完全不需要任何数据?

正解零样本是指在“下游分类任务”上不需要标注样例,但模型预训练仍然需要海量图文对。CLIP 是在约 4 亿图文对上完成预训练后,才具备迁移到新类别的能力。

为何常见:“零样本”这个名字容易让人误读成“零数据”,其实它指的是“零下游标注样本”。

误区觉得负样本反正可以在整个数据集里随便采,batch size 大小不影响对比学习效果。

正解在 CLIP 的经典实现中,负样本全部来自同一 batch 内其他图文对。batch size 直接决定负样本数量:batch 为 256 时每个 anchor 只有 255 个负样本,batch 为 32768 时则有 32767 个负样本,学习难度天差地别。

为何常见:从公式看负样本似乎可以任意补充,但实际实现受显存限制,负样本范围被约束在 batch 内。

面试题

Q1. CLIP 对比学习训练时,正样本通常指什么?

单选题 · easy

  • A.同一批中的任意图文对
  • B.成对配对的图像和文本← 正确答案
  • C.数据集中全部图文对
  • D.人工故意标注的错误对

答案:B。正样本就是原本就匹配的图像和文本对。CLIP 从数据中拿到的是天然配对的图文对,训练时要把它们互相拉近。其他选项都是干扰项或负样本来源。

Q2. InfoNCE 损失中,分母的求和范围是什么?

单选题 · mid

  • A.全部图像和全部文本的相似度
  • B.当前正样本与文本编码器相似度
  • C.正样本加所有负样本的相似度← 正确答案
  • D.批次内所有配对样本的总数

答案:C。对第 i 张图而言,分母需要对 batch 内所有文本计算相似度并求和,这里面既包含正确匹配的文本,也包含其他 N-1 个负样本。这就像把所有候选卡片都摆出来一起比较。

Q3. 温度参数 τ 增大时,模型训练会怎样变化?

单选题 · mid

  • A.预测分布更加锐利
  • B.分布更平滑,难度下降← 正确答案
  • C.负样本数量自动增多
  • D.模型训练速度变快

答案:B。τ 越大,相似度被缩放得越小,softmax 分布越平缓,模型对正负样本的区分压力变小。τ 减小才会让分布锐利,难度上升。

Q4. CLIP 训练时采用超大 batch 的主要原因是什么?

单选题 · hard

  • A.batch 内样本互为负样本← 正确答案
  • B.减少显存占用
  • C.使图像编码器更宽
  • D.防止模型过拟合

答案:A。CLIP 的负样本全部来自同一个 batch。batch 越大,每个 anchor 能看到的负样本越多,对比学习难度越高,学到的特征越精细。增大 batch 一般会增加显存占用,而不是减少。

Q5. 零样本图像分类时,如何判断一张图属于“猫”这个类别?

单选题 · mid

  • A.训练一个线性分类头预测概率
  • B.与提示文本特征做余弦相似度比较← 正确答案
  • C.对图像做 KNN 聚类查看邻居
  • D.让文本编码器生成图像重建

答案:B。CLIP 先把“a photo of a cat”等类别提示编码成文本向量,再把图像编码成图像向量,通过余弦相似度比较选最高分。它不需要训练分类头。

Q6. 关于对称 InfoNCE 损失,正确的说法是?

单选题 · hard

  • A.两个方向损失求平均← 正确答案
  • B.只计算图像到文本方向
  • C.正负样本数量严格相等
  • D.温度参数在两侧保持一致

答案:A。CLIP 既做图像找文本,也做文本找图像,两个方向的交叉熵损失取平均。只算一个方向会损失匹配信息,容易导致对齐不平衡。

Q7. 下列哪一项最适合作为 CLIP 零样本分类的类别提示?

单选题 · mid

  • A.一个随机英文字母
  • B.一段自然语言类别描述← 正确答案
  • C.图像的像素均值向量
  • D.类别的数字编号

答案:B。CLIP 的文本编码器理解自然语言,因此提示词应该是有语义的类别描述,例如“a photo of a cat”。随机字母和数字编号都没有语义信息,无法与图像特征对齐。

Q8. 以下哪些可以作为 CLIP 训练时的负样本来源?

多选题 · easy

  • A.同一 batch 中其他图文对的文本← 正确答案
  • B.与当前文本不匹配的图像← 正确答案
  • C.当前图像对应的正确文本
  • D.训练集里的全部图像特征

答案:AB。CLIP 的负样本来自 batch 内其他图文对,从图像角度看,其他文本就是负样本;从文本角度看,其他图像就是负样本。当前配对是正样本,全量图像特征并不会直接作为采样来源。

Q9. 温度参数影响 CLIP 训练的原因包括哪些?

多选题 · mid

  • A.放大困难负样本的梯度← 正确答案
  • B.控制 logits 分布的锐利度← 正确答案
  • C.改变负样本的采样数量
  • D.影响正负样本对比强度← 正确答案

答案:ABD。温度缩放会改变相似度差距,从而影响梯度强度和分布锐利度,也会改变正负样本之间的对比强度。但它不会改变 batch 里负样本的数量。

Q10. 以下哪些是 CLIP 零样本分类的已知局限?

多选题 · extreme

  • A.对细粒度类别容易混淆← 正确答案
  • B.提示词选择会显著影响效果← 正确答案
  • C.完全不需要任何训练数据
  • D.对分布外图像可能失效← 正确答案

答案:ABD。CLIP 对同属大类的细微差别识别不够稳,比如区别相似鸟类;提示词写得好坏直接影响效果;遇到与预训练分布差异很大的图像也可能出错。C 说法错误,因为预训练仍需要海量图文数据。