Encoder–decoder architecture (Architecture encodeur–décodeur)
Les modèles encodeur-décodeur (en anglais, Encoder-Decoder Models) sont une classe d'architectures de réseaux de neurones conçues pour résoudre des tâches de transformation de séquence en séquence (sequence-to-sequence, seq2seq). Cette architecture se compose de deux composants principaux :
- Encodeur : Traite la séquence d'entrée et la compresse en une représentation numérique compacte (un vecteur de contexte ou une séquence d'états cachés).
- Décodeur : Prend cette représentation et génère une séquence de sortie sur cette base.
Cette architecture est fondamentale pour de nombreuses tâches de traitement du langage naturel (NLP) et de vision par ordinateur, telles que la traduction automatique, le résumé de texte et la génération de légendes d'images.
Concept
L'idée principale de l'architecture encodeur-décodeur est de séparer les tâches de compréhension et de génération. L'encodeur est responsable de la compréhension de la séquence d'entrée, en extrayant toutes les informations sémantiques nécessaires. Le décodeur est responsable de la génération d'une nouvelle séquence en utilisant les informations fournies par l'encodeur.
Cela permet au modèle de travailler avec des séquences de longueurs différentes en entrée et en sortie, ce qui était difficile pour les architectures antérieures.
Évolution de l'architecture
Premiers modèles basés sur RNN/LSTM
Initialement, l'architecture encodeur-décodeur a été mise en œuvre à l'aide de réseaux de neurones récurrents (RNN) ou de leur variante améliorée, les LSTM.
- Encodeur : Un encodeur RNN traitait la séquence d'entrée token par token et produisait un unique vecteur de contexte — l'état caché après le traitement du dernier token, qui devait contenir les informations de toute la séquence.
- Décodeur : Un décodeur RNN était initialisé avec ce vecteur de contexte et générait la séquence de sortie de manière autorégressive.
Le principal inconvénient de cette approche était le problème du « goulot d'étranglement » : toutes les informations de la séquence d'entrée devaient être compressées dans un seul vecteur de longueur fixe, ce qui entraînait une perte d'information, en particulier pour les séquences longues.
Introduction du mécanisme d'attention
Une avancée majeure a été l'introduction du mécanisme d'attention (attention mechanism) (Bahdanau et al., 2014).
- Principe de fonctionnement : Au lieu de se fier à un seul vecteur de contexte, le décodeur, à chaque étape de la génération, « prête attention » à tous les états cachés de l'encodeur. Il calcule des poids d'attention qui indiquent quelles parties de la séquence d'entrée sont les plus pertinentes pour générer le token de sortie actuel.
- Avantages : Cela a résolu le problème du « goulot d'étranglement » et a permis au modèle de travailler efficacement avec de longues séquences, améliorant considérablement la qualité, notamment en traduction automatique.
Architecture Transformer
En 2017, l'article « Attention Is All You Need » a présenté l'architecture Transformer, qui a complètement abandonné la récurrence au profit du mécanisme d'attention.
- Encodeur du Transformer : Il est composé d'une pile de couches, chacune utilisant l'auto-attention (self-attention) pour créer des représentations contextualisées pour chaque token d'entrée.
- Décodeur du Transformer : Il est composé d'une pile de couches, chacune ayant deux types de mécanismes d'attention :
- Auto-attention masquée : Pour traiter la partie déjà générée de la séquence de sortie.
- Attention croisée (Cross-Attention) : Pour « prêter attention » aux représentations de sortie de l'encodeur.
Cette architecture est devenue la norme pour les tâches seq2seq grâce à ses hautes performances et à sa capacité de parallélisation des calculs.
Application
L'architecture encodeur-décodeur est la norme pour un large éventail de tâches :
- Traduction automatique : Conversion d'une phrase d'une langue à une autre.
- Résumé automatique de texte : Création d'un résumé concis d'un long document.
- Systèmes de dialogue : Génération d'une réponse à une intervention de l'utilisateur.
- Génération de légendes d'images (Image Captioning) : L'encodeur (souvent basé sur un réseau de neurones convolutif) traite l'image, et le décodeur (souvent un RNN ou un Transformer) génère sa description textuelle.
- Reconnaissance vocale : Conversion d'un signal audio en transcription textuelle.
Principaux modèles
- Le Transformer original (Vaswani et al., 2017) : Le modèle qui a introduit cette architecture.
- BART (Bidirectional and Auto-Regressive Transformers) : Un modèle de Facebook, pré-entraîné sur une tâche de reconstruction de texte « corrompu ». L'encodeur est bidirectionnel (comme dans BERT), et le décodeur est autorégressif (comme dans GPT).
- T5 (Text-to-Text Transfer Transformer) : Un modèle de Google qui unifie toutes les tâches de NLP en les présentant comme un problème de transformation de texte en texte. T5 a montré des résultats exceptionnels sur de nombreux benchmarks.
Comparaison avec d'autres architectures
| Architecture | Tâche principale | Composants | Modèles typiques |
|---|---|---|---|
| Encodeur-décodeur | Transformation de séquence en séquence | Encodeur + Décodeur | T5, BART, Transformer original |
| Encodeur seul | Compréhension de texte | Encodeur seul | BERT, RoBERTa |
| Décodeur seul | Génération de texte | Décodeur seul |
Références
- Bahdanau, D. et al. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
- Sutskever, I. et al. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
- Luong, M.-T. et al. (2015). Effective Approaches to Attention-based Neural Machine Translation. arXiv:1508.04025.
- Wu, Y. et al. (2016). Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv:1609.08144.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Britz, D. et al. (2017). Massive Exploration of Neural Machine Translation Architectures. arXiv:1703.03906.
- Lewis, M. et al. (2020). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation. arXiv:1910.13461.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Dong, L. et al. (2019). Unified Language Model Pre-training for Natural Language Understanding and Generation. arXiv:1905.03197.
- Zhang, J. et al. (2020). PEGASUS: Pre-training with Extracted Gap-Sentences for Abstractive Summarization. arXiv:1912.08777.