- Explique visuellement la structure et le principe de fonctionnement du modèle Transformer, et montre comment le mécanisme d’attention améliore l’apprentissage parallèle et les performances en traduction
- Le modèle est composé d’une pile d’encodeurs et de décodeurs, et chaque encodeur comprend deux couches : self-attention et réseau de neurones feedforward
- Décrit étape par étape le calcul de la self-attention au niveau des vecteurs et des matrices, puis l’étend avec la multi-head attention afin d’apprendre différents espaces de représentation
- Visualise concrètement les composants clés tels que l’encodage positionnel, les connexions résiduelles, la normalisation de couche et l’attention masquée du décodeur
- Cet article est une ressource de référence pour comprendre facilement les concepts de base des transformers, et il est également utilisé dans des cours et manuels de grandes universités comme le MIT et Stanford
Vue d’ensemble des transformers
- Le transformer est un modèle de traduction automatique neuronale basé sur l’attention, qui affiche sur certaines tâches de meilleures performances que Google Neural Machine Translation
- Son principal avantage est sa facilité de parallélisation, ce qui explique qu’il soit recommandé comme modèle de référence sur Google Cloud TPU
- Le modèle est constitué d’une pile d’encodeurs et de décodeurs, chaque encodeur ayant la même structure mais sans partage de poids
- L’entrée de l’encodeur passe par une couche de self-attention pour intégrer les informations de contexte, puis par un réseau de neurones feedforward
- En plus de la structure de l’encodeur, le décodeur inclut une couche d’attention encodeur-décodeur afin de se concentrer sur les parties pertinentes de la phrase d’entrée
Flux des tenseurs et embeddings
- La phrase d’entrée est convertie en vecteurs de dimension 512 pour chaque mot via un algorithme de word embedding
- Chaque couche de l’encodeur traite en entrée une liste de vecteurs de même taille, et la longueur de la phrase est définie comme hyperparamètre
- Comme la couche feedforward traite indépendamment le vecteur de chaque position, le calcul parallèle est possible
Concept de self-attention
- La self-attention permet à chaque mot de se référer aux autres mots de la phrase afin d’apprendre une meilleure représentation
- Exemple : dans “The animal didn’t cross the street because it was too tired”, “it” est lié à “animal”
- Contrairement aux RNN, qui maintiennent un état caché, le transformer intègre les informations de contexte via la self-attention
Étapes du calcul de la self-attention
- À partir de chaque embedding de mot, on génère des vecteurs Query, Key et Value (dimension 64)
- Le produit scalaire (dot product) entre Query et Key sert à calculer le score de pertinence entre les mots
- Les scores sont divisés par √64 puis passés dans un softmax afin d’être normalisés en distribution de probabilités
- On multiplie chaque vecteur Value par son score softmax, puis on les additionne pour produire la sortie finale de l’attention
- Dans une implémentation réelle, ce processus est effectué via des opérations matricielles pour gagner en efficacité
Multi-head attention
- Plusieurs têtes d’attention (8 par défaut) sont utilisées pour apprendre différents espaces de représentation
- Chaque tête possède ses propres matrices de poids Q/K/V
- Les sorties des différentes têtes sont concaténées (concat) puis combinées via une matrice de poids supplémentaire WO
- Cela permet au modèle de capturer simultanément différents aspects du contexte
Encodage positionnel
- Comme le transformer ne traite pas directement l’ordre, on ajoute à chaque embedding de mot un vecteur de position
- Ce vecteur de position est généré à l’aide des fonctions sinus (sin) et cosinus (cos), et fournit des informations sur la distance relative entre les mots
- Cette méthode peut s’étendre à des phrases plus longues que celles du jeu d’entraînement
- La mise à jour de 2020 présente également une méthode consistant à entrelacer (interleave) les deux signaux
Connexions résiduelles et normalisation
- Chaque sous-couche (self-attention, feedforward) applique une connexion résiduelle (residual connection) et une normalisation de couche (layer normalization)
- Cette structure contribue à éviter la disparition du gradient et à améliorer la stabilité de l’apprentissage
Structure du décodeur
- Le décodeur reçoit les vecteurs Key/Value depuis la sortie de l’encodeur pour effectuer l’attention encodeur-décodeur
- Un masquage (masking) l’empêche de consulter les mots futurs
- À la fin, une couche Linear et une couche Softmax produisent une distribution de probabilité sur les mots
- Par exemple, si la taille du vocabulaire est de 10 000, chaque vecteur de sortie est transformé en distribution de probabilité de dimension 10 000
Apprentissage et fonction de perte
- Pendant l’apprentissage, la distribution de probabilité produite par le modèle est comparée à la distribution correcte (encodage one-hot)
- On calcule l’erreur à l’aide de la cross-entropy ou de la divergence de KL, puis on ajuste les poids par rétropropagation
- Le beam search permet de conserver plusieurs traductions candidates afin d’améliorer la précision
Travaux ultérieurs et ressources de référence
- Articles liés : Attention Is All You Need, Training Tips for the Transformer Model, Self-Attention with Relative Position Representations, etc.
- Ressources d’implémentation : package Tensor2Tensor, guide Harvard NLP PyTorch, Colab Notebook
- Le transformer a ensuite évolué vers une version enrichie sur LLM-book.com (chapitre 3), qui traite de modèles plus récents comme Multi-Query Attention et les embeddings positionnels RoPE
Conclusion
- Le transformer est une architecture basée sur l’attention et parallélisable, devenue un modèle central du deep learning moderne
- Cet article est une ressource de référence qui explique visuellement la structure, les mathématiques et l’intuition des transformers, et il est utilisé comme support dans des cours de grandes universités comme Stanford, MIT et Harvard
Aucun commentaire pour le moment.