(技术解析)CLIP:如何用自然语言监督重塑视觉模型的零样本泛化边界
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-101101种食物上高了22.5个百分点。这说明互联网上丰富的、包含细节描述的图文数据比如“一辆2012款特斯拉Model S的侧前方视图”、“一盘撒了罗勒叶的意大利肉酱面”让CLIP学到了比传统“狗-类别ID152”这种干瘪标签丰富得多的视觉概念。3.2 超越分类OCR、动作识别与地理定位CLIP的能力远不止于认东西。因为它从自然语言中学习而语言天然包含动作、场景、数字、地点等信息所以它也能处理一些传统上需要专门模型的任务。OCR光学字符识别在一个由渲染文本组成的SST-2数据集变体上CLIP表现很好。这是因为训练数据里包含了大量带有数字、文字的网页截图和梗图。不过对于手写数字MNIST它的表现就不如简单的逻辑回归模型了因为互联网上手写图片相对较少。这恰恰说明了模型的能力边界由其训练数据决定。动作识别在Kinetics-700700种人类动作和UCF-101101种动作数据集上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的肿瘤检测、卫星图像地物分类EuroSATCLIP的零样本能力有限。因为互联网上这类高质量、带精确描述的图文对相对稀少。精细的空间与3D理解估计物体的深度或精确距离如KITTI数据集CLIP也力不从心。自然语言描述很少包含精确的量化空间信息。数据效率与少样本学习虽然零样本很强但CLIP的少样本学习能力给几张示例图却出人意料地弱甚至可能不如零样本。这与人类恰恰相反——人类看一个例子就能举一反三。这说明CLIP的学习方式与人类仍有本质不同。5.2 社会影响偏见与滥用风险CLIP从互联网数据中学习也必然继承了互联网数据中的社会偏见。论文通过一系列实验清晰地揭示了这一点种族与性别偏见在一个面部分析实验中CLIP将黑人、中东人图像错误分类为“动物”或“罪犯”相关标签的比例显著高于其他族群。更令人担忧的是对于年轻面孔0-20岁有相当比例被关联到犯罪标签而在提示词中加入“child”后这一比例大幅下降。这说明模型的判断极度依赖于上下文提示词。职业与外表刻板印象当对国会议员照片进行描述时CLIP倾向于将女性与“保姆”、“管家”等标签关联将男性与“高管”、“医生”关联。对女性的描述更多关注头发颜色等外貌特征而对男性的描述则更多关注衣着。监控与隐私担忧论文测试了CLIP在监控场景下的零样本能力。虽然粗粒度场景分类还行但细粒度识别如特定的人或小物体效果不佳。然而随着模型不断改进这种完全零样本、无需针对目标人物进行任何训练就能进行一定程度识别的能力本身就构成了潜在的隐私风险。这些发现至关重要。它们提醒我们部署如此强大的模型时必须配套进行严格的偏见检测、红队测试并制定明确的使用准则和限制。技术是中立的但技术的应用永远不是。6. 从CLIP出发技术演进与生态发展CLIP如同一块巨石投入湖中激起了视觉-语言多模态领域的层层涟漪。它不仅是一个优秀的模型更是一个开创性的研究范式。6.1 技术路线的演进与分支CLIP的成功验证了“大规模图文对比学习”这条路径的可行性后续工作在此基础上不断深化和拓展规模与效率的竞赛开源社区发起了OpenCLIP项目用更大的数据集如LAION-5B50亿图文对训练了更多版本的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不仅重塑了视觉模型的泛化边界更开启了一个用自然语言自由驱动视觉智能的新时代。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2408998.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!