Sigmoid Loss for Language Image Pre-Training.md
Abstract
We propose a simple pairwise Sigmoid loss for Language-Image Pre-training (SigLIP). Unlike standard contrastive learning with softmax normalization, the sigmoid loss operates solely on image-text pairs and does not require a global view of the pairwise similarities for normalization. The sigmoid loss simultaneously allows further scaling up the batch size, while also performing better at smaller batch sizes. Combined with Locked-image Tuning, with only four TPUv4 chips, we train a SigLiT model that achieves 84.5% ImageNet zero-shot accuracy in two days. The disentanglement of the batch size from the loss further allows us to study the impact of examples vs pairs and negative to positive ratio. Finally, we push the batch size to the extreme, up to one million, and find that the benefits of growing batch size quickly diminish, with a more reasonable batch size of 32k being sufficient. We release our models at https://github.com/google-research/big_vision and hope our research motivates further explorations in improving the quality and efficiency of language-image pre-training.
SigLIP: 图文预训练的 Sigmoid 损失与 ViT 架构深度解析
一、 深入理解视觉主干:Vision Transformer (ViT) 令牌化机制

1. 图像切块(Patch Extraction)
假定输入的二维图像为 ,其中 为图像分辨率, 为通道数(如 RGB 图像 )。
- ViT 首先定义一个固定的正方形图像块(Patch)大小,通常设为 (例如论文中提及的 代表 )。
- 图像被无重叠地切分成一系列的局部图像块。图像块的总数(即序列长度 )计算公式为:
- 每个原本大小为 的三维图像块,会被展平(Flatten)为一个一维的平铺向量,其向量维度大小为 。经过这一步,整张图片被转化为了一个形状为 的矩阵。
- 这里的切块行为是使用卷积神经网络进行的
1 | import torch |
2. 线性投影与 Token 化(Linear Projection to Embedding)
展平后的图像块向量还不能直接输入 Transformer 块,需要将其映射到多头自注意力机制所要求的统一隐层维度(Embedding Dimension ,例如 中 )。
-
模型利用一个可学习的线性映射矩阵 对展平后的向量进行线性投影,将其变换为一维特征向量:
-
在工程实现中,上述「切块 + 展平 + 线性投影」的过程通常由一个步长(Stride)等于 、卷积核大小(Kernel Size)等于 、输出通道数等于 的标准二维卷积层(Conv2D)一次性高效完成。 卷积完成后的每个像素点位置对应的特征,即为一个视觉 Token。
3. 位置编码与可选令牌(Position Embedding & CLS Token)
- 位置编码 (Position Embeddings):由于 Transformer 的自注意力机制具有置换不变性,无法自发捕获图像块之间的空间几何关系。因此,需要在一维视觉 Token 序列中逐项加上一组可学习的、形状为 的一维位置编码(Position Embedding),赋予模型空间知觉。
- 类别令牌 (Class Token / CLS):在原始的 ViT 方案中,还会在输入序列最前端额外拼接一个可学习的 Token(类似于 BERT),使其在经过多层自注意力交互后汇聚全局信息,其最终层对应的输出向量即作为全图的全局表征 。
- SigLIP 的特定演进:需要注意的是,在诸如大视觉代码库(big_vision)和 SigLIP 等后续先进实现中,为了提高密集对比度与表征质量,通常会舍弃传统的 令牌,转而对最终层输出的所有视觉 Tokens 进行全局平均池化(Global Average Pooling, GAP),或者在其后方外接一个多头标定注意力头(MAP Head),从而聚合生成最终输入到损失函数中的 维图像单位特征向量 。
二、 核心方法与公式体系
和 分别代表两个独立的多模态双塔编码器:
- —— 视觉编码器 (Vision Encoder):通常采用 Vision Transformer (ViT) 架构。它的输入是单张图像 (例如分辨率为 的图片),其原始输出 是一个 维的图像特征向量。
- —— 文本编码器 (Text Encoder):采用标准的 Transformer 架构。它的输入是经过 Tokenizer 切分并裁剪后的文本 Token 序列 (最大保持 16 或 64 个 Token),其输出 同样是一个 维的文本特征向量。
- 特征向量的归一化与对齐:
- 特征送入损失函数之前,必须对其进行 归一化,将其转化为超球面上的单位向量: 归一化后的向量进行点积(Dot Product)计算 ,该点积在几何上直接对应了图像 与文本 之间的余弦相似度分数。
1. 传统 Softmax 对比损失
- 标准的图文对比预训练(如 CLIP)使用基于 Softmax 的 InfoNCE 损失。为了实现匹配的图文对相似度最大化以及不匹配的图文对相似度最小化,它需要分别在图像维度和文本维度计算两次归一化(非对称性)。对于包含 个样本的全局微批次(Mini-batch),其最小化目标公式如下:
2. 提出的 Sigmoid 损失
- SigLIP 提出的 Sigmoid 损失无需计算全局归一化因子,而是将每个图文对(包括正对和负对)的处理视作完全独立的二分类问题。其目标公式定义为:
- 标签变量 :当图像 与文本 匹配(正样本对)时,变量 ;否则(负样本对) 。
- 可学习的温度与偏置项:公式中 为可学习的温度缩放(参数化为 ), 为额外引入的可学习偏置参数(Bias)。
- 初始化技巧:由于一个批次中负样本数量()远多于正样本,训练初期会产生严重的优化不平衡。通过将 初始化为 (即 ),并将 初始化为 ,可以让训练在接近数据真实先验的条件下启动,防止初期产生破坏性的过度校正(Over-correction)。
三、 高效分块实现 (Efficient Chunked Implementation)
- 传统的 Softmax 对比损失需要通过全收集(all-gather)操作将所有计算设备上的嵌入聚集起来,在内存中实例化一个大小为 的庞大相似度矩阵。当全局批次达到十万甚至百万级别时,这会引发严重的内存和通信瓶颈。由于 Sigmoid 损失中每个成对损失项都是完全独立的,因此该方法可以进行高内存效率的分块(Chunked)分布式计算:
- 初始局部计算:假设共有 个计算设备,每个设备局部仅持有 个图像和文本表示。第一步,各设备独立计算本地图像与本地文本的相似度,这对应了全局相似度矩阵中的对角线块(包含正样本对和 个本地负样本对)。
- 环形置换 (Permute):随后,文本表示在各设备间以环形方式进行动态置换(例如设备 将其文本块发送给设备 )。
- 流水线累加:在每一次置换后,各设备利用保持不动的本地图像与新接收到的其他设备的文本块计算局部损失 并进行累加。在整个交互过程中,内存中任意一个具体时刻只需要实例化一个大小为 的局部相似度矩阵,不再受全局批次 的空间限制。
- 最终求和:该置换过程重复 次即可覆盖全网所有的组合。最后通过一次简单的跨设备求和(Cross-Device )聚集所有损失。这种设计将内存开销从二次方瓶颈 彻底降低到了固定的 。

