ViT (Vision Transformer)
ViT désigne à la fois l’architecture originale du Vision Transformer (Dosovitskiy et al., 2021) et, par extension, la famille entière des architectures Transformer appliquées à la vision par ordinateur, incluant DeiT, Swin, BEiT, CaiT et leurs successeurs.
- Architecture originale
- ViT (Google Brain, ICLR 2021)
- Variantes majeures
- DeiT (Meta), Swin (Microsoft), BEiT (Microsoft), CaiT (Meta), CrossViT
- Tailles
- ViT-S (22M), ViT-B (86M), ViT-L (307M), ViT-H (632M), ViT-g (1B+)
- Patch sizes
- /8, /14, /16, /32 (plus petit = meilleure résolution, plus coûteux)
- Modèles pré-entraînés
- timm, Hugging Face, GitHub Meta (DINOv2), GitHub Google (ViT)
- Usage 2026
- Backbone standard pour la vision, surtout avec pre-training SSL
Comprendre la notation ViT-X/Y
La notation ViT-X/Y encode deux informations essentielles. X indique la taille du modèle : S (Small, ~22M paramètres), B (Base, ~86M), L (Large, ~307M), H (Huge, ~632M), g (giant, 1B+). Y indique la taille des patches en pixels : /8 (patches 8×8), /14 (14×14), /16 (16×16), /32 (32×32).
L’impact de ces deux paramètres est direct et significatif :
| Modèle | Couches | Dimension | Têtes | Params | Tokens (224px) | FLOPs (224px) |
|---|---|---|---|---|---|---|
| ViT-S/16 | 12 | 384 | 6 | 22M | 196 | ~4,6G |
| ViT-B/16 | 12 | 768 | 12 | 86M | 196 | ~17,6G |
| ViT-B/8 | 12 | 768 | 12 | 86M | 784 | ~70G |
| ViT-L/16 | 24 | 1 024 | 16 | 307M | 196 | ~61,6G |
| ViT-L/14 | 24 | 1 024 | 16 | 307M | 256 | ~81G |
| ViT-H/14 | 32 | 1 280 | 16 | 632M | 256 | ~167G |
| ViT-g/14 | 40 | 1 536 | 24 | 1,1B | 256 | ~280G |
Le nombre de tokens croît comme (224/P)², où P est la taille du patch. Passer de /16 à /8 quadruple le nombre de tokens (196 → 784), et le coût d’attention étant quadratique, cela multiplie le coût par ~16×. En revanche, /8 offre une résolution spatiale 2× meilleure, ce qui améliore les performances sur les tâches nécessitant des détails fins (segmentation, détection d’objets). DINOv2 utilise /14 comme compromis standard.
Comparatif des variantes ViT
L’architecture ViT originale a engendré de nombreuses variantes, chacune adressant une limitation spécifique. Voici les principales.
ViT original (Google, 2021)
Encodeur Transformer pur, sans convolution. Attention globale sur tous les patches. Excellentes performances avec pre-training à grande échelle (JFT-300M ou SSL). Limite : sous-performe les CNNs sur ImageNet-1K seul sans augmentations fortes ni SSL.
DeiT (Meta, 2021)
Data-efficient Image Transformer. Entraînable efficacement sur ImageNet-1K grâce à des augmentations fortes (MixUp, CutMix, RandAugment) et un token de distillation qui apprend à reproduire les sorties d’un CNN teacher. DeiT-S (22M params) surpasse ViT-B (86M) entraîné sans ces techniques, prouvant que le problème du ViT sur les petits datasets est une question de recette d’entraînement, pas d’architecture.
Swin Transformer (Microsoft, 2021)
Introduit l’attention par fenêtres glissantes (window attention) et une structure pyramidale hiérarchique. Le coût passe de O(N²) à O(N×W²), où W est la taille de la fenêtre. Swin génère des feature maps multi-échelles (comme un CNN) ce qui le rend nativement compatible avec les détecteurs d’objets (Faster R-CNN, Cascade Mask R-CNN) et les segmenteurs (UperNet). Swin-B surpasse tous les backbones CNN et ViT sur COCO detection (+3,6 AP vs ResNeXt101-64x4d).
BEiT (Microsoft, 2022)
BERT Pre-Training of Image Transformers. Utilise le masked image modeling avec un tokenizer DALL-E pour convertir les patches en tokens discrets, puis prédit les tokens masqués. BEiT atteint des performances compétitives avec MAE mais est plus complexe (nécessite un tokenizer pré-entraîné).
CaiT (Meta, 2021)
Class-Attention in Image Transformers. Sépare la self-attention entre patches et la class-attention (qui agrège l’information dans le token [CLS]). Le token [CLS] n’est pas injecté au début de la séquence (comme dans ViT) mais dans les dernières couches seulement. Cela évite que le token [CLS] interfère avec l’auto-attention entre patches dans les couches profondes, améliorant la stabilité et la qualité des features.
| Variante | Attention | Structure | Force principale | Cas d’usage optimal |
|---|---|---|---|---|
| ViT | Globale | Plate (isotrope) | Simplicité, synergie SSL | Pre-training SSL (DINO, MAE) |
| DeiT | Globale | Plate + distillation | Data-efficient | Entraînement sur ImageNet-1K |
| Swin | Fenêtres glissantes | Pyramidale | Tâches denses, multi-échelle | Détection d’objets, segmentation |
| BEiT | Globale | Plate | Masked image modeling | Pre-training avec tokenizer |
| CaiT | Globale + class-attention | Plate | Stabilité entraînement profond | Grands modèles de classification |
Modèles pré-entraînés disponibles
Le choix du modèle pré-entraîné est souvent plus important que le choix de l’architecture elle-même. Voici les sources principales et les recommandations.
DINOv2 (Meta, 2023)
Les modèles DINOv2 sont disponibles en ViT-S/14, ViT-B/14, ViT-L/14 et ViT-g/14, pré-entraînés par auto-distillation SSL sur 142M images curées. Ce sont les backbones les plus polyvalents : excellents en classification, segmentation, retrieval et estimation de profondeur, souvent sans aucun fine-tuning. Licence Apache 2.0. Disponibles via timm et Hugging Face.
MAE (Meta, 2022)
Les modèles MAE sont disponibles en ViT-B/16, ViT-L/16 et ViT-H/14, pré-entraînés par masked image modeling sur ImageNet-1K. Ils offrent les meilleures performances absolues après fine-tuning complet (87,8% ImageNet avec ViT-H). Les features brutes sont moins directement utilisables que DINOv2 (linear probing inférieur), mais le fine-tuning complet surpasse tous les autres modèles SSL.
CLIP (OpenAI, 2021)
Les encodeurs visuels de CLIP (ViT-B/32, ViT-B/16, ViT-L/14) sont pré-entraînés par contrastive learning image-texte sur 400M paires. Ils sont optimaux pour le zero-shot classification (classifier via des descriptions textuelles) et les applications multimodales. Les ViT CLIP sont la base de nombreux modèles vision-langage (LLaVA, Flamingo).
AugReg (Google, 2021)
Google a publié plus de 50 000 checkpoints ViT et hybrides pré-entraînés sur ImageNet-1K et ImageNet-21k avec différentes combinaisons d’augmentation de données et de régularisation (AugReg). C’est une ressource précieuse pour explorer l’impact des recettes d’entraînement sur les performances. Disponibles via le repo Google Research et timm.
Efficacité et optimisation des ViT
Réduction de tokens
Le coût quadratique de l’attention est le principal défi des ViT. Plusieurs approches réduisent le nombre de tokens sans détruire l’information. Token Merging (ToMe) fusionne les tokens similaires à chaque couche via un matching bipartite. EViT (Efficient ViT) supprime les tokens les moins importants (basé sur l’attention au token [CLS]). TokenLearner crée un ensemble réduit de tokens résumés via des sommes pondérées dynamiques. Ces méthodes réduisent les FLOPs de 30-50% avec une perte de précision inférieure à 1%.
Compression et pruning
CAIT (pas le CaiT d’architecture, mais l’algorithme de compression) combine pruning de tokens (suppression spatiale) et pruning de canaux (réduction dimensionnelle) pour les ViT. Sur DeiT-Small, CAIT réduit les FLOPs de 35% tout en maintenant ou améliorant la précision. La compression est essentielle pour le déploiement sur edge et mobile.
Distillation de connaissances
DeiT introduit la distillation spécifique aux ViT : un token de distillation apprend à reproduire les sorties d’un CNN teacher. DINOv2 et DINOv3 utilisent la distillation pour transférer les connaissances d’un très grand ViT (ViT-g ou 7B) vers des modèles plus petits (ViT-S, ViT-B). Cette approche est plus efficace que l’entraînement from scratch pour les petits modèles.
Guide pratique de déploiement
Librairies et écosystème
| Librairie | Contenu | Utilisation |
|---|---|---|
| timm (PyTorch Image Models) | 1 000+ modèles ViT pré-entraînés | timm.create_model('vit_base_patch16_224', pretrained=True) |
| Hugging Face Transformers | ViT, DeiT, Swin, BEiT, DINOv2 | AutoModel.from_pretrained('facebook/dinov2-base') |
| torchvision | ViT-B/16, ViT-L/16 de base | torchvision.models.vit_b_16(pretrained=True) |
| GitHub Meta (DINO) | DINOv2, DINOv3 | Checkpoints + code d’évaluation |
| GitHub Google (ViT) | ViT original, AugReg, 50k+ checkpoints | JAX/Flax + Colabs |
Conseils de fine-tuning
Learning rate : les ViT sont sensibles au learning rate. Pour le fine-tuning depuis un modèle pré-entraîné, utilisez un learning rate plus bas que pour les CNNs (typiquement 1e-4 à 5e-5 avec AdamW). Un warm-up cosinus de 5-10 époques stabilise l’entraînement.
Résolution : les ViT pré-entraînés à 224×224 peuvent être fine-tunés à des résolutions plus élevées (384, 448, 518) en interpolant les embeddings positionnels (interpolation bicubique). MAE ViT-H passe de 86,9% (224) à 87,8% (448) par ce simple changement de résolution au fine-tuning.
Régularisation : les ViT bénéficient fortement de Stochastic Depth (drop path), Label Smoothing, MixUp et CutMix. Sans ces régularisations, les ViT tendent à overfitter sur les petits datasets.
Layer-wise learning rate decay : appliquer un learning rate décroissant couche par couche (plus bas pour les premières couches, plus haut pour les dernières) améliore le fine-tuning des ViT pré-entraînés. C’est une technique standard pour BEiT et MAE.
ViT vs. CNN en 2026 : guide de décision
Le choix entre ViT et CNN reste une question pratique pertinente, même si la tendance est clairement en faveur des ViT pour la majorité des cas. Un benchmark récent (2025) comparant ViT, DeiT, BEiT, ConvNeXt et Swin Transformer sur la classification d’images médicales dentaires illustre bien les nuances. ConvNeXt (un CNN modernisé) obtient la meilleure précision (81,06%), suivi de BEiT (80,00%) et Swin (79,73%), avec ViT et DeiT derrière (79,37% et 78,79%). Sur ce dataset déséquilibré et de taille modeste, les biais inductifs des CNNs restent avantageux.
En imagerie médicale plus largement, les études comparatives montrent des résultats variables : DeiT atteint 96,5% sur les radiographies thoraciques, PVTv2 domine sur l’histologie mammaire (91,6%) et le fond d’œil (91,3%). Il n’y a pas de « meilleure architecture universelle », le choix dépend du dataset, de la taille des données, et de la tâche.
Voici les critères de décision :
Utilisez un ViT pré-entraîné SSL quand vous avez accès à un GPU décent (A100, 4090), que les données labellisées sont limitées (le SSL pré-entraîné compense), que vous avez besoin de features polyvalentes (classification + segmentation + retrieval), ou que vous construisez un système multimodal.
Utilisez un CNN (EfficientNet, ConvNeXt) quand l’inférence doit tourner sur mobile/edge avec des contraintes de latence strictes, quand votre dataset est très petit (quelques milliers d’images) sans accès à un bon pré-entraînement, ou quand la simplicité d’intégration dans un pipeline existant est prioritaire.
Utilisez une architecture hybride (stem convolutionnel + corps ViT, ou Swin Transformer) quand vous avez besoin de features multi-échelles (détection, segmentation) avec les performances des ViT mais la structure pyramidale des CNNs.
La tendance en 2026 est claire : les ViT pré-entraînés par SSL (DINOv2 en tête) sont devenus le choix par défaut pour la majorité des tâches de vision, sauf quand les contraintes de déploiement imposent des modèles plus légers.
ViT en production : retours d’expérience
Le déploiement de ViT en production présente des défis spécifiques par rapport aux CNNs. L’attention quadratique rend la latence d’inférence plus sensible à la résolution d’entrée. Un ViT-B/16 à 224×224 est comparable en vitesse à un ResNet-50, mais à 512×512, il devient 3-4× plus lent. Le batching est aussi plus impactant : les ViT bénéficient davantage du traitement par lots grâce à la parallélisation efficace de l’attention sur GPU.
L’écosystème d’optimisation s’est étoffé. ONNX Runtime et TensorRT supportent les ViT avec des optimisations spécifiques (fusion des couches d’attention, kernels optimisés). FlashAttention réduit significativement la consommation mémoire de l’attention (de O(N²) à O(N) en mémoire) tout en accélérant le calcul de 2-4×. Pour le déploiement mobile, les frameworks comme Core ML (Apple) et TensorFlow Lite incluent désormais un support natif des ViT.
En termes de monitoring, les ViT posent un défi supplémentaire par rapport aux CNNs : le distributional shift affecte les embeddings positionnels, qui sont liés à la résolution d’entraînement. Un changement de résolution ou de ratio d’aspect en production peut dégrader les performances de manière inattendue. Les bonnes pratiques incluent le monitoring des statistiques d’attention (distribution des poids d’attention, entropie) comme indicateur de drift.
Pour les ensembles de ViT, la technique Vit-Ensemble (voting probabiliste combinant DeiT-Base, Swin et BEiT) a démontré des résultats supérieurs aux modèles individuels en imagerie médicale (99,67% de précision en détection de tuberculose), confirmant que la diversité architecturale des ViT se traduit par une complémentarité exploitable en production.
Verdict
L’écosystème ViT est devenu le pilier de la vision par ordinateur moderne. De l’architecture originale (Google, 2021) aux modèles de fondation DINOv3 (Meta, 2025) avec 7 milliards de paramètres, la trajectoire est claire : les ViT sont de plus en plus grands, de plus en plus performants, et de plus en plus accessibles via des modèles pré-entraînés open source.
Pour les praticiens, l’ère des ViT simplifie paradoxalement le choix technique. Utilisez DINOv2 comme backbone par défaut. Choisissez la taille (S/B/L/g) en fonction de votre budget GPU et de vos contraintes de latence. Fine-tunez avec AdamW, warm-up cosinus et layer-wise LR decay. Et vérifiez toujours si les features brutes (sans fine-tuning) suffisent pour votre tâche avant d’investir dans un fine-tuning complet. Les ViT SSL modernes sont souvent si performants out-of-the-box qu’un simple classificateur linéaire ou k-NN sur les features suffit.
Questions fréquentes sur les ViT
Quel ViT pré-entraîné utiliser en 2026 pour un nouveau projet ?
DINOv2 ViT-L/14 est le choix par défaut le plus sûr. Il offre d’excellentes performances sur la classification, la segmentation, le retrieval et l’estimation de profondeur, souvent sans fine-tuning. Si votre tâche est uniquement de la classification et que vous pouvez fine-tuner, MAE ViT-H/14 donne les meilleurs résultats absolus. Pour le multimodal (image + texte), les ViT CLIP sont la référence. Pour l’edge computing, ViT-S/14 DINOv2 distillé offre le meilleur rapport performance/efficacité.
ViT-B/16 ou ViT-B/14 : lequel est meilleur ?
ViT-B/14 (patches 14×14) donne 256 tokens pour une image 224×224, contre 196 pour ViT-B/16. La résolution spatiale est légèrement meilleure, au prix d’un coût ~30% supérieur. DINOv2 utilise /14 comme standard. L’article ViT original utilise /16. En pratique, la différence est modeste pour la classification (~0,5-1% de gain pour /14), mais plus significative pour les tâches denses (segmentation, détection). Préférez /14 si le budget calcul le permet.
Swin Transformer ou ViT : lequel pour la détection d’objets ?
Swin Transformer est nativement conçu pour la détection grâce à sa structure pyramidale et son attention par fenêtres (coût linéaire). Il produit des feature maps multi-échelles directement compatibles avec FPN, Faster R-CNN et Cascade Mask R-CNN. Le ViT original produit une seule échelle de features (pas de pyramide), ce qui nécessite des adaptations (comme ViTDet) pour la détection. En 2026, les deux approches sont compétitives, mais Swin reste le choix le plus simple pour la détection. DINOv2 ViT avec des adaptateurs denses est l’alternative montante.
Comment réduire le coût d’un ViT sans perdre trop de précision ?
Quatre approches par ordre de simplicité. Premièrement, utilisez un modèle plus petit (ViT-S au lieu de ViT-B). Deuxièmement, augmentez la taille des patches (/16 au lieu de /14 ou /8). Troisièmement, appliquez Token Merging (ToMe) pour fusionner les tokens redondants à chaque couche (~30-50% de réduction de FLOPs pour <1% de perte). Quatrièmement, utilisez un modèle distillé (DINOv2 ViT-S distillé depuis ViT-g conserve l'essentiel des performances du grand modèle).
Les ViT vont-ils remplacer complètement les CNNs ?
Non, mais leur domination continue de s’étendre. Les CNNs modernisés (ConvNeXt, EfficientNet v2) restent compétitifs, surtout sur les petits datasets et en inférence edge/mobile. Sur les benchmarks récents (imagerie médicale, imagerie dentaire), ConvNeXt surpasse parfois Swin et BEiT sur des datasets déséquilibrés, montrant que les biais inductifs des CNNs restent précieux dans certains contextes. La tendance est aux architectures hybrides (stem convolutionnel + corps Transformer) qui combinent le meilleur des deux mondes. Mais pour le pre-training à grande échelle et les features de fondation, le ViT est l’architecture dominante et le restera probablement.