模型简介
模型特点
模型能力
使用案例
🚀 CLIP - ConvNeXt-Large-D 模型卡
本模型基于ConvNeXt-Large架构,在LAION - 2B数据集上训练,旨在为研究社区提供零样本图像分类等功能的研究工具,助力研究人员探索图像分类相关领域。
🚀 快速开始
本模型是一系列基于ConvNeXt - Large架构的CLIP模型,使用OpenCLIP在LAION - 2B数据集上进行训练。以下将详细介绍模型的细节、用途、训练过程、评估结果等内容。
✨ 主要特性
- 架构创新:采用ConvNeXt - Large作为图像塔,视觉塔使用MLP头,文本塔有特定的深度和嵌入维度。
- 训练优势:在256x256分辨率下,ConvNext - Large - D使用约1/2的训练FLOPs就能达到比之前L/14模型更高的准确率。
- 多样用途:可用于零样本图像分类、图像和文本检索等直接任务,也可用于图像分类微调、图像生成引导等下游任务。
📦 安装指南
文档未提及安装步骤,暂不提供相关内容。
💻 使用示例
文档未提供代码示例,暂不提供相关内容。
📚 详细文档
🔍 模型细节
模型描述
一系列基于CLIP的ConvNeXt - Large(具有额外文本深度和视觉MLP头)模型,在LAION - 2B(英文)数据集上训练,该数据集是LAION - 5B的子集,使用OpenCLIP进行训练。
目标:
- 探索一种可替代ViT和ResNet(带注意力池化)的CLIP模型,该模型能随模型大小和图像分辨率良好扩展。
首次尝试:
- 首次在CLIP ViT - L/16、ViT - L14和RN50x16规模范围内训练已知的ConvNeXt CLIP模型。
- 首次发布通过增加(更大范围的RRC、随机擦除、随机深度)探索图像塔增强和正则化的模型权重。
模型特性:
- 使用[timm](https://github.com/rwightman/pytorch - image - models)的ConvNeXt - Large模型(
convnext_large
)作为图像塔。 - 视觉塔使用MLP(
fc - gelu - drop - fc
)头,而非其他CLIP模型的单一投影。 - 文本塔宽度与ViT - L / RN50x16模型相同,但深度多4层(深度16,嵌入维度768)。
模型在256x256图像分辨率下训练(正在开发384变体)。在256x256分辨率下,ConvNext - Large - D使用约1/2的训练FLOPs就能达到比之前在LAION - 2B上训练的L/14模型更高的准确率。L/14模型的GMAC约为1.65倍,激活值约为1.45倍,参数约为1.22倍。ConvNeXt在训练中见过约26B个样本,而L/14为34B。
模型 | 数据集 | 分辨率 | 增强正则化 | ImageNet零样本Top - 1准确率(%) |
---|---|---|---|---|
[convnext_large_d.laion2b_s26b_b102k - augreg](https://huggingface.co/laion/CLIP - convnext_large_d.laion2B - s26B - b102K - augreg) | LAION - 2B | 256x256 | RRC (0.33, 1.0), RE (0.35), SD (0.1), D(0.1) | 75.9 |
[convnext_large_d_320.laion2b_s29b_b131k - ft](https://huggingface.co/laion/CLIP - convnext_large_d_320.laion2B - s29B - b131K - ft) | LAION - 2B | 320x320 | RRC (0.5, 1.0), RE (0.4), SD (0.1), D(0.0) | 76.6 |
[convnext_large_d_320.laion2b_s29b_b131k - ft - soup](https://huggingface.co/laion/CLIP - convnext_large_d_320.laion2B - s29B - b131K - ft - soup) | LAION - 2B | 320x320 | RRC (0.5, 1.0), RE (0.4), SD (0.1), D(0.0) | 76.9 |
RRC = 随机调整裁剪(裁剪百分比),RE = 随机擦除(概率),SD = 随机深度(概率) - 仅适用于图像塔,D = 丢弃(概率) - 仅适用于图像塔头部。
LAION - A = LAION美学,是LAION - 2B的约9亿样本子集,经过pHash去重和美学分数过滤。
模型由Ross Wightman在stability.ai集群上完成训练。
💡 用途
直接用途
零样本图像分类、图像和文本检索等。
下游用途
图像分类和其他图像任务的微调、线性探针图像分类、图像生成引导和条件设置等。
超出范围的用途
- 部署使用:目前,模型的任何部署用例(无论是否商业用途)都超出了范围。除非对模型进行特定、固定类别的全面领域测试,否则不建议在受限环境中进行图像搜索等非部署用例。因为安全评估表明,鉴于CLIP在不同类别分类法下性能的可变性,非常需要进行特定任务测试,未经测试和无约束的模型部署可能有害。
- 特定领域:涉及监控和面部识别领域的用例始终超出范围,因为目前缺乏确保公平使用的测试规范和检查,使用人工智能进行此类任务可能还不成熟。
- 语言限制:由于模型仅在英语上进行训练和评估,其使用应限于英语用例。
🔧 训练细节
训练数据
本模型使用LAION - 2B数据集进行训练,这是LAION - 5B的20亿样本英文子集(https://laion.ai/blog/laion - 5b/)。
⚠️ 重要提示
该数据集的创建旨在推动大规模多模态模型训练和未整理大规模数据集处理的研究与实验。建议仅将其用于研究目的。此大规模数据集未经过整理,其中的链接可能包含令人不适和不安的内容。可以通过基于安全标签过滤样本来提取“安全”子集,但不能完全排除有害内容的存在。不建议使用该数据集创建工业产品,因为关于此类大规模模型的基本属性和安全性的研究仍在进行中。
训练过程
所有模型以102400的全局批次大小训练,共进行128个检查点间隔,每个间隔203.7M样本,训练过程中总共见过约26B个样本。
对于256x256分辨率的模型,在16个8 - GPU(A100 80GB)节点(Stability)上使用以下slurm脚本和srun命令:
/opt/slurm/sbin/srun --cpu_bind=v --accel-bind=gn python -m training.main \
--save-frequency 1 \
--name "convnext_large_256" \
--resume 'latest' \
--train-data="pipe:aws s3 cp s3://mybucket/path/{laion{00000..xxxxx}.tar -" \
--train-num-samples 203666042 \
--dataset-type webdataset \
--precision amp_bfloat16 \
--beta2 0.98 \
--warmup 10000 \
--batch-size=800 \
--epochs=128 \
--dataset-resampled \
--aug-cfg use_timm=True scale='(0.33, 1.0)' re_prob=0.35 \
--clip-grad-norm 5.0 \
--lr 1.667e-3 \
--workers=6 \
--model "convnext_large_d" \
--seed 0 \
--ddp-static-graph \
--local-loss \
--gather-with-grad \
--grad-checkpointing
📊 评估
评估使用[LAION CLIP Benchmark suite](https://github.com/LAION - AI/CLIP_benchmark)中的代码进行。
测试数据、因素和指标
测试数据
分类任务使用VTAB +(VTAB(https://arxiv.org/abs/1910.04867)与额外鲁棒性数据集的组合),检索任务使用COCO和Flickr。
结果
模型在ImageNet - 1k上实现了75.9的零样本Top - 1准确率。
已在更广泛的数据集上进行了初步基准测试,结果可在https://github.com/LAION - AI/CLIP_benchmark/blob/main/benchmark/results.ipynb查看。
🙏 致谢
感谢stability.ai提供训练本模型的计算资源。
📜 引用
BibTeX引用
LAION - 5B
@inproceedings{schuhmann2022laionb,
title={{LAION}-5B: An open large-scale dataset for training next generation image-text models},
author={Christoph Schuhmann and
Romain Beaumont and
Richard Vencu and
Cade W Gordon and
Ross Wightman and
Mehdi Cherti and
Theo Coombes and
Aarush Katta and
Clayton Mullis and
Mitchell Wortsman and
Patrick Schramowski and
Srivatsa R Kundurthy and
Katherine Crowson and
Ludwig Schmidt and
Robert Kaczmarczyk and
Jenia Jitsev},
booktitle={Thirty-sixth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2022},
url={https://openreview.net/forum?id=M3Y74vmsMcY}
}
OpenCLIP软件
@software{ilharco_gabriel_2021_5143773,
author = {Ilharco, Gabriel and
Wortsman, Mitchell and
Wightman, Ross and
Gordon, Cade and
Carlini, Nicholas and
Taori, Rohan and
Dave, Achal and
Shankar, Vaishaal and
Namkoong, Hongseok and
Miller, John and
Hajishirzi, Hannaneh and
Farhadi, Ali and
Schmidt, Ludwig},
title = {OpenCLIP},
month = jul,
year = 2021,
note = {If you use this software, please cite it as below.},
publisher = {Zenodo},
version = {0.1},
doi = {10.5281/zenodo.5143773},
url = {https://doi.org/10.5281/zenodo.5143773}
}
OpenAI CLIP论文
@inproceedings{Radford2021LearningTV,
title={Learning Transferable Visual Models From Natural Language Supervision},
author={Alec Radford and Jong Wook Kim and Chris Hallacy and A. Ramesh and Gabriel Goh and Sandhini Agarwal and Girish Sastry and Amanda Askell and Pamela Mishkin and Jack Clark and Gretchen Krueger and Ilya Sutskever},
booktitle={ICML},
year={2021}
}
@Article{liu2022convnet,
author = {Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},
title = {A ConvNet for the 2020s},
journal = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2022},
}
@misc{rw2019timm,
author = {Ross Wightman},
title = {PyTorch Image Models},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = {10.5281/zenodo.4414861},
howpublished = {\url{https://github.com/rwightman/pytorch-image-models}}
}









