README.md
12.3 KB · 227 lines · markdown Raw
1 ---
2 license: mit
3 pipeline_tag: zero-shot-image-classification
4 library_name: open_clip
5 tags:
6 - clip
7 ---
8 # Model Card for CLIP-convnext_base_w.laion2B-s13B-b82k-augreg
9
10 # Table of Contents
11
12 1. [Model Details](#model-details)
13 2. [Uses](#uses)
14 3. [Training Details](#training-details)
15 4. [Evaluation](#evaluation)
16 5. [Acknowledgements](#acknowledgements)
17 6. [Citation](#citation)
18
19 # Model Details
20
21 ## Model Description
22
23 A series of CLIP [ConvNeXt-Base](https://arxiv.org/abs/2201.03545) (w/ wide embed dim) models trained on subsets LAION-5B (https://laion.ai/blog/laion-5b/) using OpenCLIP (https://github.com/mlfoundations/open_clip).
24
25 Goals:
26 * Explore an alternative to ViT and ResNet (w/ AttentionPooling) CLIP models that scales well with model size and image resolution
27
28 Firsts:
29 * First known ConvNeXt CLIP models trained at scale in the range of CLIP ViT-B/16 and RN50x4 models
30 * First released model weights exploring increase of augmentation + regularization for image tower via adding (greater scale range of RRC, random erasing, stochastic depth)
31
32 The models utilize the [timm](https://github.com/rwightman/pytorch-image-models) ConvNeXt-Base model (`convnext_base`) as the image tower, and the same text tower as the RN50x4 (depth 12, embed dim 640) model from OpenAI CLIP. The base models are trained at 256x256 image resolution and roughly match the RN50x4 models on FLOPs and activation counts. The models with `320` in the name are trained at 320x320.
33
34 All models in this series were trained for 13B samples and have ImageNet Zero-Shot top-1 of >= 70.8%. Comparing to ViT-B/16 at 34B SS with zero-shot of 70.2% (68.1% for 13B SS) this suggests the ConvNeXt architecture may be more sample efficient in this range of model scale. More experiments needed to confirm.
35
36 | Model | Dataset | Resolution | AugReg | Top-1 ImageNet Zero-Shot (%) |
37 | ----- | ------- | ---------- | ------------ | --------- |
38 | [convnext_base_w.laion2b_s13b_b82k](https://huggingface.co/laion/CLIP-convnext_base_w-laion2B-s13B-b82K) | LAION-2B | 256x256 | RRC (0.9, 1.0) | 70.8 |
39 | [convnext_base_w.laion2b_s13b_b82k_augreg](https://huggingface.co/laion/CLIP-convnext_base_w-laion2B-s13B-b82K-augreg) | LAION-2B | 256x256 | RRC (0.33, 1.0), RE (0.35), SD (0.1) | 71.5 |
40 | [convnext_base_w.laion_aesthetic_s13b_b82k](https://huggingface.co/laion/CLIP-convnext_base_w-laion_aesthetic-s13B-b82K) | LAION-A | 256x256 | RRC (0.9, 1.0) | 71.0 |
41 | [convnext_base_w_320.laion_aesthetic_s13b_b82k](https://huggingface.co/laion/CLIP-convnext_base_w_320-laion_aesthetic-s13B-b82K) | LAION-A | 320x320 | RRC (0.9, 1.0) | 71.7 |
42 | [convnext_base_w_320.laion_aesthetic_s13b_b82k_augreg](https://huggingface.co/laion/CLIP-convnext_base_w_320-laion_aesthetic-s13B-b82K-augreg) | LAION-A | 320x320 | RRC (0.33, 1.0), RE (0.35), SD (0.1) | 71.3 |
43
44 RRC = Random Resize Crop (crop pcts), RE = Random Erasing (prob), SD = Stochastic Depth (prob) -- image tower only
45
46 LAION-A = LAION Aesthetic, an ~900M sample subset of LAION-2B with pHash dedupe and asthetic score filtering.
47
48 Model training done by Ross Wightman across both the [stability.ai](https://stability.ai/) cluster and the [JUWELS Booster](https://apps.fz-juelich.de/jsc/hps/juwels/booster-overview.html) supercomputer. See acknowledgements below.
49
50 # Uses
51
52 As per the original [OpenAI CLIP model card](https://github.com/openai/CLIP/blob/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1/model-card.md), this model is intended as a research output for research communities. We hope that this model will enable researchers to better understand and explore zero-shot, arbitrary image classification. We also hope it can be used for interdisciplinary studies of the potential impact of such model.
53
54 The OpenAI CLIP paper includes a discussion of potential downstream impacts to provide an example for this sort of analysis. Additionally, the LAION-5B blog (https://laion.ai/blog/laion-5b/) and upcoming paper include additional discussion as it relates specifically to the training dataset.
55
56 ## Direct Use
57
58 Zero-shot image classification, image and text retrieval, among others.
59
60 ## Downstream Use
61
62 Image classification and other image task fine-tuning, linear probe image classification, image generation guiding and conditioning, among others.
63
64 ## Out-of-Scope Use
65
66 As per the OpenAI models,
67
68 **Any** deployed use case of the model - whether commercial or not - is currently out of scope. Non-deployed use cases such as image search in a constrained environment, are also not recommended unless there is thorough in-domain testing of the model with a specific, fixed class taxonomy. This is because our safety assessment demonstrated a high need for task specific testing especially given the variability of CLIP’s performance with different class taxonomies. This makes untested and unconstrained deployment of the model in any use case currently potentially harmful.
69
70 Certain use cases which would fall under the domain of surveillance and facial recognition are always out-of-scope regardless of performance of the model. This is because the use of artificial intelligence for tasks such as these can be premature currently given the lack of testing norms and checks to ensure its fair use.
71
72 Since the model has not been purposefully trained in or evaluated on any languages other than English, its use should be limited to English language use cases.
73
74 Further the above notice, the LAION-5B dataset used in training of these models has additional considerations, see below.
75
76 # Training Details
77
78 ## Training Data
79
80 This model was trained with one of (see table in intro):
81 * LAION-2B - A 2 billion sample English subset of LAION-5B (https://laion.ai/blog/laion-5b/).
82 * LAION-Aesthetic - A 900M sample subset of LAION-2B with pHash dedupe and asthetic score filtering
83
84 **IMPORTANT NOTE:** The motivation behind dataset creation is to democratize research and experimentation around large-scale multi-modal model training and handling of uncurated, large-scale datasets crawled from publically available internet. Our recommendation is therefore to use the dataset for research purposes. Be aware that this large-scale dataset is uncurated. Keep in mind that the uncurated nature of the dataset means that collected links may lead to strongly discomforting and disturbing content for a human viewer. Therefore, please use the demo links with caution and at your own risk. It is possible to extract a “safe” subset by filtering out samples based on the safety tags (using a customized trained NSFW classifier that we built). While this strongly reduces the chance for encountering potentially harmful content when viewing, we cannot entirely exclude the possibility for harmful content being still present in safe mode, so that the warning holds also there. We think that providing the dataset openly to broad research and other interested communities will allow for transparent investigation of benefits that come along with training large-scale models as well as pitfalls and dangers that may stay unreported or unnoticed when working with closed large datasets that remain restricted to a small community. Providing our dataset openly, we however do not recommend using it for creating ready-to-go industrial products, as the basic research about general properties and safety of such large-scale models, which we would like to encourage with this release, is still in progress.
85
86 ## Training Procedure
87
88 All models were trained with a global batch size of 81920 for 64 checkpoint intervals of 203.7M samples for a total of ~13B samples seen over training.
89
90 For 256x256 models, a slurm script w/ srun below was used on 20 8-GPU (A100 40GB) nodes (Stability), switching to 40 4-GPU nodes for time on JUWELS.
91
92 ```
93 /opt/slurm/sbin/srun --cpu_bind=v --accel-bind=gn python -m training.main \
94 --save-frequency 1 \
95 --name "convnext_256" \
96 --resume 'latest' \
97 --train-data="pipe:aws s3 cp s3://mybucket/path/{laion{00000..xxxxx}.tar -" \
98 --train-num-samples 203666042 \
99 --dataset-type webdataset \
100 --precision amp_bfloat16 \
101 --warmup 10000 \
102 --batch-size=512 \
103 --epochs=64 \
104 --dataset-resampled \
105 --clip-grad-norm 5.0 \
106 --lr 1e-3 \
107 --workers=6 \
108 --model "convnext_base_w" \
109 --seed 0 \
110 --ddp-static-graph \
111 --local-loss \
112 --gather-with-grad \
113 --grad-checkpointing
114 ```
115
116 For 320x320 models, same as above but w/ 32 8-GPU nodes, local batch size 320, or 64 4-GPU nodes on JUWELs.
117
118 # Evaluation
119
120 Evaluation done with code in the [LAION CLIP Benchmark suite](https://github.com/LAION-AI/CLIP_benchmark).
121
122 ## Testing Data, Factors & Metrics
123
124 ### Testing Data
125
126 The testing is performed with VTAB+ (A combination of VTAB (https://arxiv.org/abs/1910.04867) w/ additional robustness datasets) for classification and COCO and Flickr for retrieval.
127
128 ## Results
129
130 The models achieve between 70.8 and 71.7 zero-shot top-1 accuracy on ImageNet-1k.
131
132 ![](convnext_base_w_zero_shot.png)
133
134 An initial round of benchmarks have been performed on a wider range of datasets, to be viewable at https://github.com/LAION-AI/CLIP_benchmark/blob/main/benchmark/results.ipynb
135
136 As part of exploring increased augmentation + regularization, early evalations suggest that `augreg` trained models evaluate well over a wider range of resolutions. This is especially true for the 320x320 LAION-A model, where the augreg run was lower than the non-augreg when evaluated at the train resolution of 320x320 (71.3 vs 71.7), but improves to 72.2 when evaluated at 384x384 (the non-augreg drops to 71.0 at 384x384).
137
138 # Acknowledgements
139
140 Acknowledging [stability.ai](https://stability.ai/) and the Gauss Centre for Supercomputing e.V. (http://gauss-centre.eu) for funding this part of work by providing computing time through the John von Neumann Institute for Computing (NIC) on the GCS Supercomputer JUWELS Booster at Jülich Supercomputing Centre (JSC).
141
142 # Citation
143
144 **BibTeX:**
145
146 ```bibtex
147 @inproceedings{schuhmann2022laionb,
148 title={{LAION}-5B: An open large-scale dataset for training next generation image-text models},
149 author={Christoph Schuhmann and
150 Romain Beaumont and
151 Richard Vencu and
152 Cade W Gordon and
153 Ross Wightman and
154 Mehdi Cherti and
155 Theo Coombes and
156 Aarush Katta and
157 Clayton Mullis and
158 Mitchell Wortsman and
159 Patrick Schramowski and
160 Srivatsa R Kundurthy and
161 Katherine Crowson and
162 Ludwig Schmidt and
163 Robert Kaczmarczyk and
164 Jenia Jitsev},
165 booktitle={Thirty-sixth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
166 year={2022},
167 url={https://openreview.net/forum?id=M3Y74vmsMcY}
168 }
169 ```
170
171 OpenCLIP software
172 ```bibtex
173 @software{ilharco_gabriel_2021_5143773,
174 author = {Ilharco, Gabriel and
175 Wortsman, Mitchell and
176 Wightman, Ross and
177 Gordon, Cade and
178 Carlini, Nicholas and
179 Taori, Rohan and
180 Dave, Achal and
181 Shankar, Vaishaal and
182 Namkoong, Hongseok and
183 Miller, John and
184 Hajishirzi, Hannaneh and
185 Farhadi, Ali and
186 Schmidt, Ludwig},
187 title = {OpenCLIP},
188 month = jul,
189 year = 2021,
190 note = {If you use this software, please cite it as below.},
191 publisher = {Zenodo},
192 version = {0.1},
193 doi = {10.5281/zenodo.5143773},
194 url = {https://doi.org/10.5281/zenodo.5143773}
195 }
196 ```
197
198 OpenAI CLIP paper
199 ```bibtex
200 @inproceedings{Radford2021LearningTV,
201 title={Learning Transferable Visual Models From Natural Language Supervision},
202 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},
203 booktitle={ICML},
204 year={2021}
205 }
206 ```
207
208 ```bibtex
209 @Article{liu2022convnet,
210 author = {Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},
211 title = {A ConvNet for the 2020s},
212 journal = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
213 year = {2022},
214 }
215 ```
216
217 ```bibtex
218 @misc{rw2019timm,
219 author = {Ross Wightman},
220 title = {PyTorch Image Models},
221 year = {2019},
222 publisher = {GitHub},
223 journal = {GitHub repository},
224 doi = {10.5281/zenodo.4414861},
225 howpublished = {\url{https://github.com/rwightman/pytorch-image-models}}
226 }
227 ```