Decoder (Transformateur)
Décodeur (en anglais : Decoder) — en apprentissage automatique et en apprentissage profond, il s'agit d'un composant d'un réseau de neurones dont la tâche principale est de transformer une représentation encodée (par exemple, un vecteur de contexte ou une séquence d'états cachés provenant d'un encodeur) en une séquence de données de sortie (comme du texte ou une image). Le décodeur génère les données de sortie pas à pas, généralement de manière autorégressive.
Dans un sens plus large, en théorie de l'information, un décodeur est tout dispositif ou algorithme qui reconvertit des données encodées dans leur format original ou compréhensible.
Concept et fonction
Si l'encodeur est responsable de la compréhension et de la compression des données d'entrée, le décodeur est chargé de la génération et du déploiement des données de sortie. Il prend une représentation compacte et riche en informations et la transforme séquentiellement au format souhaité, qu'il s'agisse d'une phrase dans une autre langue, d'une description textuelle d'une image ou d'une séquence de notes de musique.
La caractéristique clé de la plupart des décodeurs est leur nature autorégressive : pour générer l'élément suivant d'une séquence (par exemple, un mot ou un pixel), ils utilisent à la fois la représentation encodée et tous les éléments précédemment générés.
Le décodeur dans différentes architectures
Le décodeur dans un auto-encodeur
Dans l'architecture de l'auto-encodeur, le décodeur accomplit la tâche inverse de celle de l'encodeur :
- L'encodeur compresse les données d'entrée en une représentation latente.
- Le décodeur prend cette représentation latente et tente de reconstruire les données d'origine à partir de celle-ci.
L'entraînement d'un tel réseau permet d'utiliser le décodeur séparément pour générer de nouvelles données en lui fournissant en entrée des vecteurs de l'espace latent.
Le décodeur dans les réseaux de neurones récurrents (RNN/LSTM)
Dans les modèles classiques de séquence à séquence (seq2seq), basés sur des RNN ou des LSTM, le décodeur est un réseau récurrent qui génère la séquence de sortie jeton par jeton.
- Principe de fonctionnement : Le décodeur est initialisé avec l'état caché final (le vecteur de contexte) de l'encodeur. À chaque étape, il prend en entrée le jeton précédemment généré et son propre état caché précédent, puis génère le jeton suivant et met à jour son état. Ce processus se poursuit jusqu'à ce qu'un jeton spécial de fin de séquence (
<EOS>) soit généré.
Le décodeur dans l'architecture Transformer
Le décodeur basé sur l'architecture Transformer fonctionne également de manière autorégressive, mais sa structure interne est différente. Il est composé d'une pile de couches identiques, chacune comportant trois sous-couches principales :
- Auto-attention multi-têtes masquée (Masked Multi-Head Self-Attention) : Ce mécanisme fonctionne de la même manière que dans l'encodeur, mais avec une différence cruciale : le masquage. Le masque empêche chaque position de prêter « attention » aux positions suivantes dans la séquence. Cela garantit que la prédiction pour la position ne dépend que des sorties déjà connues aux positions antérieures à , préservant ainsi la propriété autorégressive.
- Attention croisée multi-têtes (Multi-Head Cross-Attention) : C'est le mécanisme clé qui relie le décodeur à l'encodeur. Ici, les requêtes (Query) proviennent de la couche précédente du décodeur, tandis que les clés (Key) et les valeurs (Value) proviennent des représentations de sortie de l'encodeur. Cela permet au décodeur, à chaque étape de la génération, de se concentrer sur les parties les plus pertinentes de la séquence d'entrée.
- Réseau de neurones à propagation avant (Feed-Forward Network) : Similaire à celui utilisé dans l'encodeur.
Types de modèles basés sur un décodeur
Modèles encodeur-décodeur
C'est l'architecture classique où l'encodeur et le décodeur fonctionnent en tandem.
- Principe de fonctionnement : L'encodeur crée une représentation des données d'entrée, et le décodeur génère les données de sortie en utilisant cette représentation.
- Exemples : Le Transformer original, T5, BART.
Modèles à décodeur seul (Decoder-Only)
Ces modèles, devenus dominants dans l'IA générative, utilisent exclusivement une pile de décodeurs de type Transformer.
- Principe de fonctionnement : Dans ces modèles, il n'y a pas d'attention croisée vers un encodeur, car il n'y en a pas. Le modèle fonctionne purement en mode autorégressif, prédisant le jeton suivant en se basant sur tous les jetons précédents de la même séquence. Le prompt d'entrée et le texte déjà généré sont traités ensemble.
- Application : Idéals pour les tâches nécessitant de continuer un texte donné (génération de texte, systèmes de dialogue, chatbots).
- Exemples : La série GPT, LLaMA, Claude.
Relation avec l'encodeur
L'interaction entre l'encodeur et le décodeur est un principe fondamental pour les tâches de transformation.
- L'encodeur compresse les informations de la séquence d'entrée en un ensemble de vecteurs.
- Le décodeur utilise cet ensemble de vecteurs pour générer séquentiellement une nouvelle séquence.
L'attention croisée permet au décodeur de « consulter » l'encodeur à chaque étape pour déterminer sur quelle partie du texte original se concentrer à ce moment précis. Par exemple, lors de la traduction d'une phrase, le décodeur, en générant un mot en allemand, peut « regarder » le mot anglais correspondant dans l'entrée.
Voir aussi
- GPT
Bibliographie
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.
Category:Artificial intelligence