BERT (modèle de langage)

From Systems analysis Wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, représentations d'encodeur bidirectionnelles issues des transformeurs) est un grand modèle de langage (LLM) pour la compréhension du langage naturel, développé par des chercheurs de Google et présenté en 2018. BERT a marqué une nouvelle ère dans le traitement du langage naturel (NLP) en démontrant des performances sans précédent sur un large éventail de tâches et en établissant le paradigme du « pré-entraînement + ajustement fin » (pre-train & fine-tune) comme standard dans l'industrie.

L'innovation clé de BERT est son architecture profondément bidirectionnelle, qui permet au modèle de prendre en compte le contexte d'un mot à la fois à gauche et à droite, à travers toutes les couches du réseau. Ceci est réalisé grâce à une nouvelle tâche de pré-entraînement : le Masked Language Modeling (MLM).

Nom et principe de fonctionnement

L'acronyme BERT signifie Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Bidirectionnel) : Indique la caractéristique principale du modèle — sa capacité à traiter le contexte d'un mot dans les deux directions (de gauche à droite et de droite à gauche) simultanément. Contrairement aux modèles unidirectionnels (comme GPT), qui ne voient que le contexte précédent un mot lors de son traitement, BERT voit l'ensemble de la séquence, ce qui lui permet de former une compréhension plus profonde et plus précise du sens du mot.
  • Encoder (Encodeur) : Signifie que BERT utilise uniquement la partie encodeur de l'architecture Transformer. La tâche de l'encodeur est de lire la séquence de texte d'entrée et de créer pour chaque token une représentation contextuelle riche (un vecteur). BERT n'est pas conçu pour générer du texte de manière libre, comme les modèles décodeurs.
  • Representations (Représentations) : Le modèle est entraîné à créer des représentations numériques de haute qualité (vecteurs ou embeddings) pour les mots et les phrases, qui peuvent ensuite être utilisées pour résoudre diverses tâches de NLP.
  • from Transformers : Indique que l'architecture du modèle est entièrement basée sur le Transformer.

Historique

Le développement de BERT est le résultat de plusieurs avancées clés en NLP :

  1. Embeddings contextuels : Des modèles comme Word2vec et GloVe créaient des vecteurs statiques pour les mots, sans tenir compte du contexte. Le modèle ELMo (2018) a représenté une avancée en générant des représentations dépendantes du contexte à l'aide de réseaux LSTM bidirectionnels, bien que cette bidirectionnalité fût « superficielle » (concaténation de deux modèles unidirectionnels).
  2. Apprentissage par transfert et GPT : Au milieu de l'année 2018, OpenAI a présenté le modèle GPT, qui a démontré l'efficacité du pré-entraînement d'un grand modèle Transformer sur des données non étiquetées, suivi d'un ajustement fin (fine-tuning) sur des tâches spécifiques. Cependant, GPT était strictement unidirectionnel (de gauche à droite), ce qui limitait ses capacités dans les tâches nécessitant une compréhension du contexte complet.

Conscients de ces limitations, les chercheurs de Google, dirigés par Jacob Devlin, ont développé BERT pour créer un modèle véritablement et profondément bidirectionnel. L'article sur BERT a été publié sur arXiv en octobre 2018, et le code ainsi que les modèles pré-entraînés ont été rendus publics, suscitant un intérêt explosif dans la communauté scientifique. BERT a battu des records sur 11 benchmarks clés du NLP, dont GLUE et SQuAD, et a été qualifié de « moment ImageNet » du NLP, car un seul modèle universel pouvait être facilement adapté à de nombreuses tâches.

Architecture

BERT est entièrement basé sur la partie encodeur de l'architecture Transformer. Il se compose de plusieurs couches identiques empilées les unes sur les autres. Il existe deux versions principales :

  • BERT-Base : 12 couches, 12 têtes d'attention, une dimension d'état caché de 768, environ 110 millions de paramètres au total.
  • BERT-Large : 24 couches, 16 têtes d'attention, une dimension d'état caché de 1024, environ 340 millions de paramètres au total.

