/ Модель

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

Лицензия
CC BY 4.0
Архитектура
japanese_clip · dense
Опубликована
20 дек 2023

japanese-clip-vit-b-32-roberta-base

ЭмбеддингиТекст → embedding8 профессий

Японская CLIP-модель Recruit сопоставляет изображения и японские тексты для поиска, классификации без дообучения и извлечения признаков.

208скачиваний за 30 дней9лайковвеса обновлены22 янв 2024

Бенчмарки

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

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

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

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

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

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

Japanese CLIP — контрастивная модель для сопоставления изображений и японского текста в общем пространстве эмбеддингов, разработанная Recruit Co., Ltd. Она использует визуальный энкодер CLIP-ViT-B-32 и текстовый энкодер Japanese RoBERTa-base и обучена на 128 млн пар изображений и текстов из японской части LAION2B-multi.

Модель предназначена для поиска изображений по японскому запросу и текста по изображению, классификации изображений без дополнительного обучения по заданным текстовым меткам, а также извлечения признаков изображений и текста. Карточка описывает оценки на наборах для классификации и двунаправленного поиска изображение–текст; для ImageNet V2 и Food101 метки классов были переведены на японский.

Модель ориентирована на японский язык и задачи сопоставления текста с изображениями. Лицензия — CC-BY-4.0; разработчик не гарантирует точность и полезность результатов и не несёт ответственности за ущерб, связанный с использованием модели.

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

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

Ограничения

Модель ориентирована на японский язык, поэтому качество для других языков не установлено. Разработчик не гарантирует точность и полезность результатов; результаты могут зависеть от соответствия данных и меток японскому контексту.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

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

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

Открыть на Hugging Face

recruit-jp/japanese-clip-vit-b-32-roberta-base

Overview

  • Developed by: Recruit Co., Ltd.
  • Model type: Contrastive Language-Image Pretrained Model
  • Language(s): Japanese
  • LICENSE: CC-BY-4.0

More details are described in our tech blog post.

Model Details

This model is a Japanese CLIP. Using this model, you can map Japanese texts and images into the same embedding space. You can use this model for tasks such as zero-shot image classification, text-image retrieval, image feature extraction, and so on.

This model uses the image encoder of laion/CLIP-ViT-B-32-laion2B-s34B-b79K for image encoder and rinna/japanese-roberta-base for text encoder. This model is trained on Japanese subset of LAION2B-multi dataset and is tailored for Japanese language.

How to use

  1. Install packages
pip install pillow requests transformers torch torchvision sentencepiece
  1. Run the code below
import io
import requests

import torch
import torchvision
from PIL import Image
from transformers import AutoTokenizer, AutoModel


model_name = "recruit-jp/japanese-clip-vit-b-32-roberta-base"
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True).to(device)


def _convert_to_rgb(image):
    return image.convert('RGB')


preprocess = torchvision.transforms.Compose([
    torchvision.transforms.Resize(size=224, interpolation=torchvision.transforms.InterpolationMode.BICUBIC, max_size=None),
    torchvision.transforms.CenterCrop(size=(224, 224)),
    _convert_to_rgb,
    torchvision.transforms.ToTensor(),
    torchvision.transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073], std=[0.26862954, 0.26130258, 0.27577711])
])


def tokenize(tokenizer, texts):
    texts = ["[CLS]" + text for text in texts]
    encodings = [
        # NOTE: the maximum token length that can be fed into this model is 77
        tokenizer(text, max_length=77, padding="max_length", truncation=True, add_special_tokens=False)["input_ids"]
        for text in texts
    ]
    return torch.LongTensor(encodings)


# Run!
image = Image.open(
    io.BytesIO(
        requests.get(
            'https://images.pexels.com/photos/2253275/pexels-photo-2253275.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260'
        ).content
    )
)
image = preprocess(image).unsqueeze(0).to(device)
text = tokenize(tokenizer, texts=["犬", "猫", "象"]).to(device)
with torch.inference_mode():
    image_features = model.get_image_features(image)
    image_features /= image_features.norm(dim=-1, keepdim=True)
    text_features = model.get_text_features(input_ids=text)
    text_features /= text_features.norm(dim=-1, keepdim=True)
    probs = image_features @ text_features.T
print("Label probs:", probs.cpu().numpy()[0])

Model Performance

We've conducted model performance evaluation on the datasets listed below. Since ImageNet V2 and Food101 are datasets from English speaking context, we translated the class label into Japanese before we conduct evaluation.

We also evaluated laion/CLIP-ViT-H-14-frozen-xlm-roberta-large-laion5B-s13B-b90k, laion/CLIP-ViT-B-32-xlm-roberta-base-laion5B-s13B-b90k, rinna/japanese-clip-vit-b-16 and stabilityai/japanese-stable-clip-vit-l-16 on the same datasets. Note that stabilityai/japanese-stable-clip-vit-l-16 is trained on STAIR Captions dataset, we skipped evaluation of stability's model on STAIR Captions.

ModelImageNet V2Food101ETLC-hiraganaETLC-katakanaSTAIR Captions image-to-textSTAIR Captions text-to-imagejafood101jaflower30jafacility20jalandmark10
laion/CLIP-ViT-H-14-frozen-xlm-roberta-large-laion5B-s13B-b90k0.4710.7420.0550.0290.4620.2230.7090.8690.8200.899
laion/CLIP-ViT-B-32-xlm-roberta-base-laion5B-s13B-b90k0.3260.5080.1620.0610.3720.1690.6090.7090.7490.846
rinna/japanese-clip-vit-b-160.4350.4910.0140.0240.0890.0340.3080.5920.4060.656
stabilityai/japanese-stable-clip-vit-l-160.4810.4600.0130.023--0.4130.6890.6770.752
recruit-jp/japanese-clip-vit-b-32-roberta-base0.1750.3010.0300.0380.1910.1020.5240.5920.6760.797

Training Dataset

This model is trained with 128M image-text pairs from the Japanese subset of LAION2B-multi dataset.

Disclaimer

㈱リクルートは、本モデル利用による成果に関し、正確性、有用性、確実性、違法性の確認及び何らの保証および補償を行わないものとし、また、モデル利用によって利用者に生じた損害および第三者との間における紛争について㈱リクルートは一切責任を負いません。

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

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

GPU в ailist

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

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

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
JapaneseCLIPModel
Ревизия весов
391228d

0 моделей