4.3.1 图文对比学习(CLIP 思路)
这一小节的核心,是回答一个问题:怎样让“看图的网络”和“读字的网络”学会在同一个语义空间里对齐? CLIP 是目前最经典、也最具工程价值的方案之一。
4.3.1.1 CLIP 模型
(1)整体思想:从“标签分类”到“自然语言监督” 传统视觉模型用“狗 / 猫 / 车”这类固定标签做监督;CLIP(Contrastive Language–Image Pretraining)反其道而行:
- 不再依赖人工标注的有限类别,而是使用海量互联网图像及其自然语言描述(标题、alt 文本等)作为监督信号。
- 模型的任务不是“这张图是第几类”,而是“在一堆文本说明里,哪一句最有可能描述这张图?”——这是一个图文对齐问题 。
(2)模型结构:双编码器 + 共享嵌入空间 CLIP 采用一个图像编码器和一个文本编码器,两者结构可以各自选择合适的 backbone:
- 图像编码器(Image Encoder)
- 典型选择:ResNet 系列或 ViT(Vision Transformer)。
- 输入图像 → 一系列卷积 / Transformer 层 → 得到一个全局图像向量(通过全局池化或 [CLS] token)。
- 文本编码器(Text Encoder)
- 采用 Transformer 结构(与 2.4 节介绍的类似),先做子词分词(如 BPE),再输入到多层 self-attention 中。
- 使用句子末尾的特殊 token(如 [EOS])的隐藏状态作为整段文本的向量表示。
- 投影与归一化
- 两个编码器最后都接一个线性投影层,将图像和文本映射到同一维度的向量空间(例如 512 维)。
- 对向量做 L2 归一化,用余弦相似度 衡量图文之间的语义相似。
【图 4.3-1 占位:CLIP 结构示意图——左边是图像编码器(ResNet/ViT),右边是文本编码器(Transformer),二者输出向量被映射到同一嵌入空间,中间通过相似度矩阵和对比损失训练。】
(3)零样本分类与“提示工程” 预训练完成后,CLIP 不需要再单独训练分类头,就能做零样本图像分类:
- 给定一个分类任务(如 ImageNet 的 1000 类),先为每个类别写一句自然语言提示,例如“a photo of a dog”,“a photo of a cat”。
- 用文本编码器编码这些类别描述;用图像编码器编码一张测试图像。
- 比较图像向量与每个类别文本向量的相似度,选相似度最大的类别作为预测。
从机器人角度看,这等价于让机器人用“语言标签”来理解视觉概念:后续在 VLA 模型中,可以通过调整文本提示来改变机器人对环境的“分类方式”,而不必重新训练整个视觉网络。
4.3.1.2 图文对齐训练
(1)对比学习直觉:拉近正样本、推远负样本 对比学习(contrastive learning)的核心思想很简单:
- 对于一对真实匹配的图像–文本(I, T),希望它们在嵌入空间的距离尽可能近;
- 对于不匹配的图像–文本对,则希望距离尽可能远。
在 CLIP 中,“负样本”来自同一个 mini-batch 内的其它图文对,无需额外标注,这使得训练可以扩展到数亿规模的图文对。
(2)InfoNCE / 对比损失形式 设一个 batch 内有 \(\displaystyle N\) 对图文样本 \(\displaystyle (I_i, T_i)\),记图像 / 文本编码器输出的向量为 \(\mathbf{v}_i, \mathbf{u}_i\),相似度 \(s_{ij} = \cos(\mathbf{v}_i, \mathbf{u}_j)\)。
- 图像→文本方向的对比损失(每张图必须“认出”自己的文本):
\[ L_{\text{img}} = -\frac{1}{N}\sum_{i=1}^{N} \log \frac{\exp(s_{ii}/\tau)}{\sum_{j=1}^{N}\exp(s_{ij}/\tau)} \]
- 文本→图像方向的对比损失(每段文本也必须“认出”自己的图像):
\[ L_{\text{text}} = -\frac{1}{N}\sum_{i=1}^{N} \log \frac{\exp(s_{ii}/\tau)}{\sum_{k=1}^{N}\exp(s_{ki}/\tau)} \]
- 总损失 \(L = \frac{1}{2}(L_{\text{img}} + L_{\text{text}})\),其中 \(\tau\) 为温度参数,控制相似度分布的“尖锐程度”。
解释成自然语言就是:每张图要在所有文本中找到“唯一正确的一句”,每段文本也要在所有图中找到“唯一对应的一张”,并且错配要被严重惩罚。
(3)负样本规模与变体
- batch 越大,“负样本”越多,对比学习效果越好,因此 CLIP 采用大 batch 训练。
- 后续工作在 CLIP 基础上加入检索增强 或局部区域–文本对齐,提升精细对齐能力,例如 RA-CLIP 引入在线检索增强特征,CLOC 通过 region-text 对比改善定位能力等。
对机器人而言,精细的区域–文本对齐可以帮助模型区分“桌子上的红杯子”和“地板上的红杯子”,为精准操作打基础。
4.3.1.3 用途
CLIP 训练出的图文对齐表征,已经成为多模态世界的“通用货币”,下游可以有多种使用方式:
(1)零样本 / 少样本视觉识别
- 通过不同文本提示,实现开放类别分类,例如“一个工业机械臂”“一个吸尘机器人”“一个桌面场景”等。
- 在机器人应用中,可用自然语言直接定义新类别,而不必收集专门数据集重新训练分类器。
(2)跨模态检索与语义搜索
- 以图找文:给一个场景图片,检索最匹配的文本描述或说明文档;
- 以文找图:给一句指令或描述,检索相应的图像 / 视频片段,例如“人把杯子放进微波炉”的示范视频。 这类检索能力为后续“从视频库中检索相似示教轨迹供机器人模仿”提供了基础。
(3)作为下游模型的“语义模块”
- 文本到图像生成模型中,CLIP 可以作为评估器 / 奖励模型,引导生成结果与文本更匹配。
- 在大规模 VLM/VLA 中,CLIP 式图文对齐常被用作预训练第一阶段,为后续更复杂的多模态推理打基础。
(4)对机器人具身智能的意义
- 将“看到的像素”映射到与“语言”共享的语义空间,是让机器人理解人类指令和环境语义的第一步。
- 只要图像与语言在表征空间中可计算相似度,后面就可以自然地加入“动作”这一模态,形成视觉–语言–动作一体的 VLA 模型(第 8 章会展开)。
4.3.2 图文检索、VQA、图像字幕等任务
在具身智能之前,视觉–语言模型最典型的评测任务主要是三类:图文检索、视觉问答(VQA)、图像描述(Image Captioning) 。它们覆盖了“检索、理解、生成”三种能力维度,也会在机器人场景中以各种形式出现。
【图 4.3-2 占位:多模态任务一览图——上:以文找图 / 以图找文;中:VQA(图像 + 问题 → 文本答案);下:Image Captioning(图像 → 描述句子)。】
4.3.2.1 图文检索
(1)任务定义 图文检索(Image–Text Retrieval)包含两个方向:
- 文本检索图像(Text→Image):给定一句文本描述,检索与之最匹配的图像(例如在图库中找到“机器人把碗放进柜子”的画面)。
- 图像检索文本(Image→Text):给定一张图像,在文本库中找出最相关的说明文、操作步骤等。
在机器人系统中,这可以被用来从大规模操作视频 / 示教库中检索相似场景与动作脚本 。
(2)实现路径:双编码器 + 相似度搜索
- 使用类似 CLIP 的双编码器结构,将所有图像和文本编码为向量,并归一化。
- 检索时,仅需计算查询向量与数据库向量的余弦相似度,使用向量检索库(如 FAISS)实现高效近邻搜索。
- 对需要更精细语义匹配的场景,可先用双编码器快速召回,再用单流或交叉注意力模型重排序(re-ranking)。
(3)评价指标与数据集
- 常用指标:Recall@K(R@1/5/10)、mAP 等,与第 3 章目标检测指标类似但针对检索任务。
- 典型数据集:MS-COCO、Flickr30k 等,提供图像和多句描述,用于训练和评测检索能力。
4.3.2.2 VQA(视觉问答)
(1)任务定义与特点 视觉问答(Visual Question Answering, VQA)指:给定一张图像和一个自然语言问题,让模型输出一个自然语言答案。
- 问题可以是事实类:“桌子上有几个杯子?”
- 也可以是关系类:“红色杯子在碗的左边还是右边?”
- 甚至是知识类:“这个工具通常用来做什么?”(需要结合外部世界知识,OK-VQA 等数据集便属于此类)。
(2)模型结构 典型 VQA 模型包含三部分:
- 视觉编码:用 CNN/ViT 把图像编码成特征图或对象级特征(如检测框 + ROI 特征)。
- 语言编码:用 RNN/Transformer 编码问题文本。
- 多模态融合与回答解码:
- 早期做法:把图像向量和问题向量简单拼接,然后用 MLP 分类固定答案集合。
- 现代做法:使用单流或带 cross-attention 的 Transformer,在 token 层进行细粒度对齐,最后输出答案 token(可以是分类,也可以自由生成)。
(3)与机器人场景的联系 在具身机器人中,VQA 形式的能力可以用来:
- 做状态查询:例如“抽屉现在是开着的还是关着的?”、“桌上还有脏碗吗?”
- 做诊断与解释:机器人执行前,先问自己“目标物体是否可见?”、“是否存在障碍物挡住路径?”让高层策略更稳健。
后续在 VLA 章节,可以把 VQA 视为“对当前视觉观测的语言推理子模块”。
4.3.2.3 图像描述(Image Captioning)
(1)任务定义 图像描述(Image Captioning)要求模型根据输入图像生成一段自然语言描述,既要覆盖主要物体,也要体现关系和场景语义。
- 简单描述: “一个机器人站在桌旁。”
- 更丰富的描述: “一台白色机械臂正从桌上的蓝色盒子里取出一只杯子。”
(2)典型架构:编码器–解码器
- 编码器(视觉):CNN 或 ViT,将图像映射为特征向量或特征序列。
- 解码器(语言):RNN 或 Transformer,自回归地逐词生成描述文本。
- 训练目标:
- 主流是序列交叉熵损失(teacher forcing,下一个词预测)。
- 有时还会结合 RL 方法,直接优化 BLEU、CIDEr 等评价指标。
新近工作还提出“全景式描述(Panoptic Captioning)”,试图用一段文本尽可能完整覆盖图中所有物体、关系和属性,使图像与文本更接近“信息等价”。
(3)在机器人中的作用
- 环境汇报 / 日志生成:机器人可以用自然语言描述当前看到的场景,为人类提供可读日志,例如“我已经把三个碗放进洗碗机,还剩一个在桌角”。
- 辅助 VQA 与规划:先将图像转为文字摘要,再交给强大的文本 LLM 做复杂逻辑推理(这种“先描述再推理”的方案在 OK-VQA 等任务中表现良好)。
【图 4.3-3 占位:图像描述架构示意图——左侧图像编码器输出特征,右侧语言解码器按时间步生成描述 token。】
4.3.3 视觉–语言大模型(VLM)的结构(联合 / 解耦)
视觉–语言模型(Vision-Language Model, VLM)指能同时理解图像和文本、并在两者之间建立语义联系的模型。它们是后续 VLA(视觉–语言–动作)模型的直接前身。
从结构上看,主流可以概括为两大类:
- 双流结构(解耦):视觉与语言各自编码,后期再融合;
- 单流结构(联合):视觉 token 与文本 token 放在一个 Transformer 里统一处理。
4.3.3.1 双流结构(解耦)
(1)基本思路 双流结构通常包含:
- 一个视觉编码器(ResNet/ViT 等),输出图像特征向量或 patch 序列;
- 一个文本编码器(BERT/Transformer 等),输出文本向量或 token 序列;
- 在高层通过相似度(CLIP)、简单拼接或少量 cross-attention 层进行融合。
CLIP、ALIGN 等大规模图文对比预训练模型可视为典型的双编码器式 VLM 。
(2)优点
- 可充分复用单模态预训练模型:直接加载已有的视觉 backbone 与语言模型权重,只在顶部做少量适配。
- 检索效率极高:图像和文本可以分别预计算向量,在线检索只需做向量相似度计算,非常适合大规模检索场景。
- 工程部署友好:视觉编码可放在机器人的本地板卡上,文本编码可以在云端共享,一个视觉特征可以支持多种语言任务。
(3)局限性
- 视觉和语言交互较“浅”,主要靠全局向量相似度,难以精细理解局部关系(例如“左边第二个红杯子”)。
- 做复杂推理(如长文本问答、推断隐含关系)时,往往需要再叠加更复杂的 Cross-Attention 或 LLM 模块。
从具身智能视角看,双流结构很适合做通用感知模块:先把图像转为语义向量,再交给高层语言 / 决策模块处理。
4.3.3.2 单流结构(联合)
(1)基本思路:统一 Transformer 单流结构假设视觉和语言之间的关系足够复杂,需要在 token 级别完全交织,因此:
- 将图像切成 patch(或用检测器抽取对象特征),把每个 patch 映射为“视觉 token”;
- 将文本子词映射为“语言 token”;
- 把两类 token 串接在一起,加入位置编码与模态编码,一并输入单个多层 Transformer,通过自注意力实现全局交互。
典型单流模型包括 VisualBERT、VL-BERT、UNITER 等。
(2)优点
- 能在 token 级别学习复杂的跨模态对齐,例如“哪一块图像区域对应文本中的某个词”。
- 非常适合VQA、图文推理、细粒度多模态理解 等任务。
- 也便于在同一结构中同时加入多种预训练目标(ITC、ITM、MLM、Captioning 等)。
(3)局限性
- 计算成本较高,无法像双编码器那样方便地离线预计算表示。
- 图像和文本必须一起送进模型,在线推理时的延迟和显存占用更大,这对实时机器人控制是一个压力。
近年来的大型视觉–语言大模型(例如 BLIP 系列、部分 LVLM)一般在双流与单流之间采用分阶段或混合结构:先用双流对齐,再用单流精细融合。
4.3.3.3 模型选择
在实际系统中选择哪种结构,取决于任务类型与资源约束,可以从以下维度考虑:
(1)任务类型
- 若以检索 / 开放词汇识别 为主(例如为机器人查找相关示教视频、做开放类别物体识别),双编码器 + 对比学习往往足够,且高效。
- 若需要复杂的图文推理、细粒度问答(如长文本指令 + 场景理解),则单流或带 cross-attention 的联合结构更合适。
(2)计算与部署
- 在资源受限 的嵌入式机器人平台上,更倾向采用参数较小的双流结构,将重计算(如大语言模型)放在云端。
- 在离线训练或服务器环境中,可以使用单流结构做重型训练,然后利用蒸馏等手段(见第 10.4 节)将其压缩。
(3)与后续动作决策模块的接口
- 如果后续 VLA 模型只需要一个紧凑的状态向量(例如“场景的语义 embedding”),双流结构自然输出这种向量。
- 如果希望在生成动作时直接访问图像 token 与语言 token 的细粒度交互信息,单流或混合结构更有优势。
【图 4.3-4 占位:VLM 结构比较图——左:双流(独立图像/文本编码器,顶部用相似度或简易融合);右:单流(统一 Transformer 处理图像 token + 文本 token)。】
4.3.4 多模态预训练目标设计(对比、匹配、生成)
从优化目标的角度,看待视觉–语言预训练会更清晰:多数 VLM 都是对比(contrastive)+ 匹配(matching)+ 生成(generative) 三类目标的组合,只是侧重点不同。
4.3.4.1 对比目标
(1)全局图文对比(Image–Text Contrastive, ITC)
- 典型代表就是 CLIP 的 InfoNCE 损失(见 4.3.1.2),目标是让全局图像向量 与其对应的全局文本向量 在嵌入空间中靠近,对其他样本远离。
- 适合训练可迁移的全局语义表示,对检索和零样本分类非常有效。
(2)局部对比与细粒度对齐 为支持更细粒度任务(如区域级定位),一些工作将对比目标拓展到:
- 区域–短语对比:例如让“the red cup on the right”对应图像中的某个局部区域。
- token–token 对比:在视觉 token 与文本 token 之间建立一对一或一对多的对齐。
这种细粒度对齐对机器人抓取与操作特别重要,因为许多指令会涉及空间关系和对象局部(“把杯子把手朝上”)。
4.3.4.2 匹配目标
(1)图文匹配(Image–Text Matching, ITM) ITM 通常被定义为一个二分类任务:给定一对图像–文本,预测它们是“匹配”还是“不匹配”。
- 正样本:真实图像及其描述。
- 负样本:随机替换文本或图像得到的错配对,或使用难例挖掘选择“看起来很像但不对的描述”。
与对比学习相比,ITM 常在联合 Transformer 上进行(例如 UNITER、BLIP 中的多模态编码器),要求模型通过 cross-attention 精细判断图文是否一致。
(2)Token 级 / 实例级匹配 更进一步的工作如 VL-Match,将匹配目标细化到 token 或实例级:
- Token-level Matching:预测每个文本 token 是否在图像中有对应视觉证据。
- Instance-level Matching:对于图像中的每个物体,判断是否在文本中被提及。
这类目标能显著增强模型对“描述是否完整 / 是否遗漏关键物体”的判断能力,对于机器人执行安全相关指令(如“不要碰桌子右边的玻璃杯”)尤其重要。
4.3.4.3 生成目标
(1)图像条件下的语言生成(Captioning / MLM) 生成目标让模型在图像条件下学会“说话”,常见形式包括:
- 图像描述生成:给定图像,生成完整描述句子(Image Captioning),损失多为自回归的交叉熵。
- 条件掩码语言建模(Conditional MLM):在给定图像和文本上下文的条件下,随机 mask 掉部分词,要求模型重建这些词。
- 语言模型式预训练:把图像特征作为“前缀”输入语言模型,使其在多模态提示下完成填空或续写。
BLIP 等模型会同时使用 ITC、ITM 和 Captioning 三种目标,使得模型既能对比对齐,又能判别匹配,还能自然生成描述文本。
(2)重建与世界建模 在更广义的生成目标中,还包括:
- 掩码图像建模(MIM):随机遮挡图像部分区域,让模型根据未遮挡区域和文本恢复像素或特征(例如 MAE 类方法的多模态版本)。
- 视频 / 未来帧预测:给定当前图像与文本,预测下一帧或未来的视觉变化,为未来的世界模型(第 12 章)打基础。
(3)对具身智能的启示 对于机器人 VLA 模型,生成目标有两个重要作用:
- 让模型具备用语言解释自己所见所为 的能力,这直接对应 4.4 节中“语言作为解释接口”的需求。
- 生成式训练与大语言模型的预训练目标兼容,便于将视觉–语言模型进一步扩展为视觉–语言–动作模型,通过“在统一序列上生成 token”的方式一起预测文本和动作。
【图 4.3-5 占位:多任务预训练示意图——同一 VLM 同时优化三种损失:ITC(对比)、ITM(匹配)、Caption(生成),三者用不同颜色标注在同一结构上。】
本节从 CLIP 式图文对比学习出发,介绍了多种视觉–语言任务形式、VLM 的结构设计,以及对比 / 匹配 / 生成三类预训练目标。后续章节将在此基础上进一步引入“动作”这一模态,展示如何把这些视觉–语言能力自然扩展为机器人可以执行的视觉–语言–动作策略。