🚀 TiC - CLIP最佳池順序模型卡
本倉庫包含基於TiC - DataComp - Yearly(超大,最佳池過濾)數據集訓練的TiC - CLIP模型,這些數據涵蓋了2014年至2022年的內容,使用了我們改進後的OpenCLIP代碼進行訓練。如需更多信息,請參考我們的GitHub倉庫。
✨ 主要特性
- 引入了首批網絡規模的時間連續(TiC)基準,用於訓練視覺語言模型,包括TiC - DataComp、TiC - YFCC和TiC - Redcaps。
- 利用這些基準進行動態評估,衡量現有模型的時間魯棒性。
- 研究瞭如何在時間連續的數據上高效訓練模型,提出了基於排練的方法,相比從頭開始重新訓練,可將計算量減少2.5倍。
📦 安裝指南
模型與DataComp評估套件以及我們針對TiC - DataComp - Retrieval和TiC - DataCompNet評估的DataComp補丁版本兼容。模型也可用於恢復訓練或作為使用OpenCLIP代碼進行新訓練的初始化。請按照我們GitHub倉庫中的說明創建評估集,或參考DataComp進行38個數據集的標準評估。
訓練
YEAR=2016
REPO="apple/TiC-CLIP-bestpool-sequential"
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
💻 使用示例
基礎用法
import open_clip
from huggingface_hub import hf_hub_download
filename = hf_hub_download(repo_id="apple/TiC-CLIP-bestpool-sequential", 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)基準,用於訓練視覺語言模型:TiC - DataComp、TiC - YFCC和TiC - Redcaps。其中,TiC - DataComp是我們最大的數據集,包含超過127億個帶時間戳的圖像 - 文本對,時間跨度為9年(2014 - 2022年)。
我們首先利用這些基準進行各種動態評估,以衡量現有模型的時間魯棒性。結果表明,與OpenCLIP倉庫中最近訓練的模型相比,OpenAI的CLIP(基於2020年之前的數據訓練)在我們精心設計的2021 - 2022年檢索任務中,零樣本準確率下降了約8%。然後,我們研究瞭如何在時間連續的數據上高效訓練模型。我們證明,一種基於簡單排練的方法,即從最後一個檢查點繼續訓練並回放舊數據,與從頭開始重新訓練的標準做法相比,可將計算量減少2.5倍。代碼可在此鏈接獲取。
模型來源
- 倉庫: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預訓練模型,從預訓練檢查點開始,在後續年份或月份的數據上持續訓練,從而更快地設計持續學習方法。
訓練詳情
訓練數據
請參考TiC - DataComp。
訓練過程
請參考我們TiC - CLIP論文的第2 - 3節。
📄 許可證
本模型使用自定義蘋果許可證,詳情請見LICENSE。
📚 引用
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}
}