Polydesk-logotype
Polydesk.ai — Header

DeiT (Data-efficient Image Transformer)

DeiT (Data-efficient Image Transformer) est une famille de Vision Transformers développée par Meta AI et l’Université Sorbonne, capable d’atteindre des performances compétitives en classification d’images en s’entraînant uniquement sur ImageNet-1k (1,2 million d’images) grâce à une stratégie de distillation par token d’attention et des techniques d’augmentation de données avancées.

DeiT en un coup d’œil
Nom complet
Data-efficient Image Transformer
Créateur
Meta AI (Facebook AI Research) + Université Sorbonne
Publication
ICML 2021 (article original) · ECCV 2022 (DeiT III)
Auteurs clés
Hugo Touvron, Matthieu Cord, Hervé Jégou
Architecture
Vision Transformer (ViT) + token de distillation
Meilleur score
85,2 % top-1 sur ImageNet-1k (DeiT-B⚗↑384) · 87,7 % (DeiT III Large, pré-entraîné ImageNet-21k)
Licence
Open Source Apache 2.0
Code
github.com/facebookresearch/deit

Pourquoi DeiT existe : le problème de ViT

Quand Google a publié le Vision Transformer (ViT) fin 2020, le résultat était impressionnant mais assorti d’une contrainte lourde : pour obtenir de bonnes performances, ViT devait être pré-entraîné sur JFT-300M, un dataset interne de 300 millions d’images non accessible au public. Entraîné uniquement sur ImageNet-1k, ViT-B n’atteignait que 77,9 % top-1, soit largement en dessous des CNN de l’époque comme EfficientNet (84,7 %).

Le constat de l’équipe de Meta AI était clair : les Transformers appliqués à la vision n’ont pas de biais inductif spatial (pas de convolutions, pas de pooling hiérarchique). Ils doivent donc « voir » beaucoup plus d’exemples pour apprendre les structures visuelles que les CNN captent naturellement. La question : peut-on compenser ce déficit sans données massives ?

DeiT répond par l’affirmative avec deux leviers : une recette d’entraînement optimisée (augmentation de données, régularisation, optimisation) et un mécanisme de distillation natif au Transformer via un token dédié.

Architecture de DeiT

La base : un ViT standard

L’architecture de DeiT est quasiment identique à celle de ViT. L’image d’entrée (par défaut 224×224 pixels) est découpée en patches de 16×16 pixels. Chaque patch est projeté linéairement dans un espace d’embedding de dimension D. Un token de classe ([CLS]) est ajouté au début de la séquence, et des embeddings de position absolue sont sommés pour encoder la localisation spatiale des patches.

La séquence complète passe ensuite dans un encodeur Transformer standard composé de couches d’attention multi-têtes et de blocs Feed-Forward (MLP). À la sortie, le token [CLS] sert de représentation globale de l’image pour la classification.

Le token de distillation : l’innovation clé

L’apport principal de DeiT est l’ajout d’un token de distillation ([DIST]) à la séquence d’entrée, au même niveau que le token de classe. Ce token est un vecteur appris par rétropropagation qui interagit avec tous les autres tokens (patches et [CLS]) via les couches de self-attention.

Pendant l’entraînement, deux têtes de classification distinctes sont utilisées :

Tête Token source Objectif d’entraînement
Classifieur principal [CLS] Cross-entropy avec le label réel (ground truth)
Classifieur de distillation [DIST] Cross-entropy avec la prédiction du modèle professeur

À l’inférence, les sorties des deux têtes sont fusionnées (addition des softmax) pour produire la prédiction finale. Ce mécanisme force le modèle à capturer deux types d’information complémentaires : la supervision directe via le label réel et le « savoir-faire » du professeur via la distillation.

Distillation hard vs. soft

La distillation peut prendre deux formes :

Distillation soft : le token [DIST] apprend à reproduire la distribution de probabilités complète du professeur. La loss utilisée est la divergence KL entre les softmax du professeur et de l’élève, pondérée par un paramètre de température τ. Plus la température est élevée, plus la distribution est « douce » et répartie.

Distillation hard : le token [DIST] apprend simplement à prédire le label « dur » (la classe choisie par le professeur, sans probabilités). On utilise ici une cross-entropy classique entre la prédiction de l’élève et le label du professeur.

