🚀 TiC - CLIP基礎預言模型卡
本倉庫包含在TiC - DataComp - Yearly(超大型,基礎過濾)數據集上訓練的TiC - CLIP模型,該數據集使用了2014年至2022年的數據,並採用了我們改進後的OpenCLIP代碼。更多信息請參考我們的GitHub倉庫。
🚀 快速開始
本模型與DataComp評估套件以及我們為TiC - DataComp - Retrieval和TiC - DataCompNet評估而修改的DataComp版本兼容。模型也可用於恢復訓練或作為使用OpenCLIP代碼進行新訓練的初始化。請按照我們GitHub倉庫中的說明創建評估集,或參考DataComp在38個數據集上進行標準評估。
訓練
YEAR=2016
REPO="apple/TiC-CLIP-basic-oracle"
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-oracle", 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年)。
- 研究表明,OpenAI的CLIP(在2020年之前的數據上訓練)在我們精心策劃的2021 - 2022年檢索任務中,與OpenCLIP倉庫中最近訓練的模型相比,零樣本準確率下降了約8%。
- 展示了一種基於簡單排練的方法,該方法從最後一個檢查點繼續訓練並回放舊數據,與從頭開始重新訓練的標準做法相比,計算量減少了2.5倍。
📚 詳細文檔
模型詳情
模型描述
保持大型基礎模型與最新數據同步本質上成本高昂。為避免不斷重新訓練帶來的高昂成本,持續訓練這些模型勢在必行。而缺乏任何大規模的持續學習基準或基線加劇了這個問題。
我們引入了第一套網絡規模的時間連續(TiC)基準,用於訓練視覺語言模型:TiC - DataComp、TiC - YFCC和TiC - Redcaps。我們最大的數據集TiC - DataComp包含超過127億個帶時間戳的圖像 - 文本對,時間跨度為9年(2014 - 2022年)。
我們首先使用這些基準進行各種動態評估,以衡量現有模型的時間魯棒性。我們發現OpenAI的CLIP(在2020年之前的數據上訓練)在我們精心策劃的2021 - 2022年檢索任務中,與OpenCLIP倉庫中最近訓練的模型相比,零樣本準確率下降了約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節。
引用
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(超大型,基礎過濾),使用了2014年至2022年的數據 |
標籤 |
視覺、零樣本圖像分類 |
數據集 |
apple/TiC - DataComp |
庫名稱 |
tic - clip |