Polydesk-logotype
Polydesk.ai — Header

BEiT (BERT Pre-Training of Image Transformers)

BEiT est un modèle de Vision Transformer pré-entraîné par auto-supervision via le masked image modeling (MIM), développé par Microsoft Research. Inspiré de BERT en NLP, BEiT masque des patches d’image et entraîne le modèle à prédire les tokens visuels discrets correspondants, obtenant des représentations qui surpassent l’entraînement supervisé classique sur ImageNet.

BEiT en un coup d’œil
Nom complet
Bidirectional Encoder representation from Image Transformers
Créateur
Microsoft Research
Publications
ICLR 2022 (BEiT, Oral) · arXiv 2022 (BEiT v2) · CVPR 2023 (BEiT-3)
Auteurs clés
Hangbo Bao, Li Dong, Furu Wei, Zhiliang Peng, Wenhui Wang
Innovation
Masked image modeling avec tokens visuels discrets (dVAE)
Meilleurs scores
BEiT-L : 88,6 % top-1 ImageNet · BEiT v2-B : 85,5 % · BEiT-3-L : 87,6 % (+ SOTA sur VQA, retrieval, segmentation)
Licence
Open Source MIT
Code
github.com/microsoft/unilm (monorepo BEiT/v2/v3)

Le contexte : pourquoi le masked image modeling ?

En NLP, BERT a montré qu’un pré-entraînement auto-supervisé par masquage de tokens (masked language modeling) produisait des représentations universelles, transférables à quasiment toute tâche en aval. La question naturelle : peut-on faire la même chose avec des images ?

Le problème est que les images ne sont pas faites de tokens discrets. Un texte est une séquence de mots issus d’un vocabulaire fini. Une image est un tenseur continu de valeurs de pixels. Prédire directement les pixels masqués (régression) pousse le modèle à capturer des détails de basse fréquence et de texture plutôt que des structures sémantiques de haut niveau. Les tentatives antérieures, comme la prédiction de couleur moyenne de patches dans le papier ViT original, donnaient des résultats décevants.

BEiT contourne ce problème avec une idée élégante : d’abord, convertir l’image en tokens visuels discrets via un tokenizer pré-entraîné (le dVAE de DALL-E), puis appliquer exactement la même logique que BERT sur ces tokens. Le modèle ne prédit pas des pixels, mais des codes de vocabulaire visuel.

Architecture et fonctionnement de BEiT

Le principe des deux vues

Pendant le pré-entraînement, chaque image est représentée sous deux formes simultanées :

Vue 1 : les patches d’image. L’image est découpée en patches de 16×16 pixels (comme dans ViT), projetés linéairement dans un espace d’embedding. Pour une image 224×224, on obtient une grille de 14×14 = 196 patches. C’est l’entrée du Transformer.

Vue 2 : les tokens visuels. La même image est passée dans le tokenizer visuel (dVAE de DALL-E), qui la convertit en une grille 14×14 de tokens discrets issus d’un vocabulaire de 8 192 éléments. Ces tokens capturent les structures sémantiques de l’image (formes, objets, textures) et non les détails pixel à pixel.

La vue 1 est ce que le modèle voit (avec masquage). La vue 2 est ce qu’il doit prédire.

Masquage par blocs

BEiT masque environ 40 % des patches d’entrée en les remplaçant par un embedding spécial [MASK]. Contrairement à BERT qui masque des tokens individuels aléatoirement, BEiT utilise un masquage par blocs (blockwise masking). Des blocs contigus de patches sont masqués ensemble, chaque bloc couvrant entre 16 et 75 patches.

Ce choix est motivé par la forte corrélation locale des images : si vous masquez un seul patch isolé, le modèle peut le reconstruire trivialement en interpolant ses voisins. En masquant des blocs entiers, vous forcez le modèle à utiliser un contexte plus large et à comprendre la structure globale de la scène.

Objectif de pré-entraînement

L’objectif est une classification sur le vocabulaire du dVAE. Pour chaque patch masqué, le modèle prédit une distribution de probabilité sur les 8 192 tokens visuels possibles. La loss est une cross-entropy entre la prédiction du modèle et le token visuel réel (obtenu via la vue 2).

C’est exactement le même objectif que le masked language modeling de BERT, mais appliqué à des « mots visuels ». L’analogie est d’autant plus directe que les tokens du dVAE sont discrets, permettant une classification plutôt qu’une régression.

