Encoder Decoder : Définition et Exemples
Architecture de réseau de neurones composée de deux modules complémentaires : un encodeur qui compresse l'entrée en une représentation intermédiaire, et un décodeur qui génère la sortie à partir de cette représentation.
Définition complète
L'architecture Encoder-Decoder (encodeur-décodeur) est un paradigme fondamental en intelligence artificielle, particulièrement en traitement du langage naturel et en vision par ordinateur. Elle repose sur un principe simple mais puissant : décomposer une tâche complexe en deux étapes distinctes. L'encodeur lit et analyse l'entrée (un texte, une image, un signal audio) pour la condenser en une représentation vectorielle dense, souvent appelée vecteur latent ou contexte.
Le décodeur prend ensuite cette représentation compressée et génère progressivement la sortie souhaitée, élément par élément. Dans le cas de la traduction automatique par exemple, l'encodeur lit la phrase source en français et produit un vecteur qui capture son sens, puis le décodeur génère la traduction en anglais mot par mot à partir de ce vecteur.
Cette architecture a connu une évolution majeure avec l'introduction du mécanisme d'attention par Bahdanau et al. en 2014, puis du Transformer par Vaswani et al. en 2017. Le Transformer a remplacé les réseaux récurrents (RNN/LSTM) par des mécanismes d'auto-attention, permettant un traitement parallèle et une meilleure capture des dépendances à longue distance. Des modèles comme T5, BART et mBART utilisent cette architecture complète encodeur-décodeur.
Il est important de distinguer cette architecture des modèles qui n'utilisent qu'une seule de ses composantes. Les modèles comme BERT n'utilisent que l'encodeur (idéal pour la compréhension), tandis que GPT et Claude n'utilisent que le décodeur (idéal pour la génération). L'architecture complète encodeur-décodeur excelle dans les tâches de transduction, où il faut transformer une séquence en une autre séquence de nature différente.
Étymologie
Le terme combine « encoder » (du latin incodare, mettre en code) et « decoder » (décoder, extraire l'information du code). En informatique, ces termes désignent historiquement les processus de compression et décompression de données. Leur adoption en deep learning date des travaux de Cho et al. (2014) et Sutskever et al. (2014) sur la traduction neuronale séquence-à-séquence.
Exemples concrets
Traduction automatique : transformer un texte d'une langue à une autre
Traduis ce texte technique du français vers l'anglais en conservant la terminologie spécialisée : [texte]. Assure-toi que le sens et les nuances sont préservés.
Résumé de texte : condenser un document long en un résumé concis
Résume cet article de recherche en 5 points clés. Capture les contributions principales, la méthodologie et les résultats sans perdre les informations essentielles.
Génération de code à partir d'une description en langage naturel
Génère une fonction Python qui prend une liste de dictionnaires et retourne un DataFrame pandas trié par date décroissante. Ajoute la gestion des erreurs et des docstrings.
Usage pratique
En prompt engineering, comprendre l'architecture encoder-decoder aide à choisir le bon modèle pour chaque tâche. Pour des tâches de transformation (traduction, résumé, reformulation), les modèles encoder-decoder comme T5 sont souvent plus efficaces. Lorsque vous utilisez un modèle decoder-only comme Claude, structurez vos prompts pour fournir explicitement le contexte que l'encodeur aurait normalement capturé.
Concepts liés
FAQ
Quelle est la différence entre un modèle encoder-only, decoder-only et encoder-decoder ?
Pourquoi les modèles les plus récents comme GPT-4 et Claude n'utilisent-ils que le décodeur ?
L'architecture encoder-decoder est-elle encore pertinente aujourd'hui ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.