🚀 TinyCLIP: CLIP Distillation via Affinity Mimicking and Weight Inheritance
TinyCLIPは、大規模言語画像事前学習モデルに対する新しいクロスモーダル蒸留手法です。この手法では、アフィニティ模倣と重み継承という2つの核心技術が導入されています。この研究により、小型のCLIPモデルの能力が引き出され、大規模モデルや事前学習データが十分に活用され、速度と精度のバランスが最適化されています。
🚀 クイックスタート
Transformersでの使用方法
from PIL import Image
import requests
from transformers import CLIPProcessor, CLIPModel
model = CLIPModel.from_pretrained("wkcn/TinyCLIP-ViT-40M-32-Text-19M-LAION400M")
processor = CLIPProcessor.from_pretrained("wkcn/TinyCLIP-ViT-40M-32-Text-19M-LAION400M")
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に基づいています。貢献者の素晴らしい貢献に感謝します!
📄 ライセンス