🚀 TiC-CLIP-basic-cumulative モデルカード
このリポジトリには、2014年から2022年までのデータを使用して、TiC-DataComp-Yearly (xlarge, basic filtering) でトレーニングされたTiC-CLIPモデルが含まれています。トレーニングには、修正版のOpenCLIPコードが使用されています。詳細については、GitHubリポジトリ を参照してください。
✨ 主な機能
大規模な基盤モデルを最新のデータで更新することは、本来的にコストがかかります。頻繁に再トレーニングすることによる高コストを回避するために、これらのモデルを継続的にトレーニングすることが重要です。しかし、大規模な継続学習のベンチマークやベースラインが不足しているため、この問題はさらに深刻化しています。
このプロジェクトでは、ビジョン言語モデルのトレーニングに使用する最初のウェブスケールの時間継続型 (TiC) ベンチマークを導入します。具体的には、TiC-DataComp、TiC-YFCC、およびTiC-Redcapsです。最大のデータセットであるTiC-DataCompには、9年間 (2014年 - 2022年) にわたる127億を超えるタイムスタンプ付きの画像テキストペアが含まれています。
まず、これらのベンチマークを使用して、既存のモデルの時間的なロバスト性を測定するためのさまざまな動的評価を行います。例えば、2020年までのデータでトレーニングされたOpenAIのCLIPは、2021年 - 2022年の選りすぐりの検索タスクで、OpenCLIPリポジトリで最近トレーニングされたモデルと比較して、約8%のゼロショット精度を失うことが示されています。
次に、時間的に連続したデータでモデルを効率的にトレーニングする方法を研究します。最後のチェックポイントからトレーニングを続け、古いデータを再生するという単純なリハーサルベースのアプローチが、スクラッチから再トレーニングする標準的な方法と比較して、コンピュート量を2.5倍削減できることを実証しています。コードは このURL で入手できます。
モデルのソース
- リポジトリ: ml-tic-clip GitHubリポジトリ
- 論文: TiC-CLIP: Continual Training of CLIP Models, Garg, S., Farajtabar, M., Pouransari, H., Vemulapalli, R., Mehta, S., Tuzel, O., Shankar, V. and Faghri, F., International Conference on Learning Representations (ICLR), 2024.
🚀 クイックスタート
研究者は、TiC-CLIPの事前学習済みモデルを使用して、事前学習済みのチェックポイントから開始し、翌年または翌月のデータで継続的にトレーニングすることで、継続学習方法をより迅速に設計することができます。
これらのモデルは、DataComp評価スイートおよびTiC-DataComp-RetrievalとTiC-DataCompNetでの評価用にパッチ適用されたDataCompバージョンと互換性があります。また、OpenCLIPコードを使用してトレーニングを再開するため、または新しいトレーニングの初期化として使用することもできます。
評価セットを作成するには、GitHubリポジトリ の指示に従ってください。38のデータセットでの標準評価については、DataComp を参照してください。
以下のコードスニペットでは、TiC-DataCompデータが準備され、GitHubリポジトリの指示に従っていることを前提としています。
💻 使用例
基本的な使用法
トレーニング
YEAR=2016
REPO="apple/TiC-CLIP-basic-cumulative"
huggingface-cli download $REPO checkpoints/$YEAR.pt
pushd datacomp
final_data_dir=$TIC_DATACOMP_Y_PATH/train/$YEAR/
torchrun --nproc_per_node 8 --nnodes 1 \
train.py \
--scale "tic_medium" \
--dataset_resampled \
--data_dir $final_data_dir \
--output_dir "./results/" \
--exp_name "datacomp_medium-basic_cumulative" \
--imagenet_val $IMAGENET_VAL_PATH \
--save_frequency 1 \
--resume
popd
評価
pushd datacomp
python ../dataset_creation/tic-datacomp/generate_tasklist.py --yaml-path tasklist.yml --sample-eval --eval-tasks retrieval/yearly,datacompnet/yearly
python evaluate.py --data_dir data/ --train_output_dir ./results --use_model "ViT-B-16 $YEAR.pt" --skip_hf --skip_db --skip_notification
高度な使用法
OpenCLIPのロードと推論の例
import open_clip
from huggingface_hub import hf_hub_download
filename = hf_hub_download(repo_id="apple/TiC-CLIP-basic-cumulative", filename="checkpoints/2016.pt")
model, _, preprocess = open_clip.create_model_and_transforms('ViT-B-16', filename)
tokenizer = open_clip.get_tokenizer('ViT-B-16')
image = preprocess(Image.open("image.png").convert('RGB')).unsqueeze(0)
text = tokenizer(["a diagram", "a dog", "a cat"])
with torch.no_grad(), torch.cuda.amp.autocast():
image_features = model.encode_image(image)
text_features = model.encode_text(text)
image_features /= image_features.norm(dim=-1, keepdim=True)
text_features /= text_features.norm(dim=-1, keepdim=True)
text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
print("Label probs:", text_probs)
📦 インストール
このセクションでは、具体的なインストール手順が提供されていません。
📚 ドキュメント
トレーニングデータ
トレーニングデータの詳細については、TiC-DataComp を参照してください。
トレーニング手順
トレーニング手順の詳細については、TiC-CLIP 論文のセクション2 - 3を参照してください。
📄 ライセンス
📚 引用
TiC-CLIP: Continual Training of CLIP Models. (ICLR 2024)
Garg, S., Farajtabar, M., Pouransari, H., Vemulapalli, R., Mehta, S., Tuzel, O., Shankar, V. and Faghri, F..
@inproceedings{garg2024tic,
title={TiC-CLIP: Continual Training of CLIP Models},
author={Garg, Saurabh and Farajtabar, Mehrdad and Pouransari, Hadi and Vemulapalli, Raviteja and Mehta, Sachin and Tuzel, Oncel and Shankar, Vaishaal and Faghri, Fartash},
booktitle={The Twelfth International Conference on Learning Representations (ICLR)},
year={2024},
url={https://openreview.net/forum?id=TLADT8Wrhn}
}
属性 |
详情 |
モデルタイプ |
TiC-CLIPモデル |
トレーニングデータ |
TiC-DataComp-Yearly (xlarge, basic filtering) の2014年 - 2022年のデータ |