Résultat contre-intuitif : la distillation hard donne de meilleurs résultats que la soft. DeiT-B avec distillation hard atteint 83,0 % top-1 sur ImageNet à résolution 224, contre 81,8 % avec la distillation soft.

Pourquoi un professeur CNN plutôt qu’un Transformer ? Les expériences montrent qu’un professeur CNN (comme RegNetY-16GF) produit de meilleurs élèves Transformer qu’un professeur Transformer. L’hypothèse : l’élève apprend davantage d’un professeur architecturalement différent, car celui-ci apporte des biais inductifs complémentaires (translation invariance, localité) que le Transformer ne possède pas nativement.

Les variantes de DeiT

DeiT (2021) : la famille originale

La publication ICML 2021 introduit trois tailles de modèles, toutes basées sur des patches 16×16 et une résolution de 224×224 :

Modèle Dim. (D) Têtes Couches Params Top-1 ImageNet Top-1 (⚗ distillé)
DeiT-Ti (Tiny) 192 3 12 5 M 72,2 % 74,5 %
DeiT-S (Small) 384 6 12 22 M 79,8 % 81,2 %
DeiT-B (Base) 768 12 12 86 M 81,8 % 83,4 %
DeiT-B↑384 768 12 12 86 M 83,1 % 85,2 %

Le symbole ⚗ indique l’utilisation de la distillation par token d’attention avec un professeur RegNetY-16GF (82,9 % top-1). La variante ↑384 correspond au fine-tuning à résolution 384×384 via la technique FixRes. Le modèle DeiT-B⚗↑384, avec 85,2 % top-1, dépasse le ViT-B pré-entraîné sur JFT-300M (84,15 %) tout en étant entraîné uniquement sur ImageNet-1k.

Un entraînement réellement accessible DeiT-B peut être entraîné en 53 heures sur un seul serveur équipé de 8 GPU V100. C’est un contraste frappant avec ViT qui nécessitait des centaines de GPU pendant plusieurs semaines, et un argument majeur pour la démocratisation de la recherche en vision par Transformer.

DeiT III : Revenge of the ViT (2022)

Publié à ECCV 2022 par la même équipe (Touvron, Cord, Jégou), DeiT III ne modifie pas l’architecture de ViT. L’objectif est de montrer qu’une recette d’entraînement supervisé améliorée suffit à rivaliser avec les architectures modifiées comme Swin Transformer et ConvNeXt, ainsi qu’avec les méthodes d’apprentissage auto-supervisé comme BEiT et MAE.

Les améliorations clés de DeiT III :

3-Augment : une stratégie d’augmentation simplifiée à seulement 3 transformations (niveaux de gris, solarisation, flou gaussien), choisies aléatoirement à chaque batch. C’est plus simple que le cocktail RandAugment + MixUp + CutMix + Erasing utilisé dans DeiT original, et pourtant plus performant.

Simple Random Cropping : remplacement du Random Resize Cropping par un cropping rectangulaire simple, réduisant l’overfitting sur les grands datasets comme ImageNet-21k.

Entraînement à basse résolution : le pré-entraînement se fait à résolution réduite, ce qui divise par plus de 2 les GPU nécessaires et le temps d’entraînement pour les très grands modèles (ViT-H notamment).

LayerScale : normalisation par canal apprise dans chaque couche, facilitant la convergence des Transformers profonds.

Stochastic Depth : suppression aléatoire de couches pendant l’entraînement pour régulariser le modèle.

Modèle DeiT III Params Top-1 (ImageNet-1k) Top-1 (pré-entraîné 21k → fine-tuné 1k)
DeiT III-S/16 22 M 81,4 % 84,8 %
DeiT III-B/16 86 M 83,8 % 86,7 %
DeiT III-L/16 304 M 84,9 % 87,0 %
DeiT III-L/16↑384 304 M n/a 87,7 %
DeiT III-H/14 632 M 85,2 % 87,2 %

