🚀 太乙-CLIP-RoBERTa-102M-ViT-L-Chinese
初のオープンソース中国語CLIPモデル。1.23億の画像-テキストペアで事前学習されたテキストエンコーダRoBERTa-base
🚀 クイックスタート
Taiyi-CLIP-RoBERTa-102M-ViT-L-Chineseは、強力な視覚-言語表現を獲得するために開発された中国語CLIPモデルです。以下に、このモデルの基本的な情報と使用方法を紹介します。
✨ 主な機能
- 初のオープンソース中国語CLIPモデルで、1.23億の画像-テキストペアで事前学習されています。
- テキストエンコーダにRoBERTa-baseを使用し、視覚エンコーダにViT-L-14を使用しています。
- ゼロショット分類やテキストから画像への検索などのタスクで良好な性能を発揮します。
📦 インストール
このモデルを使用するには、必要なライブラリをインストールする必要があります。以下のコードを参考にしてください。
# 必要なライブラリのインストール
pip install requests open_clip torch transformers numpy pillow
💻 使用例
基本的な使用法
from PIL import Image
import requests
import open_clip
import torch
from transformers import BertModel, 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-102M-ViT-L-Chinese")
text_encoder = BertModel.from_pretrained("IDEA-CCNL/Taiyi-CLIP-RoBERTa-102M-ViT-L-Chinese").eval()
url = "http://images.cocodataset.org/val2017/000000039769.jpg" # 这里可以换成任意图片的url
# 加载openclip的image encoder
clip_model, _, processor = open_clip.create_model_and_transforms('ViT-L-14', pretrained='openai')
clip_model = clip_model.eval()
text = text_tokenizer(query_texts, return_tensors='pt', padding=True)['input_ids']
image = processor(Image.open(requests.get(url, stream=True).raw)).unsqueeze(0)
with torch.no_grad():
image_features = clip_model.encode_image(image)
text_features = text_encoder(text)[1]
# 归一化
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) |
102M |
中国語 |
モデル情報
我々はCLIPの実験設定に従い、強力な視覚-言語表現を獲得しました。中国語版のCLIPを訓練する際、我々はchinese-roberta-wwmを言語エンコーダとして使用し、open_clipのViT-L-14を視覚エンコーダに適用しました。事前学習を迅速かつ安定的に行うため、我々は視覚エンコーダを凍結し、言語エンコーダのみを微調整しました。さらに、Noah-Wukongデータセット(100M)とZeroデータセット(23M)を事前学習用のデータセットとして使用しました。悟空データセットとzeroデータセットで24エポックの事前学習を行い、A100x32で6日間訓練しました。我々の知る限り、我々のTaiyi-CLIPは現在Huggingfaceコミュニティで初のオープンソース中国語CLIPです。
下流性能
ゼロショット分類
モデル |
データセット |
Top1 |
Top5 |
Taiyi-CLIP-RoBERTa-102M-ViT-L-Chinese |
ImageNet1k-CN |
55.04% |
81.75% |
ゼロショットテキストから画像への検索
モデル |
データセット |
Top1 |
Top5 |
Top10 |
Taiyi-CLIP-RoBERTa-102M-ViT-L-Chinese |
Flickr30k-CNA-test |
58.32% |
82.96% |
89.40% |
Taiyi-CLIP-RoBERTa-102M-ViT-L-Chinese |
COCO-CN-test |
55.27% |
81.10% |
90.78% |
Taiyi-CLIP-RoBERTa-102M-ViT-L-Chinese |
wukong50k |
64.95% |
91.77% |
96.28% |
🔧 技術詳細
📄 ライセンス
このモデルは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}},
}
関連リンク