๐ Transformers - AIMv2 Vision Models
The AIMv2 family of vision models pre - trained with a multimodal autoregressive objective, offering high - performance in various vision tasks.
๐ Quick Start
The AIMv2 models are part of the transformers
library. They are pre - trained using a multimodal autoregressive objective, which is simple to train and scale effectively.
โจ Features
- Outperforms OAI CLIP and SigLIP on the majority of multimodal understanding benchmarks.
- Outperforms DINOv2 on open - vocabulary object detection and referring expression comprehension.
- Exhibits strong recognition performance with AIMv2 - 3B achieving 89.5% on ImageNet using a frozen trunk.
๐ฆ Model Information
Property |
Details |
Library Name |
transformers |
License |
apple - amlr |
Metrics |
accuracy |
Pipeline Tag |
image - feature - extraction |
Tags |
vision, image - feature - extraction, mlx, pytorch |
Model Index
The aimv2 - 1B - patch14 - 448
model has the following performance on different classification tasks:
Dataset |
Accuracy |
imagenet - 1k |
89.0% |
inaturalist - 18 |
83.8% |
cifar10 |
99.4% |
cifar100 |
94.1% |
food101 |
97.2% |
dtd |
88.9% |
oxford - pets |
97.1% |
stanford - cars |
96.6% |
camelyon17 |
93.5% |
patch - camelyon |
89.9% |
rxrx1 |
9.2% |
eurosat |
99.1% |
fmow |
65.9% |
domainnet - infographic |
74.4% |
๐ป Usage Examples
Basic Usage - PyTorch
import requests
from PIL import Image
from transformers import AutoImageProcessor, AutoModel
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained(
"apple/aimv2-1B-patch14-448",
)
model = AutoModel.from_pretrained(
"apple/aimv2-1B-patch14-448",
trust_remote_code=True,
)
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
Advanced Usage - JAX
import requests
from PIL import Image
from transformers import AutoImageProcessor, FlaxAutoModel
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
processor = AutoImageProcessor.from_pretrained(
"apple/aimv2-1B-patch14-448",
)
model = FlaxAutoModel.from_pretrained(
"apple/aimv2-1B-patch14-448",
trust_remote_code=True,
)
inputs = processor(images=image, return_tensors="jax")
outputs = model(**inputs)
๐ License
The models are released under the apple - amlr
license.
๐ Documentation
For more details about the AIMv2 models, please refer to the [AIMv2 Paper
].
๐ Citation
If you find our work useful, please consider citing us as:
@misc{fini2024multimodalautoregressivepretraininglarge,
author = {Fini, Enrico and Shukor, Mustafa and Li, Xiujun and Dufter, Philipp and Klein, Michal and Haldimann, David and Aitharaju, Sai and da Costa, Victor Guilherme Turrisi and Bรฉthune, Louis and Gan, Zhe and Toshev, Alexander T and Eichner, Marcin and Nabi, Moin and Yang, Yinfei and Susskind, Joshua M. and El-Nouby, Alaaeldin},
url = {https://arxiv.org/abs/2411.14402},
eprint = {2411.14402},
eprintclass = {cs.CV},
eprinttype = {arXiv},
title = {Multimodal Autoregressive Pre-training of Large Vision Encoders},
year = {2024},
}