想象一下:你养了一只聪明的导盲犬,它从小见过成千上万张照片,每张照片都配有主人的一句描述。比如看到“金毛犬在草地上奔跑”的图片,旁边就写着这句话。日积月累,这只狗听到“金毛犬”这个词,脑子里就能浮现出金色的毛发、摇摆的尾巴;看到一张陌生的狗照片,它也能脱口而出“这是金毛犬”。它不需要专门的老师教它“狗长什么样”,而是在成千上万次图文配对中,自己悟出了“画面”和“语言”之间的隐秘对应关系。 OpenAI 在 2021 年发布的 CLIP(Contrastive Language-Image Pre-training)模型,做的正是这件事。它像一只“读图无数”的导盲犬,通过 4 亿对图文数据的对比学习,学会了把图像和文字映射到同一个“语义空间”里——在这个空间里,一张狗的照片和“一只狗”这句话的距离很近,而和“一辆汽车”这句话的距离很远。有了这把“语义标尺”,CLIP 不需要针对每个新任务单独训练,就能直接对从未见过的图片进行分类、检索、排序——这就是它惊艳世人的“零样本”能力。 本篇将带你从零开始理解 CLIP 的双塔架构、对比学习目标、大规模训练配方,以及它如何成为 Stable Diffusion 等生成模型和众多多模态系统的“眼睛”。
理解 CLIP 是踏入多模态 AI 领域的必修课。它奠定了“图文对齐”的基础范式,是从事视觉问答、文本生图、跨模态检索等工作必须掌握的核心模型,也是面试多模态岗位的高频考点。
可视化演示
展示CLIP双塔编码器架构、对比学习相似度矩阵训练过程与零样本分类能力,直观理解视觉-语言预训练的核心机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
CLIP双塔编码器架构 图像编码器提取视觉特征,文本编码器提取语义特征,映射到共享嵌入空间 对比损失最大化正样本对相似度,最小化负样本对相似度 L = -log(exp(sim(I,T)/t) / Σ exp(sim(I,T2)/t)) 双塔并行高效检索
双塔编码器
还记得那只导盲犬吗?它之所以能听懂“金毛犬”这个词,是因为它的大脑里有两个分工明确的“记忆区”:一个负责存储“看到过的画面”(金色毛发、摇尾巴的姿态),另一个负责存储“听到过的词汇”(“金毛”这个声音对应的含义)。当两个记忆区的信息反复配对,它就在两者之间架起了桥梁。CLIP 的双塔编码器架构,正是模仿了这种分工。
CLIP 由两个独立的编码器组成:“图像塔”和“文本塔”。图像塔负责把一张图片压缩成一个特征向量——你可以把它理解成“图片的身份证号”;文本塔负责把一段文字也压缩成一个特征向量——“文字的身份证号”。两个塔互不干涉,各自处理自己擅长的模态信号,但它们输出的向量被映射到同一个“语义空间”中,使得语义相近的图文对在这个空间里的距离很近。
图像塔采用 Vision Transformer(ViT)结构,将图片切成 16×16 的 patch 序列,像读句子一样从左到右编码像素块;文本塔则采用标准的 Transformer 编码器,把单词序列编码成句向量。最终,图像塔输出一个 d 维向量 \( \mathbf{v} \),文本塔输出一个 d 维向量 \( \mathbf{w} \),两个向量经过 L2 归一化后位于同一单位超球面上,用余弦相似度衡量图文匹配程度:
双塔结构的精妙之处在于“解耦”:图像塔和文本塔不需要共享任何参数,各自可以独立预训练。这就像导盲犬的视觉记忆区受损时,语言记忆区仍然完好,两者既独立又配合——这种松耦合设计让后续的零样本迁移和跨模态检索变得异常灵活。今天 Stable Diffusion 的文生图管线中,CLIP 的图像塔与文本塔各司其职,依然延续着这一架构思想。
- 点积运算将图像特征向量和文本特征向量的对应维度相乘后求和,衡量它们在各方向上的“共鸣程度”。
- 向量范数分别计算两个向量的长度(模),用于将点积归一化,消除向量长度的影响。
- 余弦夹角点积除以两个范数的乘积,得到夹角余弦值,范围在 [-1, 1] 之间,值越大表示语义越接近。
对比学习目标
导盲犬是怎么学会配对图文信息的?靠的不是老师逐张教它,而是让它自己“找不同”——对比学习。想象你在一个聚会上,主人给你介绍一个陌生人:“这位是小明”。你不需要别人告诉你小明不是你认识的所有其他人,你只需要在那一刻,把“小明”这个名字和眼前这张脸绑定。CLIP 的训练目标也是类似的逻辑。
CLIP 的核心训练目标是对比学习,具体采用 InfoNCE 损失。在一个训练批次中,假设有 N 张图片和 N 条文本,它们一一对应形成 N 个正样本对(比如第 i 张图配第 i 条文本)。但模型并不知道这个对应关系,它需要从 N×N 的所有组合中,学会“认出”哪个文本属于哪张图——这就像一个“连连看”游戏,对角线上的配对是正确的,其他都是干扰项。
具体做法是:计算所有图片特征与所有文本特征之间的相似度矩阵 \( S \in \mathbb{R}^{N \times N} \),其中 \( S_{ij} = \text{sim}(\mathbf{v}_i, \mathbf{w}_j) \)。训练目标是让对角线元素(正样本对)尽可能大,非对角线元素(负样本对)尽可能小。对每一行做 softmax 归一化,就得到对比损失:
对比学习的美妙之处在于,它把“语义对齐”这件事变成了一个相对简单的“配对游戏”。不需要人工标注图片的详细描述,只要能凑齐图文对即可。就像导盲犬在无数次主人介绍陌生人中学会了“名字—面孔”对应规则,CLIP 在 4 亿对图文数据中学会了“画面—语言”的语义映射。这种自监督式的学习信号,是大规模预训练得以实现的根本原因。
- 温度系数缩放\( \tau \) 是温度超参数,控制相似度分布的锐利程度。\( \tau \) 越小,softmax 输出越“极端”;\( \tau \) 越大,输出越“平缓”。
- 正样本概率第 i 行中,对角线元素作为分子,所有 N 个元素之和作为分母,构成一个 softmax 概率分布。
- 双向对称第一项是“以图找文”(第 i 张图对应第 i 条文本),第二项是“以文找图”(第 i 条文本对应第 i 张图),取平均使两个塔对称更新。
大规模训练
导盲犬之所以聪明,是因为它见过足够多的世面;CLIP 之所以强大,是因为它吞下了足以绕地球好几圈的图文数据。当时 OpenAI 从互联网上搜集了约 4 亿对图文数据,这些数据可不是精心策划的教科书,而是混杂着表情包、广告图、低分辨率缩略图的“野路子”数据。
4 亿对图文数据是 CLIP 成功的物质基础。此前的研究多使用人工标注的小规模数据集(如 ImageNet 的 128 万张分类图),而 CLIP 直接“薅互联网的羊毛”——从维基百科、社交媒体、新闻网站抓取图片及其附带的文本(如 alt 文本、标题、描述)。这些数据量级比传统数据集大两个数量级,且天然包含丰富的视觉-语言对应关系。虽然存在大量噪声(图片与文本不完全匹配),但惊人的数据量足以弥补质量缺陷。
CLIP 的训练策略也颇具匠心。它采用对比学习目标而非预测式目标,因为前者对噪声数据更鲁棒——即使某对图文的对应关系不完全精确,只要批量中大多数配对正确,模型依然能学到有意义的表征。训练时采用了大规模并行策略:两个塔分别部署在独立的计算设备上,通过梯度同步机制保持一致性。据统计,CLIP 的训练大约消耗了数百张 GPU 卡连续运行数周,这种算力投入在当年是“豪门级”的。
CLIP 的实验也证明了一个重要规律:模型性能与数据规模近似呈幂律关系——数据量翻倍,零样本性能稳定提升。这为后续 GPT-4、Gemini 等多模态大模型的“堆数据”路线提供了信心。
零样本迁移
训练完毕的导盲犬来到一个新的社区,它从来没有在这里生活过,但主人说“找一位穿红衣服的老奶奶”,它依然能出色地完成任务——因为它见过无数种“红色”和“老奶奶”的搭配。CLIP 最令人震撼的能力,正是这种零样本迁移:不需要针对新任务做任何训练,直接就能完成分类、检索等任务。
传统图像分类器的使用方式是“训练—微调—部署”三步走:每遇到一个新类别体系,就要重新标注数据、重新训练模型。而 CLIP 把“分类问题”巧妙地转化为“检索问题”。假设我们要做一个“猫 vs 狗”的二分类器,只需构造两个文本候选:“一张猫的照片”和“一张狗的照片”,分别送入文本塔得到两个文本特征;再把测试图片送入图像塔得到图像特征;最后计算图片特征与两个文本特征的相似度,相似度更高的那个类别就是预测结果:
这种零样本能力的本质是:CLIP 在预训练阶段已经“见过”了海量的(图片,文字)配对,学会了视觉概念与语言符号之间的丰富对应。因此当你给出一个新的文本描述时,它能在语义空间中定位到对应的视觉区域——无需任何梯度更新。在 ImageNet 上,CLIP 的零样本 Top-1 准确率达到 76.2%,与 2016 年有监督训练的 ResNet-50 相当,这在当时引爆了整个研究社区——“无需训练即可分类”从科幻变成了现实。
- 类别提示文本为每个类别 c 构造一个提示文本,如“一张猫的照片”,经文本塔编码为 \( \mathbf{w}_c \)。
- 相似度计算将测试图像编码为 \( \mathbf{v} \),逐一计算它与每个类别文本特征的相似度。
- 取最大值在所有类别中,选择相似度最大的那个类别作为预测结果。
提示学习
同样是导盲犬,有的主人叫它“找红色的球”,它立刻行动;有的主人说“那个圆圆的、红红的东西,帮我叼过来”,它反而犹豫了。可见,指令的表达方式直接影响任务效果。CLIP 的零样本能力也高度依赖于文本提示(Prompt)的措辞——这就是提示学习(Prompt Learning)的用武之地。
用 CLIP 做分类时,“一张{类别}的照片”这样的模板通常效果不错,但有时会出现奇怪的失败案例:把“公共汽车”识别成“拖拉机”。研究者发现,问题的根源往往不在模型本身,而在提示模板没写对。例如,用“一张{类别}的照片”和“一张{类别}的图片”两种模板,效果就有差异。于是,“如何写出更好的提示”成了一门学问。
有效的提示策略包括:1)在类别词前后增加上下文描述,如“一张{类别}的照片,一种常见的物体”;2)集成多个提示模板,把每个模板的预测结果综合投票;3)为类别设计更具体的描述,如“一种毛茸茸的宠物猫”而非笼统的“猫”。在 ImageNet 上,精心设计的提示集成(如 80 个模板投票)比单一简单提示提升约 3-5 个百分点的准确率。
提示学习后续发展出了可学习的软提示(Context Optimization,CoOp),将提示词从人为设计的离散文本替换为可梯度更新的连续向量,进一步将零样本能力升级为少样本能力。不过,无论硬提示还是软提示,其核心思想都源于 CLIP 开创的“将分类转化为图文匹配”范式。对于今天的多模态 AI 工程师而言,掌握提示工程依然是与 CLIP 及其衍生模型协作的基本功。
多模态基石
导盲犬不仅自己聪明,它还能带着其他“服务犬”一起工作。比如帮盲人看路、帮聋哑人做手语翻译、帮独居老人报警——它的视觉能力成了其他服务的“感知底座”。CLIP 在多模态 AI 生态中的地位,正是这种“感知底座”。
CLIP 发布后迅速成为多模态 AI 的基础设施。最广为人知的当属 Stable Diffusion:这个文生图模型使用 CLIP 的文本编码器将用户的文字描述编码为条件向量,引导扩散模型生成匹配语义的图像——没有 CLIP,“画一张'宇航员骑马的油画'”这样的指令将无法被模型理解。此外,CLIP 还广泛用于图文检索(淘宝以图搜图)、图像描述生成(BLIP 等模型初始化视觉编码器用 CLIP)、视觉问答(Flamingo 等模型引入 CLIP 特征)等任务。
CLIP 之所以能成为基石,源于它的三个特性:1)通用性——CLIP 的特征不需要为每个下游任务重新训练;2)多模态对齐——CLIP 打通了视觉与语言两个模态的“巴别塔”;3)可组合性——CLIP 可以作为一个模块插入到更大的系统中,就像乐高积木一样与其他组件灵活拼接。
CLIP 开启了视觉-语言预训练的新范式。此前的视觉模型(如 ResNet)只处理图像,语言模型(如 BERT)只处理文本,而 CLIP 第一次在超大规模上实现了两种模态的统一表征。这一范式深刻影响了后续的 ALIGN、Florence、BEiT-3 等模型,甚至为 GPT-4V、Gemini 等原生多模态大模型铺平了道路。如今,几乎所有多模态系统的架构设计,都在某种程度上延续着“双塔编码 + 对比对齐”的 CLIP 基因。
回顾全文:从双塔编码器的分工协作,到对比学习目标的配对游戏,再到大规模训练的“见多识广”,最后到零样本迁移和提示学习的“灵活应用”——CLIP 用一套简洁优雅的方案,解决了“让机器理解图片和文字关系”这一根本问题。它不仅是视觉-语言预训练的里程碑,更是通往通用人工智能道路上的一块重要路标。
AI 应用场景
智能电商以图搜图
阶段:模型部署与应用
解决的问题:传统以图搜图依赖人工标注商品标签,每上新一个商品类别就要重新训练分类模型,耗时且难以覆盖长尾商品。CLIP 的零样本检索能力让用户可以上传任意图片,直接匹配语义相似的商品。
具体案例:某电商平台接入 CLIP 检索服务:买家上传一张街拍照片中的帆布鞋,系统无需该款鞋的标注数据,直接用 CLIP 计算图片特征与商品库中所有图片特征的余弦相似度,在 200ms 内返回最相似的 20 个商品。即使商品库不断新增品类,也无需重新训练。
内容审核与敏感信息筛查
阶段:模型推理与决策
解决的问题:传统内容审核依赖逐类训练的违规图片分类器,新出现的违规模式(如新型赌博网站截图)需要人工标注后重新训练,响应滞后。CLIP 通过文本提示灵活定义审核规则,实现冷启动审核。
具体案例:某社交平台利用 CLIP 构建审核管线:运维人员用“包含大量现金的图片”“疑似赌博界面的截图”“含有暴力元素的场景”等自然语言提示定义审核规则,CLIP 对新上传图片与这些提示做匹配,命中即触发人工复核。新增审核规则只需写一句提示语,无需训练模型。
文生图模型的条件控制
阶段:模型预训练与条件生成
解决的问题:扩散模型无法直接理解文本语义,需要一种机制将文字指令转化为可引导生成的语义向量。CLIP 的文本塔作为“语义翻译官”,把用户输入翻译成扩散模型能理解的 embedding。
具体案例:Stable Diffusion 等文生图工具将 CLIP 文本编码器作为标准组件:用户输入“一只穿着宇航服的柴犬,赛博朋克风格”,CLIP 文本塔输出 77 个 token 的语义向量序列,作为扩散模型的 cross-attention 条件,引导 U-Net 生成精美的图像。整个生成过程无需针对特定提示做任何微调。
Python 演示
"""CLIP 零样本图像分类演示脚本"""import torchimport clipfrom PIL import Image def load_model(): device = "cuda" if torch.cuda.is_available() else "cpu" model, preprocess = clip.load("ViT-B/32", device=device) return model, preprocess, device def predict_image(model, preprocess, device, image_path, classes): image = preprocess(Image.open(image_path)).unsqueeze(0).to(device) text = clip.tokenize([f"a photo of a {c}" for c in classes]).to(device) with torch.no_grad(): image_features = model.encode_image(image) text_features = model.encode_text(text) image_features /= image_features.norm(dim=-1, keepdim=True) text_features /= text_features.norm(dim=-1, keepdim=True) similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1) return {classes[i]: float(similarity[0][i]) for i in range(len(classes))} def main(): model, preprocess, device = load_model() classes = ["cat", "dog", "bird"] result = predict_image(model, preprocess, device, "test_cat.jpg", classes) for cls, prob in sorted(result.items(), key=lambda x: -x[1]): print(f" {cls}: {prob:.2%}") if __name__ == "__main__": main()
model, preprocess = clip.load("ViT-B/32", device=device)加载 OpenAI 官方开源的 CLIP 模型,ViT-B/32 是图像塔采用 ViT-Base 且 patch 大小为 32 的版本preprocess(Image.open(image_path)).unsqueeze(0)对输入图片做归一化、缩放等预处理后增加 batch 维度,为送入模型做准备clip.tokenize([f"a photo of a {c}" for c in classes])用 prompt 模板构造类别文本并 token 化,这是零样本分类的关键构造,把类别名变成模型能理解的 token 序列model.encode_image(image)双塔中的图像塔前向计算,输出图片的语义特征向量model.encode_text(text)双塔中的文本塔前向计算,输出文本的语义特征向量image_features /= image_features.norm(...)L2 归一化,将向量投影到单位球面,便于计算余弦相似度similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1)计算相似度矩阵并做 softmax,得到每个类别的预测概率(100 为 temperature 缩放)
常见误区
误区CLIP 是一个图像分类模型,就像 ResNet 一样,只是训练数据更大了。我需要用它做分类时,就直接把图片喂给它,它会输出类别标签。
正解CLIP 从根本上是一个“图文匹配”模型,不是分类模型。它做的事情是衡量一张图片和一段文本的语义匹配程度。分类只是它能力的应用方式之一——通过把“分类问题”转化为“图文检索问题”来实现。CLIP 还可以做图文检索、图像描述、特征提取等,分类只是冰山一角。就像导盲犬的核心能力是“理解指令与环境的对应”,而不是“报出物体名称”。
为何常见:绝大多数介绍 CLIP 的文章都以“零样本分类”作为卖点演示,导致初学者误以为 CLIP = 分类器,忽略了它通用的多模态对齐能力。
误区如果类别列表中有一个 CLIP 训练时没见过的概念(比如“太空电梯”),CLIP 一定无法识别它,因为模型没见过这个概念。
正解CLIP 的零样本能力本质上是“组合式理解”。即使“太空电梯”这个短语从未出现在训练集中,CLIP 也能理解“太空”和“电梯”的语义组合,并在语义空间中找到一个对应的区域。就像导盲犬没见过“穿西装的企鹅”,但听到这个描述时,它能分别理解“西装”和“企鹅”,组合出大致的方向。当然,如果某个概念完全超出它的语义覆盖范围,效果会打折扣,但并非完全的黑白分明。
为何常见:人们习惯用传统机器学习“训练集覆盖决定能力边界”的思维来理解零样本,忽视了 CLIP 学到的是连续的语义空间,而非孤立的类别记忆。
误区CLIP 的训练就是让匹配的图文对相似度大、不匹配的相似度小,这和我用余弦相似度做个简单匹配没什么区别。
正解对比损失的精髓在于“与谁比较”——batch 内所有其他图文对都是负样本。这意味着模型不只是要拉近正样本对,还要在 N×N 个组合中学会区分最难的负样本,这样学到的特征辨别力远强于简单的度量学习。此外,温度系数 τ 的调节、双向对称的损失设计,都是 CLIP 成功的关键细节。这就像导盲犬不只是被要求记住“小明一名字”,而是要在满屋子人中认出“小明”,这种“区分”训练让它对每个个体的记忆都格外深刻。
为何常见:post-hoc 角度看,对比学习确实在优化相似度,但忽略了它通过“批内负样本”带来的隐式困难样本挖掘机制,这正是 CLIP 特征高质量的来源。
误区既然 CLIP 声称“无需训练即可分类”,那么提示文本就是走个流程,“猫”、“狗”这种单词直接做文本输入就行了。
正解提示措辞对 CLIP 的零样本性能有显著影响。直接用类别单词做提示,效果通常比“一张{类别}的照片”差 5 个百分点以上。原因在于:CLIP 预训练时看到的图文对中,文本大多是完整的句子描述而非孤立的类别词,所以用一个完整的提示模板能让文本特征更好地落在语义空间中与图片特征对齐的区域。这就好比你对导盲犬下指令时说“球!”和“去把那个红色的球叼回来!”,后者的完成率显著更高。
为何常见:人们常用“自然语言交互”的直觉去理解 CLIP,忽略了它实际是一个“文本分布匹配器”——提示文本的分布越接近预训练时的文本分布,效果越好。
误区CLIP 是 2021 年的老模型了,现在有 GPT-4V、Gemini 这些原生多模态大模型,CLIP 已经是历史产物了。
正解CLIP 开创的“双塔 + 对比学习”范式至今仍是多模态模型的主流架构基因。Stable Diffusion 全系列使用 CLIP 文本编码器,最新的中继扩散模型也继续以 CLIP 变体作为视觉编码器。更关键的是,后续众多多模态大模型(如 LLaVA、MiniGPT-4)的视觉编码器都直接初始化自 CLIP,对比学习的思想也贯穿在多模态大模型的训练目标中。理解 CLIP 是理解现代多模态系统的“钥匙”,而非“博物馆展品”。
为何常见:AI 领域“版本更新”极快,人们容易从模型发布时间判断其价值,忽略了 CLIP 是当前多模态架构的“底层基础设施”这一事实。
面试题
Q1. CLIP 模型的基本架构可以概括为以下哪种?
- A.单塔编码器:文本和图像共享一套参数
- B.双塔编码器:图像塔和文本塔独立编码后对齐← 正确答案
- C.编码器-解码器:图像编码后生成文本
- D.自回归模型:逐像素预测图像
答案:B。CLIP 的架构是典型的双塔(two-tower)设计,图像塔和文本塔各自独立编码,通过对比学习在共享语义空间中对齐。单塔架构是 ALIGN 之前的一些模型设计;编码器-解码器是图像描述等生成任务的架构,不是 CLIP 的主架构;自回归像素预测是 PixelCNN 等生成模型的做法。
Q2. CLIP 的训练数据是什么形式?
- A.人工标注的图像类别标签
- B.从互联网收集的图像-文本对← 正确答案
- C.纯文本语料库
- D.纯视频数据
答案:B。CLIP 使用了从互联网大规模收集的 4 亿对图文对,这些数据是从网页的 alt 文本、标题等地方抓取的,而非人工精心标注的分类标签。这也正是 CLIP 相对于传统视觉模型(如 ImageNet 预训练 ResNet)的核心差异之一——利用天然的图文配对做自监督学习。
Q3. CLIP 实现零样本分类时,核心做法是什么?
- A.训练一个小型分类层并微调模型
- B.将类别名构造为提示文本,与测试图像比对相似度← 正确答案
- C.对测试图像做数据增强后投票
- D.用生成模型重建图像再识别
答案:B。CLIP 零样本分类的核心是“分类转检索”:为每个类别构造提示文本(如“一张猫的照片”),经文本塔编码后与图像塔输出的图像特征计算余弦相似度,取相似度最高的类别作为预测。整个过程不需要任何训练或梯度更新,直接推理即可。
Q4. 在对比损失中,温度系数 τ 的取值较大时(如 τ → 大),会产生什么效果?
- A.softmax 分布更尖锐,模型对难负样本更敏感
- B.softmax 分布更平缓,模型对相似度差异不敏感← 正确答案
- C.梯度消失,模型无法训练
- D.梯度爆炸,训练不稳定
答案:B。温度系数控制着 softmax 输出的“锐度”。τ 较大时,exp(S/τ) 的值被“压平”,所有类别的概率分布更均匀,模型对相似度差异的敏感度降低,这不利于困难负样本的区分;τ 较小时,概率分布更尖锐,类似度高的正样本被放大,模型能更好地区分难样本。但 τ 过小会导致训练不稳定。
Q5. CLIP 的图像塔采用什么结构?
- A.纯 CNN,如 ResNet
- B.全部使用 ViT,且只有唯一版本
- C.ViT 或 ResNet 均可作为图像编码器实现← 正确答案
- D.RNN 加注意力混合结构
答案:C。CLIP 论文原文探索了 ResNet 和 ViT 两种图像编码器,最终发布版本中虽然主要推广了 ViT 系列(如 ViT-B/32、ViT-L/14),但代码库中同样提供了 ResNet 变体(如 RN50、RN101)。因此图像塔既可以用 ViT 也可以用 ResNet。CNN 和 ViT 只是特征提取的骨干网络选择,不影响 CLIP 整体的双塔对比学习框架。
Q6. 关于 CLIP 的对比学习损失,以下说法正确的是哪些?
- A.对角线上的图文对是正样本← 正确答案
- B.批内其他图文组合自然构成负样本← 正确答案
- C.损失只计算“以图找文”方向的准确率
- D.温度系数 τ 是一个可训练的参数
答案:AB。CLIP 在一个 batch 内构造 N 个正样本对(对角线),其余 N²-N 个图文组合作为负样本,通过 InfoNCE 损失最大化正样本的 softmax 概率。损失函数是两个方向(以图找文、以文找图)的对称形式,并非只有单向;温度系数 τ 在训练中是一个可学习的标量参数,但在预训练中是固定值,选项 D 的表述“可训练”不准确(在 CLIP 原文中 τ 是固定常数 0.07),因此正确项为 A、B。
Q7. 提示集成(Prompt Ensembling)为什么能提升 CLIP 的零样本分类准确率?
- A.增加了测试时计算量,通过多次前向传播提升数值精度
- B.多个提示文本在语义空间中覆盖了更广的文本分布,降低了单模板偏差← 正确答案
- C.多个提示文本的平均向量恰好落在类别语义中心
- D.集成操作隐含了新模态的聚合信息
答案:B。CLIP 预训练时看到的文本是各种自然语言表达,如“一张猫的照片”“猫的图片”“一只猫在沙发上”等,而单一模板只覆盖了其中一种表达方式,存在“模板偏差”。多个提示模板集成就让文本特征更全面地覆盖该类别在语义空间中的真实分布,从而更稳定地匹配图像特征。A 是附带效果而非本质原因;C 没有抓住“分布覆盖”的核心;D 说法错误。
Q8. 关于 CLIP 的零样本能力,下列哪些说法是正确的?
- A.零样本分类不需要任何新的训练样本← 正确答案
- B.零样本能力来源于预训练阶段学到的图文语义对齐← 正确答案
- C.CLIP 无法识别预训练中从未出现过的物体类别
- D.提示措辞的质量直接影响零样本效果← 正确答案
答案:ABD。CLIP 的零样本分类本质是图文匹配,不需要新的训练样本(A 对),能力来源于大规模预训练中学习的语义对齐(B 对)。C 错在“无法识别从未出现的物体”——由于预训练覆盖面极广,CLIP 对未见过的类别通常仍有一定的组合式理解能力,并非完全无法识别。D 正确,提示文本的措辞显著影响相似度计算的结果,这也催生了后续的提示学习方向。
Q9. 在 CLIP 的文本编码器输入端,需要调用什么函数对类别描述做预处理?
- A.clip.normalize()
- B.clip.tokenize()← 正确答案
- C.clip.decode()
- D.clip.softmax()
答案:B。clip.tokenize() 是 CLIP 官方 API 中用于将文本字符串转换为模型输入 token 序列的函数。它内部完成了 BPE 分词、padding 到固定长度(77)、token 数值化等工作。clip.normalize() 是特征归一化函数;clip.decode() 是生成式模型的解码操作;clip.softmax 是对相似度概率化的操作,它们在 CLIP 推理流程中各有用途。
Q10. 为什么说 CLIP 是多模态 AI 领域的范式转变?
- A.首次在超大规模上实现了视觉与语言的统一对齐← 正确答案
- B.证明了对比学习可以替代预测式目标训练视觉模型← 正确答案
- C.零样本能力彻底取代了所有下游任务微调
- D.为后续模型(如 Stable Diffusion)提供了文本条件编码基础← 正确答案
答案:ABD。CLIP 在 4 亿图文对上用对比学习实现了视觉和语言的统一表征,这与此前视觉模型(分类训练)和语言模型(掩码预测)分开训练的范式有本质不同(A、B 对)。它零样本能力降低了下游任务对微调的依赖,但并未“彻底取代”微调——在小样本或特定领域任务上,微调仍能显著提升性能(C 错)。Stable Diffusion 的文本条件编码器直接采用 CLIP,说明 CLIP 已成为生成式多模态系统的通用组件(D 对)。