SigLIP

Zhai (Google) 2023 · 论文

一句话总结 — SigLIP 用一种无需批次全局信息的简单成对 sigmoid 损失,取代了 CLIP 的 softmax 对比损失,使语言-图像预训练能够扩展到超大批次、在小批次下表现更好,并仅用四块 TPUv4 芯片就达到了 84.5% 的零样本 ImageNet 准确率。

问题

标准的语言-图像对比预训练(CLIP/ALIGN)使用批次级别的 softmax 对相似度分数做归一化,且要应用两次(先按图像方向,再按文本方向)。这需要对所有成对相似度有一个全局视角:昂贵的 all-gather 操作、构建一个 B×B|\mathcal{B}| \times |\mathcal{B}| 的相似度矩阵,以及对整个批次做一次额外的稳定化处理(减去最大值)——这把损失质量与批次大小耦合在一起,使得没有数据中心级集群就无法进行 CLIP 级别的预训练。SigLIP 提出的问题是:这种全局归一化究竟是否必要。

方法与架构

Softmax 基线(被替代的方法)。 给定归一化后的嵌入 xi=f(Ii)/f(Ii)2x_i = f(I_i)/\|f(I_i)\|_2yi=g(Ti)/g(Ti)2y_i = g(T_i)/\|g(T_i)\|_2 以及可学习的温度 tt,CLIP 最小化 12Bi=1B(logetxiyijetxiyj+logetxiyijetxjyi).-\frac{1}{2|\mathcal{B}|} \sum_{i=1}^{|\mathcal{B}|} \left( \log \frac{e^{t\, x_i \cdot y_i}}{\sum_{j} e^{t\, x_i \cdot y_j}} + \log \frac{e^{t\, x_i \cdot y_i}}{\sum_{j} e^{t\, x_j \cdot y_i}} \right).

Sigmoid 损失。 SigLIP 把每一对图像-文本都当作独立的二分类问题——匹配或不匹配——遍历所有 B2|\mathcal{B}|^2 种组合: L=1Bi=1Bj=1Blog11+ezij(txiyj+b)\mathcal{L} = -\frac{1}{|\mathcal{B}|} \sum_{i=1}^{|\mathcal{B}|} \sum_{j=1}^{|\mathcal{B}|} \log \frac{1}{1 + e^{z_{ij}\,(-t\, x_i \cdot y_j + b)}} 其中标签 zij=1z_{ij} = 1(若 (Ii,Tj)(I_i, T_j) 匹配)否则为 1-1t=exp(t)t = \exp(t') 是可学习的温度,bb 是可学习的偏置。无需对批次中其余部分做归一化。

偏置初始化。 由于负样本数为 B2B|\mathcal{B}|^2 - |\mathcal{B}|,远超正样本数 B|\mathcal{B}|,未经调节的损失一开始会被负样本主导,导致巨大的修正性梯度步。将 t=log10t' = \log 10b=10b = -10 初始化后,训练起点接近于”随机一对样本大概率不匹配”这一先验。

分块的分布式实现。DD 个设备上做数据并行、每个设备的批次为 b=B/Db = |\mathcal{B}|/D 的情况下,损失以分块方式计算:每个设备对本地的 b×bb \times b 分块打分,然后在设备间轮换置换文本表示,使负样本依次轮转,再汇总各设备的损失。整个过程无需 all-gather,且始终只需构建一个 b×bb \times b 的矩阵——sigmoid 损失是对称的,只需一次前向传播。

两种训练方案。 SigLIP 在 WebLI 数据集上训练两个塔(ViT 图像编码器 + Transformer 文本编码器,与 CLIP 保持一致);SigLiT 遵循 Locked-image Tuning 方式,只训练文本塔,图像编码器保持预训练冻结。将批次大小与损失解耦,也使得研究”样本数 vs. 配对数”的权衡以及在极端批次大小下训练成为可能。

实验结果

对SLAM的意义

SigLIP 已成为多模态技术栈中默认的 CLIP 替代方案:它是 OpenVLA 和许多 2024 年后 VLM 中的视觉编码器(通常与 DINOv2 搭配),因此其文本对齐特征正是当今大多数机器人感知系统实际”看到”的内容。对 SLAM 而言,SigLIP 特征所起的作用与 CLIP 特征在开放词汇建图中的作用相同——将可用语言查询的语义嵌入到三维地图中——但每单位算力能获得更好的精度,这对于机器人的机载部署尤为重要。

相关条目