Le backbone : un ViT standard

BEiT utilise un Vision Transformer standard comme backbone, sans modification architecturale. C’est un point fort : le modèle pré-entraîné peut être directement réutilisé dans n’importe quel framework qui accepte ViT. Deux tailles sont proposées :

Modèle Couches Dim. cachée Têtes Params
BEiT-Base 12 768 12 86 M
BEiT-Large 24 1024 16 304 M

La version améliorée BEiT+ ajoute LayerScale (normalisation par canal apprise) et un biais de position relatif, deux techniques empruntées à DeiT et Swin Transformer qui améliorent les performances en downstream.

Accepté en Oral à ICLR 2022 BEiT a été accepté comme présentation Oral à ICLR 2022 (54 sur 3 391 soumissions), soulignant l’impact de cette approche. C’est le premier travail à montrer que le pré-entraînement auto-supervisé d’un ViT pouvait surpasser systématiquement le pré-entraînement supervisé.

Résultats clés de BEiT

Classification d’images

BEiT-Base atteint 83,2 % top-1 sur ImageNet-1K après fine-tuning, surpassant DeiT-Base (81,8 %) dans les mêmes conditions (même architecture, même dataset d’entraînement). La différence vient uniquement du pré-entraînement : auto-supervisé MIM pour BEiT, supervisé pour DeiT.

BEiT-Large monte à 86,3 % sur ImageNet-1K sans données externes au-delà d’ImageNet, surpassant même ViT-L pré-entraîné de manière supervisée sur ImageNet-22K (85,2 %). Avec un intermediate fine-tuning sur ImageNet-22K, BEiT-Large atteint 88,6 % top-1, un score de référence à l’époque.

Segmentation sémantique

Sur ADE20K avec le framework UperNet, BEiT-Large atteint 57,0 mIoU, un bond considérable par rapport aux résultats antérieurs. Ce score démontre que le MIM produit des représentations particulièrement riches en information spatiale, bien adaptées aux tâches denses.

Émergence de régions sémantiques

L’une des observations les plus intéressantes du papier est que BEiT apprend spontanément à segmenter les objets, sans aucune annotation de segmentation pendant le pré-entraînement. Les cartes d’attention du modèle pré-entraîné révèlent des régions sémantiques cohérentes (l’attention se concentre sur des objets entiers plutôt que sur des textures aléatoires). C’est un signal fort que le MIM capture des structures visuelles de haut niveau.

L’évolution de la famille BEiT

BEiT v2 (2022) : un meilleur tokenizer visuel

Le maillon faible de BEiT original est sa dépendance au dVAE de DALL-E comme tokenizer visuel. Ce tokenizer, conçu pour la génération d’images, n’est pas optimal pour l’apprentissage de représentations discriminatives. BEiT v2 résout ce problème en entraînant son propre tokenizer visuel basé sur la quantification vectorielle (VQ).

Le tokenizer de BEiT v2 utilise un encodeur ViT couplé à un codebook de tokens visuels appris par entraînement contrastif. Les tokens produits sont sémantiquement plus riches que ceux du dVAE : ils encodent non seulement l’apparence mais aussi le contenu sémantique des patches.

Résultat : BEiT v2-Base atteint 85,5 % top-1 sur ImageNet-1K (vs. 83,2 % pour BEiT v1-Base), un gain de +2,3 points avec la même architecture backbone. C’est la preuve que la qualité du tokenizer est un facteur déterminant pour le MIM.

BEiT-3 (CVPR 2023) : le modèle de fondation multimodal

BEiT-3 franchit une étape décisive en unifiant le pré-entraînement vision, langage et multimodal dans un seul modèle. L’idée clé est de traiter les images comme un « langage étranger » (Imglish) et d’appliquer le même objectif de masquage à trois types de données : images seules, textes seuls, et paires image-texte.

Architecture Multiway Transformer. BEiT-3 introduit un Transformer modulaire où chaque couche contient un module d’attention partagé entre les modalités et un pool d’experts FFN (feed-forward networks) spécifiques à chaque modalité. Cette architecture permet à la fois une fusion profonde des modalités et un encodage spécialisé par modalité, selon les besoins de la tâche en aval.

