/ Модель

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

Контекст
77 токенов
Лицензия
MIT
Архитектура
clip · dense
Опубликована
16 сен 2022

clip-vit-base-patch32-ko

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

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

6 969скачиваний за 30 дней7лайковвеса обновлены8 ноя 2022

Бенчмарки

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

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

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

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

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

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

Bingsu/clip-vit-base-patch32-ko — корейская модель CLIP, обученная автором репозитория на основе метода Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation. Она сопоставляет изображения с текстовыми описаниями и предназначена для классификации изображений по произвольным текстовым меткам без отдельного дообучения под каждый набор классов. Для обучения использовались корейско-английские параллельные данные AIHUB; токенизатор CLIP переобучен на смеси корейских и английских текстов в пропорции 7:3. Модель доступна в форматах PyTorch, Safetensors и TensorFlow. Лицензия — MIT. В карточке не приведены размер модели и длина контекста.

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

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

Ограничения

Наиболее явно заявленная языковая специализация — корейский; обучение токенизатора проводилось на смеси корейского и английского текстов. README не приводит количественных оценок качества или подробных ограничений применимости.

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

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

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

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

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

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

Открыть на Hugging Face

clip-vit-base-patch32-ko

Korean CLIP model trained by Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation

Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation로 학습된 한국어 CLIP 모델입니다.

훈련 코드: https://github.com/Bing-su/KoCLIP_training_code

사용된 데이터: AIHUB에 있는 모든 한국어-영어 병렬 데이터

How to Use

1.

import requests
import torch
from PIL import Image
from transformers import AutoModel, AutoProcessor

repo = "Bingsu/clip-vit-base-patch32-ko"
model = AutoModel.from_pretrained(repo)
processor = AutoProcessor.from_pretrained(repo)

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["고양이 두 마리", "개 두 마리"], images=image, return_tensors="pt", padding=True)
with torch.inference_mode():
    outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
>>> probs
tensor([[0.9926, 0.0074]])

2.

from transformers import pipeline

repo = "Bingsu/clip-vit-base-patch32-ko"
pipe = pipeline("zero-shot-image-classification", model=repo)

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
result = pipe(images=url, candidate_labels=["고양이 한 마리", "고양이 두 마리", "분홍색 소파에 드러누운 고양이 친구들"], hypothesis_template="{}")
>>> result
[{'score': 0.9456236958503723, 'label': '분홍색 소파에 드러누운 고양이 친구들'},
 {'score': 0.05315302312374115, 'label': '고양이 두 마리'},
 {'score': 0.0012233294546604156, 'label': '고양이 한 마리'}]

Tokenizer

토크나이저는 한국어 데이터와 영어 데이터를 7:3 비율로 섞어, 원본 CLIP 토크나이저에서 .train_new_from_iterator를 통해 학습되었습니다.

https://github.com/huggingface/transformers/blob/bc21aaca789f1a366c05e8b5e111632944886393/src/transformers/models/clip/modeling_clip.py#L661-L666

        # text_embeds.shape = [batch_size, sequence_length, transformer.width]
        # take features from the eot embedding (eot_token is the highest number in each sequence)
        # casting to torch.int for onnx compatibility: argmax doesn't support int64 inputs with opset 14
        pooled_output = last_hidden_state[
            torch.arange(last_hidden_state.shape[0]), input_ids.to(torch.int).argmax(dim=-1)
        ]

CLIP 모델은 pooled_output을 구할때 id가 가장 큰 토큰을 사용하기 때문에, eos 토큰은 가장 마지막 토큰이 되어야 합니다.

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
CLIPModel
Ревизия весов
844c6cd

0 моделей