Kakao Brain ViT and ALIGN Models Release with COYO 700M Dataset
TL;DR
Kakao Brain and Hugging Face have open‑sourced two visual‑language models—ViT and ALIGN—trained on the new 700 M image‑text COYO dataset, marking the first publicly released ALIGN model and the first ViT/ALIGN models paired with an open training corpus.
What was released
- COYO dataset – 700 M image‑text pairs collected from the web, released under an open‑source license.
- ViT models – Vision Transformers that follow the architecture and hyper‑parameters of Google’s ViT, trained on the COYO‑Labeled‑300M subset.
- ALIGN models – Dual‑encoder image‑text models matching Google’s ALIGN architecture, trained on the full COYO dataset.
- Demo spaces and pipelines – Interactive demos on the Hugging Face Hub and ready‑to‑use
transformerspipelines for classification and zero‑shot tasks.
Performance comparison
- ALIGN‑B7‑Base trained on 700 M pairs matches Google’s ALIGN‑B7‑Base on Image KNN classification and exceeds it on MS‑COCO image‑to‑text and text‑to‑image retrieval.
- ViT‑L/16 achieves comparable ImageNet and ImageNet‑ReaL accuracy to Google’s ViT‑L/16 at 384 px and 512 px resolutions.
- These results demonstrate that open‑source models can reach state‑of‑the‑art performance even with a fraction of the proprietary data size.
COYO dataset details
- Scale: 700 M English image‑text pairs (≈747 M after filtering).
- Source: Webpages crawled between Oct 2020 and Aug 2021 (Common Crawl).
- Metadata: Includes CLIP similarity scores (ViT‑B/32 and ViT‑L/14), NSFW scores, watermark scores, aesthetic scores, and face‑count data.
- Differences from LAION‑2B:
Feature COYO LAION‑2B Size 700 M 2 B Similarity score CLIP‑B/32 & L/14, no filtering CLIP‑B/32, threshold 0.28 NSFW filtering Both image & text Image only Face count Provided Not provided Watermark score Robust metric Basic score Availability Hugging Face Hub Hugging Face Hub
How ViT works
- ViT splits an image into fixed‑size patches, embeds each patch, adds positional embeddings, and processes the sequence with a standard Transformer encoder.
- This design yields up to four‑times better compute efficiency than comparable CNNs while remaining domain‑agnostic.
- Kakao Brain’s ViT models use the same architecture as Google’s ViT but are trained on the publicly released COYO‑Labeled‑300M subset, enabling full reproducibility.
How ALIGN works
- ALIGN employs a dual‑encoder: a vision encoder for images and a text encoder for captions, trained with a contrastive loss on noisy alt‑text pairs.
- The noisy, large‑scale training corpus (originally 1.8 B pairs) allows ALIGN to excel at cross‑modal retrieval and zero‑shot classification.
- Kakao Brain’s ALIGN model is the first open‑source implementation of this architecture, trained on the 700 M COYO pairs and achieving performance that meets or exceeds Google’s reported numbers.
Using the COYO dataset
from datasets import load_dataset
# Load the full dataset (may be large)
full = load_dataset('kakaobrain/coyo-700m')
# Stream a subset to avoid downloading everything
stream = load_dataset('kakaobrain/coyo-700m', streaming=True)
print(next(iter(stream['train'])))
The streamed example shows fields such as url, text, width, height, clip_similarity_vitb32, nsfw_score_opennsfw2, watermark_score, and aesthetic_score_laion_v2.
Quick start with ViT
import requests, torch
from PIL import Image
from transformers import ViTImageProcessor, ViTForImageClassification
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = ViTImageProcessor.from_pretrained('kakaobrain/vit-large-patch16-384')
model = ViTForImageClassification.from_pretrained('kakaobrain/vit-large-patch16-384')
inputs = processor(images=image, return_tensors='pt')
with torch.no_grad():
logits = model(**inputs).logits
probs = torch.nn.functional.softmax(logits, dim=-1)
top5 = torch.argsort(probs, descending=True)[0, :5]
for idx in top5:
print(f"{model.config.id2label[idx.item()]}: {probs[0, idx].item():.4f}")
Or use the high‑level pipeline:
from transformers import pipeline
classifier = pipeline('image-classification', model='kakaobrain/vit-large-patch16-384')
print(classifier('http://images.cocodataset.org/val2017/000000039769.jpg', top_k=5))
Quick start with ALIGN
from transformers import AlignProcessor, AlignModel
import requests, torch
from PIL import Image
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = AlignProcessor.from_pretrained('kakaobrain/align-base')
model = AlignModel.from_pretrained('kakaobrain/align-base')
candidate_labels = ['an image of a cat', 'an image of a dog']
inputs = processor(images=image, text=candidate_labels, return_tensors='pt')
with torch.no_grad():
logits = model(**inputs).logits_per_image
probs = logits.softmax(dim=1)
print(probs)
For zero‑shot classification via pipeline:
from transformers import pipeline
classifier = pipeline('zero-shot-image-classification', model='kakaobrain/align-base')
print(classifier('https://huggingface.co/datasets/Narsil/image_dummy/raw/main/parrots.png',
candidate_labels=['animals', 'humans', 'landscape']))
The model also exposes get_image_features and get_text_features for downstream embedding‑based tasks.
Implications for the research community
- Reproducibility: Researchers can now replicate Google‑scale ViT and ALIGN experiments because both the models and the exact training data are publicly available.
- Accessibility: The open‑source ALIGN model removes a major barrier for labs without access to proprietary billions‑of‑pair datasets.
- Benchmarking: Since COYO includes rich metadata (aesthetic, watermark, face counts), new fine‑grained analyses of model behavior on filtered subsets become possible.
- Future work: The community can extend COYO, combine it with other datasets (e.g., LAION), or fine‑tune the released models for specialized domains while retaining full transparency.
All code snippets assume a recent version of transformers (or the development branch for ALIGN) and the datasets library installed via pip install datasets.