Introduction
Les Transformers ont révolutionné le traitement du langage naturel (NLP) et sont à la base de tous les grands modèles de langage modernes comme GPT, BERT, et bien d’autres. Introduits en 2017 par Vaswani et al. dans le célèbre article “Attention is All You Need”, les Transformers ont remplacé les architectures récurrentes (RNN, LSTM) pour devenir la référence en NLP.
Dans cet article, nous allons explorer en détail le fonctionnement des Transformers, en mettant l’accent sur le mécanisme d’attention qui en est le cœur.
Le Problème des Architectures Récurrentes
Avant les Transformers, les modèles de séquence utilisaient principalement des réseaux de neurones récurrents (RNN) et des LSTM. Ces architectures avaient plusieurs limitations :
Traitement Séquentiel
Les RNN traitent les mots un par un, dans l’ordre. Cela pose deux problèmes majeurs :
- Parallélisation impossible : On ne peut pas traiter plusieurs mots en même temps, ce qui ralentit l’entraînement
- Dépendances longue distance : Les informations du début de la phrase peuvent se perdre quand on arrive à la fin
Gradient Vanishing
Même avec les LSTM, il est difficile de capturer des dépendances sur de très longues séquences. Le gradient a tendance à disparaître lors de la rétropropagation à travers de nombreux pas de temps.
L’Idée Révolutionnaire : L’Attention
Les Transformers proposent une solution élégante : et si chaque mot pouvait directement regarder tous les autres mots de la phrase ?
C’est exactement ce que fait le mécanisme d’auto-attention (self-attention). Au lieu de traiter les mots séquentiellement, chaque mot calcule une “attention” sur tous les autres mots pour déterminer lesquels sont importants pour le comprendre.
Exemple Concret
Prenons la phrase : “Le chat mange la souris”
Quand le modèle traite le mot “mange”, il va calculer des scores d’attention pour tous les autres mots :
- “Le” : faible attention (article peu informatif)
- “chat” : forte attention (sujet de l’action)
- “la” : faible attention
- “souris” : forte attention (objet de l’action)
Le mot “mange” va donc se concentrer sur “chat” et “souris” pour mieux se comprendre dans le contexte.
Le Mécanisme d’Auto-Attention (Self-Attention)
Le mécanisme d’attention utilise trois concepts clés : les Query (Q), Key (K), et Value (V).
Les Trois Matrices : Q, K, V
Pour chaque mot de la phrase, on calcule trois vecteurs :
- Query (Q) : “Que cherche ce mot ?”
- Key (K) : “Qu’est-ce que ce mot offre ?”
- Value (V) : “Quelle information ce mot contient ?”
Ces trois vecteurs sont obtenus en multipliant l’embedding du mot par trois matrices de poids apprises pendant l’entraînement.
Calcul de l’Attention
Le score d’attention entre deux mots est calculé en trois étapes :
- Score : Produit scalaire entre la Query d’un mot et la Key d’un autre
1
score(mot_i, mot_j) = Q_i · K_j
- Normalisation : Division par la racine carrée de la dimension (pour stabiliser les gradients)
1
score_normalized = score / sqrt(d_k)
- Softmax : Conversion en probabilités
1
attention_weights = softmax(score_normalized)
- Weighted Sum : Somme pondérée des Values
1
output = sum(attention_weights * V)
Formule Mathématique
La formule complète de l’attention est :
1
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) * V
Où :
Q,K,Vsont les matrices Query, Key, Valued_kest la dimension des vecteurs KeyQK^Test le produit matriciel donnant les scores d’attention
Multi-Head Attention
Une des innovations clés des Transformers est l’utilisation de plusieurs têtes d’attention en parallèle.
Pourquoi Plusieurs Têtes ?
Chaque tête d’attention peut se spécialiser dans la capture d’un type de relation différent :
- Tête 1 : Relations syntaxiques (sujet-verbe)
- Tête 2 : Relations sémantiques (synonymes, antonymes)
- Tête 3 : Références anaphoriques (pronoms → noms)
Fonctionnement
Au lieu d’avoir une seule attention, on en calcule 8 ou 12 en parallèle (selon le modèle), chacune avec ses propres matrices Q, K, V. Les résultats sont ensuite concaténés et projetés.
1
2
3
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) * W_O
où head_i = Attention(Q*W_Qi, K*W_Ki, V*W_Vi)
Positional Encoding
Il y a un problème : contrairement aux RNN, les Transformers ne traitent pas les mots dans l’ordre. La phrase “Le chat mange la souris” et “La souris mange le chat” produiraient le même résultat !
Pour résoudre ce problème, on ajoute un encodage positionnel (positional encoding) aux embeddings des mots.
Encodage Sinusoïdal
L’article original utilise des fonctions sinusoïdales pour encoder la position :
1
2
PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
Où :
posest la position du mot dans la phraseiest la dimensiond_modelest la dimension du modèle
Cet encodage a l’avantage de permettre au modèle de généraliser à des séquences plus longues que celles vues pendant l’entraînement.
Architecture Complète d’un Transformer
Un Transformer complet se compose de deux parties :
Encoder
- Embeddings + Positional Encoding
- Multi-Head Attention (auto-attention)
- Add & Norm (connexion résiduelle + normalisation)
- Feed-Forward Network (deux couches linéaires avec ReLU)
- Add & Norm
Ces blocs sont répétés N fois (typiquement 6 ou 12 fois).
Decoder
Similaire à l’encoder, mais avec une couche supplémentaire :
- Masked Multi-Head Attention (pour éviter de regarder le futur)
- Add & Norm
- Multi-Head Attention (attention croisée avec l’encoder)
- Add & Norm
- Feed-Forward Network
- Add & Norm
🎮 Démo Interactive : Processus Complet de Génération
Visualisez toutes les étapes pour générer le prochain mot d'une phrase !
Applications des Transformers
Les Transformers sont utilisés dans de nombreuses tâches :
Traitement du Langage
- BERT : Pré-entraînement bidirectionnel pour la compréhension
- GPT : Génération de texte autoregressive
- T5 : Approche text-to-text unifiée
Au-delà du Texte
- Vision Transformers (ViT) : Classification d’images
- DALL-E : Génération d’images à partir de texte
- Whisper : Reconnaissance vocale
- AlphaFold : Prédiction de structure de protéines
Avantages des Transformers
- Parallélisation : Tous les mots sont traités en même temps
- Dépendances longue distance : Chaque mot peut directement interagir avec tous les autres
- Interprétabilité : On peut visualiser les matrices d’attention
- Flexibilité : S’adapte à différentes modalités (texte, images, audio)
Limitations
- Complexité quadratique : O(n²) en mémoire et calcul pour une séquence de longueur n
- Besoin de données : Nécessite beaucoup de données pour l’entraînement
- Coût computationnel : Très gourmand en ressources GPU
Évolutions Récentes
Pour résoudre la limitation de complexité, plusieurs variantes ont été proposées :
- Longformer : Attention sparse pour les documents longs
- Reformer : Utilisation de LSH (Locality-Sensitive Hashing)
- Linear Transformers : Attention linéaire en O(n)
Conclusion
Les Transformers ont révolutionné le machine learning et continuent d’évoluer. Le mécanisme d’attention, simple mais puissant, permet de capturer des relations complexes dans les données de manière parallélisable et efficace.
Avec l’avènement des grands modèles de langage (LLM) comme GPT-4 ou Claude, les Transformers sont devenus le socle de l’intelligence artificielle moderne.
💬 Une question sur l'article ?
Posez votre question et obtenez une réponse basée sur le contenu de cet article grâce au système RAG local.
Références
- Vaswani, A., et al. (2017). “Attention is All You Need”
- Devlin, J., et al. (2018). “BERT: Pre-training of Deep Bidirectional Transformers”
- Brown, T., et al. (2020). “Language Models are Few-Shot Learners” (GPT-3)
- Dosovitskiy, A., et al. (2020). “An Image is Worth 16x16 Words: Transformers for Image Recognition”