🚀 Taiyi-CLIP-Roberta-large-326M-Chinese
初のオープンソースの中国語CLIPモデルで、1.23億の画像とテキストのペアで事前学習されたテキストエンコーダはRoBERTa-largeです。
🚀 クイックスタート
✨ 主な機能
初のオープンソースの中国語CLIPモデルで、1.23億の画像とテキストのペアで事前学習されたテキストエンコーダはRoBERTa-largeです。
📦 インストール
このドキュメントにはインストール手順が記載されていません。
💻 使用例
基本的な使用法
from PIL import Image
import requests
import clip
import torch
from transformers import BertForSequenceClassification, BertConfig, BertTokenizer
from transformers import CLIPProcessor, CLIPModel
import numpy as np
query_texts = ["一只猫", "一只狗",'两只猫', '两只老虎','一只老虎'] # 这里是输入文本的,可以随意替换。
# 加载Taiyi 中文 text encoder
text_tokenizer = BertTokenizer.from_pretrained("IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese")
text_encoder = BertForSequenceClassification.from_pretrained("IDEA-CCNL/Taiyi-CLIP-Roberta-large-326M-Chinese").eval()
text = text_tokenizer(query_texts, return_tensors='pt', padding=True)['input_ids']
url = "http://images.cocodataset.org/val2017/000000039769.jpg" # 这里可以换成任意图片的url
# 加载CLIP的image encoder
clip_model = CLIPModel.from_pretrained("openai/clip-vit-large-patch14")
processor = CLIPProcessor.from_pretrained("openai/clip-vit-large-patch14")
image = processor(images=Image.open(requests.get(url, stream=True).raw), return_tensors="pt")
with torch.no_grad():
image_features = clip_model.get_image_features(**image)
text_features = text_encoder(text).logits
# 归一化
image_features = image_features / image_features.norm(dim=1, keepdim=True)
text_features = text_features / text_features.norm(dim=1, keepdim=True)
# 计算余弦相似度 logit_scale是尺度系数
logit_scale = clip_model.logit_scale.exp()
logits_per_image = logit_scale * image_features @ text_features.t()
logits_per_text = logits_per_image.t()
probs = logits_per_image.softmax(dim=-1).cpu().numpy()
print(np.around(probs, 3))
📚 ドキュメント
モデル分類
要件 |
タスク |
シリーズ |
モデル |
パラメータ |
追加情報 |
特殊 |
マルチモーダル |
太乙 |
CLIP (RoBERTa) |
326M |
中国語 |
モデル情報
我々はCLIPの実験設定に従い、強力な視覚 - 言語表現を得るために努力しました。中国語版のCLIPを訓練する際、我々はchinese-roberta-wwm-largeを言語エンコーダとして使用し、CLIPの中のViT-L-14を視覚エンコーダとして適用しました。迅速かつ安定した事前学習を行うため、我々は視覚エンコーダを凍結し、言語エンコーダのみを微調整しました。さらに、Noah-Wukongデータセット(1億件)とZeroデータセット(2300万件)を事前学習用のデータセットとして使用しました。我々はまず悟空データセットで10エポックの事前学習を行い、その後悟空データセットとZeroデータセットで12エポックの事前学習を行い、A100x16で7日間の訓練を行いました。我々の知る限り、我々のTaiyi-CLIPは現在Huggingfaceコミュニティで初のオープンソースの中国語CLIPです。
下流性能
ゼロショット分類
モデル |
データセット |
Top1 |
Top5 |
Taiyi-CLIP-Roberta-326M-Chinese |
ImageNet1k-CN |
53.05% |
79.55% |
ゼロショットテキスト - 画像検索
モデル |
データセット |
Top1 |
Top5 |
Top10 |
Taiyi-CLIP-Roberta-326M-Chinese |
Flickr30k-CNA-test |
54.36% |
80.56% |
87.90% |
Taiyi-CLIP-Roberta-326M-Chinese |
COCO-CN-test |
51.47% |
81.00% |
90.40% |
Taiyi-CLIP-Roberta-326M-Chinese |
wukong50k |
61.18% |
90.46% |
95.74% |
🔧 技術詳細
このドキュメントには技術的な詳細が記載されていません。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で公開されています。
引用
もしあなたの研究や開発でこのモデルを使用した場合、以下の論文を引用してください。
@article{fengshenbang,
author = {Jiaxing Zhang and Ruyi Gan and Junjie Wang and Yuxiang Zhang and Lin Zhang and Ping Yang and Xinyu Gao and Ziwei Wu and Xiaoqun Dong and Junqing He and Jianheng Zhuo and Qi Yang and Yongfeng Huang and Xiayu Li and Yanghan Wu and Junyu Lu and Xinyu Zhu and Weifeng Chen and Ting Han and Kunhao Pan and Rui Wang and Hao Wang and Xiaojun Wu and Zhongshen Zeng and Chongpei Chen},
title = {Fengshenbang 1.0: Being the Foundation of Chinese Cognitive Intelligence},
journal = {CoRR},
volume = {abs/2209.02970},
year = {2022}
}
また、以下のウェブサイトも引用することができます。
@misc{Fengshenbang-LM,
title={Fengshenbang-LM},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}