Architecture Transformer et Mécanisme d’Attention : Analyse Technique
Introduite par Google dans l’article de 2017 "Attention Is All You Need", l’architecture Transformer constitue la base de l’intelligence artificielle moderne. Tous les grands modèles de langage tels que GPT, Claude et Gemini reposent sur cette architecture.
Avant les Transformers : Limites des RNN et LSTM
Avant l’ère des Transformers, les tâches de NLP utilisaient des réseaux RNN (Recurrent Neural Networks) et LSTM (Long Short-Term Memory) :
Problèmes des RNN/LSTM :
- Traitement séquentiel obligatoire → Impossible de paralléliser.
- Gradient qui disparaît/explose sur les longues séquences.
- Difficulté à apprendre les dépendances à longue portée.
- Temps d’entraînement très longs.
Mécanisme de Self-Attention
La self-attention est un mécanisme qui calcule la relation entre chaque élément d’une séquence et tous les autres éléments.
Formulation Mathématique
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
Paramètres :
- Q (Query) : Le vecteur de requête.
- K (Key) : Le vecteur clé à comparer.
- V (Value) : Le vecteur contenant l’information.
- d_k : La dimension du vecteur Key.
Calcul Étape par Étape
- Projection : Input → matrices Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
- Scores d’Attention : Produit scalaire de Q et K
scores = Q × K^T
- Scaling : Division par √d_k pour stabiliser le gradient
scaled_scores = scores / √d_k
- Softmax : Conversion en distribution de probabilité
attention_weights = softmax(scaled_scores)
- Somme pondérée : Multiplication par Value
output = attention_weights × V
Multi-Head Attention
Au lieu d’une seule tête d’attention, plusieurs têtes parallèles sont utilisées :
1MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O 2 3where head_i = Attention(QW_Q^i, KW_K^i, VW_V^i)
Avantages du Multi-Head Attention
- Apprentissage dans différents sous-espaces de représentation.
- Capture de divers types de relations contextuelles.
- Extraction de caractéristiques plus riche.
Configurations typiques :
- GPT-3 : 96 têtes d’attention, d_model = 12288.
- GPT-4 : Estimé à 120+ têtes.
Encodage Positionnel
Comme les Transformers traitent les données en parallèle, on ajoute une information de position pour conserver le contexte séquentiel :
Encodage Positionnel Sinusoïdal
PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
Rotary Positional Embedding (RoPE)
Une méthode plus avancée utilisée dans les modèles modernes :
f(x, pos) = x × e^(i × pos × θ)
Avantages du RoPE :
- Encode naturellement les informations de position relative.
- Meilleure capacité d’extrapolation pour les longues séquences.
- Utilisé dans les modèles GPT-NeoX, LLaMA et Mistral.
Réseau Feed-Forward
Une couche MLP qui suit chaque couche d’attention :
FFN(x) = GELU(xW_1 + b_1)W_2 + b_2
Dimensions typiques :
- d_model = 4096.
- d_ff = 4 × d_model = 16384.
Fonctions d’Activation
- ReLU : Classique et simple.
- GELU : Préférée dans les modèles de type GPT.
- SwiGLU : Utilisée dans les modèles LLaMA et PaLM.
Layer Normalization
Essentielle pour la stabilité de l’entraînement :
Pre-LN vs Post-LN
Post-LN (Original) :
x = x + Attention(LayerNorm(x))
Pre-LN (Moderne) :
x = LayerNorm(x + Attention(x))
Le Pre-LN offre une meilleure stabilité d’entraînement et est devenu la norme actuelle dans l’industrie.
Architectures Encoder vs Decoder
Encoder-Only (style BERT)
- Attention bidirectionnelle.
- Utilisée pour la Classification, le NER et la similarité sémantique.
- Masked Language Modeling.
Decoder-Only (style GPT)
- Attention causale/autoregressive.
- Utilisée pour la génération de texte et le chat.
- Prédiction du prochain token.
Encoder-Decoder (T5, BART)
- Tâches sequence-to-sequence.
- Traduction et résumé.
Causal Masking
Masquage des tokens futurs dans les modèles decoder :
mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)
Cela garantit que le modèle ne regarde que les tokens précédents lors de la génération.
Optimisation du KV-Cache
Pour éviter les calculs redondants lors de l’inférence :
1Step 1: Calculate K_1, V_1 → save to cache 2Step 2: Calculate K_2, V_2 → K = [K_1, K_2], V = [V_1, V_2] 3Step n: Calculate only for the new token, retrieve old values from cache
Économie de mémoire : O(n²) → O(n) pour les étapes de traitement.
Flash Attention
Une implémentation d’attention optimisée en mémoire :
Problèmes de l’attention standard :
- Utilisation mémoire O(n²).
- Goulot d’étranglement HBM (mémoire à haute bande passante).
Solution Flash Attention :
- Tiling : découpage de l’attention en blocs.
- Online Softmax : calcul incrémental.
- I/O Aware : optimisation de la hiérarchie mémoire GPU.
Résultat : accélération de 2 à 4×, économie de mémoire de 5 à 20 %.
Variantes d’attention clairsemée (Sparse Attention)
Réduction de la complexité de l’attention pour les longs contextes :
Local Attention
Attention focalisée uniquement sur les tokens proches.
Dilated Attention
Application de l’attention à intervalles spécifiques.
Modèle Longformer
Combinaison d’attention locale et globale.
Variantes modernes de Transformers
| Model | Feature | Context Length |
|---|---|---|
| GPT-4 | MoE, long context | 128K |
| Claude 3 | Constitutional AI | 200K |
| Gemini 1.5 | Sparse MoE | 1M |
| Mistral | Sliding window | 32K |
Conclusion
L’architecture Transformer est le bloc fondamental de l’IA moderne. Son mécanisme de self-attention, sa capacité de traitement parallèle et son aptitude à apprendre des dépendances à longue portée en ont fait une architecture révolutionnaire.
Chez Veni AI, nous utilisons efficacement des modèles basés sur les Transformers dans nos solutions d’entreprise. Contactez-nous pour du conseil technique.
