Page d'accueil>Lié à la programmation>Python

Nous partageons avec la communauté AIMV2 Points de contrôle prélevés sur les capacités variables, les résolutions de pré-formation:

Installation

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

Exemples

Utilisation de Pytorch

 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 )

En utilisant mlx

 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 )

Utilisation de Jax

 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 )

Points de contrôle pré-formés

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 )

AIMV2 avec 224px

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

AIMV2 avec 336px

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

AIMV2 avec 448px

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

AIMV2 avec résolution native

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

AIMV2 Distillé vitré

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

AIMV2 adapté de zéro

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

Citation

Si vous trouvez notre travail utile, envisagez de nous citer comme:

Bibtex AIMV2

 @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 }
}

Bibtex AIMV1

 @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 } ,
}

Licence

Veuillez consulter la licence de référentiel avant d'utiliser le code et les modèles fournis.

Développer
Informations supplémentaires