许可协议:apache-2.0
标签:
- 视觉
小组件示例:
- 图片链接:https://huggingface.co/datasets/mishig/sample_images/resolve/main/cat-dog-music.png
候选标签:演奏音乐、体育运动
示例标题:猫与狗
管道任务:零样本图像分类
库名称:transformers
SigLIP(形状优化模型)
基于SoViT主干网络、在256分辨率多语言语料上预训练的SigLIP模型。该模型由Zhai等人在论文《Sigmoid Loss for Language Image Pre-Training》中提出,并首次发布于此代码库。
本模型采用SoViT-400m架构,是Alabdulmohsin等人在《Getting ViT in Shape: Scaling Laws for Compute-Optimal Model Design》中提出的计算最优形状优化版本。
免责声明:发布SigLIP的团队未编写此模型卡片,本文档由Hugging Face团队撰写。
模型描述
SigLIP是改进损失函数的CLIP多模态模型。其Sigmoid损失函数仅作用于图像-文本对,无需通过全局相似度进行归一化,从而支持更大批次的训练,同时在小批次场景下表现更优。
作者之一对SigLIP的简要说明可见此推文。
应用场景与限制
该模型可直接用于零样本图像分类和图文检索等任务。访问模型库可探索其他任务适配版本。
使用方法
零样本图像分类示例:
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModel
import torch
model = AutoModel.from_pretrained("google/siglip-so400m-patch16-256-i18n")
processor = AutoProcessor.from_pretrained("google/siglip-so400m-patch16-256-i18n")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
texts = ["2只猫的照片", "2只狗的照片"]
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"图片0匹配'{texts[0]}'的概率为{probs[0][0]:.1%}")
也可使用简化接口:
from transformers import pipeline
from PIL import Image
import requests
image_classifier = pipeline(task="零样本图像分类", model="google/siglip-so400m-patch16-256-i18n")
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
outputs = image_classifier(image, candidate_labels=["2只猫", "飞机", "遥控器"])
outputs = [{"得分": round(output["score"], 4), "标签": output["label"]} for output in outputs]
print(outputs)
更多示例参见文档。
训练过程
训练数据
使用WebLI数据集(Chen等, 2023)进行预训练。
预处理
图像统一调整为384x384分辨率,并通过RGB通道归一化(均值0.5,标准差0.5)。
文本被分词并填充至固定长度(64个标记)。
计算资源
在16块TPU-v4芯片上训练三天完成。
评估结果
下表演示SigLIP与CLIP的性能对比(摘自原论文):

引用信息
@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}
}