talon Que sont les réseaux de neurones transformateurs ? - Unite.AI
Suivez nous sur
Classe de maître IA :

AI 101

Que sont les réseaux de neurones transformateurs ?

mm
Le kit de préparation mis à jour on

Réseaux de neurones transformateurs décrits

Transformateurs sont un type de modèle d'apprentissage automatique spécialisé dans le traitement et l'interprétation de données séquentielles, ce qui les rend optimaux pour les tâches de traitement du langage naturel. Pour mieux comprendre ce qu'est un transformateur d'apprentissage automatique et comment il fonctionne, examinons de plus près les modèles de transformateur et les mécanismes qui les pilotent.

Cet article couvrira:

  • Modèles de séquence à séquence
  • L'architecture du réseau de neurones du transformateur
  • Le mécanisme de l'attention
  • Différences entre les transformateurs et les RNN/LSTM

Modèles de séquence à séquence

Les modèles séquence à séquence sont un type de modèle PNL utilisé pour convertir des séquences d'un type en une séquence d'un autre type. Il existe différents types de modèles séquence à séquence, tels que Réseau neuronal récurrent modèles et Mémoire longue durée (LSTM) .

Les modèles séquence à séquence traditionnels tels que les RNN et les LSTMS ne sont pas au centre de cet article, mais leur compréhension est nécessaire pour apprécier le fonctionnement des modèles de transformateur et pourquoi ils sont supérieurs aux modèles séquence à séquence traditionnels.

En bref, les modèles RNN et LSTM sont constitués de réseaux de codeurs et de décodeurs qui analysent les données d'entrée à différents pas de temps. Le modèle d'encodeur est chargé de former une représentation codée des mots dans les données d'entrée. À chaque pas de temps, le réseau de codeurs prend une séquence d'entrée et un état caché du pas de temps précédent de la série. Les valeurs d'état cachées sont mises à jour au fur et à mesure que les données progressent dans le réseau, jusqu'au dernier pas de temps, 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édisant le mot le plus probable qui s'associe au mot d'entrée pour les pas de temps respectifs.

Ces modèles peuvent être complétés par l'utilisation d'un "mécanisme d'attention”. Un mécanisme d'attention définit les parties du vecteur d'entrée sur lesquelles le réseau doit se concentrer pour générer la sortie appropriée. Autrement dit, un mécanisme d'attention permet au modèle de transformateur de traiter un mot d'entrée tout en prenant en compte les informations pertinentes contenues par les autres mots d'entrée. Les mécanismes d'attention masquent également les mots qui ne contiennent pas d'informations pertinentes.

Architecture de réseau neuronal de transformateur

Nous reviendrons plus en détail sur le mécanisme d'attention plus tard, mais pour l'instant, examinons l'architecture d'un réseau neuronal de transformateur à un niveau supérieur.

En général, un réseau neuronal de transformateur ressemble à ceci :

Bien que cette structure générale puisse changer d'un réseau à l'autre, les pièces maîtresses resteront les mêmes : encodages positionnels, vecteurs de mots, mécanisme d'attention, réseau neuronal à anticipation.

Encodages positionnels et vecteurs de mots

Un transformateur de réseaux de neurones fonctionne en prenant une séquence d'entrées et en convertissant ces entrées en deux autres séquences. Le transformateur produit une séquence d'incorporations de vecteurs de mots et de codages positionnels.

Incorporations de vecteurs de mots ne sont que le texte représenté dans un format numérique que le réseau de neurones peut traiter. Pendant ce temps, les codages positionnels sont des représentations vectorisées contenant des informations sur la position du mot courant était dans la phrase d'entrée, par rapport à d'autres mots.

D'autres modèles de réseaux neuronaux basés sur du texte, tels que les RNN et les LSTM, utilisent des vecteurs pour représenter les mots dans les données d'entrée. Ces intégrations vectorielles mappent les mots à des valeurs constantes, mais cela est limitant car les mots peuvent être utilisés dans différents contextes. Un réseau de transformateurs résout ce problème en rendant les valeurs des 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 se sont déplacés à travers les couches du réseau de transformateurs.

Les codages de position et les incorporations de vecteurs de mots sont additionnés puis transmis à la fois aux réseaux de codeurs et de décodeurs. Alors que les réseaux de neurones transformateurs utilisent des schémas d'encodeur/décodeur tout comme les RNN et les LSTM, une différence majeure entre eux est que toutes les données d'entrée sont introduites dans le réseau en même temps, alors que dans les RNN/LSTM, les données sont transmises séquentiellement.

