SigLIP

Zhai (Google) 2023 · Paper

One-line summary — SigLIP replaces CLIP’s softmax contrastive loss with a simple pairwise sigmoid loss that needs no global view of the batch, so language-image pretraining scales to huge batches, works better at small batches, and reaches 84.5% zero-shot ImageNet on just four TPUv4 chips.

Problem

Standard contrastive language-image pretraining (CLIP/ALIGN) normalizes similarity scores with a batch-level softmax, applied twice (across images, then across texts). This requires a global view of all pairwise similarities: expensive all-gathers, materialization of a B×B|\mathcal{B}| \times |\mathcal{B}| similarity matrix, and an extra stabilization pass (max-subtraction) over the batch — coupling loss quality to batch size and putting CLIP-grade pretraining out of reach without datacenter-scale clusters. SigLIP asks whether the global normalization is necessary at all.

Method & architecture

Softmax baseline (what is being replaced). With normalized embeddings xi=f(Ii)/f(Ii)2x_i = f(I_i)/\|f(I_i)\|_2, yi=g(Ti)/g(Ti)2y_i = g(T_i)/\|g(T_i)\|_2 and learned temperature tt, CLIP minimizes 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 loss. SigLIP treats every image-text pair independently as binary classification — matched or not — over all B2|\mathcal{B}|^2 combinations: 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)}} where the label zij=1z_{ij} = 1 if (Ii,Tj)(I_i, T_j) are paired and 1-1 otherwise, t=exp(t)t = \exp(t') is a learned temperature, and bb is a learned bias. No normalization over the rest of the batch is needed.

Bias initialization. With B2B|\mathcal{B}|^2 - |\mathcal{B}| negatives against B|\mathcal{B}| positives, the untamed loss is initially dominated by negatives, causing massive corrective steps. Initializing t=log10t' = \log 10 and b=10b = -10 starts training near the prior that a random pair is unmatched.

Chunked distributed implementation. With data parallelism over DD devices and per-device batch b=B/Db = |\mathcal{B}|/D, the loss is computed blockwise: each device scores its local b×bb \times b block, then text representations are permuted across devices so negatives rotate through, summing per-device losses. No all-gather, and only a b×bb \times b matrix is ever materialized — the sigmoid loss is symmetric and needs just a single pass.

Two recipes. SigLIP trains both towers (ViT image encoder + Transformer text encoder, unchanged from CLIP) on WebLI; SigLiT follows Locked-image Tuning, training only the text tower against a frozen pretrained image encoder. The disentanglement of batch size from the loss also enables studying examples-vs-pairs trade-offs and training at extreme batch sizes.

Results

Why it matters for SLAM

SigLIP became the default CLIP replacement in the multimodal stack: it is the vision encoder (often paired with DINOv2) inside OpenVLA and many post-2024 VLMs, so its text-aligned features are what most modern robot perception systems actually see. For SLAM, SigLIP features serve the same role CLIP features do in open-vocabulary mapping — embedding language-queryable semantics into 3D maps — with better accuracy per compute, which matters for onboard robotic deployment.