/ Модель

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

Лицензия
Своя лицензия
Библиотека
pytorch
Опубликована
20 авг 2026

radio-clip_v1.0

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

Модель сопоставляет изображения с текстовыми метками и выполняет zero-shot классификацию изображений на основе визуального энкодера C-RADIOv3-H и текстового энкодера SigLIP2-g.

0скачиваний за 30 дней0лайковвеса обновлены21 авг 2026

Бенчмарки

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

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

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

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

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

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

radio-clip_v1.0 — vision-language модель автора gatilin, дообученная с помощью NVIDIA TAO Toolkit на контрастивной цели SigLIP. Она сочетает визуальный энкодер C-RADIOv3-H на базе ViT-H/16 и текстовый энкодер SigLIP2-g; адаптер проецирует признаки изображений в общее с текстом пространство эмбеддингов размерности 1536. Модель содержит 1,387 млрд параметров и обучалась на разрешении 256 пикселей; визуальный энкодер поддерживает CPE с разрешением до 2048 пикселей.

Модель предназначена для классификации изображений по текстовым описаниям без дополнительного обучения и для сопоставления изображений с текстом. В README приведена оценка zero-shot на ImageNet-1K: 64,56% top-1 и 88,46% top-5 на сбалансированной выборке из 5000 изображений. Модель принимает изображения и текст, выдаёт совместимые эмбеддинги и оценки соответствия.

Для корректной работы текстовой части README предупреждает о несовместимости токенизации через transformers 5.2.0: рекомендуется использовать sentencepiece напрямую, не применять маску внимания к padding и предварительно канонизировать промпты. Голова feat_mlp не обучалась и не должна использоваться как надёжный источник плотных признаков. Точность ниже, чем у SigLIP2-g teacher; приведённая оценка получена на подвыборке ImageNet-1K. Лицензия указана как other, конкретные условия в предоставленных данных не раскрыты.

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

  • классификация изображений по произвольным текстовым меткам без дообучения
  • поиск подходящих изображений по текстовому запросу
  • сравнение изображения и текстового описания по сходству
  • zero-shot классификация объектов по категориям ImageNet

Ограничения

Токенизатор transformers 5.2.0 некорректно обрабатывает текстовую башню; README рекомендует использовать sentencepiece напрямую и соблюдать указанные правила подготовки промптов. Точность уступает SigLIP2-g teacher, а оценка приведена на сбалансированной подвыборке ImageNet-1K; голова feat_mlp не обучалась.

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

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

Открыть на Hugging Face

radio-clip_v1.0

A vision-language model pairing NVIDIA C-RADIOv3-H as the image encoder with the SigLIP2-g text tower, fine-tuned with NVIDIA TAO Toolkit using a SigLIP (sigmoid pairwise) contrastive objective. The image tower exposes a siglip2-g adaptor head that projects RADIO features into SigLIP2-g's 1536-dim joint embedding space, so image and text embeddings are directly comparable.

  • Image encoder: C-RADIOv3-H (ViT-H/16, embed 1280, depth 32, heads 16) with CPE (max 2048 px, 4 CLS + 4 register tokens) and an MLP2 adaptor head (1280 → 1536)
  • Text encoder: SigLIP2-g-384 text tower (hidden 1152, 27 layers, 16 heads, projection 1536)
  • Joint embedding dim: 1536
  • Total parameters: 1.387 B (text tower 0.708 B)
  • Native training resolution: 256 px
  • Training: 15 epochs (checkpoint at epoch 14, global_step 63480), LAMB optimizer, lr 5e-7 for both towers with cosine decay, batch 32 × 8 GPUs = 256, fp16

Zero-Shot ImageNet-1K Results

Evaluated with the standard OpenAI CLIP zero-shot protocol: all 1000 ImageNet classnames, 80 OPENAI_IMAGENET_TEMPLATES prompts averaged per class then L2-normalized, short-edge bicubic resize → center crop → CLIP normalization.

ModelResolutionImagesTop-1Top-5
radio-clip_v1.0256 px5000 (5/class, balanced)64.56%88.46%
SigLIP2-g teacher (reference)384 px40086.50%97.25%

The SigLIP2-g reference reproduces its published ~87% zero-shot accuracy under the same harness, confirming the evaluation protocol. The gap reflects both the lower inference resolution (256 vs 384) and the distillation loss through the RADIO adaptor head.

⚠️ Important: tokenizer caveat

transformers 5.2.0 mis-converts this SigLIP2 GemmaTokenizer — it drops the sentencepiece metaspace prefix, tokenizing "a photo of a dog" as ['ap','hoto','of','adog'] instead of ['a','▁photo','▁of','▁a','▁dog']. This silently corrupts every text embedding and collapses zero-shot accuracy to near-random.

Always tokenize with sentencepiece directly:

import sentencepiece as spm
import torch

sp = spm.SentencePieceProcessor(model_file="tokenizer.model")

def tokenize(texts, max_length=64):
    rows = []
    for t in texts:
        ids = sp.encode(t)[: max_length - 1] + [1]        # append <eos>
        rows.append(ids + [0] * (max_length - len(ids)))  # right-pad <pad>
    return torch.tensor(rows, dtype=torch.long)

Two further protocol details matter: SigLIP is trained to attend over padding, so do not apply a padding attention mask, and prompts must be canonicalized big_vision-style (text.replace('_', ' '), strip punctuation, lowercase, collapse whitespace) before encoding.

Usage

import torch, torch.nn.functional as F
from PIL import Image
from radio_clip_infer import CRADIOLite, load_tao_checkpoint, TextTokenizer, preprocess_val

model = CRADIOLite()
load_tao_checkpoint(model, "radio-clip_v1.0.pth")
model.eval()

tokenizer = TextTokenizer("siglip2_tok")
labels = ["a photo of a cat", "a photo of a dog"]
ids, mask = tokenizer(labels)

image = preprocess_val(Image.open("cat.jpg"), image_size=256).unsqueeze(0)

with torch.no_grad():
    img_f = model.encode_image(image)             # already L2-normalized
    txt_f = model.encode_text(ids, mask)          # already L2-normalized
    logits = img_f @ txt_f.T

print(logits.softmax(dim=-1))

Inference above 256 px works and can help slightly (CPE supports up to 2048 px), but 256 px matches the training resolution.

Verification

The reimplementation was validated against references before benchmarking: the text tower matches HuggingFace SigLIP2-g bit-exactly (max abs diff = 0.0), and the image path (ViTPatchGenerator + CPE + MLP2 adaptor) matches official NVIDIA RADIO bit-exactly. All 1306 tensors load with strict=True. Relative to the original C-RADIOv3-H, TAO fine-tuning drifted the backbone by 1.0e-2 and the text tower by 3.3e-3 (relative L2); logit_scale (2.3180) and logit_bias (-9.9959) were unchanged.

Limitations

  • The feat_mlp head (DINOv2/SAM dense-feature alignment) received no gradient during this fine-tuning run and should not be relied upon.
  • Zero-shot accuracy trails the SigLIP2-g teacher by roughly 22 points; use the teacher directly if peak zero-shot classification is the goal rather than RADIO's multi-teacher dense features.
  • Evaluated on a 5000-image class-balanced ImageNet-1K validation subset, not the full 50k set; expect roughly ±0.7 pp sampling error.

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

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

GPU в ailist

Универсальный рантайм · pytorch · zero-shot-image-classification

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

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
02c46d1

0 моделей