Données de pré-entraînement. BEiT-3 est entraîné sur des images ImageNet-21K, 160 Go de documents texte, et environ 21 millions de paires image-texte issues de CC12M, CC3M, SBU Captions, COCO et Visual Genome.

Flexibilité architecturale. Grâce à son Multiway Transformer, BEiT-3 peut être réutilisé comme :

Mode Usage Tâches typiques
Encodeur vision Backbone image seul Classification, détection, segmentation
Encodeur langage Backbone texte seul Compréhension de texte
Encodeur de fusion Encodage conjoint image+texte VQA, raisonnement visuel
Double encodeur Encodage séparé puis matching Retrieval image-texte
Séquence-à-séquence Génération texte depuis image Image captioning
Modèle BEiT-3 Couches Dim. Params Données
BEiT-3 Base 12 768 276 M ImageNet-21K + texte + paires image-texte
BEiT-3 Large 24 1024 746 M ImageNet-21K + texte + paires image-texte

BEiT-3 Large établit des records sur une gamme impressionnante de benchmarks lors de sa publication : détection COCO, segmentation ADE20K, classification ImageNet, raisonnement visuel NLVR2, VQA, captioning COCO, et retrieval Flickr30K/COCO. C’est un vrai modèle de fondation vision-langage, capable de s’adapter à pratiquement toute tâche visuelle ou multimodale.

BEiT-3 dans l’écosystème actuel BEiT-3 reste utilisé comme backbone dans des travaux récents de segmentation ouverte (OMTSeg) et de grounding visuel (EVF-SAM). Sa capacité de fusion vision-langage profonde en fait un choix solide pour les tâches nécessitant un alignement fin entre image et texte, comme la segmentation par description textuelle.

BEiT vs. les autres approches de MIM

BEiT a lancé une vague de recherches sur le masked image modeling. Voici comment il se positionne face aux principales alternatives :

Critère BEiT MAE (Meta) SimMIM (Microsoft) DINO / DINOv2 (Meta)
Cible de prédiction Tokens visuels discrets (dVAE) Pixels RGB bruts Pixels RGB bruts Pas de MIM (distillation)
Tokenizer externe Oui (dVAE DALL-E / VQ pour v2) Non Non Non
Taux de masquage ~40 % (blocs) 75 % (aléatoire) ~60 % (blocs) n/a
Encodeur ViT complet (tous les tokens) ViT partiel (tokens visibles uniquement) ViT complet (Swin compatible) ViT complet
Décodeur Classifieur linéaire sur vocab Décodeur Transformer léger Tête de régression linéaire n/a
Qualité sémantique des features Très bonne Bonne (plus orientée reconstruction) Bonne Excellente
Top-1 ImageNet (Base) 83,2 % (v1) / 85,5 % (v2) 83,6 % 83,8 % 83,6 % (DINOv2)

Verdict. BEiT a ouvert la voie du MIM pour les Vision Transformers, mais les travaux suivants ont montré que le tokenizer externe n’est pas strictement nécessaire. MAE (He et al., 2022) obtient des résultats comparables en prédisant directement les pixels, avec une architecture plus simple. Pour un usage généraliste, DINOv2 est devenu la référence en auto-supervisé grâce à sa capacité à produire des features de très haute qualité sans fine-tuning. BEiT-3 reste pertinent quand vous avez besoin d’un modèle de fondation multimodal vision-langage unifié.

Utiliser BEiT en pratique

Via Hugging Face Transformers

BEiT est intégré dans Hugging Face Transformers avec les checkpoints Microsoft pré-entraînés et fine-tunés.

from transformers import BeitImageProcessor, BeitForImageClassification
from PIL import Image
import requests

# Charger modèle et processeur
processor = BeitImageProcessor.from_pretrained(
    "microsoft/beit-base-patch16-224-pt22k-ft22k"
)
model = BeitForImageClassification.from_pretrained(
    "microsoft/beit-base-patch16-224-pt22k-ft22k"
)

# Inférence
url = "https://example.com/image.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
predicted_class = outputs.logits.argmax(-1).item()
print(model.config.id2label[predicted_class])

Les checkpoints disponibles suivent la convention de nommage beit-{size}-patch16-{resolution}-pt{pretrain}-ft{finetune} :