- SigLIP (Sigmoid Language-Image Pre-training):
- 策略:从头联合预训练 (From-scratch Pre-training)。
- 机制:图像和文本双塔编码器的参数全部从随机初始化状态开始,在海量图文数据集上同时进行联合更新与优化。
- SigLiT (Sigmoid Locked-image Tuning):
- 策略:锁定图像主干的文本微调 (Locked-image Tuning)。
- 机制:直接使用已预训练好的强力视觉 Checkpoint(如 ViT-g),并在整个训练期间将其参数完全锁定(Frozen)。通过提前离线预计算所有图像特征,完全省去了图像前向传播的算力开销,仅训练文本塔进行对齐。该模式极其高效,使用 4 个 TPUv4 芯片在 1~2 天内即可将 ImageNet 零射精度推至 84.5%。
- 取消预训练视觉权重的权重衰减 (Weight Decay):在利用已有预训练视觉主干进行 SigLIP 微调时,默认的权重衰减会导致原有的优良视觉表征退化。实验表明,对预训练主干网络禁用权重衰减,仅对随机初始化的文本模型施加权重衰减,能使模型快速且稳定地收敛并取得更好的零射精度
- 稳定大批次训练:当批次大小扩大时,Transformer 训练容易出现梯度 norm 剧烈尖峰(Spikes),引发训练崩溃。将 Adam/Adafactor 优化器中的 参数从默认的 0.999 降低至 0.95 可以加速从梯度尖峰中恢复,显著提升大批次训练的稳定性。
- 对数据噪声的鲁棒性:面对将图像替换为纯随机噪声或损坏文本的标签噪声污染,使用 Sigmoid 损失训练的模型相较于 Softmax 基线展现出更强的抗噪与鲁棒性能。