Le point fort de DeiT III : ces résultats sont obtenus avec une architecture ViT vanilla, sans aucune modification structurelle (pas de fenêtres locales comme Swin, pas de pyramide hiérarchique, pas de convolutions hybrides). Cela prouve que le potentiel des Transformers purs en vision est largement sous-exploité quand la recette d’entraînement est mal calibrée.

DeiT-LT (2024) : adaptation aux données déséquilibrées

Publié à CVPR 2024, DeiT-LT adapte le mécanisme de distillation de DeiT aux datasets à distribution long-tail (où certaines classes ont très peu d’exemples). Le principe : utiliser la distillation OOD (out-of-distribution) via un professeur CNN entraîné avec SAM (Sharpness Aware Minimization) pour renforcer l’apprentissage des classes minoritaires. Les tokens [CLS] et [DIST] se spécialisent sur des régions différentes de l’image, apportant une complémentarité utile pour les classes rares.

La recette d’entraînement de DeiT : les ingrédients clés

Le succès de DeiT ne repose pas uniquement sur le token de distillation. La recette d’entraînement complète est un ensemble de techniques soigneusement calibrées, chacune apportant une contribution mesurable.

Augmentation de données

Le DeiT original utilise un ensemble agressif de techniques de data augmentation pour simuler un dataset plus grand :

Rand-Augment : applique une séquence aléatoire de transformations (rotation, translation, cisaillement, ajustement de couleur, etc.) avec une amplitude contrôlée par deux hyperparamètres.

MixUp : crée de nouvelles images en combinant linéairement deux images et leurs labels. Par exemple, une image est 70 % chat + 30 % chien, et le label cible devient [0,7 ; 0,3].

CutMix : découpe un rectangle d’une image et le colle sur une autre, avec le label ajusté proportionnellement à la surface.

Random Erasing : masque aléatoirement une zone rectangulaire de l’image pour forcer le modèle à ne pas dépendre d’une seule région.

Ces techniques sont cruciales : sans elles, DeiT-B ne passe que de 72,2 % (ViT-B entraîné naïvement) à ~79 %. Avec l’ensemble complet, on monte à 81,8 % avant même la distillation.

Régularisation et optimisation

Stochastic Depth : chaque couche du Transformer a une probabilité de « drop » pendant l’entraînement (typiquement 0,1 pour DeiT-B). Cela régularise le modèle en créant implicitement un ensemble de sous-réseaux.

Repeated Augmentation : chaque image du batch est augmentée plusieurs fois (typiquement 3), ce qui permet d’exposer le modèle à plus de variations sans augmenter la taille effective du dataset.

Exponential Moving Average (EMA) : les poids du modèle final sont une moyenne pondérée exponentielle des poids observés pendant l’entraînement, lissant les oscillations.

Optimiseur AdamW : Adam avec weight decay découplé, learning rate de 5×10⁻⁴ avec warm-up cosinus sur 5 epochs, et un total de 300 epochs d’entraînement.

Attention aux hyperparamètres La recette de DeiT est sensible à la calibration des hyperparamètres. Par exemple, augmenter le stochastic depth au-delà de 0,3 dégrade les performances pour DeiT-B. Les valeurs publiées dans l’article sont optimisées pour chaque taille de modèle. Ne copiez pas aveuglément la config DeiT-B pour un modèle Tiny.

Utiliser DeiT en pratique

Via Hugging Face Transformers

DeiT est intégré nativement dans la bibliothèque Hugging Face Transformers. Les modèles pré-entraînés sont disponibles sur le Hub, prêts à être utilisés pour l’inférence ou le fine-tuning.

from transformers import DeiTImageProcessor, DeiTForImageClassification
from PIL import Image
import requests

# Charger le modèle et le processeur
processor = DeiTImageProcessor.from_pretrained(
    "facebook/deit-base-distilled-patch16-224"
)
model = DeiTForImageClassification.from_pretrained(
    "facebook/deit-base-distilled-patch16-224"
)

# Charger et traiter une image
url = "https://example.com/image.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, return_tensors="pt")

# Inférence
outputs = model(**inputs)
predicted_class = outputs.logits.argmax(-1).item()
print(model.config.id2label[predicted_class])

Les modèles disponibles sur Hugging Face incluent les variantes Tiny, Small et Base, en version standard et distillée :

