The idea · two encoders, one space
ViT-B/32 or ResNet
I ∈ ℝ⁵¹²
EMBEDDING SPACE
pairs together
of a cat"
Transformer
T ∈ ℝ⁵¹²
Contrastive pretraining · the N×N matrix
Take a batch of N image–caption pairs. Embed all N images and all N captions. Compute every image-to-text cosine similarity — an N×N grid. The diagonal (matched pairs) should be high; everything off-diagonal (mismatched) should be low. The loss (InfoNCE) is just a softmax cross-entropy that says "for each row, the correct column is the diagonal."
Zero-shot classification · the payoff
CLIP vs OpenCLIP · same recipe, open kitchen
| ASPECT | CLIP (OpenAI '21) | OpenCLIP (LAION) |
|---|---|---|
| Training data | 400M private pairs (WIT) | LAION-400M / 2B / DataComp — public |
| Weights | released; data not | weights + data + code all open |
| Backbones | ResNet-50…, ViT-B/32…L/14 | adds ViT-G/14, ConvNeXt, more |
| Scaling laws | implicit | explicitly studied & reproducible |
| Top zero-shot (IN-1k) | ~76% (ViT-L/14) | ~80%+ (ViT-G/14, bigger data) |
| Why it matters | proved the recipe | made it auditable & extendable |
OpenCLIP is not a different model — it's the same contrastive recipe re-implemented in the open by LAION, trained on publicly downloadable image-text pairs. Because everything is public, researchers can study exactly how zero-shot accuracy scales with data size and model size.
Practically: if you want a CLIP model you can fine-tune, audit, or ship commercially without licensing worry, you reach for OpenCLIP. The open_clip library is the de-facto standard interface, and most newer vision-language models bootstrap from an OpenCLIP backbone.