SigLIP
Zhai (Google) 2023 · 論文
一行要約 — SigLIPはCLIPのソフトマックス対照損失を、バッチ全体を見渡す必要のない単純なペアワイズシグモイド損失に置き換えることで、言語画像事前学習が巨大なバッチにスケールし、小さいバッチでもより良く機能し、わずか4基のTPUv4チップで84.5%のゼロショットImageNet精度に到達することを示した。
問題
標準的な対照的言語画像事前学習(CLIP/ALIGN)は、類似度スコアをバッチレベルのソフトマックスで正規化し、これを2回(画像方向とテキスト方向)適用する。これにはすべてのペアワイズ類似度をバッチ全体で見渡す必要があり、コストの高いall-gather操作、の類似度行列の実体化、バッチに対する追加の安定化処理(最大値減算)が必要になる。これにより損失の質がバッチサイズに結びつき、データセンター規模のクラスタなしではCLIPレベルの事前学習が手の届かないものになっていた。SigLIPは、この大域的な正規化がそもそも必要なのかを問う。
手法とアーキテクチャ
ソフトマックスのベースライン(置き換え対象)。 正規化された埋め込み 、 と学習された温度パラメータ を用いて、CLIPは次を最小化する。
シグモイド損失。 SigLIPは、すべての画像-テキストペアを通りの組み合わせ全体にわたって、独立した二値分類(マッチするか否か)として扱う。 ここで、ラベル は がペアである場合、そうでなければ であり、 は学習される温度パラメータ、 は学習されるバイアス項である。バッチの残り部分にわたる正規化は不要である。
バイアスの初期化。 個の正例に対して個の負例が存在するため、そのままの損失は初期段階では負例に支配され、大幅な補正ステップを引き起こす。、 に初期化することで、ランダムなペアはマッチしないという事前分布に近い状態から学習を開始できる。
チャンク化された分散実装。 台のデバイスにわたるデータ並列と、デバイスごとのバッチ を用いて、損失はブロック単位で計算される。各デバイスがローカルな ブロックのスコアを計算し、テキスト表現をデバイス間で巡回させることで負例を回転させ、デバイスごとの損失を合計する。all-gatherは不要で、実体化される行列は常に にとどまる。シグモイド損失は対称であり、1回のパスで済む。
2種類のレシピ。 SigLIP は両方のタワー(ViT画像エンコーダ+Transformerテキストエンコーダ、CLIPから変更なし)をWebLI上で学習する。SigLiT はLocked-image Tuningの手法に従い、凍結した事前学習済み画像エンコーダに対してテキストタワーのみを学習する。バッチサイズと損失の分離により、サンプル数対ペア数のトレードオフの研究や、極端なバッチサイズでの学習も可能になる。
実験結果
- SigLiT は、公開されているB/8チェックポイント(凍結)をLiTデータセット上で4基のTPUv4チップを1日学習させ、**79.7%のゼロショットImageNet精度に到達する。g/14チェックポイントでは2日で84.5%**に到達する。
- SigLIP B/16はWebLI上で、16基のTPUv4チップを3日使用して**71.0%**のゼロショットImageNet精度に到達する。バッチサイズ32kでは2日で72.1%、32チップで5日学習すると73.4%に到達する。
- バッチサイズを512から100万まで変化させると、シグモイド損失は16k未満のバッチサイズで大きな差でソフトマックスを上回る。バッチサイズが大きくなるにつれてこの差は縮まり、両者とも性能は飽和する — バッチサイズ32kで十分という結論であり、これは100言語以上で学習された多言語版mSigLIP(XM3600検索で評価)でも同様に成り立つ。
- シグモイド損失はソフトマックスよりもメモリ効率が良く、これが100万バッチの実験や少数チップでの学習を可能にしている。モデルは
big_visionで公開された。
SLAMにおける意義
SigLIPはマルチモーダルスタックにおけるデフォルトのCLIP代替品となった。OpenVLAや2024年以降の多くのVLMの中で(しばしばDINOv2と組み合わされる)視覚エンコーダとして使われており、そのテキストと整合した特徴が、現代の多くのロボット知覚システムが実際に「見ている」ものである。SLAMにとって、SigLIPの特徴は、オープン語彙マッピングにおいてCLIPの特徴が果たす役割と同じ役割を果たす — 言語で問い合わせ可能なセマンティクスを3Dマップに埋め込む — しかも計算量当たりの精度が優れており、これはロボットへの搭載展開において重要である。