1. 从“看图识字”到“看图说话”:CLIP如何颠覆了传统视觉AI的玩法
如果你玩过AI绘画,或者用过一些“以图搜图”的工具,那你很可能已经间接体验过CLIP的威力了。但你可能不知道,这个听起来有点酷的名字背后,藏着一个彻底改变了计算机视觉游戏规则的想法。在CLIP出现之前,主流的AI视觉模型,比如我们熟知的那些在ImageNet大赛上拿高分的模型,本质上都是“看图识字”的高手。它们被训练来识别一千种、一万种固定的东西,比如猫、狗、汽车。但问题是,世界上的东西何止一万种?想让模型认识一个新东西,比如“一只戴着墨镜的柯基犬”,对不起,你得重新去找成千上万张“戴墨镜的柯基犬”的图片,一张张打好标签,然后重新训练模型。这个过程又贵又慢,而且模型学到的知识非常“死板”。
CLIP做了一件听起来很简单,但效果极其震撼的事情:它让AI学会了“看图说话”,更准确地说,是学会了“图文配对”。它的训练数据不是“图片+类别标签”,而是“图片+一段描述它的自然语言”。想象一下,你给一个小孩看无数张配有文字说明的图片,他自然而然就能把图像和文字联系起来。CLIP干的就是这个事。它从互联网上抓取了足足4亿张图片和对应的文字描述(比如新闻配图、商品介绍图),然后只学习一个任务:判断哪段文字和哪张图片是配对的。就这么一个简单的任务,训练出来的模型,居然能直接看懂用文字描述的新任务,并且完成得相当不错。这就是所谓的“零样本”能力——模型没见过你给的任务和数据,但它就是会做。
我第一次看到CLIP的论文时,感觉就像当年看到GPT-3一样震撼。在自然语言处理领域,GPT-3已经展示了“预训练大模型+提示词”就能完成各种任务的魔力。CLIP则把这种魔力带到了视觉领域。它不再需要为每个视觉任务单独收集数据、训练模型,而是提供了一个通用的“视觉理解引擎”。你只需要用自然语言告诉它你想干什么,比如“找出所有包含微笑人脸的照片”,或者“把卫星图片里的农田标出来”,它就能给出结果。这种范式的转变,让AI视觉应用的开发门槛和成本大大降低,也让我们离“通用人工智能”的愿景更近了一步。
2. 化繁为简:CLIP的核心秘诀——对比学习与海量图文对
CLIP的成功,秘诀在于两点:一个极其巧妙且高效的学习目标,和一个前所未有的海量、高质量数据集。我们先来拆解一下它的学习目标,也就是对比学习。
2.1 为什么是“对比”,而不是“生成”?
在CLIP之前,也有很多研究尝试连接图像和文本。一个很自然的想法是让模型“生成”描述图像的文本,也就是做图像描述。但这有个大问题:生成任务计算成本太高了。对于每张图片,模型需要逐词生成一整段话,这个过程非常缓慢,严重限制了训练数据的规模和模型的扩展性。
CLIP的团队换了一个思路:我们不要求模型“说出”图片里有什么,只要求它能“判断”哪段话和哪张图是一起的。这就像玩一个“连连看”游戏。训练时,模型会同时看到一批图片和一批文本。它的任务不是去生成某个文本,而是计算所有图片和所有文本之间的相似度,然后找出正确的配对。具体来说,模型包含两个编码器:一个图像编码器(可以是ResNet或Vision Transformer)把图片变成向量,一个文本编码器(一个Transformer)把文字描述变成向量。然后,模型的目标是让配对(图片,文本)的向量在语义空间里尽可能接近,而不配对的则尽可能远离。
我实测过,这种对比学习的目标函数,计算效率比生成式目标高出好几倍。这意味着我们可以用同样的计算资源,处理多得多得多的数据。而数据,正是AI模型性能飞跃的关键燃料。
2.2 WIT数据集:从互联网的“噪音”中淘金
巧妇难为无米之炊。有了高效的算法,还需要海量的燃料。CLIP使用的数据集叫WIT,包含了从互联网上收集的4亿个(图像,文本)对。这个规模在当时是空前的。
但互联网数据鱼龙混杂,图片可能模糊,文字可能是无关的广告或者错误的标题。CLIP团队在构建WIT时下了很多功夫来保证质量。他们不是随机抓取,而是设计了一套聪明的查询策略,基于维基百科的高频词、文章标题等来源,确保抓取到的图文对在语义上是高度相关的。同时,他们也做了大量的过滤工作,比如去掉那些文件名是自动生成的、文本过于简短的配对。
这个数据集的构建本身就是一个巨大的工程成就。它证明了从互联网这种非结构化的、带有“噪音”的数据中,完全可以学习到高质量、通用的视觉-语言知识。这打破了“高质量AI必须依赖昂贵人工标注”的迷信,为后续的大模型研究开辟了一条新路。
2.3 模型架构的双塔设计
CLIP的模型架构被称为“双塔”架构,非常清晰。图像和文本分别通过各自的编码器塔进行处理,最终被映射到一个共同的“多模态嵌入空间”。在这个空间里,语义相近的图片和文本,它们的向量表示就会靠得很近。
- 图像编码器:论文里探索了多种 backbone,从经典的ResNet(及其放大版RN50x4, x16, x64)到当时新兴的Vision Transformer。结果发现,ViT在计算效率上更有优势,最终最好的CLIP模型是基于ViT-L/14的。
- 文本编码器:一个相对标准的Transformer模型,参数大约6300万。它会把一段文本(比如“一张狗在公园里玩耍的照片”)编码成一个固定长度的向量。
训练完成后,这个双塔模型就固定了。进行零样本推理时,流程非常优雅:你把所有可能的类别名称(比如“贵宾犬”、“金毛”、“柯基”)通过文本编码器变成一堆文本向量;再把待分类的图片通过图像编码器变成一个图片向量;最后,计算图片向量和每一个文本向量的余弦相似度,相似度最高的那个文本标签,就是模型的预测结果。整个过程,模型参数没有丝毫改动,完全是通过预训练学到的通用知识来应对新任务。
3. 零样本的魔法:CLIP在下游任务中的惊艳表现
论文最让人兴奋的部分,就是CLIP在超过30个完全不同类型的计算机视觉数据集上进行的“零样本”评测。这就像让一个从来没学过医学的人去参加医学考试,结果他考得还不赖,甚至比一些专业学生还好。我们挑几个有代表性的领域看看。
3.1 通用与细粒度物体识别:匹敌全监督模型
最著名的 benchmark 当然是ImageNet。CLIP的零样本准确率达到了76.2%。这个数字有什么意义?它恰好匹配了当年需要128万张人工标注图片、从头训练出来的ResNet-50模型的性能。也就是说,CLIP没用过ImageNet的一图一标,就达到了专用模型的效果。这已经足够惊人。
但在一些更细粒度的分类任务上,CLIP的优势更明显。比如在Stanford Cars数据集(识别196种车型)上,CLIP零样本比全监督的ResNet-50高了近29个百分点。在Food-101(101种食物)上,高了22.5个百分点。这说明,互联网上丰富的、包含细节描述的图文数据(比如“一辆2012款特斯拉Model S的侧前方视图”、“一盘撒了罗勒叶的意大利肉酱面”),让CLIP学到了比传统“狗-类别ID152”这种干瘪标签丰富得多的视觉概念。
3.2 超越分类:OCR、动作识别与地理定位
CLIP的能力远不止于认东西。因为它从自然语言中学习,而语言天然包含动作、场景、数字、地点等信息,所以它也能处理一些传统上需要专门模型的任务。
- OCR(光学字符识别):在一个由渲染文本组成的SST-2数据集变体上,CLIP表现很好。这是因为训练数据里包含了大量带有数字、文字的网页截图和梗图。不过,对于手写数字(MNIST),它的表现就不如简单的逻辑回归模型了,因为互联网上手写图片相对较少。这恰恰说明了模型的能力边界由其训练数据决定。
- 动作识别:在Kinetics-700(700种人类动作)和UCF-101(101种动作)数据集上,CLIP的零样本准确率大幅超越之前的全监督基线。这是因为文本描述中充满了“一个人在跑步”、“两个人在跳舞”这样的动词短语,让模型学会了关联视觉动态和动作词汇。
- 地理定位:在一个根据图片判断国家的任务(Country-211)上,CLIP展现出了令人意外的能力。它能通过建筑风格、植被、车牌、街景等线索进行推断。这完全是从海量带有地理标签的图片数据中“涌现”出来的能力。
这些结果共同表明,通过自然语言进行监督,模型学到的是一种更通用、更语义化的视觉表示。它不再仅仅是一个“物体检测器”,而更像是一个初步的“视觉理解系统”。
3.3 鲁棒性:零样本反而更“稳”?
论文中一个非常深刻且反直觉的发现是:CLIP的零样本模型,比在特定数据集上微调后的同一个CLIP模型,在面对分布外数据时更加鲁棒。
他们做了一组实验,在ImageNet上,把零样本的CLIP通过线性探测(只训练一个分类头)进行微调,ImageNet的准确率从76.2%提升到了85.4%,这很正常。但是,当把这个微调后的模型和零样本模型一起放到七个分布偏移的数据集(比如素描风格的ImageNet-Sketch、对抗性样本ImageNet-A)上测试时,神奇的事情发生了:微调模型在分布偏移数据上的性能几乎没有提升,有时甚至下降,而零样本模型的表现始终很稳定。
这意味着什么?传统全监督模型在追求ImageNet高分时,很可能学到了一些数据集特有的“捷径”或虚假关联(比如背景、水印)。而零样本模型因为无法利用这些特定数据集的“捷径”,被迫去学习更本质、更通用的视觉特征,因此泛化能力更强。这个发现对我们如何评估和追求模型性能提出了重要质疑:一味刷高某个数据集的分数,可能是在走向过拟合的歧途。
4. 提示词工程:让CLIP“听懂人话”的关键技巧
虽然CLIP有了零样本能力,但怎么“问”它,才能让它发挥出最佳水平呢?这就引出了在NLP领域大名鼎鼎,在视觉领域由CLIP普及开来的技术——提示词工程。
4.1 从“狗”到“一张狗的照片”
直接输入类别词“dog”和输入“a photo of a dog”,效果可能天差地别。因为CLIP是在图文对数据上训练的,而互联网上的描述大多是完整的句子。所以,给模型提供一个更接近其训练时看到的文本格式,能显著提升性能。
论文里做了一个简单的对比:在ImageNet上,使用“{类别名}”作为提示词,准确率是69.3%;而使用“a photo of a {类别名}.”,准确率提升到了70.6%。别小看这1.3%,在大规模基准上这是很大的进步。这告诉我们,和CLIP沟通,要尽量用“人话”,用完整的、描述性的句子。
4.2 为不同任务“定制”提示词
更进一步,我们可以根据任务特性来设计提示词模板,这能带来更大的收益。
- 细粒度分类:对于区分不同品种的狗,可以加上类别信息来消除歧义。例如,对于“boxer”(拳师犬),使用“a photo of a boxer, a type of dog.”就比“a photo of a boxer.”好得多,因为后者也可能被理解为“拳击手”。
- 卫星图像:对于遥感图像分类,使用“a satellite photo of a {label}.”显然比通用模板更贴切。
- OCR任务:如果想识别图片中的数字,可以设计为“a photo of the number: \”{number}\”.”,把数字用引号括起来,强调文本内容本身。
我在实际项目中就深有体会。有一次我们需要用CLIP对商品图片进行零样本分类,直接使用类别名效果很一般。后来我们分析了商品标题的常见句式,设计了如“a product photo of {category}, {description}”这样的模板,并加入了关于颜色、材质等属性的描述词,模型的分类准确率立刻上了一个台阶。
4.3 提示词集成:人多力量大
单个提示词可能不够全面。“一张狗的照片”和“一只可爱的狗”可能描述了同一张图的不同侧面。CLIP论文采用了一种聪明的方法:提示词集成。
具体做法是,预先定义好几十个甚至上百个不同的提示词模板,比如:
- “a photo of a {label}.”
- “a bad photo of a {label}.”
- “a sculpture of a {label}.”
- “a black and white photo of the {label}.”
- “a cartoon {label}.”
对于每个类别,都用所有这些模板生成对应的文本描述,然后分别用文本编码器得到向量,最后把这些文本向量的平均值作为该类别的最终文本表示。注意,这是在向量空间平均,而不是在预测概率上平均。这种方法在ImageNet上带来了额外的3.5%准确率提升。
这背后的思想是,通过集成多个视角的文本描述,可以得到一个更稳健、更全面的类别语义表示,减少了因单个提示词表述不当带来的偏差。这招非常实用,几乎成了使用CLIP进行零样本分类的标准操作。
5. 光环下的阴影:正视CLIP的局限性与潜在风险
CLIP的强大毋庸置疑,但作为一个负责任的技术人,我们必须清醒地看到它的局限性和它可能带来的社会影响。论文本身也花了大量篇幅讨论这些,这非常值得赞赏。
5.1 能力边界:它不擅长什么?
CLIP并非万能。它在某些类型的任务上表现明显不佳,这揭示了其学习机制的边界:
- 抽象与系统化推理:比如在CLEVR数据集上让模型“数数”,CLIP的表现接近随机。因为它学习的是图像和文本的统计关联,而非真正的逻辑推理。
- 专业领域知识:在需要专业知识的任务上,如医学影像分析(PatchCamelyon的肿瘤检测)、卫星图像地物分类(EuroSAT),CLIP的零样本能力有限。因为互联网上这类高质量、带精确描述的图文对相对稀少。
- 精细的空间与3D理解:估计物体的深度或精确距离(如KITTI数据集),CLIP也力不从心。自然语言描述很少包含精确的量化空间信息。
- 数据效率与少样本学习:虽然零样本很强,但CLIP的少样本学习能力(给几张示例图)却出人意料地弱,甚至可能不如零样本。这与人类恰恰相反——人类看一个例子就能举一反三。这说明CLIP的学习方式与人类仍有本质不同。
5.2 社会影响:偏见与滥用风险
CLIP从互联网数据中学习,也必然继承了互联网数据中的社会偏见。论文通过一系列实验清晰地揭示了这一点:
- 种族与性别偏见:在一个面部分析实验中,CLIP将黑人、中东人图像错误分类为“动物”或“罪犯”相关标签的比例,显著高于其他族群。更令人担忧的是,对于年轻面孔(0-20岁),有相当比例被关联到犯罪标签,而在提示词中加入“child”后,这一比例大幅下降。这说明模型的判断极度依赖于上下文(提示词)。
- 职业与外表刻板印象:当对国会议员照片进行描述时,CLIP倾向于将女性与“保姆”、“管家”等标签关联,将男性与“高管”、“医生”关联。对女性的描述更多关注头发颜色等外貌特征,而对男性的描述则更多关注衣着。
- 监控与隐私担忧:论文测试了CLIP在监控场景下的零样本能力。虽然粗粒度场景分类还行,但细粒度识别(如特定的人或小物体)效果不佳。然而,随着模型不断改进,这种完全零样本、无需针对目标人物进行任何训练就能进行一定程度识别的能力,本身就构成了潜在的隐私风险。
这些发现至关重要。它们提醒我们,部署如此强大的模型时,必须配套进行严格的偏见检测、红队测试,并制定明确的使用准则和限制。技术是中立的,但技术的应用永远不是。
6. 从CLIP出发:技术演进与生态发展
CLIP如同一块巨石投入湖中,激起了视觉-语言多模态领域的层层涟漪。它不仅是一个优秀的模型,更是一个开创性的研究范式。
6.1 技术路线的演进与分支
CLIP的成功验证了“大规模图文对比学习”这条路径的可行性,后续工作在此基础上不断深化和拓展:
- 规模与效率的竞赛:开源社区发起了OpenCLIP项目,用更大的数据集(如LAION-5B,50亿图文对)训练了更多版本的CLIP,在一些任务上超越了原始CLIP。同时,如何用更少的数据、更小的模型达到类似效果,也是一个活跃的研究方向。
- 从“对比”到“生成”:CLIP只做判别(对比),不做生成。OpenAI的DALL-E系列则将CLIP与生成模型(如扩散模型)结合,实现了从文本生成图像。CLIP在这里扮演了“裁判”角色,为生成的图像提供语义对齐度的评估,引导生成过程。
- 架构融合与统一:后续模型如Flamingo、BLIP等,探索了更紧密的视觉-语言融合架构,不再是CLIP简单的双塔编码后计算相似度,而是让视觉和语言特征在模型的深层进行交互,在处理视觉问答、图像描述等需要深度推理的任务上表现更好。
- 多语言与专业化:出现了Chinese-CLIP等针对特定语言的优化版本。也有研究将CLIP应用于特定垂直领域,通过领域数据继续预训练或微调,以提升其在医疗、遥感等专业场景的性能。
6.2 催生的应用生态
CLIP的直接应用和其衍生技术已经渗透到众多产品中:
- 创意与设计工具:AI绘画工具(如Midjourney、Stable Diffusion)的核心之一就是使用CLIP或类似模型来理解用户的文本提示词,并评估生成图像与提示词的一致性。图像编辑工具也利用CLIP实现“基于文本的编辑”。
- 智能搜索与推荐:电商平台可以用CLIP实现更精准的“以图搜物”或“用文字搜图”,因为CLIP能理解“复古风格的碎花连衣裙”这种复杂查询。内容平台可以用它来理解视频或图片的内容,进行更细粒度的标签和推荐。
- 内容审核与管理:可以快速对海量图片、视频进行零样本的违规内容筛查,例如识别暴力、色情或特定违禁品,尽管需要注意其偏见问题。
- 机器人与自动驾驶:为机器人提供基于自然语言的视觉指令理解能力,比如“请把那个红色的杯子拿过来”。在自动驾驶中,可以辅助理解复杂的交通场景描述。
CLIP的价值,在于它提供了一个强大、易用的“视觉语义接口”。任何需要将像素信息与人类语言连接起来的场景,都可能成为CLIP的用武之地。它降低了多模态应用开发的门槛,让研究者、开发者能更专注于任务本身,而不是从零开始构建视觉基础模型。从“看图识字”到“看图说话”,CLIP不仅重塑了视觉模型的泛化边界,更开启了一个用自然语言自由驱动视觉智能的新时代。