Les réseaux de codeurs sont chargés de convertir les entrées en représentations dont le réseau peut tirer des enseignements, tandis que les réseaux de décodeurs 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. Fondamentalement, les réseaux d'encodeur et de décodeur ont un mécanisme d'attention.

Étant donné que 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 de neurones à apprendre le contexte d'un mot dans une phrase, et c'est l'un des principaux avantages des réseaux de transformateurs par rapport aux RNN et aux LSTM.

Le mécanisme de l'attention

Le mécanisme d'attention est la partie la plus importante d'un réseau de transformateurs. Le mécanisme d'attention est ce qui permet aux modèles de transformateurs d'aller au-delà de la limite d'attention d'un modèle RNN ou LSTM typique. Les modèles séquence à séquence traditionnels ignorent tous les états intermédiaires et n'utilisent que le vecteur état/contexte final lors de l'initialisation du réseau de décodeurs pour générer des prédictions sur une séquence d'entrée.

Tout supprimer sauf le vecteur de contexte final fonctionne bien lorsque les séquences d'entrée sont assez petites. Cependant, à mesure que la longueur d'une séquence d'entrée augmente, les performances du modèle se dégradent lors de l'utilisation de cette méthode. En effet, il devient assez difficile de résumer une longue séquence d'entrée en un seul vecteur. La solution consiste à augmenter "l'attention" du modèle et à utiliser les états intermédiaires du codeur pour construire des vecteurs de contexte pour le décodeur.

Le mécanisme d'attention définit l'importance des autres jetons d'entrée pour le modèle lorsque des encodages sont créés pour un jeton donné. Par exemple, "ça" est un pronom général, souvent utilisé pour désigner des animaux dont le 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" fait référence à 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 : codeur vers décodeur, codeur uniquement, décodeur uniquement.

L'attention de l'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 de l'encodeur uniquement et du décodeur uniquement permettent aux réseaux de considérer respectivement toutes les parties des séquences précédentes et actuelles.

La construction d'un mécanisme d'attention peut être divisée en cinq étapes :

  1. Calcul d'un score pour tous les états de l'encodeur.
  2. Calcul des poids de l'attention
  3. Calcul des vecteurs de contexte
  4. Mise à jour du vecteur de contexte avec la sortie du pas de temps précédent
  5. Génération de sortie avec décodeur

La première étape consiste à demander au décodeur de calculer un score pour tous les états du codeur. Cela se fait en formant le réseau de décodeurs, qui est un réseau neuronal de base à réaction directe. 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éé, de sorte que le dernier état du codeur est généralement utilisé comme état précédent du décodeur.

Afin de calculer les poids d'attention, une fonction softmax est utilisée pour générer une distribution probabiliste pour les poids d'attention.

Une fois les poids d'attention calculés, le vecteur de contexte doit être calculé. Cela se fait en multipliant les poids d'attention et l'état caché ensemble pour chaque pas de temps.

Une fois le vecteur de contexte calculé, il est utilisé avec le mot généré au pas de temps précédent pour générer le mot suivant dans la séquence de sortie. Étant donné que le décodeur n'a pas de sortie précédente à laquelle se référer dans le premier pas de temps, un jeton spécial "démarrer" est souvent utilisé à la place.

Différences entre les transformateurs et les RNN/LSTM

Passons rapidement en revue certaines des différences entre les RNN et les LSTM.

Les RNN traitent les entrées de manière séquentielle, tandis qu'un vecteur d'état caché est maintenu et modifié par les mots d'entrée lorsqu'ils se déplacent dans 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 au fil du temps.

En revanche, les modèles de transformateurs traitent la totalité 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 entrée et état caché, ce qui rend le réseau plus fiable pour les longs morceaux de texte.

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 oubliées". La conception fermée traite de la perte d'informations commune aux modèles RNN. Les données sont toujours traitées de manière séquentielle et la conception récurrente de l'architecture rend les modèles LSTM difficiles à former en utilisant le calcul parallèle, ce qui allonge globalement le temps de formation.

Les ingénieurs de LSTM ajoutaient fréquemment des mécanismes d'attention au réseau, connus pour améliorer les performances du modèle. Cependant, on a finalement découvert que le mécanisme de l'attention à lui seul améliorait la précision. Cette découverte a conduit à la création de réseaux de transformateurs utilisant des mécanismes d'attention et de calcul parallèle grâce aux GPU.