Página Inicial>Relacionado com a programação>Pitão

Compartilhamos com os pontos de verificação pré-treinados da Comunidade AIMV2 de capacidades variadas, resoluções pré-treinamento:

Instalação

Instale o Pytorch usando as instruções oficiais de instalação. Depois, instale o pacote como:

 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'

Também oferecemos suporte de back -end da MLX para pesquisa e experimentação no Apple Silicon. Para ativar o suporte a MLX, basta executar:

 pip install mlx

Exemplos

Usando 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 )

Usando 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 )

Usando 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 )

Ponto de verificação pré-treinado

Os modelos pré-treinados podem ser acessados via HUGGINGFACE HUB COMO:

 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 com 224px

model_id #params In-1k Link hf Espinha dorsal
AIMV2-LARGE-PATCH14-224 0,3b 86.6 ?link link
AIMV2-HUGE-PATCH14-224 0,6b 87.5 ?link link
AIMV2-1B-PACK14-224 1.2b 88.1 ?link link
AIMV2-3B-PACK14-224 2.7b 88.5 ?link link

AIMV2 com 336px

model_id #params In-1k Link hf Espinha dorsal
AIMV2-LARGE-PATCH14-336 0,3b 87.6 ?link link
AIMV2-HUGE-PACK14-336 0,6b 88.2 ?link link
AIMV2-1B-PACK14-336 1.2b 88.7 ?link link
AIMV2-3B-PACK14-336 2.7b 89.2 ?link link

AIMV2 com 448px

model_id #params In-1k Link hf Espinha dorsal
AIMV2-LARGE-PATCH14-448 0,3b 87.9 ?link link
AIMV2-HUGE-PACK14-448 0,6b 88.6 ?link link
AIMV2-1B-PACK14-448 1.2b 89.0 ?link link
AIMV2-3B-PACK14-448 2.7b 89.5 ?link link

AIMV2 com resolução nativa

Além disso, fornecemos um ponto de verificação AIMV2-L que é o FinetUned para processar uma ampla gama de resoluções de imagem e proporções. Independentemente da proporção, a imagem é patchificada (patch_size = 14) e uma incorporação posicional sinusoidal 2D é adicionada aos patches de entrada projetados linearmente. Este ponto de verificação suporta o número de patches na faixa de [112, 4096] .

model_id #params In-1k Link hf Espinha dorsal
AIMV2-LARGE-PATCH14-NATIVA 0,3b 87.3 ?link link

AIMV2 destilado Vit-Large

Fornecemos um ponto de verificação AIMV2-L destilado do AIMV2-3B, que fornece um desempenho notável para os benchmarks de entendimento multimodal.

Modelo 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-Distilitado 81.1 73.0 61.4 53.5 29.2 23.3 24.0 76.3 1627
model_id #params Res. Link hf Espinha dorsal
AIMV2-LARGE-PATCH14-224-DISTILIADO 0,3b 224px ?link link
AIMV2-LARGE-PATCH14-336-DISTILIADO 0,3b 336px ?link link

Zero Shot adaptado AIMV2

Fornecemos os codificadores de visão e texto AIMV2-L após o ajuste aceso para permitir o reconhecimento de tiro zero.

modelo #params Zero-shot in1-k Espinha dorsal
AIMV2-L 0,3b 77.0 link

Citação

Se você achar útil nosso trabalho, considere nos citar como:

AIMV2 BIBTEX

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

AIMV1 BIBTEX

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

Licença

Confira a licença do repositório antes de usar o código e os modelos fornecidos.

Expandir
Informações adicionais