Modèle Hugging Face Pré-entraînement Fine-tuning
microsoft/beit-base-patch16-224 ImageNet-22K (MIM) ImageNet-1K
microsoft/beit-base-patch16-224-pt22k-ft22k ImageNet-22K (MIM) ImageNet-22K → 1K
microsoft/beit-large-patch16-224 ImageNet-22K (MIM) ImageNet-1K
microsoft/beit-large-patch16-224-pt22k-ft22k ImageNet-22K (MIM) ImageNet-22K → 1K
microsoft/beit-large-patch16-512 ImageNet-22K (MIM) ImageNet-1K (512×512)

Via timm

import timm

# BEiT-Base pré-entraîné MIM + fine-tuné ImageNet-22K→1K
model = timm.create_model(
    "beit_base_patch16_224.in22k_ft_in22k_in1k",
    pretrained=True
)

# BEiT-Large
model = timm.create_model(
    "beit_large_patch16_224.in22k_ft_in22k_in1k",
    pretrained=True
)

# Lister les variantes
beit_models = timm.list_models("beit*")
print(f"{len(beit_models)} modèles BEiT disponibles")

Pré-entraînement MIM personnalisé

Pour pré-entraîner BEiT sur vos propres données, vous aurez besoin du tokenizer visuel de DALL-E (encoder.pkl et decoder.pkl disponibles sur le dépôt OpenAI) et du code de pré-entraînement dans le monorepo microsoft/unilm. Le processus nécessite au minimum 16 GPU et environ 300 epochs sur ImageNet-1K.

Le tokenizer dVAE est un goulet d’étranglement La qualité du pré-entraînement BEiT dépend directement de la qualité du tokenizer visuel. Si vos images sont très différentes des images naturelles (imagerie médicale, satellite, microscopie), le dVAE de DALL-E peut produire des tokens de mauvaise qualité. Dans ce cas, envisagez BEiT v2 (tokenizer VQ appris) ou des alternatives comme MAE qui ne nécessitent pas de tokenizer externe.

Impact et héritage de BEiT

Le « moment BERT » de la vision

BEiT est souvent cité comme le travail qui a déclenché le « moment BERT » pour la vision par ordinateur. Avant BEiT, les méthodes auto-supervisées dominantes en vision utilisaient l’apprentissage contrastif (SimCLR, MoCo) ou la distillation (DINO). BEiT a montré que le paradigme mask-then-predict, fondement de BERT, était aussi efficace en vision, ouvrant la voie à une convergence méthodologique entre NLP et vision.

Lancement de la révolution MIM

Après BEiT, le masked image modeling est devenu l’une des directions de recherche les plus actives. MAE (He et al., 2022) a simplifié l’approche en éliminant le tokenizer externe. SimMIM (Xie et al., 2022, aussi Microsoft) l’a rendu compatible avec Swin Transformer. PeCo, iBOT, et data2vec ont exploré d’autres variantes. Toutes ces méthodes s’inscrivent dans le sillon creusé par BEiT.

Vers la convergence multimodale

La trajectoire BEiT → BEiT v2 → BEiT-3 illustre une tendance plus large : la convergence des architectures et méthodes de pré-entraînement entre vision, langage et multimodal. BEiT-3 traite les images comme un « langage étranger » et unifie l’entraînement sous un seul objectif (masquage + prédiction). Cette philosophie a influencé des travaux comme CLIP, Flamingo, et les modèles vision-langage modernes.

Limites de BEiT

Dépendance au tokenizer externe (v1). Le dVAE de DALL-E est un composant externe non optimisé pour le MIM. Si le tokenizer produit des tokens de mauvaise qualité, tout le pré-entraînement en souffre. BEiT v2 résout partiellement ce problème avec un tokenizer appris, mais ajoute une étape d’entraînement supplémentaire.

Coût de pré-entraînement. Le pré-entraînement MIM est computationnellement lourd : 300 epochs sur ImageNet-1K pour BEiT-Base, 150 epochs sur ImageNet-22K pour les versions larges. MAE est plus efficace car il n’encode que les tokens visibles (25 % de l’image), réduisant le coût par epoch.

Pas de features zéro-shot. Contrairement à CLIP ou DINOv2, BEiT ne produit pas de features utilisables en zéro-shot (sans fine-tuning). Il faut toujours un fine-tuning supervisé pour adapter les représentations à une tâche spécifique.