Modèle Hugging Face Résolution Distillé
facebook/deit-tiny-patch16-224 224 Non
facebook/deit-small-patch16-224 224 Non
facebook/deit-base-patch16-224 224 Non
facebook/deit-base-patch16-384 384 Non
facebook/deit-tiny-distilled-patch16-224 224 Oui
facebook/deit-small-distilled-patch16-224 224 Oui
facebook/deit-base-distilled-patch16-224 224 Oui
facebook/deit-base-distilled-patch16-384 384 Oui
Quel modèle choisir ? Pour la classification, privilégiez toujours les variantes distillées (suffixe distilled) : elles sont plus performantes sans surcoût à l’inférence. Pour du transfer learning sur un dataset custom, partez de deit-base-distilled-patch16-224 si vous avez un GPU correct (16 Go VRAM), ou deit-small-distilled-patch16-224 pour des contraintes plus serrées.

Via timm (PyTorch Image Models)

La bibliothèque timm de Ross Wightman inclut tous les modèles DeiT (y compris DeiT III) avec des poids pré-entraînés :

import timm

# DeiT original (distillé)
model = timm.create_model(
    "deit_base_distilled_patch16_224",
    pretrained=True
)

# DeiT III (entraîné sur ImageNet-21k, fine-tuné sur 1k)
model = timm.create_model(
    "deit3_large_patch16_224.fb_in22k_ft_in1k",
    pretrained=True
)

# Liste de tous les modèles DeiT disponibles
deit_models = timm.list_models("deit*")
print(f"{len(deit_models)} modèles DeiT disponibles")

timm offre davantage de variantes que Hugging Face, notamment tous les modèles DeiT III (Small, Base, Large, Huge) avec différentes combinaisons de résolution et de pré-entraînement.

Fine-tuning sur un dataset personnalisé

Pour adapter DeiT à une tâche de classification spécifique, la procédure standard est la suivante :

1. Remplacer la tête de classification. Le modèle pré-entraîné a 1 000 classes (ImageNet). Remplacez la couche finale par une couche linéaire correspondant à votre nombre de classes.

2. Choisir un learning rate différencié. Utilisez un learning rate faible (1×10⁻⁵ à 5×10⁻⁵) pour le backbone pré-entraîné et un rate plus élevé (1×10⁻³) pour la nouvelle tête. C’est la stratégie de « discriminative fine-tuning ».

3. Adapter la résolution si nécessaire. DeiT gère nativement le changement de résolution via l’interpolation des embeddings de position. Passer de 224 à 384 pixels améliore généralement les performances, surtout sur des images à grain fin (imagerie médicale, classification botanique, etc.).

4. Ajuster l’augmentation. Si votre dataset est petit (< 10 000 images), conservez les augmentations agressives de DeiT. Sur un dataset plus grand, vous pouvez simplifier (comme dans DeiT III avec 3-Augment).

DeiT vs. les autres Vision Transformers

Le paysage des Vision Transformers a considérablement évolué depuis la publication de DeiT. Voici comment il se positionne face aux principales alternatives :

Critère DeiT / DeiT III ViT Swin BEiT
Architecture ViT vanilla ViT vanilla Fenêtres locales + shifted windows ViT vanilla
Pré-entraînement Supervisé (ImageNet-1k/21k) Supervisé (JFT-300M) Supervisé (ImageNet) Auto-supervisé (masked image modeling)
Innovation clé Distillation par token + recette training Architecture patches + Transformer Attention locale hiérarchique Pré-entraînement type BERT pour la vision
Complexité attention O(n²) globale O(n²) globale O(n × w²) locale O(n²) globale
Top-1 ImageNet (Base, 224) 83,8 % (DeiT III) 77,9 % (sans JFT) 83,5 % 83,2 %
Données requises ImageNet-1k suffit JFT-300M recommandé ImageNet-1k suffit ImageNet-1k suffit
Généralité Très généraliste (ViT pur) Très généraliste Optimisé détection/segmentation Très généraliste

