Ce référentiel est le point d'entrée pour All Things AIM, une famille de modèles autorégressifs qui repoussent les limites de l'apprentissage visuel et multimodal:
Multimodal Autoregressive Pre-training of Large Vision Encoders [ BibTeX ]Scalable Pre-training of Large Autoregressive Image Models [ BibTeX ]*: Contribution technique égale
Si vous recherchez le modèle AIM d'origine (AIMV1), veuillez vous référer à la lecture ici.
Nous présentons les modèles de la famille de vision AIMV2 pré-formés avec un objectif autorégressif multimodal. La pré-formation AIMV2 est simple et simple pour s'entraîner et évoluer efficacement. Certains points forts AIMV2 incluent:
Nous partageons avec la communauté AIMV2 Points de contrôle prélevés sur les capacités variables, les résolutions de pré-formation:
AIMv2 with 224px ]AIMv2 with 336px ]AIMv2 with 448px ]AIMv2 with Native Resolution ]AIMv2 distilled ViT-Large ] ( recommandé pour les applications multimodales )Zero-shot Adapted AIMv2 ] Veuillez installer Pytorch en utilisant les instructions d'installation officielles. Ensuite, installez le package comme:
pip install 'git+https://github.com/apple/ml-aim.git#subdirectory=aim-v1'
pip install 'git+https://github.com/apple/ml-aim.git#subdirectory=aim-v2'
Nous offrons également un soutien backend MLX pour la recherche et l'expérimentation sur le silicium Apple. Pour activer le support MLX, exécutez simplement:
pip install mlx
from PIL import Image
from aim . v2 . utils import load_pretrained
from aim . v1 . torch . data import val_transforms
img = Image . open (...)
model = load_pretrained ( "aimv2-large-patch14-336" , backend = "torch" )
transform = val_transforms ( img_size = 336 )
inp = transform ( img ). unsqueeze ( 0 )
features = model ( inp ) from PIL import Image
import mlx . core as mx
from aim . v2 . utils import load_pretrained
from aim . v1 . torch . data import val_transforms
img = Image . open (...)
model = load_pretrained ( "aimv2-large-patch14-336" , backend = "mlx" )
transform = val_transforms ( img_size = 336 )
inp = transform ( img ). unsqueeze ( 0 )
inp = mx . array ( inp . numpy ())
features = model ( inp ) from PIL import Image
import jax . numpy as jnp
from aim . v2 . utils import load_pretrained
from aim . v1 . torch . data import val_transforms
img = Image . open (...)
model , params = load_pretrained ( "aimv2-large-patch14-336" , backend = "jax" )
transform = val_transforms ( img_size = 336 )
inp = transform ( img ). unsqueeze ( 0 )
inp = jnp . array ( inp )
features = model . apply ({ "params" : params }, inp )Les modèles pré-formés sont accessibles via HuggingFace Hub comme:
from PIL import Image
from transformers import AutoImageProcessor , AutoModel
image = Image . open (...)
processor = AutoImageProcessor . from_pretrained ( "apple/aimv2-large-patch14-336" )
model = AutoModel . from_pretrained ( "apple/aimv2-large-patch14-336" , trust_remote_code = True )
inputs = processor ( images = image , return_tensors = "pt" )
outputs = model ( ** inputs )| Model_id | #params | En 1 | Lien hf | Colonne vertébrale |
|---|---|---|---|---|
| AIMV2-GARD-PATCH14-224 | 0,3b | 86.6 | ?lien | lien |
| AIMV2-HOGUS-PATCH14-224 | 0,6b | 87.5 | ?lien | lien |
| AIMV2-1B-PATCH14-224 | 1.2b | 88.1 | ?lien | lien |
| AIMV2-3B-PATCH14-224 | 2.7b | 88.5 | ?lien | lien |
| Model_id | #params | En 1 | Lien hf | Colonne vertébrale |
|---|---|---|---|---|
| AIMV2-GARD-PATCH14-336 | 0,3b | 87.6 | ?lien | lien |
| AIMV2-HOGUS-PATCH14-336 | 0,6b | 88.2 | ?lien | lien |
| AIMV2-1B-PATCH14-336 | 1.2b | 88.7 | ?lien | lien |
| AIMV2-3B-PATCH14-336 | 2.7b | 89.2 | ?lien | lien |
| Model_id | #params | En 1 | Lien hf | Colonne vertébrale |
|---|---|---|---|---|
| AIMV2-GARD-PATCH14-448 | 0,3b | 87.9 | ?lien | lien |
| AIMV2-HOGUS-PATCH14-448 | 0,6b | 88.6 | ?lien | lien |
| AIMV2-1B-PATCH14-448 | 1.2b | 89.0 | ?lien | lien |
| AIMV2-3B-PATCH14-448 | 2.7b | 89.5 | ?lien | lien |
Nous fournissons en outre un point de contrôle AIMV2-L qui est financé pour traiter un large éventail de résolutions d'image et de ratios d'aspect. Quel que soit le rapport d'aspect, l'image est patchifiée (patch_size = 14) et une intégration de positionnalité sinusoïdale 2D est ajoutée aux patchs d'entrée projetés linéairement. Ce point de contrôle prend en charge le nombre de correctifs dans la plage de [112, 4096] .
| Model_id | #params | En 1 | Lien hf | Colonne vertébrale |
|---|---|---|---|---|
| AIMV2-GARD-PATCH14-Native | 0,3b | 87.3 | ?lien | lien |
Nous fournissons un point de contrôle AIMV2-L distillé à partir de l'AIMV2-3B qui fournit une performance remarquable pour les références de compréhension multimodale.
| Modèle | Vqav2 | GQA | Okvqa | Textvqa | Docvqa | Infovqa | Chartqa | Sciqa | Mmep |
|---|---|---|---|---|---|---|---|---|---|
| AIMV2-L | 80.2 | 72.6 | 60.9 | 53.9 | 26.8 | 22.4 | 20.3 | 74.5 | 1457 |
| AIMV2-L-distillé | 81.1 | 73.0 | 61.4 | 53.5 | 29.2 | 23.3 | 24.0 | 76.3 | 1627 |
| Model_id | #params | Res. | Lien hf | Colonne vertébrale |
|---|---|---|---|---|
| AIMV2-GARD-PATCH14-224-distillé | 0,3b | 224px | ?lien | lien |
| AIMV2-GARD-PATCH14-336-distillé | 0,3b | 336px | ?lien | lien |
Nous fournissons les encodeurs de vision et de texte AIMV2-L après un réglage éclairé pour permettre une reconnaissance zéro-shot.
| modèle | #params | zéro-shot in1-k | Colonne vertébrale |
|---|---|---|---|
| AIMV2-L | 0,3b | 77.0 | lien |
Si vous trouvez notre travail utile, envisagez de nous citer comme:
@misc { fini2024multimodal ,
title = { Multimodal Autoregressive Pre-training of Large Vision Encoders } ,
author = { Enrico Fini and Mustafa Shukor and Xiujun Li and Philipp Dufter and Michal Klein and David Haldimann and Sai Aitharaju and Victor Guilherme Turrisi da Costa and Louis Béthune and Zhe Gan and Alexander T Toshev and Marcin Eichner and Moin Nabi and Yinfei Yang and Joshua M. Susskind and Alaaeldin El-Nouby } ,
year = { 2024 } ,
eprint = { 2411.14402 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
} @InProceedings { pmlr-v235-el-nouby24a ,
title = { Scalable Pre-training of Large Autoregressive Image Models } ,
author = { El-Nouby, Alaaeldin and Klein, Michal and Zhai, Shuangfei and Bautista, Miguel '{A}ngel and Shankar, Vaishaal and Toshev, Alexander T and Susskind, Joshua M. and Joulin, Armand } ,
booktitle = { Proceedings of the 41st International Conference on Machine Learning } ,
pages = { 12371--12384 } ,
year = { 2024 } ,
}Veuillez consulter la licence de référentiel avant d'utiliser le code et les modèles fournis.