Qu’est-ce qu’un modèle d’encodeur-décodeur ?

Auteurs

Jacob Murel Ph.D.

Senior Technical Content Creator

Joshua Noble

Data Scientist

L’encodeur-décodeur est un type d’architecture de réseau neuronal utilisé pour le traitement de données et la génération de données séquentielles.

Dans l’apprentissage profond, l’architecture encodeur-décodeur est un type de réseau neuronal le plus largement associé à l’architecture transformatrice et utilisé dans l’apprentissage séquence à séquence. La littérature fait donc parfois référence aux encodeurs-décodeurs comme une forme de modèle séquence à séquence (modèle seq2seq). Une grande partie des recherches sur le machine learning se concentre sur les modèles d’encodeurs-décodeurs pour les tâches de traitement automatique du langage naturel (NLP) impliquant de grands modèles de langage (LLM).

Les modèles codeurs-décodeurs sont utilisés pour gérer les données séquentielles, en mappant spécifiquement les séquences d’entrée aux séquences de sortie de différentes longueurs, telles que la traduction automatique neuronale, le résumé de texte, le sous-titrage d’image et la reconnaissance vocale. Dans de telles tâches, le mappage d’un token dans l’entrée à un token dans la production est souvent indirect. Par exemple, prenons la traduction automatique : dans certaines langues, le verbe apparaît vers le début de la phrase (comme en anglais), dans d’autres à la fin (comme l’allemand) et dans certaines, l’emplacement du verbe peut être plus variable ( par exemple, le latin). Un réseau d’encodeurs-décodeurs génère des séquences de sortie de longueur variable, mais contextuellement adaptées, qui correspondent à une séquence d’entrée donnée.1

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

L’architecture des encodeurs-décodeurs

Comme leurs noms respectifs le laissent entendre, l’encodeur encode une entrée donnée dans une représentation vectorielle, et le décodeur décode ce vecteur dans le même type de données que le jeu de données d’entrée d’origine.

L’encodeur et le décodeur sont des réseaux neuronaux distincts, entièrement connectés. Il peut s’agir de réseaux neuronaux récurrents (RNN), ainsi que de ses variantes, la mémoire à long terme (LSTM), les unités récurrentes à portes (GRU) et les réseaux neuronaux convolutifs (CNN), ainsi que de modèles de type transformers. Un modèle d’encodeur-décodeur contient généralement plusieurs encodeurs et plusieurs décodeurs.

Diagramme de l’architecture d’un encodeur-décodeur

Chaque encodeur est constitué de deux couches : la couche d’auto-attention (ou mécanisme d’auto-attention) et le réseau neuronal à propagation avant. La première couche guide l’encodeur dans l’enquête et se concentre sur d’autres mots connexes dans une entrée donnée lorsqu’elle encode un mot spécifique dans celle-ci. Le réseau neuronal à propagation avant traite les encodages afin qu’ils soient acceptables pour les couches d’encodage ou de décodage suivantes.

Le décodeur se compose également d’une couche d’auto-attention et d’un réseau neuronal à propagation avant, ainsi que d’une troisième couche supplémentaire : la couche d’attention encodeur-décodeur. Cette couche concentre l’attention du réseau sur des parties spécifiques de la sortie de l’encodeur. La couche d’attention multi-tête mappe ainsi les tokens de deux séquences différentes.2

Schéma des composants des piles d’encodeurs et de décodeurs

Fonctionnement des modèles d’encodeurs-décodeurs

La littérature présente largement les modèles d’encodeurs-décodeurs comme étant constitués de trois composants : l’encodeur, le vecteur de contexte et le décodeur.3

Encodeur

Le composant principal de l’encodeur est le mécanisme d’auto-attention. Le mécanisme d’auto-attention détermine les poids des tokens dans une entrée de texte pour refléter les relations entre tokens. Contrairement à un plongement traditionnel qui ignore l’ordre des mots, l’auto-attention traite toute la séquence de texte en entrée pour calculer le plongement moyen pondéré de chaque token, qui tient compte de la distance de ce token par rapport à tous les autres tokens dans la séquence de texte. Il calcule ce plongement moyen comme une combinaison linéaire de tous les plongements pour la séquence d’entrée selon la formule suivante :