Verdict comparatif. DeiT III ferme le fossé entre les ViT purs et les architectures spécialisées comme Swin. Si vous avez besoin d’un backbone polyvalent qui fonctionne aussi bien en classification qu’en segmentation sémantique et en détection d’objets, DeiT III est un excellent point de départ. Pour des tâches nécessitant une attention locale efficace (images haute résolution, détection dense), Swin garde un avantage structurel. Pour le pré-entraînement auto-supervisé, BEiT et DINOv2 sont mieux adaptés.

Impact et héritage de DeiT

Démocratisation des Vision Transformers

Avant DeiT, travailler avec des Vision Transformers nécessitait soit un accès à des datasets privés massifs, soit des budgets GPU considérables. DeiT a changé la donne en prouvant qu’un entraînement efficace sur ImageNet-1k, avec du matériel académique standard, pouvait produire des résultats compétitifs. Cette démocratisation a déclenché une vague de recherches sur les ViT dans des laboratoires qui n’auraient jamais pu s’offrir le coût d’entraînement d’un ViT original.

Influence sur la distillation en vision

Le mécanisme de token de distillation de DeiT a ouvert une voie nouvelle pour la distillation de connaissances dans les Transformers. Plutôt que d’utiliser des techniques de distillation externes (comme celle de Hinton, qui opère au niveau des logits), DeiT intègre la distillation directement dans l’architecture via un token dédié. Cette approche a été reprise et adaptée dans de nombreux travaux ultérieurs.

La recette d’entraînement comme contribution majeure

L’un des enseignements les plus importants de DeiT (renforcé par DeiT III) est que la recette d’entraînement compte autant, voire plus, que l’architecture. Les techniques d’augmentation, de régularisation et d’optimisation développées pour DeiT sont devenues des standards dans le domaine. Le papier « ResNet Strikes Back » de la même équipe a montré que ces techniques pouvaient aussi améliorer drastiquement les performances des CNN classiques comme ResNet.

Impact académique

Le papier DeiT original a accumulé plus de 5 000 citations depuis sa publication, ce qui en fait l’un des travaux les plus influents dans le domaine des Vision Transformers. Il est systématiquement cité comme baseline dans les publications de vision par ordinateur, et les modèles DeiT restent parmi les plus téléchargés sur Hugging Face dans la catégorie classification d’images.

Limites et cas où DeiT n’est pas optimal

Complexité quadratique de l’attention. DeiT utilise une attention globale standard, dont la complexité est O(n²) par rapport au nombre de tokens. Pour des images haute résolution (512×512 et au-delà), le coût mémoire et computationnel explose. Des architectures comme Swin ou Flash Attention gèrent mieux ce cas.

Pas de hiérarchie native. Contrairement à Swin qui produit des feature maps à différentes résolutions (comme un CNN), DeiT produit une seule résolution de tokens. Pour la détection d’objets et la segmentation, il faut ajouter un décodeur (comme un FPN) pour reconstruire les multi-échelles, ce qui est moins élégant.

Dépendance au professeur CNN. La distillation par token fonctionne mieux avec un professeur CNN fort. Si vous n’avez pas de bon modèle professeur pour votre domaine spécifique (imagerie satellitaire, microscopie, etc.), le bénéfice de la distillation est réduit.

Dépassé par les approches auto-supervisées à grande échelle. Des modèles comme DINOv2 (Meta, 2023) et les modèles de fondation visuels actuels utilisent des techniques d’apprentissage auto-supervisé sur des datasets massifs et non annotés, atteignant des performances supérieures à DeiT III en transfer learning. Pour un usage industriel, DINOv2 est souvent un meilleur choix comme backbone pré-entraîné.

DeiT reste pertinent pour l’enseignement et la recherche Même si des modèles plus récents dépassent DeiT en performances brutes, sa clarté architecturale (ViT pur + token de distillation) en fait un excellent outil pédagogique pour comprendre les Vision Transformers et la distillation de connaissances. C’est aussi un baseline solide pour les publications académiques.

Cas d’usage concrets

Classification d’images médicales. DeiT-S et DeiT-B sont régulièrement utilisés comme backbone pour la classification de radiographies, dermoscopies et coupes histologiques. La distillation aide à extraire des features robustes même sur des datasets médicaux limités (quelques milliers d’images).

