🚀 TinyCLIP: 類似度模倣と重み継承によるCLIP蒸留
TinyCLIPは、大規模言語画像事前学習モデルのための新しいクロスモーダル蒸留手法です。この手法には、類似度模倣と重み継承という2つの核心技術が導入されています。この研究により、小型のCLIPモデルの能力が引き出され、大規模モデルや事前学習データが十分に活用され、速度と精度のバランスが最適化されています。
🚀 クイックスタート
💻 使用例
基本的な使用法
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("wkcn/TinyCLIP-ViT-39M-16-Text-19M-YFCC15M")
processor = CLIPProcessor.from_pretrained("wkcn/TinyCLIP-ViT-39M-16-Text-19M-YFCC15M")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
✨ 主な機能
- TinyCLIP ViT-45M/32は、ViT-B/32の半分のパラメータで、同等のゼロショット性能を達成します。
- TinyCLIP ResNet-19Mは、パラメータを50%削減しながら、推論速度を2倍にし、ImageNetで**56.4%**の精度を達成します。
📚 詳細ドキュメント
モデル一覧
モデル名 |
重み継承方法 |
事前学習データ |
IN-1K Acc@1(%) |
MACs(G) |
スループット(pairs/s) |
リンク |
TinyCLIP ViT-39M/16 Text-19M |
手動 |
YFCC-15M |
63.5 |
9.5 |
1,469 |
モデル |
TinyCLIP ViT-8M/16 Text-3M |
手動 |
YFCC-15M |
41.1 |
2.0 |
4,150 |
モデル |
TinyCLIP ResNet-30M Text-29M |
手動 |
LAION-400M |
59.1 |
6.9 |
1,811 |
モデル |
TinyCLIP ResNet-19M Text-19M |
手動 |
LAION-400M |
56.4 |
4.4 |
3,024 |
モデル |
TinyCLIP ViT-61M/32 Text-29M |
手動 |
LAION-400M |
62.4 |
5.3 |
3,191 |
モデル |
TinyCLIP ViT-40M/32 Text-19M |
手動 |
LAION-400M |
59.8 |
3.5 |
4,641 |
モデル |
TinyCLIP ViT-63M/32 Text-31M |
自動 |
LAION-400M |
63.9 |
5.6 |
2,905 |
モデル |
TinyCLIP ViT-45M/32 Text-18M |
自動 |
LAION-400M |
61.4 |
3.7 |
3,682 |
モデル |
TinyCLIP ViT-22M/32 Text-10M |
自動 |
LAION-400M |
53.7 |
1.9 |
5,504 |
モデル |
TinyCLIP ViT-63M/32 Text-31M |
自動 |
LAION+YFCC-400M |
64.5 |
5.6 |
2,909 |
モデル |
TinyCLIP ViT-45M/32 Text-18M |
自動 |
LAION+YFCC-400M |
62.7 |
1.9 |
3,685 |
モデル |
注: 自動継承のモデルの設定は自動生成されています。
公式PyTorch実装
https://github.com/microsoft/Cream/tree/main/TinyCLIP
引用
このリポジトリが役に立った場合は、引用を検討してください。:mega: ありがとうございます! :)
@InProceedings{tinyclip,
title = {TinyCLIP: CLIP Distillation via Affinity Mimicking and Weight Inheritance},
author = {Wu, Kan and Peng, Houwen and Zhou, Zhenghong and Xiao, Bin and Liu, Mengchen and Yuan, Lu and Xuan, Hong and Valenzuela, Michael and Chen, Xi (Stephen) and Wang, Xinggang and Chao, Hongyang and Hu, Han},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2023},
pages = {21970-21980}
}
謝辞
当研究のコードは、CLIP、OpenCLIP、CoFi、PyTorchに基づいています。貢献者の素晴らしい貢献に感謝いたします!
📄 ライセンス