Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

ViT (Vision Transformer)

ia

Définition

Le Vision Transformer (ViT) est une architecture de deep learning pour la vision par ordinateur qui applique l'architecture Transformer directement aux images, en les decoupant en patches (carreaux) de taille fixe. Introduit par Dosovitskiy et al. (Google Brain, 2020), ViT a montre qu'un Transformer pur surpasse les CNNs sur les benchmarks majeurs lorsque pre-entraine a grande echelle. Le principe : une image de 224x224 pixels est decoupee en patches de 16x16 pixels, donnant 196 patches. Chaque patch est aplati et projete en un vecteur d'embedding. La sequence de 196 'tokens visuels' est traitee par un Transformer standard (Self-Attention, FFN, RMSNorm), permettant a chaque patch de 'voir' tous les autres directement. ViT beneficie de tous les avantages du Transformer : parallelisation efficace sur GPU, scaling favorable avec les donnees, capacite d'attention globale. ViT depasse les ResNets sur ImageNet lorsque pre-entraine sur JFT-300M. ViT est l'encodeur visuel de CLIP (ViT-L/14, ViT-G/14), de DINOv2 (Meta), de SigLIP (Google), et est integre dans la plupart des VLMs comme LLaVA, InternVL et GPT-4V. Les variantes modernes incluent EVA-CLIP (18B params) et les ViT hierarchiques comme Swin Transformer. DINOv2 (Meta, 2023) est un ViT pre-entraine auto-supervise (sans labels) sur 142M images. Il produit des features visuelles universellement transferables, superieures a CLIP pour les taches de segmentation et detection.

Architecture ViT

# ViT-B/16 : B=Base, 16=taille des patches
# 12 couches Transformer, 12 tetes d'attention, d_model=768, 86M params
from transformers import ViTModel, ViTFeatureExtractor
from PIL import Image

model = ViTModel.from_pretrained('google/vit-base-patch16-224')
extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224')

image = Image.open('image.jpg')
inputs = extractor(images=image, return_tensors='pt')
outputs = model(**inputs)

cls_embedding = outputs.last_hidden_state[:, 0, :]   # [1, 768]
patch_embeddings = outputs.last_hidden_state[:, 1:, :]  # [1, 196, 768]

Comparatif tailles ViT

VariantPatchesd_modelParamsUsage
ViT-S/1616x1638422MEdge/Mobile
ViT-B/1616x1676886MStandard
ViT-L/1414x141024307MCLIP, LLaVA
ViT-G/1414x1416641.8BCLIP-G, OpenCLIP

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis