![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
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 :
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 :
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.
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.
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.
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.
Le décodeur fait essentiellement ceci :
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.