🚀 TiC-CLIP-bestpool-oracle 模型卡片
本倉庫包含在 TiC-DataComp-Yearly(xlarge,最佳池過濾)上訓練的 TiC-CLIP 模型,使用了 2014 年至 2022 年的數據,通過我們修改後的 OpenCLIP 代碼進行訓練。更多信息請參考我們的 GitHub 倉庫。
🚀 快速開始
模型與 DataComp 評估套件以及我們為 TiC-DataComp-Retrieval 和 TiC-DataCompNet 評估而打補丁的 DataComp 版本兼容。這些模型還可以使用 OpenCLIP 代碼來恢復訓練或作為新訓練的初始化。請按照我們 GitHub 倉庫 中的說明創建評估集,或按照 DataComp 進行 38 個數據集的標準評估。
以下代碼片段假設已準備好 TiC-DataComp 數據並遵循了 GitHub 倉庫中的說明。
訓練
YEAR=2016
REPO="apple/TiC-CLIP-bestpool-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-bestpool-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)基準,用於訓練視覺語言模型:TiC-DataComp、TiC-YFCC 和 TiC-Redcaps。我們最大的數據集 TiC-DataComp 包含超過 127 億個帶時間戳的圖像 - 文本對,跨度為 9 年(2014 - 2022 年)。
我們首先使用我們的基準進行各種動態評估,以衡量現有模型的時間魯棒性。我們發現,與 OpenCLIP 倉庫中最近訓練的模型相比,OpenAI 的 CLIP(在 2020 年之前的數據上訓練)在我們精心策劃的 2021 - 2022 年檢索任務中零樣本準確率下降了約 8%。然後,我們研究如何在時間連續的數據上高效訓練模型。我們證明,一種基於簡單排練的方法,即從最後一個檢查點繼續訓練並回放舊數據,與從頭開始重新訓練的標準做法相比,計算量減少了 2.5 倍。代碼可在 此鏈接 獲取。
📦 安裝指南
文檔中未提及具體安裝步驟,可參考 GitHub 倉庫 中的說明。
📚 詳細文檔
模型詳情
模型來源
- 倉庫: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-bestpool-oracle |
訓練數據 |
TiC-DataComp-Yearly(xlarge,最佳池過濾),使用 2014 年至 2022 年的數據 |
許可證 |
custom-apple-license,詳情見 LICENSE |
標籤 |
vision, zero-shot-image-classification |
數據集 |
apple/TiC-DataComp |
庫名稱 |
tic-clip |