Fondamentaux de l’IA
Qu’est-ce qu’un réseau de neurones Transformer ?
Les réseaux de neurones Transformer décrits
Les Transformateurs sont un type de modèle d’apprentissage automatique qui se spécialise dans le traitement et l’interprétation de données séquentielles, les rendant optimaux pour les tâches de traitement du langage naturel. Pour mieux comprendre ce qu’est un modèle de transformateur et comment il fonctionne, examinons de plus près les modèles de transformateurs et les mécanismes qui les animent.
Cet article couvrira :
- Les modèles de séquence à séquence
- L’architecture du réseau de neurones Transformer
- Le mécanisme d’attention
- Les différences entre les Transformateurs et les RNN/LSTM
Les modèles de séquence à séquence
Les modèles de séquence à séquence sont un type de modèle de traitement du langage naturel qui sont utilisés pour convertir des séquences d’un type en une séquence d’un autre type. Il existe différents types de modèles de séquence à séquence, tels que les Réseaux Neuronaux Récurents et les Mémoires à Court Terme Long (LSTM).
Les modèles de séquence à séquence traditionnels comme les RNN et les LSTM ne sont pas l’objet de cet article, mais une compréhension de ceux-ci est nécessaire pour apprécier comment les modèles de transformateurs fonctionnent et pourquoi ils sont supérieurs aux modèles de séquence à séquence traditionnels.
En bref, les modèles RNN et LSTM consistent en réseaux d’encodeurs et de décodeurs qui analysent les données d’entrée à différents pas de temps. Le réseau d’encodeur est responsable de la formation d’une représentation codée des mots dans les données d’entrée. À chaque pas de temps, le réseau d’encodeur prend une séquence d’entrée et un état caché de l’étape précédente dans la série. Les valeurs d’état caché sont mises à jour à mesure que les données traversent le réseau, jusqu’à la dernière étape, où un « vecteur de contexte » est généré. Le vecteur de contexte est ensuite transmis au réseau de décodeur, qui est utilisé pour générer une séquence cible en prédissant le mot le plus probable qui correspond au mot d’entrée pour les étapes de temps respectives.
Ces modèles peuvent être améliorés grâce à l’utilisation d’un « mécanisme d’attention ». Un mécanisme d’attention définit quelles parties du vecteur d’entrée le réseau doit se concentrer pour générer la sortie appropriée. Pour le dire autrement, un mécanisme d’attention permet au modèle de transformateur de traiter un mot d’entrée tout en tenant compte des informations pertinentes contenues dans les autres mots d’entrée. Les mécanismes d’attention masquent également les mots qui ne contiennent pas d’informations pertinentes.
L’architecture du réseau de neurones Transformer
Nous allons examiner le mécanisme d’attention plus en détail plus tard, mais pour l’instant, regardons l’architecture d’un réseau de neurones Transformer à un niveau plus élevé.
En général, un réseau de neurones Transformer ressemble à ceci :

Bien que cette structure générale puisse changer entre les réseaux, les pièces fondamentales resteront les mêmes : codages positionnels, vecteurs de mots, mécanisme d’attention, réseau neuronal feed-forward.
Codages positionnels et vecteurs de mots
Un réseau de neurones Transformer fonctionne en prenant une séquence d’entrées et en les convertissant en deux autres séquences. Le Transformer produit une séquence de vecteurs de mots et de codages positionnels.
Les vecteurs de mots ne sont que le texte représenté dans un format numérique que le réseau neuronal peut traiter. Pendant ce temps, les codages positionnels sont des représentations vectorisées contenant des informations sur la position du mot actuel dans la phrase d’entrée, par rapport aux autres mots.
D’autres modèles de réseaux neuronaux basés sur le texte, tels que les RNN et les LSTM, utilisent des vecteurs pour représenter les mots dans les données d’entrée. Ces vecteurs de mots cartographient les mots vers des valeurs constantes, mais cela est limitant car les mots peuvent être utilisés dans différents contextes. Un réseau Transformer résout ce problème en rendant les valeurs de mots plus flexibles, en utilisant des fonctions sinusoïdales pour laisser les vecteurs de mots prendre des valeurs différentes en fonction de la position du mot dans la phrase.
Cela permet au modèle de réseau neuronal de conserver les informations concernant la position relative des mots d’entrée, même après que les vecteurs aient traversé les couches du réseau Transformer.
Les codages positionnels et les vecteurs de mots sont additionnés puis transmis aux réseaux d’encodeur et de décodeur. Bien que les réseaux de neurones Transformer utilisent des schémas d’encodeur/décodeur comme les RNN et les LSTM, une grande différence entre eux est que toutes les données d’entrée sont alimentées dans le réseau en même temps, alors que dans les RNN/LSTM, les données sont transmises séquentiellement.
Les réseaux d’encodeur sont responsables de la conversion des entrées en représentations que le réseau peut apprendre, tandis que les réseaux de décodeur font le contraire et convertissent les codages en une distribution de probabilité utilisée pour générer les mots les plus probables dans la phrase de sortie. Il est essentiel que les deux réseaux d’encodeur et de décodeur aient un mécanisme d’attention.
Puisque les GPU sont capables de traitement parallèle, plusieurs mécanismes d’attention sont utilisés en parallèle, calculant les informations pertinentes pour tous les mots d’entrée. Cette capacité à prêter attention à plusieurs mots, appelée « attention multi-tête », à la fois aide le réseau neuronal à apprendre le contexte d’un mot dans une phrase, et c’est l’une des principales avantages que les réseaux Transformer ont sur les RNN et les LSTM.
Le mécanisme d’attention
Le mécanisme d’attention est la partie la plus importante d’un réseau Transformer. Le mécanisme d’attention est ce qui permet aux modèles de transformateur de dépasser la limite d’attention d’un modèle RNN ou LSTM typique. Les modèles de séquence à séquence traditionnels éliminent tous les états intermédiaires et n’utilisent que l’état final/vecteur de contexte lors de l’initialisation du réseau de décodeur pour générer des prédictions sur une séquence d’entrée.
L’élimination de tout sauf le vecteur de contexte final fonctionne correctement lorsque les séquences d’entrée sont assez petites. Cependant, à mesure que la longueur de la séquence d’entrée augmente, les performances du modèle se dégradent en utilisant cette méthode. C’est parce qu’il devient très difficile de résumer une longue séquence d’entrée en un seul vecteur. La solution est d’augmenter l’« attention » du modèle et d’utiliser les états d’encodeur intermédiaires pour construire des vecteurs de contexte pour le décodeur.
Le mécanisme d’attention définit à quel point les autres jetons d’entrée sont importants pour le modèle lors de la création de codages pour un jeton donné. Par exemple, « il » est un pronom général, souvent utilisé pour se référer aux animaux lorsque leur sexe n’est pas connu. Un mécanisme d’attention permettrait à un modèle de transformateur de déterminer que dans le contexte actuel « il » se réfère à un écureuil, car il peut examiner tous les mots pertinents dans la phrase d’entrée.
Un mécanisme d’attention peut être utilisé de trois manières différentes : encodeur-décodeur, encodeur uniquement, décodeur uniquement.
L’attention encodeur-décodeur permet au décodeur de considérer les séquences d’entrée lors de la génération d’une sortie, tandis que les mécanismes d’attention encodeur uniquement et décodeur uniquement permettent aux réseaux de considérer toutes les parties des séquences précédentes et actuelles respectivement.
La construction d’un mécanisme d’attention peut être divisée en cinq étapes :
- Calculer un score pour tous les états d’encodeur.
- Calculer les poids d’attention
- Calculer les vecteurs de contexte
- Mettre à jour le vecteur de contexte avec la sortie de l’étape de temps précédente
- Générer la sortie avec le décodeur
La première étape consiste à faire calculer au décodeur un score pour tous les états d’encodeur. Cela est réalisé en formant le réseau de décodeur, qui est un réseau neuronal feed-forward de base. Lorsque le décodeur est formé sur le premier mot de la séquence d’entrée, aucun état interne/caché n’a encore été créé, donc l’état final de l’encodeur est généralement utilisé comme état précédent du décodeur.
Pour calculer les poids d’attention, une fonction softmax est utilisée pour générer une distribution de probabilité pour les poids d’attention.
Une fois les poids d’attention calculés, le vecteur de contexte doit être calculé. Cela est réalisé en multipliant les poids d’attention et l’état caché ensemble pour chaque étape de temps.
Après que le vecteur de contexte est calculé, il est utilisé aux côtés du mot généré à l’étape de temps précédente pour générer le mot suivant dans la séquence de sortie. Puisque le décodeur n’a pas de sortie précédente à laquelle se référer à la première étape de temps, un jeton « start » spécial est souvent utilisé à la place.
Les différences entre les Transformateurs et les RNN/LSTM
Examinons rapidement certaines des différences entre les RNN et les LSTM.
Les RNN traitent les entrées séquentiellement, tandis qu’un vecteur d’état caché est maintenu et modifié par les mots d’entrée à mesure qu’ils traversent le réseau. Les états cachés d’un RNN contiennent généralement très peu d’informations pertinentes concernant les entrées précédentes. Les nouvelles entrées écrasent souvent l’état actuel, ce qui entraîne une perte d’informations et dégrade les performances avec le temps.
En revanche, les modèles de transformateur traitent l’ensemble de la séquence d’entrée en une seule fois. Le mécanisme d’attention permet à chaque mot de sortie d’être informé par chaque mot d’entrée et chaque état caché, ce qui rend le réseau plus fiable pour les longs textes.
Les LSTM sont des versions modifiées des RNN, ajustées pour gérer des séquences d’entrée plus longues. L’architecture LSTM utilise une structure appelée « portes », avec des « portes d’entrée », des « portes de sortie » et des « portes d’oubli ». La conception à portes traite de la perte d’informations courante aux modèles RNN. Les données sont toujours traitées séquentiellement, et la conception récurrente des modèles LSTM les rend difficiles à former en utilisant un calcul parallèle, ce qui rend le temps de formation plus long en général.
Les ingénieurs LSTM ajoutaient souvent des mécanismes d’attention au réseau, ce qui était connu pour améliorer les performances du modèle. Cependant, il a finalement été découvert que le mécanisme d’attention seul améliorait la précision. Cette découverte a conduit à la création de réseaux de transformateurs qui utilisaient des mécanismes d’attention et un calcul parallèle grâce aux GPU.












