paint-brush
Transformers : L'Âge de l'Attentionpar@bhavdeepsethi
1,934 lectures
1,934 lectures

Transformers : L'Âge de l'Attention

par Bhavdeep Sethi7m2024/08/26
Read on Terminal Reader

Trop long; Pour lire

Explication simple du modèle Transformer à partir de l'article révolutionnaire « Attention is All You Need » qui est la base de nombreux modèles de pointe comme BERT et GPT.
featured image - Transformers : L'Âge de l'Attention
Bhavdeep Sethi HackerNoon profile picture
0-item



En 2017, un groupe de chercheurs (de Google et de l'Université de Toronto) a présenté une nouvelle façon de gérer les tâches de traitement du langage naturel (NLP). Leur article révolutionnaire « Attention is All You Need » présentait le modèle Transformer, une architecture qui est depuis devenue la base de nombreux systèmes d'IA avancés actuels. Les performances, l'évolutivité et la polyvalence du modèle ont conduit à son adoption généralisée, constituant l'épine dorsale de modèles de pointe tels que BERT (Bidirectionnel Encoder Representations) et GPT (Generative Pre-trained Transformers).


Avant le modèle Transformer, la plupart des modèles d’IA qui traitaient le langage s’appuyaient largement sur un type de réseau neuronal appelé réseau neuronal récurrent (RNN) ou sa version améliorée, le réseau de mémoire à long terme (LSTM). En particulier, des problèmes tels que la modélisation du langage et la traduction automatique (également appelée transduction de séquence). Ces modèles traitaient les mots dans une séquence, un par un, de gauche à droite (ou vice versa). Bien que cette approche soit logique car les mots d’une phrase dépendent souvent des mots précédents, elle présentait quelques inconvénients importants :


  • Lent à former : étant donné que les RNN et les LSTM traitent un mot à la fois, la formation de ces modèles sur de grands ensembles de données prenait du temps.
  • Difficulté avec les phrases longues : Ces modèles avaient souvent du mal à comprendre les relations entre des mots très éloignés dans une phrase.
  • Parallélisation limitée : Étant donné que les mots étaient traités de manière séquentielle, il était difficile de tirer parti du matériel informatique moderne qui s'efforce d'effectuer de nombreuses opérations à la fois (parallélisation).


L'idée clé : l'attention à l'architecture

L'idée centrale du modèle Transformer est ce que l'on appelle « l'attention ». En termes simples, l'attention aide le modèle à se concentrer sur des parties spécifiques d'une phrase lorsqu'il essaie de comprendre le sens/le contexte d'un mot. Prenons la phrase « La voiture qui était garée dans le garage est bleue ». Lorsque vous pensez au mot « bleu », vous vous concentrez naturellement sur le mot « voiture » plus tôt dans la phrase, car il vous indique ce qui est bleu. Les modèles de traduction automatique auraient du mal à déterminer si le « bleu » fait référence à la voiture ou au garage. C'est ce que fait l'auto-attention : elle aide le modèle à se concentrer sur les mots pertinents, peu importe où ils se trouvent dans la phrase.


Il faut noter que l'attention n'était pas un concept nouveau et qu'elle était déjà utilisée en tandem avec les RNN. Transformer a été le premier modèle de transduction qui s'appuyait uniquement sur l'attention, éliminant ainsi le besoin de réseaux neuronaux. Cela a donné les avantages suivants :

  • Traitement parallèle : contrairement aux RNN, qui traitent les mots les uns après les autres, le Transformer peut traiter tous les mots d'une phrase en même temps. Cela rend l'apprentissage beaucoup plus rapide.
  • Meilleure compréhension du contexte : grâce au mécanisme d'auto-attention, le Transformer peut saisir les relations entre les mots, quelle que soit leur distance dans une phrase. Cela est essentiel pour comprendre des phrases complexes.
  • Évolutivité : le modèle peut être facilement mis à l'échelle en ajoutant des couches supplémentaires, ce qui lui permet de gérer de très grands ensembles de données et des tâches complexes.


Comme vous pouvez le constater, le nouveau modèle a non seulement supprimé tous les inconvénients des réseaux neuronaux, mais a également amélioré les performances de la traduction automatique !


Étant donné que l’article original peut être un peu difficile à comprendre, voici une explication plus simple de l’architecture du modèle décrite dans l’article.

Le transformateur - Architecture du modèle


Piles d'encodeurs et de décodeurs : Le Transformer se compose d'une pile d'encodeurs (à gauche) et d'une pile de décodeurs (à droite). La pile d'encodeurs convertit la séquence d'entrée (comme une phrase) en un ensemble de représentations continues, tandis que la pile de décodeurs convertit ces représentations en une séquence de sortie (comme une traduction). Pour chaque pile, de bas en haut, voici les composants principaux du modèle expliqués avec un exemple.


  1. Traitement des phrases d'entrée dans l'encodeur

    • Entrées : le texte que vous souhaitez traduire. Par exemple : « La voiture qui était garée dans le garage est bleue. »

    • Incorporation d'entrée : convertit les mots en représentations numériques de longueur fixe (vecteurs) appelées incorporations. Ces incorporations capturent la signification sémantique des mots d'une manière que le modèle peut comprendre. Dans notre exemple :

      • "Le" -> [0,9, -0,4, 0,2, ...]

      • "voiture" -> [0.5, 0.1, -0.7, ...]

      • "cela" -> [-0.8, 0.2, 0.8, ...]

      • et de même pour chaque mot dans la phrase ci-dessus.


    • Codage positionnel : Étant donné que le modèle traite les intégrations d'entrée, qui ne sont pas ordonnées, il doit trouver un moyen de comprendre l'ordre des mots dans une phrase. Le codage positionnel ajoute ces informations sur la position de chaque mot dans la séquence à son intégration.

      • « Le » à la position 1 peut être ajusté à [0,9 + P1, -0,4 + P1, 0,2 + P1, ...], où P1 représente l'encodage positionnel pour la première position, générant ainsi une nouvelle incorporation unique pour la position P1.


    • Mécanisme d'auto-attention : comme décrit précédemment, cela permet au modèle de se concentrer sur différents mots d'une phrase en fonction du contexte. Pour chaque mot, le mécanisme d'auto-attention calcule un score qui représente le degré d'attention à accorder aux autres mots lors de l'encodage du mot actuel.

      • Pour le mot « voiture », l’auto-attention pourrait déterminer que « garé », « garage » et « bleu » sont particulièrement pertinents pour comprendre son contexte.


    • Attention multi-têtes : Nouvelle partie du modèle de transformateur. L'attention multi-têtes est simplement constituée de plusieurs couches/opérations d'auto-attention exécutées en parallèle et concaténées de manière linéaire.

      • Par exemple, une tête pourrait se concentrer sur le sujet principal (« voiture ») et ses propriétés (« bleu »), tandis qu’une autre tête pourrait se concentrer sur la proposition relative (« qui était garée dans le garage »).

      • Le module d'attention multi-têtes donne au modèle la capacité de comprendre que le « bleu » est plus pertinent pour la voiture que pour le garage.


    • Réseaux de neurones à action directe : après la couche d'auto-attention, la sortie passe par un réseau de neurones à action directe qui est appliqué à chaque position séparément et de manière identique (une fois de plus, peut être exécuté en parallèle !). Il s'agit de deux transformations linéaires avec une activation ReLU entre les deux.


    • Addition et normalisation : les connexions résiduelles (addition) permettent d'ajouter l'entrée d'une couche à sa sortie, qui est ensuite normalisée (norme). Cela permet de former des réseaux profonds en empêchant les gradients de disparaître ou d'exploser.


  2. Générer la traduction dans le décodeur

    En NLP, il est courant de désigner le début du jeton de début de séquence par le caractère spécial <SOS> et la fin de la séquence par <EOS>. Le décodeur prend l'entrée traitée de l'encodeur et génère la traduction française « La voiture qui était garée dans le garage est bleue ». Voici comment fonctionne cette partie :


    • Entrée dans le décodeur : Le décodeur commence avec la représentation codée de la phrase anglaise provenant de l'encodeur. Si vous remarquez, le décodeur prend également sa propre sortie en entrée. Comme il n'aura pas d'entrée pour le mot initial, nous insérons le jeton <SOS> au début (donc décalé vers la droite) et supprimons le dernier mot. Cette séquence décalée est ce qui est introduit dans le décodeur.


    • Auto-attention masquée : dans le décodeur, un mécanisme d'auto-attention masquée garantit que chaque mot de la séquence de sortie ne peut prêter attention qu'aux mots qui le précèdent. Cela empêche le modèle de regarder en avant et garantit qu'il génère la traduction un mot à la fois de gauche à droite.

      • Par exemple, lorsque le décodeur est sur le point de générer le mot « La » (le premier mot en français), il ne connaît que le contexte de <SOS> et non les mots futurs comme « Voiture ».


    • Réseaux neuronaux à propagation directe : le décodeur applique un autre réseau neuronal à propagation directe pour traiter davantage ces informations, en affinant la traduction étape par étape.


Dans le décodeur, après avoir traité la phrase d'entrée à travers plusieurs couches d'auto-attention masquée, d'attention encodeur-décodeur et de réseaux de feed-forward, nous obtenons une séquence de représentations continues (vecteur de flottants) pour chaque position dans la phrase cible (le français dans notre cas). Ces représentations doivent être converties en mots réels. C'est là qu'entre en jeu la couche linéaire et softmax finale.


  • Couche linéaire : Cette couche est une couche de réseau neuronal entièrement connectée qui transforme la sortie de la dernière couche de décodeur (une représentation vectorielle dense pour chaque position) en un vecteur de la taille du vocabulaire cible (tous les mots possibles de la langue française, par exemple).
  • Couche Softmax : Après la transformation linéaire, une fonction softmax est appliquée pour convertir ces logits (scores bruts) en probabilités. Ces probabilités indiquent la probabilité que chaque mot du vocabulaire cible soit le mot suivant correct dans la traduction. Cela nous permet de deviner quel mot du vocabulaire français doit être sélectionné (la cellule avec la probabilité la plus élevée).


Le décodeur fait essentiellement ceci :

  • Première étape : Le décodeur démarre par <SOS> et génère le premier mot « La ».
  • Deuxième étape : Avec l’entrée <SOS> La, le modèle prédit le mot suivant, « Voiture ».
  • Troisième étape : Le décodeur prend <SOS> La Voiture et génère le mot « quitte ».
  • Processus continu : Ce processus se poursuit, générant « était », « garée », « dans », « le », « garage », « est » et enfin « bleue ».
  • Jeton de fin de séquence : le décodeur génère finalement un jeton de fin de séquence <EOS> pour signifier que la traduction est terminée.


En combinant ces étapes, Transformer peut comprendre la structure et le sens de la phrase entière plus efficacement que les modèles précédents. Le mécanisme d'auto-attention et le traitement parallèle permettent à Transformer de capturer efficacement les nuances et la structure des langues source et cible, ce qui le rend très compétent dans des tâches telles que la traduction automatique.