DINO (Self-Distillation with No Labels)
DINO (self-DIstillation with NO labels) est une méthode de self-supervised learning développée par Meta AI qui entraîne des Vision Transformers par auto-distillation (student-teacher avec EMA), révélant des propriétés émergentes remarquables comme la segmentation sémantique implicite dans les cartes d’attention, sans aucun label humain.
- Auteurs
- Mathilde Caron et al. (Meta AI / Facebook AI Research)
- Publication
- ICCV 2021 (article « Emerging Properties in Self-Supervised Vision Transformers »)
- Famille
- Self-supervised learning / Auto-distillation
- Innovation
- Propriétés émergentes des ViT + SSL : segmentation dans l’attention, k-NN 78,3%
- Benchmark
- ImageNet top-1 : 80,1% (ViT-B, linear eval), 78,3% (k-NN, ViT-S)
- Successeurs
- DINOv2 (2023, 142M images), DINOv3 (2025, 7B params, 1,7B images)
La découverte : le SSL révèle des propriétés cachées des ViT
DINO ne se résume pas à « encore une méthode SSL ». L’article pose une question fondamentale : les Vision Transformers, entraînés en self-supervised, se comportent-ils différemment des CNNs ? La réponse est un oui catégorique, avec deux propriétés émergentes qui n’apparaissent ni avec les ViT supervisés, ni avec les CNNs (supervisés ou SSL) :
Segmentation sémantique dans l’attention. Les cartes d’auto-attention du dernier bloc du ViT DINO segmentent automatiquement les objets dans l’image. Chaque tête d’attention se spécialise sur une partie sémantique différente : une tête suit les contours de l’objet principal, une autre se concentre sur le fond, une troisième capture des sous-parties. Les frontières d’attention s’alignent avec les contours réels des objets avec une précision surprenante. Ce phénomène ne se produit pas avec l’entraînement supervisé, probablement parce que les labels de classification offrent des raccourcis qui ne nécessitent pas cette compréhension fine de la structure de l’image.
Classification k-NN sans entraînement. Les features DINO sont si bien structurées qu’un simple classificateur k-NN (k plus proches voisins, sans aucun entraînement, fine-tuning ou augmentation de données) atteint 78,3% top-1 sur ImageNet avec un petit ViT-S. C’est un résultat remarquable : les features sont naturellement discriminantes par classe sans qu’aucun signal de classe n’ait été fourni pendant l’entraînement.
Architecture DINO
Framework student-teacher
DINO reprend le paradigme student-teacher de BYOL avec des adaptations clés. Deux réseaux (student gθs et teacher gθt) partagent la même architecture (ViT ou ResNet) mais ont des paramètres différents. Les deux réseaux incluent un encodeur (backbone ViT) suivi d’un projection head (MLP à 3 couches avec normalisation L2 en sortie). La sortie est un vecteur de dimension K, transformé en distribution de probabilité via un softmax avec température.
Pour une image donnée, on génère plusieurs vues augmentées. Le teacher reçoit uniquement les crops globaux (couvrant plus de 50% de l’image). Le student reçoit à la fois des crops globaux et des crops locaux (couvrant environ 15-30% de l’image). Cette asymétrie force le student à apprendre à prédire le contenu sémantique global à partir d’une vue locale, ce qui développe une compréhension structurelle de l’image.
Fonction de perte
DINO minimise la cross-entropy entre les distributions de probabilité du student et du teacher :
L = - Σ P_t(x) × log(P_s(x'))
où Pt et Ps sont les distributions softmax (avec températures différentes) des sorties du teacher et du student, respectivement. Le teacher utilise une température plus basse (distribution plus piquée, « sharpening »), le student une température plus haute. On applique un stop-gradient sur le teacher : les gradients ne sont propagés qu’à travers le student.
EMA et centering
Comme BYOL, le teacher est mis à jour par moyenne exponentielle mobile (EMA) des poids du student :
θ_t ← λ × θ_t + (1 - λ) × θ_s
Le taux λ suit un schedule cosinus de 0,996 à 1,0. La nouveauté spécifique de DINO est le centering : on soustrait la moyenne des sorties du teacher (calculée sur le batch avec un momentum) avant le softmax. Le centering empêche une dimension de dominer les sorties (ce qui mènerait au collapse) en maintenant l’équilibre entre les K dimensions de sortie. C’est un mécanisme anti-collapse différent du prédicteur de BYOL et plus stable en pratique.
Les propriétés émergentes en détail
Segmentation par attention
Quand on visualise les cartes d’auto-attention du dernier bloc d’un ViT DINO, chaque tête d’attention se comporte comme un segmenteur sémantique spécialisé. Pour une image de chien, une tête d’attention encadre précisément le contour du chien, une autre se concentre sur la tête, une troisième capture le fond. Ces frontières s’alignent remarquablement bien avec les contours réels des objets.
Cette propriété est exploitable directement : en utilisant les cartes d’attention comme masques de segmentation, on peut réaliser de la segmentation d’objets saillants et même du video object segmentation (suivre un objet à travers les frames d’une vidéo) sans aucun entraînement spécifique à ces tâches. C’est l’une des démonstrations les plus frappantes de la puissance du SSL avec les ViT.
Pourquoi cette propriété ne se manifeste pas avec l’entraînement supervisé ? L’hypothèse est que les labels de classification offrent des raccourcis : le modèle supervisé apprend à détecter quelques features discriminantes (texture, couleur locale) sans avoir besoin de comprendre la structure globale de l’objet. Le SSL, sans raccourcis de labels, force le modèle à développer une compréhension plus profonde et plus structurée.
Classification k-NN
DINO ViT-S atteint 78,3% top-1 sur ImageNet avec un classificateur k-NN (k=20, sans aucun entraînement). C’est supérieur à la linear evaluation de nombreuses méthodes SSL avec CNNs. Ce résultat démontre que l’espace des features DINO est naturellement organisé par classe sémantique, avec des clusters bien séparés. La qualité des features est telle qu’une classification non-paramétrique triviale suffit.
DINOv2 : le passage à l’échelle (2023)
DINOv2 étend DINO sur trois axes majeurs. Premièrement, les données : 142 millions d’images (vs ImageNet pour DINO), curées automatiquement à partir du web via un pipeline dédié. Deuxièmement, l’architecture : ViT-g (1 milliard de paramètres) comme teacher, avec distillation vers des modèles plus petits (ViT-S, ViT-B, ViT-L). Troisièmement, l’algorithme : DINOv2 combine la perte DINO avec la perte iBOT (masked image modeling) et SwAV (clustering), créant un framework d’entraînement plus robuste et stable à grande échelle.
DINOv2 est devenu le backbone SSL de référence pour la vision en 2023-2024. Ses features sont utilisables directement (sans fine-tuning) pour la classification, la segmentation sémantique, l’estimation de profondeur, et le retrieval d’images, avec des performances souvent supérieures aux modèles supervisés et même à certains modèles entraînés avec des labels textuels (comme CLIP).
| Version | Année | Données | Modèle max | ImageNet (linear) | Innovation clé |
|---|---|---|---|---|---|
| DINO | 2021 | ImageNet (1,28M) | ViT-B/8 | 80,1% | Propriétés émergentes ViT + SSL |
| DINOv2 | 2023 | LVD-142M (curé) | ViT-g (1B params) | ~86% | Scaling data+modèle, DINO+iBOT+SwAV |
| DINOv3 | 2025 | 1,7B images | ViT (7B params) | SOTA | Gram Anchoring, distillation à grande échelle |
DINOv3 : 7 milliards de paramètres (2025)
DINOv3 repousse les limites avec un modèle de 7 milliards de paramètres entraîné sur 1,7 milliard d’images sans labels. Les nouveautés incluent Gram Anchoring (une technique de régularisation pour stabiliser l’entraînement des très grands ViT), des features denses améliorées (utiles pour la segmentation et le tracking), et une famille de modèles distillés (plus petits, utilisables en robotique et sur mobile). DINOv3 établit de nouveaux records sur les benchmarks de vision et confirme que le scaling du SSL continue de produire des gains significatifs.
DINO vs. les alternatives
| Aspect | DINO | BYOL | SimCLR | MAE |
|---|---|---|---|---|
| Type | Auto-distillation | Auto-distillation | Contrastif | Masked modeling |
| Architecture optimale | ViT | CNN (ResNet) | CNN (ResNet) | ViT |
| Paires négatives | Non | Non | Oui | Non |
| Anti-collapse | Centering + EMA | Prédicteur + EMA | Négatifs | Reconstruction |
| Multi-crop | Oui (global + local) | Non (2 vues) | Non (2 vues) | Non (masquage) |
| Segmentation émergente | Oui (remarquable) | Limitée | Non | Partielle |
| k-NN performance | 78,3% (ViT-S) | ~60% (ResNet) | ~60% (ResNet) | ~65% (ViT-B) |
DINO surpasse BYOL et SimCLR pour les ViT grâce au multi-crop et au centering. MAE atteint de meilleures performances absolues en linear evaluation (87,8% avec ViT-Huge vs 80,1% pour DINO avec ViT-B), mais les features DINO sont supérieures pour le k-NN, la segmentation et le retrieval. DINOv2 combine DINO et masked modeling pour obtenir le meilleur des deux mondes.
Applications
Segmentation sans supervision
Les cartes d’attention DINO permettent la segmentation d’objets saillants, la segmentation sémantique par clustering des features de patches, et le video object segmentation (tracking d’objets à travers les frames). DINOv2 étend ces capacités avec des features denses de qualité supérieure.
Image retrieval et recherche visuelle
Les features DINO/DINOv2 sont excellentes pour la recherche d’images par similarité. Un simple calcul de distance cosinus entre les embeddings [CLS] suffit pour retrouver des images sémantiquement similaires. C’est utilisé en e-commerce (recherche visuelle de produits), en patrimoine culturel (recherche d’œuvres similaires), et en médecine (recherche de cas comparables).
Estimation de profondeur monoculaire
DINOv2 produit des estimations de profondeur monoculaire compétitives sans aucun entraînement spécifique. Les features contiennent suffisamment d’information 3D pour qu’un simple décodeur linéaire produise des cartes de profondeur exploitables. C’est particulièrement utile en robotique et en réalité augmentée.
Imagerie médicale
Les features DINOv2 se transfèrent remarquablement bien à l’imagerie médicale (histopathologie, dermatologie, radiologie) avec un fine-tuning minimal. L’absence de dépendance aux labels pendant le pre-training est un avantage majeur dans un domaine où l’annotation est coûteuse et requiert une expertise médicale.
Few-shot learning
Les features DINO sont parmi les plus performantes pour le few-shot learning avec les Prototypical Networks. La qualité des embeddings (clusters naturellement séparés, k-NN performant) se traduit directement en prototypes discriminants. DINOv2 comme backbone pour les ProtoNets est l’une des combinaisons les plus performantes pour la classification few-shot.
Implémentation et détails pratiques
Configuration d’entraînement
DINO s’entraîne avec l’optimiseur AdamW, un batch size de 1 024 distribué sur 16 GPU, et un schedule cosinus pour le learning rate et le taux EMA. Les augmentations reprennent celles de BYOL (color jittering, gaussian blur, solarization) combinées avec le multi-crop. Pour les ViT, l’interpolation bicubique adapte les embeddings de position aux différentes échelles de crop. L’entraînement standard dure 800 époques sur ImageNet.
Impact de la taille des patches
Les expériences montrent que réduire la taille des patches (de 16 à 8 pixels) améliore significativement les performances, car des patches plus petits fournissent une résolution spatiale plus fine. ViT-B/8 surpasse ViT-B/16 de ~2 points en linear evaluation. Cependant, le coût computationnel est quadruplé (4× plus de tokens). Pour les applications en production où la latence compte, ViT-B/16 ou ViT-S/14 (DINOv2) offrent un meilleur compromis performance/vitesse.
Importance du momentum encoder
L’article démontre que le momentum encoder (EMA) est crucial pour les performances. Sans EMA (en utilisant directement les poids du student comme teacher), les performances chutent dramatiquement. Le schedule cosinus du taux EMA (de 0,996 à 1,0) est aussi important : un taux trop bas rend le teacher trop instable, un taux trop haut le rend trop statique. Ce résultat éclaire rétrospectivement le rôle du momentum encoder dans MoCo, qui était initialement motivé par la cohérence des négatifs dans la queue, mais contribue aussi à la stabilisation de l’entraînement.
Limites
Coût d’entraînement. DINO nécessite un entraînement long (800+ époques sur ImageNet) et le multi-crop augmente le coût par itération. DINOv2 et DINOv3, avec leurs datasets massifs et modèles géants, nécessitent des clusters GPU majeurs (Meta utilise des centaines de GPU A100). Les modèles pré-entraînés sont disponibles publiquement, mais reproduire l’entraînement est hors de portée de la plupart des équipes.
Spécificité ViT. Les propriétés émergentes de DINO (segmentation par attention, k-NN performant) sont beaucoup plus prononcées avec les ViT qu’avec les CNNs. DINO avec un ResNet fonctionne, mais sans les avantages distinctifs. Si vous êtes limité aux CNNs, BYOL ou MoCo sont des choix plus naturels.
Patches petits = coût quadratique. Les meilleures performances de DINO sont obtenues avec des patches de taille 8 (ViT-B/8), ce qui quadruple le nombre de tokens par rapport aux patches de taille 16. Le coût d’attention étant quadratique en nombre de tokens, ViT-B/8 est significativement plus lent que ViT-B/16.
Verdict
DINO est l’article qui a démontré la synergie profonde entre le self-supervised learning et les Vision Transformers. En révélant que les ViT SSL développent des capacités de segmentation émergentes que ni les ViT supervisés ni les CNNs ne possèdent, DINO a changé la trajectoire de la recherche en vision par ordinateur. DINOv2 est devenu le backbone SSL de référence, et DINOv3 confirme que le scaling du paradigme DINO continue de produire des gains.
Pour les praticiens, DINOv2 pré-entraîné est le point de départ recommandé pour presque toute tâche de vision en 2026. Les modèles sont publics (GitHub Meta), disponibles en plusieurs tailles (ViT-S/B/L/g), et produisent des features utilisables directement (sans fine-tuning) pour la classification, la segmentation, le retrieval et l’estimation de profondeur. Si vous avez besoin des meilleures performances absolues en classification et que le fine-tuning est possible, MAE avec ViT-Huge reste supérieur. Mais pour la polyvalence des features (utilisables sur plusieurs tâches sans réentraînement), DINOv2 est le choix incontournable.
Questions fréquentes sur DINO
Pourquoi les ViT supervisés ne développent-ils pas les mêmes propriétés émergentes ?
L’hypothèse dominante est que l’entraînement supervisé offre des raccourcis : le modèle apprend à détecter quelques features discriminantes (textures, couleurs locales) qui suffisent pour prédire le label, sans avoir besoin de comprendre la structure globale de l’objet. Le SSL, sans labels, force le modèle à développer une compréhension plus profonde. De plus, l’attention globale des ViT (chaque patch « voit » tous les autres) permet cette compréhension structurelle, ce que les convolutions locales des CNNs ne facilitent pas au même degré.
Quelle est la différence entre DINO et BYOL ?
DINO et BYOL partagent le paradigme student-teacher avec EMA, mais diffèrent sur trois points. Premièrement, DINO utilise le centering (soustraire la moyenne des sorties du teacher) comme mécanisme anti-collapse, tandis que BYOL utilise un prédicteur asymétrique. Deuxièmement, DINO utilise le multi-crop (crops globaux pour le teacher, locaux pour le student), tandis que BYOL utilise deux vues de même résolution. Troisièmement, DINO est optimisé pour les ViT et révèle des propriétés émergentes spécifiques aux ViT (segmentation par attention), tandis que BYOL est conçu pour les CNNs.
DINO ou MAE : lequel choisir pour un ViT ?
MAE atteint de meilleures performances absolues en classification fine-tunée (87,8% vs 80,1% sur ImageNet). DINO produit des features plus polyvalentes : supérieures en k-NN, en retrieval, et en segmentation sans entraînement. DINOv2 combine les avantages des deux en intégrant une composante de masked modeling (iBOT). En pratique, utilisez DINOv2 pré-entraîné comme backbone polyvalent. Si votre tâche est uniquement de la classification et que vous avez les ressources pour le fine-tuning complet, MAE peut être supérieur.
Peut-on utiliser DINO avec des CNNs ?
Oui, l’article original teste DINO avec ResNet-50 et obtient des résultats compétitifs avec BYOL et MoCo v2. Cependant, les propriétés émergentes distinctives (segmentation par attention, k-NN très performant) n’apparaissent qu’avec les ViT. Si vous utilisez un CNN, DINO fonctionne mais n’offre pas d’avantage significatif sur BYOL. Le vrai intérêt de DINO réside dans la synergie avec les ViT.
Les modèles DINOv2 pré-entraînés sont-ils gratuits ?
Oui. Meta a publié les modèles DINOv2 en open source sur GitHub (ViT-S/14, ViT-B/14, ViT-L/14, ViT-g/14) sous licence Apache 2.0. Ils sont intégrés dans les librairies populaires (timm, Hugging Face Transformers) et utilisables directement pour l’extraction de features, le fine-tuning, et l’évaluation. DINOv3 et ses modèles distillés sont également disponibles publiquement. C’est l’un des atouts majeurs de la lignée DINO : des modèles de fondation de premier plan, accessibles gratuitement.