Dépassé en représentations visuelles pures. DINOv2 (Meta, 2023) produit des représentations visuelles de meilleure qualité que BEiT pour le transfer learning sur la plupart des tâches, sans nécessiter de fine-tuning. Pour un usage de backbone visuel pur, DINOv2 est le meilleur choix actuel.

Architecture ViT vanilla. BEiT original utilise un ViT avec attention globale quadratique. Pour les images haute résolution, Swin Transformer ou des ViT avec Flash Attention sont plus efficaces. Cependant, SimMIM a montré que le MIM fonctionne aussi avec Swin comme backbone.

Cas d’usage recommandés

Segmentation sémantique. BEiT excelle comme backbone pour la segmentation (ADE20K, Cityscapes). Le MIM produit des représentations spatiales riches, idéales pour les tâches nécessitant une compréhension fine de la géométrie de la scène.

Tâches vision-langage (BEiT-3). Pour le VQA, le captioning, le retrieval image-texte et le raisonnement visuel, BEiT-3 offre un modèle de fondation unifié qui s’adapte à toutes ces tâches depuis une seule base pré-entraînée.

Domaines spécialisés avec peu de labels. Le pré-entraînement auto-supervisé de BEiT est particulièrement utile quand vous avez beaucoup d’images non annotées dans votre domaine. Pré-entraîner BEiT sur vos données non annotées, puis fine-tuner avec un petit jeu annoté, peut surpasser un ViT pré-entraîné sur ImageNet.

Segmentation ouverte et grounding. BEiT-3 sert de backbone dans des architectures récentes comme OMTSeg (segmentation ouverte) et EVF-SAM (grounding visuel), où la fusion profonde vision-langage est essentielle pour interpréter des descriptions textuelles arbitraires.


Questions fréquentes sur BEiT

Quelle est la différence entre BEiT et MAE ?

BEiT et MAE sont deux approches de masked image modeling, mais avec des philosophies différentes. BEiT prédit des tokens visuels discrets (issus d’un tokenizer externe) et encode tous les tokens (masqués et visibles). MAE prédit directement les pixels RGB bruts et n’encode que les tokens visibles (réduisant le coût computationnel). MAE est plus simple à implémenter (pas de tokenizer externe), tandis que BEiT produit des représentations légèrement plus sémantiques grâce à la prédiction de tokens discrets. En pratique, les performances sont comparables sur les benchmarks standards.

BEiT est-il un modèle génératif ?

Non. Malgré son objectif de pré-entraînement basé sur la prédiction de tokens visuels, BEiT est un modèle d’encodage (comme BERT, pas comme GPT). Il produit des représentations d’images, pas des images. Le tokenizer dVAE utilisé pendant le pré-entraînement est un composant génératif, mais le modèle BEiT lui-même est un encodeur discriminatif utilisé pour la classification, la détection et la segmentation.

Faut-il utiliser BEiT v1, v2 ou v3 ?

Pour de la vision pure (classification, détection, segmentation), BEiT v2 offre le meilleur rapport simplicité/performance. Pour des tâches multimodales (VQA, captioning, retrieval image-texte), BEiT-3 est le choix naturel grâce à son architecture Multiway Transformer. BEiT v1 n’est recommandé que pour la reproductibilité de travaux antérieurs.

Quel est le lien entre BEiT et DALL-E ?

BEiT utilise le tokenizer visuel de DALL-E (discrete VAE) comme outil auxiliaire pendant le pré-entraînement. Ce tokenizer convertit les images en tokens discrets qui servent de cibles de prédiction. Cependant, BEiT et DALL-E sont des modèles fondamentalement différents : DALL-E est un modèle génératif qui crée des images à partir de texte, tandis que BEiT est un encodeur qui apprend des représentations d’images. BEiT v2 remplace d’ailleurs le tokenizer DALL-E par son propre tokenizer VQ.

BEiT est-il encore pertinent face à DINOv2 ?

Pour les représentations visuelles pures, DINOv2 surpasse BEiT sur la plupart des benchmarks et produit des features utilisables sans fine-tuning (évaluation linéaire, k-NN). Cependant, BEiT-3 conserve un avantage dans le domaine multimodal : son architecture Multiway Transformer permet une fusion profonde vision-langage que DINOv2 (vision seule) ne propose pas. Si votre tâche est purement visuelle, partez sur DINOv2. Si elle implique du texte, BEiT-3 reste un choix pertinent.

Polydesk.ai — Footer