Feature extraction pour le retrieval. Les embeddings produits par le token [CLS] de DeiT fonctionnent comme représentations visuelles pour la recherche d’images similaires. Les variantes distillées produisent des embeddings plus riches grâce à l’information complémentaire du professeur CNN.

Backbone pour la détection et la segmentation. DeiT III peut servir de backbone pour des détecteurs comme DETR ou des segmenteurs comme Segmenter. Les résultats sur ADE20k (segmentation sémantique) montrent des performances compétitives avec Swin Transformer.

Edge deployment. DeiT-Ti (5 M de paramètres) est suffisamment compact pour être quantifié en INT8 et déployé sur des processeurs embarqués (BPU, NPU). Des travaux récents montrent que la quantification de DeiT-Ti préserve une précision acceptable sur des datasets de taille modeste.

DeiT dans l’écosystème multimodal

DeiT n’est pas un modèle multimodal en soi, mais son architecture ViT est la brique de base de nombreux modèles multimodaux. CLIP (OpenAI), par exemple, utilise un encodeur ViT pour sa branche visuelle. Les techniques d’entraînement développées pour DeiT (augmentation, régularisation) sont directement applicables à ces encodeurs visuels.

De même, les vision-language models actuels (comme LLaVA, Flamingo, ou les modes multimodaux de GPT-5.4 et Claude Opus 4.6) s’appuient sur des encodeurs visuels ViT dont la lignée remonte à DeiT. La contribution de DeiT à l’efficacité d’entraînement de ces encodeurs a un effet multiplicateur sur tout l’écosystème multimodal.


Questions fréquentes sur DeiT

Quelle est la différence entre DeiT et ViT ?

DeiT et ViT partagent la même architecture de base (patches + Transformer encoder). La différence est double. Premièrement, DeiT ajoute un token de distillation qui lui permet d’apprendre d’un modèle professeur (typiquement un CNN). Deuxièmement, DeiT utilise une recette d’entraînement fortement optimisée (augmentation de données, régularisation, optimisation) qui lui permet d’atteindre des performances compétitives en s’entraînant uniquement sur ImageNet-1k, alors que ViT nécessitait JFT-300M pour être performant.

DeiT est-il toujours pertinent face aux modèles récents comme DINOv2 ?

En performances brutes de transfer learning, DINOv2 et d’autres modèles de fondation auto-supervisés surpassent DeiT. Cependant, DeiT reste pertinent dans plusieurs contextes : comme baseline académique solide et reproductible, pour des projets où l’entraînement supervisé est préféré (labels fiables disponibles), pour le déploiement edge avec DeiT-Ti, et comme outil pédagogique pour comprendre les Vision Transformers et la distillation.

Peut-on utiliser DeiT pour autre chose que la classification ?

Oui. DeiT peut servir de backbone (extracteur de features) pour la détection d’objets (avec DETR, par exemple), la segmentation sémantique (avec Segmenter ou UPerNet), le captioning d’images et le retrieval visuel. Le token [CLS] fournit une représentation globale, et les tokens de patches fournissent des représentations locales exploitables par des décodeurs spécialisés.

Combien de temps faut-il pour entraîner DeiT ?

DeiT-B (86 M de paramètres) s’entraîne en environ 53 heures sur un serveur équipé de 8 GPU V100, sur 300 epochs ImageNet-1k. Avec 2 nœuds (16 GPU), ce temps descend à environ 37 heures. DeiT-Ti (5 M de paramètres) est significativement plus rapide. DeiT III, grâce à son entraînement à basse résolution, divise par plus de 2 le temps nécessaire pour les grands modèles (ViT-L, ViT-H).

Quelle version de DeiT utiliser pour un nouveau projet ?

Pour un nouveau projet de classification en 2026, partez de DeiT III plutôt que du DeiT original. Si vous cherchez le meilleur rapport performance/coût et que vous avez accès à des poids pré-entraînés sur ImageNet-21k, utilisez deit3_large_patch16_224.fb_in22k_ft_in1k via timm (87,0 % top-1). Si vos contraintes sont plus serrées (GPU limité, inférence rapide), deit3_small_patch16_224 reste un excellent choix. Pour du transfer learning sur un domaine spécifique, envisagez aussi DINOv2 comme alternative auto-supervisée.

Polydesk.ai — Footer