/ Модель

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

Лицензия
Apache 2.0
Опубликована
10 мая 2023

QA-CLIP

Классификация без дообученияТекст → label

QA-CLIP — семейство китайских моделей сопоставления изображений и текста для zero-shot классификации и поиска по изображениям или описаниям.

0скачиваний за 30 дней8лайковвеса обновлены28 авг 2023

Бенчмарки

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

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

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

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

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

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

QA-CLIP — семейство моделей для сопоставления изображений с текстом, разработанное совместной лабораторией QQ-ARC и подразделением Tencent PCG. Модели обучались на китайских текстовых описаниях и общедоступных URL изображений: после фильтрации для обучения использовали 100 миллионов пар изображение–текст. В семействе представлены варианты на базе ViT-B/16 и ViT-L/14.

Модель предназначена для классификации изображений по текстовым меткам без дополнительного обучения и для поиска соответствий между изображениями и текстовыми описаниями. В README приведены оценки на китайских наборах MUGE, Flickr30K-CN и COCO-CN, а также zero-shot классификация на ImageNet. Лицензия репозитория — Apache-2.0.

Обучающие описания ориентированы на китайский язык, поэтому пригодность для других языков не подтверждена. В предоставленных данных нет численных результатов, параметров моделей или длины контекста; для retrieval требуется соответствующая обработка текстовых и визуальных представлений.

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

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

Ограничения

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

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

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

Открыть на Hugging Face

中文说明 | English

Introduction

This project aims to provide a better Chinese CLIP model. The training data used in this project consists of publicly accessible image URLs and related Chinese text descriptions, totaling 400 million. After screening, we ultimately used 100 million data for training. This project is produced by QQ-ARC Joint Lab, Tencent PCG. We have also open-sourced our code on GitHub, QA-CLIP, and welcome to star!

Models and Results

Model Card

QA-CLIP currently has three different open-source models of different sizes, and their model information and download links are shown in the table below:

Results

We conducted zero-shot tests on MUGE Retrieval, Flickr30K-CN, and COCO-CN datasets for image-text retrieval tasks. For the image zero-shot classification task, we tested on the ImageNet dataset. The test results are shown in the table below:

Flickr30K-CN Zero-shot Retrieval (Official Test Set):

MUGE Zero-shot Retrieval (Official Validation Set):

COCO-CN Zero-shot Retrieval (Official Test Set):

Zero-shot Image Classification on ImageNet:

Getting Started

Installation Requirements

Environment configuration requirements:

  • python >= 3.6.4
  • pytorch >= 1.8.0 (with torchvision >= 0.9.0)
  • CUDA Version >= 10.2

Install required packages:

cd /yourpath/QA-CLIP-main
pip install --upgrade pip
pip install -r requirements.txt

Inference Code

export PYTHONPATH=/yourpath/QA-CLIP-main

Inference code example:

import torch 
from PIL import Image

import clip as clip
from clip import load_from_name, available_models
print("Available models:", available_models())  
# Available models: ['ViT-B-16', 'ViT-L-14', 'RN50']

device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = load_from_name("ViT-B-16", device=device, download_root='./')
model.eval()
image = preprocess(Image.open("examples/pokemon.jpeg")).unsqueeze(0).to(device)
text = clip.tokenize(["杰尼龟", "妙蛙种子", "小火龙", "皮卡丘"]).to(device)

with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    # Normalize the features. Please use the normalized features for downstream tasks.
    image_features /= image_features.norm(dim=-1, keepdim=True) 
    text_features /= text_features.norm(dim=-1, keepdim=True)    

    logits_per_image, logits_per_text = model.get_similarity(image, text)
    probs = logits_per_image.softmax(dim=-1).cpu().numpy()

print("Label probs:", probs)

Prediction and Evaluation

Download Image-text Retrieval Test Dataset

In Project Chinese-CLIP, the test set has already been preprocessed. Here is the download link they provided:

MUGE dataset:download link

Flickr30K-CN dataset:download link

Additionally, obtaining the COCO-CN dataset requires applying to the original author.

Download ImageNet Dataset

Please download the raw data yourself,Chinese Label and English Label are provided by Project Chinese-CLIP

Image-text Retrieval Evaluation

The image-text retrieval evaluation code can be referred to as follows:

split=test # Designate the computation of features for the valid or test set
resume=your_ckp_path
DATAPATH=your_DATAPATH
dataset_name=Flickr30k-CN
# dataset_name=MUGE

python -u eval/extract_features.py \
    --extract-image-feats \
    --extract-text-feats \
    --image-data="${DATAPATH}/datasets/${dataset_name}/lmdb/${split}/imgs" \
    --text-data="${DATAPATH}/datasets/${dataset_name}/${split}_texts.jsonl" \
    --img-batch-size=32 \
    --text-batch-size=32 \
    --context-length=52 \
    --resume=${resume} \
    --vision-model=ViT-B-16 \
    --text-model=RoBERTa-wwm-ext-base-chinese

python -u eval/make_topk_predictions.py \
    --image-feats="${DATAPATH}/datasets/${dataset_name}/${split}_imgs.img_feat.jsonl" \
    --text-feats="${DATAPATH}/datasets/${dataset_name}/${split}_texts.txt_feat.jsonl" \
    --top-k=10 \
    --eval-batch-size=32768 \
    --output="${DATAPATH}/datasets/${dataset_name}/${split}_predictions.jsonl"

python -u eval/make_topk_predictions_tr.py \
    --image-feats="${DATAPATH}/datasets/${dataset_name}/${split}_imgs.img_feat.jsonl" \
    --text-feats="${DATAPATH}/datasets/${dataset_name}/${split}_texts.txt_feat.jsonl" \
    --top-k=10 \
    --eval-batch-size=32768 \
    --output="${DATAPATH}/datasets/${dataset_name}/${split}_tr_predictions.jsonl"

python eval/evaluation.py \
    ${DATAPATH}/datasets/${dataset_name}/${split}_texts.jsonl \
    ${DATAPATH}/datasets/${dataset_name}/${split}_predictions.jsonl \
    ${DATAPATH}/datasets/${dataset_name}/output1.json
cat  ${DATAPATH}/datasets/${dataset_name}/output1.json

python eval/transform_ir_annotation_to_tr.py \
    --input ${DATAPATH}/datasets/${dataset_name}/${split}_texts.jsonl

python eval/evaluation_tr.py \
    ${DATAPATH}/datasets/${dataset_name}/${split}_texts.tr.jsonl \
    ${DATAPATH}/datasets/${dataset_name}/${split}_tr_predictions.jsonl \
    ${DATAPATH}/datasets/${dataset_name}/output2.json
cat ${DATAPATH}/datasets/${dataset_name}/output2.json

ImageNet Zero-shot Classification

The ImageNet zero-shot classification code can be referred to as follows

bash scripts/zeroshot_eval.sh 0 \
    ${DATAPATH} imagenet \
    ViT-B-16 RoBERTa-wwm-ext-base-chinese \
    ./pretrained_weights/QA-CLIP-base.pt

Huggingface Model and Online Demo

We have open-sourced our model on the HuggingFace for easier access and utilization. Additionally, we have prepared a simple online demo for zero-shot classification, allowing everyone to experience it firsthand. We encourage you to give it a try!

⭐️QA-CLIP-ViT-B-16⭐️

⭐️QA-CLIP-ViT-L-14⭐️

Here are some examples for demonstration: sample

Acknowledgments

The project code is based on implementation of Chinese-CLIP, and we are very grateful for their outstanding open-source contributions.

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

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

GPU в ailist

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

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

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

Ревизия весов
60aa3f9

0 моделей