Formule mathématique de la séquence d’entrée de l’encodeur, calculant x prime sub i égal à la somme de j égal 1 à n de w sub j i fois x sub j

Ici, xj est un token d’entrée donné à la j-e position dans la chaîne de texte d’entrée et xi est le token de production correspondant à la i-e position dans la chaîne de texte d’entrée. Le coefficient w ij est la pondération d’attention, qui est calculée à l’aide de ce que l’on appelle la fonction softmax et représente l’importance de ce token dans la production pour la séquence source correspondante. En d’autres termes, ce coefficient indique la quantité d’attention que l’encodeur doit accorder à chaque token dans le texte de production par rapport à l’importance du token d’origine dans le texte source.4

Diagramme montrant des plongements combinés à l’encodage positionnel pour créer des plongements avec un signal temporel pour trois mots : Alas, poor, Yorick

L’encodeur transmet ce plongement de token à la couche de propagation, qui ajoute un encodage positionnel (ou, plongement positionnel) au plongement de token. Cet encodage positionnel tient compte de l’ordre des tokens dans un texte, et plus précisément de la distance entre eux. Ensemble, ce plongement de token et ce plongement positionnel comprennent l’état caché transmis au décodeur.5

Vecteur de contexte

Dans la littérature, l’état caché final de l’encodeur est couramment appelé vecteur de contexte. Il s’agit d’une représentation numérique condensée du texte d’entrée initial de l’encodeur. Plus simplement, il s’agit du plongement et de l’encodage positionnels produits par l’encodeur pour chaque mot de l’entrée.

La littérature définit souvent le vecteur contextuel à l’aide de la fonction suivante, dans laquelle le vecteur contextuel X est défini comme chaque token (x) à la i- e position dans la séquence d’entrée :6

Formule de fonction vectorielle contextuelle montrant C équivaut à une séquence de valeurs x de 1 à n sous x

Décodeur

Tout comme l’encodeur, le décodeur est composé d’une couche d’auto-attention et d’un réseau à propagation avant. Entre les deux, le décodeur contient une couche de masquage d’attention multi-tête. C’est ce qui fait la différence entre l’encodeur et le décodeur. Alors que l’encodeur génère simultanément des plongements de tokens contextualisés, la couche d’attention multi-tête du décodeur utilise un masquage auto-régressif.

Tout d’abord, le décodeur reçoit le vecteur contextuel de l’encodeur. Le décodeur utilise ces représentations vectorielles positionnelles pour calculer des scores d’attention pour chaque token. Ces scores d’attention déterminent dans quelle mesure chaque token de la séquence d’entrée affectera les tokens ultérieurs ; en d’autres termes, les scores déterminent le poids de chaque token dans les déterminations des autres tokens lors de la production de séquences de production.

Une caractéristique importante de cette approche, cependant, c’est que le décodeur n’utilisera pas les tokens futurs pour déterminer les tokens précédents dans la même séquence. La production générée par chaque token dépend uniquement des tokens précédents ; en d’autres termes, lors de la génération de la production d’un token, le décodeur ne prend pas en compte les mots ou tokens suivants après le token en cours. Comme c’est le cas pour de nombreuses techniques d’intelligence artificielle, elle vise à imiter la compréhension conventionnelle de la façon dont les humains traitent les informations, en particulier le langage. Cette approche du traitement de l’information est appelée autorégressive.7

Diagramme du masquage autorégressif de la citation de Hamlet

Pourquoi utiliser des modèles d’encodeurs-décodeurs dans le NLP ?

L’un des principaux avantages des modèles d’encodeurs-décodeurs pour les tâches de NLP en aval telles que l’analyse des sentiments ou la modélisation du langage masqué est la production de plongements contextualisés. Ces plongements sont différents des plongements lexicaux fixes utilisés dans les modèles de bag of words.

Tout d’abord, les plongements fixes ne tiennent pas compte de l’ordre des mots. Ils ignorent ainsi les relations entre les tokens dans une séquence de texte. Cependant, les plongements contextualisés tiennent compte de l’ordre des mots via des encodages positionnels. En outre, les plongements contextualisés tentent de capturer la relation entre les tokens via le mécanisme d’attention qui tient compte de la distance entre les tokens dans une séquence donnée lors de la production des plongements.

