CLIP#
CLIP 是什么#
CLIP 全称是 Contrastive Language-Image Pre-training,是 OpenAI 在 2021 年提出的图文对比学习模型。
它的目标很简单但影响很大:让模型通过自然语言监督学会理解图片。
传统图像分类模型通常需要人工标注好的类别,例如 ImageNet 里的 cat、dog、car。CLIP 不再只依赖固定类别标签,而是用互联网上的大规模图文对进行训练。
训练完成后,CLIP 可以把图片和文本放到同一个语义空间里:
一张狗的图片会靠近文本
a photo of a dog。一张机械臂图片会靠近文本
a robot arm on a table。不相关的图片和文本会距离更远。
为什么提出 CLIP#
CLIP 主要解决传统视觉模型的两个问题。
固定类别限制#
传统分类模型只能识别训练时定义好的类别。如果训练集只有 1000 类,模型输出空间也通常只有这 1000 类。
但真实世界是开放的。机器人看到的物体、场景、任务描述不会只落在固定标签里。例如:
a transparent mug
a dirty sponge near the sink
the object used for cutting paper
这些描述很自然,却不一定是标准分类标签。
CLIP 用自然语言作为监督,让模型可以通过文本描述进行开放词汇识别。
人工标注成本高#
人工标注图像类别成本很高,而且标签表达能力有限。网络上已经有大量图片和文字天然配对,例如网页图片和 alt-text、标题、说明文字等。
CLIP 的思路是:这些图文对虽然有噪声,但规模足够大,可以提供强大的弱监督信号。
核心技术讲解#
双塔结构#
CLIP 有两个编码器:
Image Encoder:把图片编码成一个向量。
Text Encoder:把文本编码成一个向量。
两个向量会被放到同一个空间里比较相似度。越匹配的图文,相似度越高。
对比学习#
假设一个 batch 里有 N 张图片和 N 条文本,每张图片都有对应文本。CLIP 会计算所有图片和所有文本之间的相似度,得到一个 N x N 的矩阵。
矩阵对角线是正确匹配:
image_1 <-> text_1
image_2 <-> text_2
image_3 <-> text_3
其它位置是不匹配组合。训练目标就是:
拉近正确图文对。
推远错误图文对。
这个过程不需要人工定义类别,只需要图文配对数据。
Zero-shot 分类#
CLIP 最出名的能力之一是 zero-shot 分类。
例如要判断一张图片是猫、狗还是杯子,可以把类别写成自然语言 prompt:
a photo of a cat
a photo of a dog
a photo of a cup
然后分别计算图片向量和这些文本向量的相似度,最相似的文本就是预测结果。
这也是 CLIP 对后续开放词汇检测、图文检索、多模态大模型非常重要的原因。
和具身智能的关系#
具身智能需要处理开放环境,而开放环境里有很多“没见过但能描述”的东西。
例如机器人可能接到指令:
pick up the shiny metal object next to the keyboard
这不是一个固定类别标签,而是一个语言描述。CLIP 提供了一种基础能力:把视觉内容和语言描述对齐,使模型能够根据文本在图像中寻找语义相关的对象。
很多机器人系统会用 CLIP 做:
语言目标和视觉区域的匹配。
开放词汇物体识别。
图像检索和场景理解。
作为 VLM/VLA 模型的视觉语言预训练基础。
CLIP 的局限#
CLIP 很强,但不能把它理解成“万能视觉模型”。
它擅长全局语义匹配,但对精细空间关系不一定可靠。
它不直接输出动作。
它训练自网络图文数据,可能继承数据偏差。
对机器人操作来说,还需要结合检测、分割、深度、状态估计和控制策略。
小结#
CLIP 的核心思想是:用图文对比学习,把图片和自然语言放进同一个语义空间。
它让视觉模型从封闭类别走向开放语言描述,是现代多模态模型和具身智能视觉语义理解的重要基础。
参考#
Radford et al., Learning Transferable Visual Models From Natural Language Supervision, 2021.