Chaque couche contient deux sous-couches principales :

  1. Mécanisme d'auto-attention multi-têtes (Multi-Head Self-Attention) : Permet à chaque token de la séquence d'entrée de « prêter attention » à tous les autres tokens, en pondérant leur importance pour déterminer sa propre signification contextuelle.
  2. Réseau de neurones à propagation avant (Feed-Forward Network) : Appliqué à chaque token séparément.

Données d'entrée

Pour fonctionner correctement, BERT nécessite un formatage spécifique des données d'entrée. La séquence de tokens fournie en entrée commence toujours par un token spécial `[CLS]` (classification), qui est utilisé pour les tâches de classification de texte entier. Si une paire de phrases est fournie en entrée (par exemple, dans les tâches de système de question-réponse), elles sont séparées par le token `[SEP]` (separator).

La représentation finale de chaque token en entrée est la somme de trois embeddings :

  • Embedding de token : Un vecteur correspondant au token spécifique du vocabulaire (BERT utilise la tokenisation WordPiece).
  • Embedding de segment : Indique à quelle phrase (la première ou la seconde) le token appartient.
  • Embedding de position : Indique la position du token dans la séquence, car l'architecture Transformer ne prend pas en compte l'ordre des mots par elle-même.

Tâches de pré-entraînement

Pour assurer une bidirectionnalité profonde, BERT est entraîné sur deux tâches uniques simultanément.

Masked Language Modeling (MLM)

C'est l'innovation clé de BERT. Au lieu de prédire le mot suivant, comme dans les modèles de langage standards, BERT prédit des mots masqués au hasard dans une phrase. Le processus se déroule comme suit :

  • 15% des tokens sont sélectionnés au hasard dans la séquence d'entrée.
  • Parmi ces 15% :
    • 80% sont remplacés par le token spécial `[MASK]`.
    • 10% sont remplacés par un token aléatoire du vocabulaire.
    • 10% restent inchangés.
  • La tâche du modèle est de prédire les valeurs originales de ces 15% de tokens en se basant sur leur contexte environnant (à gauche et à droite).

Cette approche force le modèle à apprendre des relations sémantiques et syntaxiques profondes entre les mots et lui permet d'être véritablement bidirectionnel.

Next Sentence Prediction (NSP)

Cette tâche a été conçue pour apprendre à BERT à comprendre les relations entre les phrases, ce qui est crucial pour des tâches comme les systèmes de question-réponse ou l'inférence de texte (NLI). Le modèle reçoit en entrée une paire de phrases (A et B) et doit prédire si la phrase B est la suite logique de la phrase A.

  • Dans 50% des cas, B est réellement la phrase suivante du texte original.
  • Dans 50% des cas, B est une phrase aléatoire extraite d'une autre partie du corpus.

Des recherches ultérieures (par exemple, dans le modèle RoBERTa) ont montré que la tâche NSP est moins importante que le MLM et qu'elle peut être abandonnée au profit de schémas d'entraînement plus efficaces, mais elle jouait un rôle important dans le BERT original.

Application et ajustement fin (Fine-Tuning)

La force de BERT réside dans le paradigme de l'apprentissage par transfert. Après un pré-entraînement coûteux et à grande échelle sur d'énormes corpus (Wikipedia + BooksCorpus), le modèle pré-entraîné peut être facilement et rapidement ajusté finement (fine-tuned) pour résoudre une tâche applicative spécifique.

Le processus d'ajustement fin se déroule généralement comme suit : 1. Une petite couche non entraînée, spécifique à la tâche (par exemple, un classifieur pour l'analyse de sentiments), est ajoutée à l'architecture du BERT pré-entraîné. 2. L'ensemble du modèle (y compris les poids de BERT et la nouvelle couche) est entraîné sur un petit ensemble de données étiquetées pour cette tâche spécifique.

Exemples de tâches pour lesquelles BERT est adapté :

  • Classification de texte (analyse de sentiments, filtres anti-spam) : Un classifieur est ajouté à la sortie du token `[CLS]`.
  • Systèmes de question-réponse (par exemple, SQuAD) : Le modèle est entraîné à prédire les tokens de début et de fin de la réponse dans un texte donné.
  • Reconnaissance d'entités nommées (NER) : Un classifieur est ajouté à la sortie de chaque token pour déterminer s'il fait partie d'un nom, d'une organisation, d'une date, etc.

