BERT (Bidirectional Encoder Representations from Transformers)
BERT est l’encodeur Transformer bidirectionnel de Google, préentraîné pour prédire les mots masqués à partir du contexte des deux côtés. Fonctionnement, réglage fin et variantes.
BERT (représentations d’encodeurs bidirectionnels à partir de Transformers) est un encodeur Transformer qui lit une phrase entière à la fois et construit la représentation de chaque mot à partir des mots qui le précèdent et le suivent. Jacob Devlin, Ming-Wei Chang, Kenton Lee et Kristina Toutanova, de Google AI Language, l’ont présenté en octobre 2018 dans BERT : préentraînement de Transformers profonds bidirectionnels pour la compréhension du langage, qui a remporté le prix du meilleur article long à NAACL 2019. Un seul BERT préentraîné, ajusté avec une couche de sortie supplémentaire, a établi de nouveaux résultats de pointe sur onze tâches de traitement automatique du langage naturel (NLP), portant le score du benchmark GLUE à 80,5 %, soit une amélioration absolue de 7,7 points, et celui de la réponse aux questions SQuAD v1.1 à un F1 de test de 93,2.
Comment BERT est préentraîné#
BERT-Base empile 12 couches d’encodeur dotées d’états cachés de 768 dimensions et de 12 têtes d’attention, soit environ 110 millions de paramètres ; BERT-Large compte 24 couches, 1 024 dimensions, 16 têtes et 340 millions de paramètres. Le texte d’entrée est découpé par segmentation en jetons WordPiece en un vocabulaire de 30 000 jetons ; un jeton spécial [CLS] ouvre chaque séquence, et [SEP] sépare les deux segments d’une paire de phrases. Google a préentraîné les deux tailles sur BooksCorpus (800 millions de mots) et Wikipédia en anglais (2 500 millions de mots), avec deux objectifs auto-supervisés.
La modélisation du langage masqué (MLM) sélectionne 15 % des positions de jetons, remplace 80 % d’entre elles par [MASK], 10 % par un jeton aléatoire et laisse 10 % inchangées ; le modèle prédit ensuite les jetons d’origine. L’auto-attention de BERT n’a pas de masque causal : chaque prédiction s’appuie donc sur le contexte des deux côtés, ce qu’un modèle de langage de gauche à droite ne peut pas faire. La prédiction de la phrase suivante (NSP) associe chaque segment à son véritable successeur la moitié du temps, et à une phrase aléatoire le reste du temps ; un classifieur appliqué à la sortie [CLS] apprend à les distinguer.
Un point de contrôle préentraîné conserve sa tête de prédiction des mots masqués ; le modèle d’origine peut donc remplir directement un blanc :
from transformers import pipeline
# BERT prédit un mot masqué à partir des mots qui l’entourent
fill = pipeline("fill-mask", model="bert-base-uncased")
for text in ["She went to the [MASK] to buy bread.", "She went to the [MASK] to see a doctor."]:
predictions = fill(text, top_k=3)
print(text, [(p["token_str"], round(p["score"], 2)) for p in predictions])Les deux phrases ne diffèrent qu’après le blanc, et la meilleure prédiction de BERT passe de « market » (0.82) à « hospital » (0.78). Un modèle qui lit de gauche à droite voit « She went to the » dans les deux phrases et ne dispose d’aucun élément pour les distinguer.
Ajustement fin et applications#
L’ajustement fin ajoute une petite couche propre à la tâche et entraîne tous les poids sur des exemples étiquetés ; cette approche a fait de l’apprentissage par transfert la norme en NLP. Le vecteur [CLS] alimente des classifieurs au niveau des phrases, comme l’analyse des sentiments, chaque vecteur de jeton alimente des tâches d’étiquetage, comme la reconnaissance d’entités nommées (NER), et les scores de début et de fin calculés sur les jetons permettent d’extraire les segments de réponse.
En octobre 2019, Google a commencé à utiliser BERT pour une recherche en anglais sur dix aux États-Unis, en citant la requête « 2019 brazil traveler to usa need a visa », où BERT a compris que « to » indiquait qu’un Brésilien se rendait aux États-Unis. En octobre 2020, BERT était utilisé pour presque toutes les requêtes en anglais. Les encodeurs de la famille BERT produisent également les représentations vectorielles qui sous-tendent la recherche sémantique : Sentence-BERT ajuste finement BERT pour représenter chaque phrase par un seul vecteur destiné à la recherche vectorielle, ColBERT conserve un vecteur par jeton, et les modèles de reclassement à encodeur croisé attribuent un score aux paires requête-passage dans les pipelines de génération augmentée par récupération (RAG).
En détection vision-langage, Grounding DINO encode les invites textuelles avec un encodeur BERT-base avant de les associer aux régions de l’image. Ultralytics Platform héberge Grounding DINO pour l’annotation intelligente guidée par les classes, qui transforme les noms de classes d’un jeu de données en boîtes modifiables pour entraîner un détecteur YOLO26. La prédiction masquée a aussi été transposée aux images : le Transformer visuel (ViT) a repris le token [CLS] de BERT pour la classification, et les autoencodeurs masqués (MAE) préentraînent les encodeurs d’images en masquant 75 % des zones et en les reconstruisant.
BERT, GPT et les encodeurs ultérieurs#
Les modèles GPT reposent sur le décodeur Transformer avec un masque causal : ils prédisent chaque jeton suivant à partir des jetons précédents, ce qui les rend adaptés à la génération de texte. BERT produit un vecteur pour chaque jeton d’entrée, ce qui convient à la classification, à l’extraction et à la recherche d’information ; il ne sait pas générer du texte de gauche à droite. Un grand modèle de langage (LLM) doté de milliards de paramètres peut accomplir bon nombre des mêmes tâches de compréhension à l’aide d’invites, mais à un coût par requête bien supérieur à celui d’un encodeur de 110 millions de paramètres.
Les encodeurs ultérieurs ont affiné la recette. RoBERTa, de Meta, a supprimé NSP et s’est entraîné plus longtemps sur des lots plus importants, avec environ 160 Go de texte, montrant que BERT avait été largement sous-entraîné. DistilBERT, de Hugging Face, a eu recours à la distillation des connaissances pour réduire le nombre de paramètres de 40 % et accélérer l’exécution de 60 %, tout en conservant 97 % des performances de compréhension du langage de BERT. ModernBERT, publié en décembre 2024 par Answer.AI et LightOn, a été entraîné sur 2 000 milliards de jetons avec une longueur de contexte native de 8 192 jetons, soit 16 fois la limite de 512 jetons de BERT.