Les incorporations fixes génèrent une incorporation pour un token donné, ce qui fusionne toutes les instances de ce token. Les modèles codeurs-décodeurs produisent des représentations vectorielles contextualisées pour chaque instance de token d’un token. Par conséquent, les plongements contextualisés gèrent plus efficacement les mots polysémiques, c’est-à-dire les mots ayant des significations multiples. Par exemple, avocat peut désigner un fruit ou une profession. Un plongement lexical fixe réduit les significations multiples de ce mot en créant un plongement unique pour le token ou le mot. Mais un modèle d’encodeur-décodeur génère des plongements contextualisés individuels pour chaque occurrence du mot « avocat », et capture ainsi une myriade de significations à travers plusieurs plongements distincts.8

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Types de variantes d’encodeur-décodeur

Comme on peut s’y attendre, l’architecture des encodeurs-décodeurs comporte de nombreuses variantes, chacune ayant ses propres cas d’utilisation principaux dans la science des données et le machine learning.

Encodeur uniquement.Ces modèles (également appelés auto-encodeurs) n’utilisent que la pile d’encodeurs, évitant ainsi les décodeurs. Ces modèles n’ont donc pas de modélisation masquée autorégressive et ont accès à tous les tokens dans le texte d’entrée initial. C’est pourquoi ces modèles sont dits bidirectionnels, car ils utilisent tous les jetons environnants (les tokens précédents et les tokens suivants) pour faire des prédictions pour un token donné. Les modèles d’encodeurs bien connus sont la famille de modèles BERT, comme BERT, 9 RoBERTa, 10 et ElectrA, 11, ainsi que les modèles IBM Slate. Les modèles encodeurs uniquement sont souvent utilisés pour les tâches qui nécessitent de comprendre une entrée de texte complet, comme la classification de texte ou la reconnaissance des entités nommées.

Décodeur uniquement. Ces modèles (également appelés modèles autorégressifs) utilisent uniquement la pile de décodeurs, sans aucun encodeur. Ainsi, lors des prédictions de tokens, les couches d’attention du modèle ne peuvent accéder qu’aux tokens qui précèdent le token considéré. Les modèles à décodeur uniquement sont souvent utilisés pour les tâches de génération de texte telles que la réponse aux questions, la rédaction de code ou le chatbot tel que ChatGPT. La famille de modèles de fondation IBM® Granite est un exemple de modèle à décodeur uniquement.12

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Notes de bas de page

Jurafsky, D. and Martin, J.,  “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition”, Third edition, 2023.

Telmo, P., Lopes, A. V., Assogba, Y. and Setiawan, H. “One Wide Feedforward Is All You Need” , 2023.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, AN, Kaiser, L. et Polosukhin I. « Attention Is All You Need », 2017.
Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022

3 Goodfellow, I., Bengio, Y. and Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. and Martin, J. “Speech and Language Processing”, Third Edition, 2023.
Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.

4 Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022.
Goldberg, Y. “Neural network methods for Natural Language Processing”, Springer, 2022.

5 Alammar, J. and Grootendorst, M. “Hands-on Large Language Models”, O’Reilly, 2024.

6
Goodfellow, I., Bengio, Y. and Courville, A. “Deep Learning”, MIT Press, 2016.
Jurafsky, D. and Martin, J. “Speech and Language Processing”, Third Edition, 2023.

7 Foster, D. “Generative Deep Learning”, Second Edition, O’Reilly, 2023.
Rothman, D. “Transformers for Natural Language Processing”, Second Edition, 2022. 
Jurafsky, D. and Martin, J. Speech and Language Processing”, Third Edition, 2023.

8 Tunstall, L., Werra, L. and Wolf and T. “Natural Language Processing with Transformers”, Revised Edition, O’Reilly, 2022. 

9 Devlin, J. et all. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, 2019.

10 Liu, Y., Ott, M., Goyal, N., Du, J.,  Joshi, M., Chen,  D., Levy, O., Lewis, M. ,  Zettlemoyer,  L.  and Stoyanov, V. “RoBERTa: A Robustly Optimized BERT Pretraining Approach”,  2019.

11 Clark, K. et all. “ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators”,  2020.

12 Mayank, M. et all. “Granite Code Models: A Family of Open Foundation Models for Code Intelligence” 2024.
Ruiz, A. “IBM Granite Large Language Models Whitepaper” 2024.