/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
open_clip
Опубликована
16 мая 2026

ViT-SO400M-16-SigLIP2-naflex

Классификация изображений без дообученияИзображение, текст → label

Контрастивная модель SigLIP 2 сопоставляет изображения с текстовыми описаниями и выполняет классификацию изображений без обучения на целевых классах.

110скачиваний за 30 дней1лайквеса обновлены19 мая 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

timm/ViT-SO400M-16-SigLIP2-naflex — контрастивная модель «изображение–текст» семейства SigLIP 2, преобразованная для OpenCLIP из исходных контрольных точек JAX проекта Big Vision. Она использует визуальный энкодер timm NaFlexViT и предназначена для классификации изображений по текстовым описаниям без обучения на целевых классах.

Модель обучалась на наборе WebLI. Изображения можно обрабатывать стандартным способом с размером 384×384 или с переменным соотношением сторон через NaFlex: режим оценки по умолчанию использует 576 токенов изображения и патчи размером 16. Репозиторий содержит веса PyTorch в формате safetensors; для работы используется библиотека OpenCLIP.

Подходит для сопоставления изображений с текстовыми метками и семантического поиска по изображениям. Карточка не сообщает число параметров или поддерживаемые языки, поэтому эти характеристики здесь не приводятся. Лицензия — Apache-2.0.

Сценарии применения

  • классификация изображений по текстовым меткам
  • поиск подходящего изображения по текстовому запросу
  • сортировка изображений по описаниям
  • оценка соответствия изображения подписи
  • поиск изображений по смыслу

Ограничения

Карточка описывает модель для классификации и сопоставления изображений с текстом; другие задачи в ней не заявлены. Указаны стандартная обработка изображений 384×384 и режим NaFlex с 576 токенами изображения.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Model card for ViT-SO400M-16-SigLIP2-naflex

Model Details

A SigLIP 2 Vision-Language model trained on WebLI with a NaFlex-capable vision encoder.

This model has been converted for use in OpenCLIP from the original JAX checkpoints in Big Vision. The image tower uses timm's NaFlexViT implementation and can run either with a regular fixed-size image preprocessing path or with the native NaFlex variable-aspect patch pipeline.

The default fixed-size preprocessing is 384x384. The default NaFlex eval setting is 576 image tokens with patch size 16.

Model Details

Model Usage

Fixed-size image inference

import torch
from urllib.request import urlopen
from PIL import Image
from open_clip import create_model_from_pretrained, get_tokenizer

repo_id = "hf-hub:timm/ViT-SO400M-16-SigLIP2-naflex"
device = "cuda" if torch.cuda.is_available() else "cpu"

model, preprocess = create_model_from_pretrained(repo_id, device=device)
model = model.eval()
tokenizer = get_tokenizer(repo_id)

image = Image.open(urlopen(
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"
)).convert("RGB")
image = preprocess(image).unsqueeze(0).to(device)

labels_list = ["a dog", "a cat", "a donut", "a beignet"]
text = tokenizer(labels_list, context_length=model.context_length).to(device)

with torch.no_grad():
    image_features = model.encode_image(image, normalize=True)
    text_features = model.encode_text(text, normalize=True)
    logits = image_features @ text_features.T * model.logit_scale.exp()
    if model.logit_bias is not None:
        logits = logits + model.logit_bias
    text_probs = torch.sigmoid(logits)

print("Label probabilities:", list(zip(labels_list, [round(p.item(), 3) for p in text_probs[0]])))

Native NaFlex variable-aspect inference

import torch
from urllib.request import urlopen
from PIL import Image
from open_clip import create_model_and_transforms, get_tokenizer

repo_id = "hf-hub:timm/ViT-SO400M-16-SigLIP2-naflex"
device = "cuda" if torch.cuda.is_available() else "cpu"

model, _, preprocess_factory = create_model_and_transforms(
    repo_id,
    device=device,
    aug_cfg={"naflex": True, "use_timm": True},
)
model = model.eval()
tokenizer = get_tokenizer(repo_id)

# 576 tokens = 24 x 24 patch grid at patch size 16.
preprocess = preprocess_factory(max_seq_len=576, patch_size=16)

image = Image.open(urlopen(
    "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png"
)).convert("RGB")
image = preprocess(image)

# Add batch dimension for a single image.
image = {
    k: v.unsqueeze(0).to(device) if torch.is_tensor(v) else v
    for k, v in image.items()
}
image["seq_len"] = image["patches"].shape[1]

labels_list = ["a dog", "a cat", "a donut", "a beignet"]
text = tokenizer(labels_list, context_length=model.context_length).to(device)

with torch.no_grad():
    image_features = model.encode_image(image, normalize=True)
    text_features = model.encode_text(text, normalize=True)
    logits = image_features @ text_features.T * model.logit_scale.exp()
    if model.logit_bias is not None:
        logits = logits + model.logit_bias
    text_probs = torch.sigmoid(logits)

print("Label probabilities:", list(zip(labels_list, [round(p.item(), 3) for p in text_probs[0]])))

Citation

@article{tschannen2025siglip,
  title={SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features},
  author={Tschannen, Michael and Gritsenko, Alexey and Wang, Xiao and Naeem, Muhammad Ferjad and Alabdulmohsin, Ibrahim and Parthasarathy, Nikhil and Evans, Talfan
and Beyer, Lucas and Xia, Ye and Mustafa, Basil and H'enaff, Olivier and Harmsen, Jeremiah and Steiner, Andreas and Zhai, Xiaohua},
  year={2025},
  journal={arXiv preprint arXiv:2502.14786}
}

@article{zhai2023sigmoid,
  title={Sigmoid loss for language image pre-training},
  author={Zhai, Xiaohua and Mustafa, Basil and Kolesnikov, Alexander and Beyer, Lucas},
  journal={arXiv preprint arXiv:2303.15343},
  year={2023}
}

@misc{big_vision,
  author = {Beyer, Lucas and Zhai, Xiaohua and Kolesnikov, Alexander},
  title = {Big Vision},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/google-research/big_vision}}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · open_clip

Нельзя запустить

Модели OpenCLIP требуют отдельного рантайма.

Ревизия весов
327a0ea

0 моделей