Variantes et modèles dérivés

Le succès de BERT a conduit à l'émergence de toute une famille de modèles basés sur ses idées :

  • RoBERTa (de Facebook AI) : Un « BERT robustement optimisé ». Ce n'est pas une nouvelle architecture, mais plutôt le résultat d'un entraînement plus approfondi et plus long de BERT : sur plus de données, sans la tâche NSP et avec un masquage dynamique. RoBERTa a montré que le BERT original était « sous-entraîné » et l'a surpassé sur tous les principaux benchmarks.
  • DistilBERT (de Hugging Face) : Une version réduite de BERT, créée à l'aide de la technique de distillation de connaissances. DistilBERT est 40% plus petit, 60% plus rapide et conserve 97% des performances de BERT, ce qui le rend idéal pour une utilisation en production et sur des appareils aux ressources limitées.
  • ALBERT (A Lite BERT, de Google) : Une version optimisée pour réduire le nombre de paramètres. Elle utilise deux techniques clés : la factorisation des embeddings et le partage des paramètres entre les couches (cross-layer parameter sharing). Cela permet de créer des modèles beaucoup plus grands avec moins de paramètres.
  • mBERT (Multilingual BERT) : Une version de BERT pré-entraînée sur 104 langues simultanément. Elle a montré une capacité surprenante pour le transfert de connaissances interlingue.
  • Modèles spécifiques à un domaine : De nombreux modèles ajustés sur des données de domaines spécifiques, tels que BioBERT (biomédecine), SciBERT (textes scientifiques) et FinBERT (finance).
  • ModernBERT (2024-2025) : Une nouvelle génération de modèles de type BERT développée par Answer.AI et LightOn, intégrant des améliorations architecturales modernes telles que RoPE (Rotary Position Embeddings) et la prise en charge de contextes plus longs (jusqu'à 8192 tokens), tout en conservant les principes de base de BERT.

Comparaison avec d'autres modèles

Comparaison de BERT avec d'autres architectures clés
Modèle Développeur Architecture Direction du contexte Tâche principale
BERT Google Encodeur Bidirectionnel Compréhension de texte, classification, extraction
GPT OpenAI Décodeur Unidirectionnel (de gauche à droite) Génération de texte, continuation de séquence
XLNet Google / CMU Autorégressif (permutationnel) Bidirectionnel (en théorie) Compréhension de texte (alternative au MLM)
T5 Google Encodeur-Décodeur Bidirectionnel (encodeur) + Unidirectionnel (décodeur) Transformation universelle « texte-à-texte »

Impact

BERT a provoqué une véritable révolution en NLP et a jeté les bases de nombreuses avancées ultérieures :

  1. A établi le paradigme « pré-entraînement + ajustement fin » comme approche dominante en NLP.
  2. A démontré l'importance d'un contexte profondément bidirectionnel pour la compréhension du langage.
  3. A abaissé la barrière à l'entrée pour la création de systèmes NLP performants, car les chercheurs et les développeurs n'avaient plus besoin de créer des architectures complexes à partir de zéro pour chaque tâche.
  4. A été intégré dans la recherche Google, ce qui a constitué l'une des plus grandes mises à jour du moteur de recherche de son histoire et a démontré de manière tangible l'utilité pratique du modèle.
  5. A donné naissance à tout un écosystème de modèles dérivés, d'outils et de recherches (« BERTology »), devenant l'un des travaux les plus cités dans le domaine de l'IA.

Bien que des modèles plus récents et plus grands, tels que GPT-3 et GPT-4, aient surpassé BERT sur de nombreux benchmarks (en particulier dans les tâches génératives), BERT et ses variantes restent un outil puissant et largement utilisé pour les tâches nécessitant une compréhension approfondie du texte.

Liens externes

Bibliographie

  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
  • Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
  • Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
  • Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
  • Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
  • Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.