Skip to main content

SigLIP

SigLIP (Sigmoid Loss for Language-Image Pre-training) は、CLIP の softmax-based contrastive loss を pair-wise sigmoid loss に置き換えた image-text foundation model です。Google から提案され、CLIP より小さな batch でも強力な学習を可能にしました。

何が違うのか

CLIP の loss は softmax-based で、batch 内の全 image と全 text を同時に正規化します。これにより、大きな batch (32k〜64k) が必要になります。

SigLIP は、各 (image, text) pair に対して独立に sigmoid binary classification を行います。

L=1Ni,jlogσ(zij(tfI(xi)fT(tj)+b))\mathcal{L} = -\frac{1}{N}\sum_{i,j} \log \sigma\left(z_{ij}\, (t\cdot f_I(x_i)\cdot f_T(t_j) + b)\right)
  • zij=1z_{ij} = 1 if i=ji = j (positive), 1-1 otherwise
  • tt は学習可能 temperature、bb は bias

なぜ重要か

  • Batch サイズに依存しない: 小さい batch でも収束しやすい
  • Memory / compute 効率: Global softmax 不要
  • 多言語、多モダリティへの拡張がしやすい

これらの性質により、SigLIP は CLIP 同等以上の性能を、より少ない計算資源で達成します。

SigLIP 2

後継の SigLIP 2 は、より大規模・多言語・dense feature を強化し、open-vocabulary 検出や Vision-Language Models の backbone として広く使われます。

CLIP との使い分け

観点CLIPSigLIP
LossSoftmax contrastiveSigmoid pair-wise
Batch サイズ巨大が望ましい小さくても可
Memory大きい小さい
Dense featureやや弱い改善
Open-vocab task の backboneよく使われるより広く使われる

数式で見る pair-wise sigmoid loss

SigLIP は、batch 全体での softmax 正規化を使わず、各 (image, text) pair を独立な binary classification 問題として扱います。Pair (i,j)(i,j) に対する logit と label は次のように書けます。

zij=tvitj+b,yij={+1i=j1ijz_{ij}=t\,\mathbf{v}_i^\top\mathbf{t}_j+b, \qquad y_{ij}=\begin{cases}+1 & i=j\\ -1 & i\ne j\end{cases}

ここで、tt は学習可能 scale、bb は bias、vi,tj\mathbf{v}_i,\mathbf{t}_j は L2 正規化された embedding です。Loss は pair ごとの logistic loss として書けます。

L=1Ni,jlogσ(yijzij)\mathcal{L} =-\frac{1}{N}\sum_{i,j} \log\sigma(y_{ij}\,z_{ij})

各項の意味は次の通りです。

  • yij=+1y_{ij}=+1 の pair(正しい対)では σ(zij)\sigma(z_{ij}) を 1 に近づけ、yij=1y_{ij}=-1 の pair(不正解)では σ(zij)\sigma(z_{ij}) を 0 に近づけます。
  • Bias bb は、negative pair の方が圧倒的に多いという class imbalance を吸収します。
  • tt は、内積をどれくらい鋭く扱うかを決める softmax temperature の役割です。

この式の気持ちは、「batch 全体を一気に正規化する代わりに、すべての pair を独立な yes/no 判定として学習する」ということです。Batch ごとの global softmax が不要になるため、batch 並列の通信や巨大 batch に依存せず学習できます。

関連ページ

主なソース