🚀 SigLIP (大型モデル)
SigLIPは、解像度256x256のWebLiで事前学習されたモデルです。このモデルは、Zhaiらによる論文 Sigmoid Loss for Language Image Pre-Training で紹介され、このリポジトリ で最初に公開されました。
免責事項: SigLIPを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
SigLIPは、より良い損失関数を持つCLIPというマルチモーダルモデルです。シグモイド損失は画像 - テキストペアに対してのみ動作し、正規化のためにペアワイズ類似度のグローバルビューを必要としません。これにより、バッチサイズをさらに拡大できると同時に、小さいバッチサイズでもより良い性能を発揮します。
✨ 主な機能
- ゼロショット画像分類や画像 - テキスト検索などのタスクに使用できます。
- シグモイド損失関数により、バッチサイズの拡大と小さいバッチサイズでの性能向上が可能です。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
このコードは、SigLIPモデルを使用してゼロショット画像分類を行う方法を示しています。
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("google/siglip-base-patch16-256")
processor = AutoProcessor.from_pretrained("google/siglip-base-patch16-256")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
texts = ["a photo of 2 cats", "a photo of 2 dogs"]
inputs = processor(text=texts, images=image, padding="max_length", return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = torch.sigmoid(logits_per_image)
print(f"{probs[0][0]:.1%} that image 0 is '{texts[0]}'")
高度な使用法
pipeline
APIを使用することで、ユーザーは複雑さを隠蔽してモデルを使用できます。
from transformers import pipeline
from PIL import Image
import requests
image_classifier = pipeline(task="zero-shot-image-classification", model="google/siglip-base-patch16-256")
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
outputs = image_classifier(image, candidate_labels=["2 cats", "a plane", "a remote"])
outputs = [{"score": round(output["score"], 4), "label": output["label"] } for output in outputs]
print(outputs)
より多くのコード例については、ドキュメント を参照してください。
📚 ドキュメント
想定される用途と制限
この生モデルは、ゼロショット画像分類や画像 - テキスト検索などのタスクに使用できます。興味のあるタスクに関する他のバージョンを探すには、モデルハブ を参照してください。
学習手順
学習データ
SigLIPは、WebLIデータセットの英語の画像 - テキストペア (Chen et al., 2023) で事前学習されています。
前処理
- 画像は同じ解像度 (256x256) にリサイズ/リスケールされ、RGBチャネル全体で平均 (0.5, 0.5, 0.5) と標準偏差 (0.5, 0.5, 0.5) で正規化されます。
- テキストはトークン化され、同じ長さ (64トークン) にパディングされます。
コンピューティング環境
このモデルは、16台のTPU - v4チップで3日間学習されました。
評価結果
CLIPと比較したSigLIPの評価結果を以下に示します (論文から引用)。

BibTeXエントリと引用情報
@misc{zhai2023sigmoid,
title={Sigmoid Loss for Language Image Pre-Training},
author={Xiaohua Zhai and Basil Mustafa and Alexander Kolesnikov and Lucas Beyer},
year={2023},
eprint={2303.15343},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
🔧 技術詳細
シグモイド損失関数は、画像 - テキストペアに対してのみ動作し、正規化のためにペアワイズ類似度のグローバルビューを必要としません。これにより、バッチサイズを拡大できると同時に、小さいバッチサイズでも良い性能を発揮します。
📄 ライセンス
このモデルはApache - 2.0ライセンスの下で提供されています。