模型概述
模型特點
模型能力
使用案例
🚀 TiC-CLIP-basic-cumulative模型卡
本倉庫包含使用修改後的OpenCLIP代碼,在TiC-DataComp-Yearly(xlarge,基本過濾)數據集上訓練的TiC-CLIP模型,訓練數據時間跨度為2014年至2022年。更多信息請參考我們的GitHub倉庫。
🚀 快速開始
本模型與DataComp評估套件以及我們為TiC-DataComp-Retrieval和TiC-DataCompNet評估任務打補丁後的版本兼容。模型也可以使用OpenCLIP代碼,從之前的檢查點繼續訓練或作為新訓練的初始化。請按照我們GitHub倉庫中的說明創建評估集,或參考DataComp進行38個數據集的標準評估。
以下代碼片段假設已經按照GitHub倉庫中的說明準備好TiC-DataComp數據。
訓練
YEAR=2016 # 由於2014 - 2016年的數據合併為一年,因此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
評估
# 在TiC/Retrieval/Yearly/$YEAR和TiC/DataCompNet/Yearly/$YEAR上評估ViT-B/16模型
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)基準,用於訓練視覺語言模型,包括TiC-DataComp、TiC-YFCC和TiC-Redcaps。其中最大的數據集TiC-DataComp包含超過127億個帶時間戳的圖像-文本對,時間跨度為9年(2014 - 2022年)。
- 評估現有模型的時間魯棒性:使用這些基準進行各種動態評估,以衡量現有模型的時間魯棒性。例如,OpenAI的CLIP(在2020年之前的數據上訓練)在2021 - 2022年的檢索任務中,與OpenCLIP倉庫中最近訓練的模型相比,零樣本準確率下降了約8%。
- 高效訓練方法:研究瞭如何在時間連續的數據上高效訓練模型,證明了一種基於簡單排練的方法,即從最後一個檢查點繼續訓練並回放舊數據,與從頭開始重新訓練的標準做法相比,可將計算量減少2.5倍。
📦 安裝指南
文檔未提及具體安裝步驟,可參考GitHub倉庫獲取相關信息。
💻 使用示例
基礎用法
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)
高級用法
文檔未提及高級用法相關代碼,可參考GitHub倉庫獲取更多信息。
📚 詳細文檔
模型詳情
模型描述
保持大型基礎模型與最新數據同步本質上是昂貴的。為避免不斷重新訓練的高昂成本,持續訓練這些模型至關重要。由於缺乏任何大規模的持續學習基準或基線,這個問題更加嚴重。
我們引入了第一組網絡規模的時間連續(TiC)基準,用於訓練視覺語言模型:TiC-DataComp、TiC-YFCC和TiC-Redcaps。我們最大的數據集TiC-DataComp包含超過127億個帶時間戳的圖像-文本對,時間跨度為9年(2014 - 2022年)。
我們首先使用這些基準進行各種動態評估,以衡量現有模型的時間魯棒性。我們發現,OpenAI的CLIP(在2020年之前的數據上訓練)在我們精心策劃的2021 - 2022年檢索任務中,與OpenCLIP倉庫中最近訓練的模型相比,零樣本準確率下降了約8%。
然後,我們研究瞭如何在時間連續的數據上高效訓練模型。我們證明了一種基於簡單排練的方法,即從最後一個檢查點繼續訓練並回放舊數據,與從頭開始重新訓練的標準做法相比,可將計算量減少2.5倍。代碼可在this https URL獲取。
- 開發者:Apple
- 許可證:請參閱LICENSE
模型來源
- 倉庫: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-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}
}
📋 信息表格
屬性 | 詳情 |
---|---|
模型類型 | 基於TiC-DataComp-Yearly數據集訓練的TiC-CLIP模型 |
訓練數據 | TiC-DataComp,包含超過127億個帶時間戳的圖像-文本對,時間跨度為9年(2014 - 2022年) |
開發者 | Apple |
許可證 | 自定義蘋果許可證,見LICENSE |
倉庫 | ml-tic-clip GitHub倉庫 |
論文 | TiC-CLIP: Continual Training of CLIP Models |









