Qu’est-ce qu’un mécanisme d’attention ?

Auteurs

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Qu’est-ce qu’un mécanisme d’attention ?

Un mécanisme d’attention est une technique de machine learning qui aide les modèles d’apprentissage profond à prioriser (ou traiter) les parties les plus pertinentes des données d’entrée. L’innovation en matière de mécanismes d’attention a permis l’architecture transformatrice à l’origine des grands modèles de langage (LLM) modernes, qui alimentent des applications connues comme ChatGPT.

Comme leur nom l’indique, les mécanismes d’attention s’inspirent de l’aptitude des humains (et d’autres animaux) à accorder sélectivement plus d’attention aux détails saillants et à ignorer ceux qui sont moins importants sur le moment. Le fait d’avoir accès à toutes les informations, mais de se concentrer uniquement sur les plus utiles, permet d’éviter de perdre des détails importants et d’utiliser efficacement une mémoire et un temps limités.

D’un point de vue mathématique, un mécanisme d’attention calcule des pondérations d’attention qui reflètent l’importance relative de chaque partie d’une séquence d’entrée pour la tâche à accomplir. Il applique ensuite ces pondérations d’attention pour augmenter (ou diminuer) l’influence de chaque partie de l’entrée, en fonction de son importance respective. Un modèle d’attention, c’est-à-dire un modèle d’intelligence artificielle qui utilise un mécanisme d’attention, est entraîné à attribuer des pondérations d’attention précis par apprentissage supervisé ou auto-supervisé sur un grand jeu de données d’exemples.

Les mécanismes d’attention ont été initialement introduits par Bahdanau et al. en 2014 comme une technique pour combler les lacunes des modèles de réseaux neuronaux récurrents (RNN) de pointe utilisés pour la traduction automatique. Des recherches ultérieures ont intégré des mécanismes d’attention dans les réseaux neuronaux convolutifs (CNN) utilisés pour des tâches telles que le sous-titrage d’images et la réponse visuelle aux questions.

En 2017, l’article fondateur « Attention is All You Need » (L’attention est tout ce dont vous avez besoin) a présenté le modèle de transformeur, qui abandonne la récurrence et les convolutions pour ne garder que les couches d’attention et les couches de propagation avant standard. Depuis, l’architecture transformatrice est devenue l’épine dorsale des modèles de pointe alimentant l’ère de l’IA générative.

Alors que les mécanismes d’attention sont principalement associés aux LLM utilisés pour les tâches de traitement automatique du langage naturel (NLP), telles que la synthèse, la réponse aux questions, la génération de texte et l’analyse des sentiments, les modèles basés sur l’attention sont également largement utilisés dans d’autres domaines. Les principaux modèles de diffusion utilisés pour la génération d’images intègrent souvent un mécanisme d’attention. Dans le domaine de la vision par ordinateur, les transformeurs de vision (ViT) ont obtenu des résultats supérieurs dans des tâches telles que la détection d’objets1, la segmentation d’images2 et la réponse à des questions visuelles.3

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.

Pourquoi les mécanismes d’attention sont-ils importants ?

Les modèles de transformeur et les mécanismes d’attention qui les alimentent ont obtenu d’excellents résultats dans presque tous les sous-domaines de l’apprentissage profond. La nature des mécanismes d’attention leur confère des avantages significatifs par rapport aux mécanismes de convolution utilisés dans les réseaux neuronaux convolutifs (CNN) et aux boucles récurrentes employées dans les réseaux neuronaux récurrents (RNN).

  • Flexibilité dans le temps : la façon dont les RNN traitent les données séquentielles est intrinsèquement sérialisée, c’est-à-dire qu’ils traitent chaque étape temporelle d’une séquence individuellement dans un ordre spécifique. Il est donc difficile pour un RNN de discerner des corrélations (appelées dépendances dans le jargon de la science des données) qui sont séparées par de nombreuses étapes. Les mécanismes d’attention, en revanche, peuvent examiner une séquence entière simultanément et prendre des décisions quant à l’ordre dans lequel se concentrer sur des étapes spécifiques.

  • Flexibilité dans l’espace : les CNN sont intrinsèquement locaux, utilisant des convolutions pour traiter de plus petits sous-ensembles de données d’entrée, un morceau à la fois. Il est donc difficile pour un CNN de discerner des dépendances éloignées les unes des autres, telles que les corrélations entre des mots (dans un texte) ou des pixels (dans des images) qui ne sont pas voisins. Les mécanismes d’attention n’ont pas cette limitation, car ils traitent les données d’une manière totalement différente.

  • Parallélisation : de par la nature des mécanismes d’attention, de nombreuses étapes de calcul sont effectuées en même temps, et non de manière sérialisée. Cela permet un degré élevé de calcul parallèle, en tirant parti de la puissance et de la vitesse offertes par les GPU.

Pour comprendre comment fonctionnent les mécanismes d’attention dans l’apprentissage profond et pourquoi ils ont contribué à révolutionner l’IA générative, il est utile de comprendre pourquoi l’attention a été introduite pour la première fois : afin d’améliorer les modèles Seq2Seq fondés sur les RNN utilisés pour la traduction automatique.
 

Comment Seq2Seq fonctionne sans mécanismes d’attention

Les RNN sont des réseaux neuronaux dont les boucles récurrentes fournissent un équivalent de « mémoire », ce qui leur permet de traiter des données séquentielles. Ces RNN prennent en charge une séquence ordonnée de vecteurs d’entrée et les traitent par intervalles temporels. Après chaque intervalle temporel, l’état réseau en résultant, appelé état caché, est renvoyé à la boucle avec le vecteur d’entrée suivant.

Très vite, les RNN ont eu du mal à faire disparaître ou à faire exploser les gradients lors de l’entraînement. Cela rendait les RNN peu pratiques pour de nombreuses tâches NLP, car cela limitait considérablement la longueur des phrases d’entrée qu’ils pouvaient traiter.4 Ces limitations ont été quelque peu atténuées par une architecture RNN améliorée appelée réseaux de mémoire longue à court terme (LSTM), qui ajoutent des mécanismes de contrôle pour préserver la mémoire à « long terme ».

Avant l’introduction de l’attention, le modèle Seq2Seq était le modèle de pointe en matière de traduction automatique. Seq2Seq utilise deux LSTM dans une architecture encodeur-décodeur.

  • Le premier LSTM, l’encodeur, traite la phrase source étape par étape, puis produit l’état masqué de l’intervalle temporel final. Cette sortie, le vecteur de contexte, encode la phrase entière sous forme de plongement vectoriel unique. Pour permettre à Seq2Seq de gérer de manière flexible des phrases avec un nombre variable de mots, le vecteur de contexte est toujours de la même longueur.

  • Le deuxième LSTM, le décodeur, utilise le plongement vectoriel produit par l’encodeur comme entrée initiale et le décode, mot par mot, dans une deuxième langue.

L’encodage des séquences d’entrée dans un nombre fixe de dimensions a permis à Seq2Seq de traiter des séquences de longueur variable, mais a également introduit d’importants défauts :

  • Il représente des séquences longues ou complexes avec le même niveau de détail que des phrases plus courtes et plus simples. Cela provoque un goulot d’étranglement de l’information pour les séquences plus longues et gaspille des ressources pour les séquences plus courtes.
  • Ce vecteur représente uniquement l’état caché final du réseau encodeur. En théorie, chaque état caché ultérieur devrait contenir des informations fournies par l’état caché précédent, qui lui-même contient des informations provenant de l’intervalle de temps précédent, et ainsi de suite, jusqu’à la première étape. En pratique, le vecteur de contexte « oublie » inévitablement des informations provenant des premiers intervalles de temps, ce qui entrave les performances du modèle sur des séquences plus longues.
     

Comment les mécanismes d’attention ont amélioré Seq2Seq

Bahdanau et al. ont proposé un mécanisme d’attention dans leur article de 2014 intitulé « Neural Machine Translation by Jointly Learning to Align and Translate » (Traduction automatique neuronale par l’apprentissage conjoint de l’alignement et de la traduction), en vue d’améliorer la communication entre l’encodeur et le décodeur et de supprimer ce goulot d’étranglement de l’information.

Au lieu de transmettre uniquement l’état caché final de l’encodeur (le vecteur de contexte) au décodeur, son modèle a transmis chaque état caché de l’encodeur au décodeur. Le mécanisme d’attention lui-même a été utilisé pour déterminer quel état caché, c’est-à-dire quel mot dans la phrase originale, était le plus pertinent à chaque étape de traduction effectuée par le décodeur.

« Cela évite au modèle d’avoir à encoder une phrase source entière dans un vecteur de longueur fixe et lui permet également de se concentrer uniquement sur les informations utiles pour la génération du mot cible suivant », selon l’article. « Cela a un impact positif majeur sur la capacité du système de traduction automatique neuronale à donner de bons résultats sur des phrases plus longues. »5

Les recherches ultérieures en matière de traitement automatique du langage naturel (NLP) ont été principalement axées sur l’amélioration des performances et l’extension des cas d’utilisation de mécanismes d’attention dans les modèles récurrents. L’invention en 2017 des modèles de transformation, alimentés uniquement par l’attention, a finalement rendu les RNN presque obsolètes pour le NLP.

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.

Comment fonctionnent les mécanismes de l’attention ?

L’objectif principal d’un mécanisme d’attention est de déterminer l’importance relative des différentes parties de la séquence d’entrée, puis d’inciter le modèle à prêter attention aux parties importantes et à ignorer les autres.

Bien qu’il existe de nombreuses variantes et catégories de mécanismes d’attention, chacune adaptée à différents cas d’utilisation et priorités, tous les mécanismes d’attention comportent trois processus principaux :

  1.  Un processus de « lecture » de séquences de données brutes et de conversion en plongements vectoriels, dans lesquelles chaque élément de la séquence est représenté par son propre ou ses propres vecteurs de caractéristiques.

  2. Un processus consistant à déterminer avec précision les similitudes, les corrélations et autres dépendances (ou leur absence) entre chaque vecteur, quantifiées sous forme de scores d’alignement (ou scores d’attention) qui reflètent le degré d’alignement (ou de non-alignement) des vecteurs. Les scores d’alignement sont ensuite utilisés pour calculer les poids d’attention à l’ aide d’une fonction softmax, qui normalise toutes les valeurs dans une fourchette comprise entre 0 et 1, de sorte que leur somme soit égale à 1. Ainsi, par exemple, l’attribution d’une pondération d’attention de 0 à un élément signifie qu’il doit être ignoré. Un poids d’attention de 1 signifie que cet élément doit recevoir 100 % d’attention, car tous les autres éléments ont un poids d’attention de 0 (la somme de tous les poids devant être égale à 1). Par essence, la sortie d’une fonction softmax est une distribution de probabilité.

  3. Un processus d’utilisation de ces pondérations pour accentuer ou minimiser l’influence d’éléments d’entrée spécifiques sur la façon dont le modèle fait des prédictions. En d’autres termes, un moyen d’utiliser des pondérations d’attention pour aider les modèles à se concentrer sur des informations ou à les ignorer.

Requêtes, clés et valeurs

L’article fondateur « Attention is All You Need » a formulé son mécanisme d’attention en utilisant la terminologie d’une base de données relationnelle : requêtes, clés et valeurs. Les bases de données relationnelles sont conçues pour simplifier le stockage et la récupération des données pertinentes : elles attribuent un identifiant unique (une « clé ») à chaque élément de donnée et chaque clé est associée à une valeur correspondante. En NLP, la « base de données » d’un modèle est le vocabulaire des tokens qu’il a appris grâce à son jeu de données d’entraînement.

En raison de l’influence massive de l’article « Attention is All You Need », même les mécanismes d’attention antérieurs sont souvent décrits rétroactivement en ces termes. D’une manière générale, cette conception de l’attention implique une interaction entre trois types de représentations vectorielles pour chaque token d’une séquence :

  • Le vecteur de requête représente les informations recherchées par un token donné.

  • Le vecteur de clé représente les informations que chaque token contient. L’alignement entre la requête et la clé est utilisé pour calculer les pondérations d’attention.

  • La valeur (ou vecteur de valeur) applique les informations pondérées par l’attention des vecteurs de clé. Les contributions provenant des clés qui sont fortement alignées sur une requête sont pondérées plus fortement ; les contributions des clés qui ne sont pas pertinentes pour une requête sont pondérées selon une valeur proche de zéro.

Les variantes spécifiques des mécanismes d’attention se différencient principalement par la façon dont les vecteurs sont encodés, dont les scores d’alignement sont calculés et dont les poids d’attention sont appliqués pour fournir les informations utiles au modèle.
 

Attention additive

Le mécanisme d’attention de Badhanau a été conçu spécifiquement pour la traduction automatique. Il utilise un RNN bidirectionnel pour encoder chaque token d’entrée, en traitant la séquence d’entrée dans le sens avant et dans le sens inverse et en concentrant les résultats entre eux. Cette approche est particulièrement utile lorsque, par exemple, les langues originales et traduites ont des conventions d’ordre différentes pour les noms et les adjectifs.

Ici, l’état caché du décodeur à chaque étape temporelle de la phrase traduite est l’équivalent d’un vecteur de requête et l’état caché de l’encodeur à chaque étape de la phrase source est l’équivalent d’un vecteur de clé.

Les scores d’alignement sont ensuite déterminés par un simple réseau neuronal à propagation avant, la couche d’attention, entraînée conjointement avec le reste du modèle. Cette couche d’attention comprend jusqu’à trois sous-ensembles de poids de modèle apprenables : les poids de requête pour les états cachés du décodeur (« Wq »), les poids de clé pour les états cachés de l’encodeur (« Wk ») et les poids de valeur pour dimensionner la production finale (« wv »). Ces poids constituent la « connaissance » du modèle : en ajustant les valeurs spécifiques de ces poids pendant l’entraînement pour minimiser une fonction de perte, le modèle apprend à effectuer des traductions précises.

À chaque étape, l’attention additive fonctionne comme suit :

  • Le vecteur de requête (multiplié par Wq) est ajouté à un vecteur de clé (multiplié par Wk). S’ils sont alignés, leur addition produit une valeur élevée. S’ils ne sont pas pertinents les uns par rapport aux autres, leur addition produit une valeur faible ou négative.

  • Le nombre résultant est entré dans une fonction d’activation tanh , qui cartographie toutes les entrées avec un nombre compris entre − 1 et 1.
  • La sortie de la fonction tanh est ensuite multipliée par les pondérations des valeurs wv. Cela donne le score d’alignement entre le vecteur de requête et ce vecteur de clé.
  • Le score d’alignement est ensuite entré dans une fonction softmax, qui génère un poids d’attention pour ce vecteur de clé.

Le vecteur de contexte utilisé par le décodeur pour générer la phrase traduite est calculé comme la somme pondérée par l’attention de chaque vecteur de clé. L’un des avantages de l’attention additive est qu’elle n’exige pas que les vecteurs de requête et de clés aient la même longueur.

Attention par produit scalaire

En 2015, Luong et al. ont introduit plusieurs méthodologies innovantes pour simplifier et améliorer le mécanisme d’attention de Badhanau pour la traduction automatique. Leur contribution la plus notable est sans doute une nouvelle fonction de score d’alignement utilisant la multiplication au lieu de l’addition. Elle a aussi esquivé la fonction tanh en calculant la similarité entre les vecteurs d’état cachés grâce à l’utilisation de leur produit scalaire. C’est pourquoi ce mécanisme est souvent appelé attention par produit scalaire ou attention multiplicative.

L’intuition soutenant l’utilisation du produit scalaire pour comparer les vecteurs de requête est à la fois mathématique et pragmatique :

  • Si les vecteurs Qet  K sont alignés, c’est-à-dire si une requête et une clé ont une signification similaire, leur multiplication donnera une grande valeur. Après softmax, cette grande valeur se traduit par un poids d’attention important pour cette clé. S’ils ne sont pas bien alignés, leur produit scalaire sera petit ou négatif, et la fonction softmax en découlant se traduira par un faible poids d’attention.

  • En pratique, la multiplication est beaucoup plus rapide et plus efficace en termes de calcul pour les réseaux neuronaux que les opérations additives, car elle peut être mise en œuvre en moins d’étapes en utilisant la multiplication matricielle.6

L’une des conséquences de l’utilisation de l’attention par produit scalaire est que les calculs de produits scalaires exigent que les deux vecteurs aient le même nombre de dimensions, dk .

Alors que l’attention additive calcule le vecteur de contexte en tant que somme pondérée des vecteurs de clé, l’attention par produit scalaire calcule le vecteur de contexte en tant que moyenne pondérée des vecteurs de clé.
 

Attention par produit scalaire dimensionné

Les auteurs de « Attention is All You Need » ont remarqué que si l’attention par produit scalaire est plus rapide et plus efficace sur le plan informatique que l’attention additive, cette dernière surpasse l’attention traditionnelle pour les vecteurs plus longs.

Ils ont émis l’hypothèse que lorsque dk est très grand, les produits scalaires en résultant sont également très grands. Lorsque la fonction softmax ramène toutes ces très grandes valeurs entre 0 et 1, la rétropropagation produit des gradients extrêmement petits qu’il est difficile d’optimiser. L’expérimentation a montré que le dimensionnement du produit scalaire de deux vecteurs de longueur dk par  1dk avant la normalisation softmax permet d’obtenir des gradients plus grands et donc un apprentissage plus fluide.

La fonction d’attention par produit scalaire dimensionné utilisée dans les modèles de transformation s’écrit Attention(Q,K,V)=softmax(QKTdk)V .

 

Auto-attention

Les premiers types de mécanismes d’attention réalisaient tous ce que l’on appelle aujourd’hui l’attention croisée. Dans l’attention croisée, les requêtes et les clés proviennent de différentes sources de données. Par exemple, dans les tâches de traduction automatique, les clés proviennent d’un corpus de textes dans une langue et les requêtes d’une autre langue ; dans les tâches de reconnaissance vocale, les requêtes sont des données audio et les clés des données textuelles permettant de transcrire ces données audio.

Dans l’ auto-attention, les requêtes, les clés et les valeurs sont toutes tirées de la même source. Alors que les mécanismes d’attention Bahdanau et Luong étaient tous deux explicitement conçus pour la traduction automatique, Cheng et al.ont proposé l’ auto-attention(qu’ils ont appelée « intra-attention ») comme méthode pour améliorer la lecture automatique en général. Décrit dans un article de 2016, leur mécanisme d’attention a exploré non pas la façon dont les éléments d’entrée contribuent à une séquence globale, mais la façon dont les différents tokens d’entrée sont reliés les uns aux autres.

Considérons un modèle linguistique qui interprète le texte anglais
« Vendredi, le juge a prononcé une sentence. »

  • Le mot précédent the  suggère que judge  est un nom, au sens de magistrat(e) chargé(e) de rendre la justice, et non un verbe signifiant prendre nettement position sur (une question).
  • Ce contexte du mot judge  suggère que sentence  fait probablement référence à une décision juridique, plutôt qu’à une « phrase » grammaticale.
  • Le mot issued implique en outre que « sentence » fait référence au concept juridique, et non au concept grammatical.

  • Par conséquent, lors de l’interprétation du mot sentence , le modèle doit accorder une attention particulière à judge etissued . Il doit également prêter attention au mot the . Il peut plus ou moins ignorer les autres mots. Un mécanisme d’auto-attention bien entraîné calculerait les poids d’attention en conséquence.

L’article de Cheng et al. s’est concentré uniquement sur la capacité de l’auto-attention à lire et à comprendre du texte, mais il a rapidement été constaté que la modélisation des relations intra-séquence pouvait également être un outil puissant pour la rédaction de texte. Le développement de l’auto-attention, ainsi que les modèles de transformeurs qu’elle a activés, ont conduit directement à l’avènement de l’IA générative moderne et des LLM autorégressifs, qui peuvent générer des textes originaux.
 

Auto-attention et traduction automatique

Les LLM autorégressifs peuvent également effectuer une traduction automatique en utilisant l’auto-attention, mais doivent aborder la tâche différemment. Alors qu’avec l’attention croisée, la phrase source originale et la phrase traduite sont traitées comme deux séquences distinctes, dans le cas de l’auto-attention, le texte original et le texte traduit son traités comme une seule séquence.

Pour qu’un LLM autorégressif, basé sur l’auto-attention, soit capable de traduire du texte, tous les mots que le modèle rencontre lors de la formation, dans toutes les langues, sont appris dans le cadre d’un grand vocabulaire multilingue. Le modèle se rend simplement compte que lorsqu’une séquence contient des instructions telles que « traduire [mots de la première langue] dans la deuxième langue », les mots suivants de la séquence doivent être des tokens de la deuxième langue.

En substance, un LLM autorégressif ne comprend pas nécessairement qu’il existe différents langages. Il comprend simplement comment certains groupes de tokens (dans ce cas, les tokens correspondant à des mots de la même langue) se complètent les uns les autres. Cette compréhension contextuelle est encore renforcée par des techniques telles que le réglage des instructions.

Attention dans les modèles de transformeurs

L’article « Attention is All You Need » de Viswani et al. s’est inspiré de l’auto-attention pour introduire une nouvelle architecture de réseau neuronal : le transformeur.Leur modèle de transformeur esquivait complètement les convolutions et la récurrence, et n’utilisait que des couches d’attention et des couches linéaires standard.

Le modèle des auteurs suivait une structure d’encodeur-décodeur similaire à celle de ses prédécesseurs basés sur le RNN. Les modèles basés sur les transformeurs se sont ensuite éloignés de ce cadre des exigences. L’un des premiers modèles de référence publiés à la suite de l’article sur les transformeurs, le langage BERT (Bidirectional Encoder Representations from Transformers), est un modèle encodeur uniquement. Les LLM autorégressifs qui ont révolutionné la génération de texte, tels que les modèles GPT (Generative Pretrained Transformer), sont à décodeur uniquement.

L’article « Attention is All You Need » a proposé plusieurs innovations concernant le mécanisme d’attention, notamment l’attention par produit scalaire dimensionné, pour améliorer les performances et adapter l’attention à une structure de modèle complètement nouvelle.
 

Codage positionnel

L’ordre relatif et la position des mots peuvent avoir une influence importante sur leur signification. Alors que les RNN préservent intrinsèquement les informations sur la position de chaque token en calculant les états cachés de manière séquentielle, un mot après l’autre, les modèles de transformeur doivent encoder explicitement les informations de position.

Avec l’encodage positionnel, le modèle ajoute un vecteur de valeurs au plongement de chaque token, dérivé de sa position relative, avant que l’entrée n’entre dans le mécanisme d’attention. Ce vecteur positionnel comporte généralement beaucoup moins de dimensions que le plongement du token lui-même, de sorte que seul un petit sous-ensemble du plongement du token recevra les informations positionnelles. Le calcul est un peu complexe, mais la logique est simple :

  • Plus deux tokens sont proches, plus leurs vecteurs de position seront similaires.

  • Plus leurs vecteurs de position respectifs sont similaires, plus la similitude entre leurs plongements de token respectifs augmentera après l’ajout de ces vecteurs de position.

  • Plus leurs plongements mis à jour en matière de position sont similaires, plus leur score d’alignement sera élevé, ce qui se traduira par un poids d’attention plus important entre ces deux tokens. Le modèle apprend ainsi à prêter plus d’auto-attention aux tokens qui se trouvent à proximité.

Viswani et al. ont conçu un algorithme simple qui utilise une fonction sinus pour les tokens dans des positions paires et cosinus pour les tokens dans des positions impaires. Les algorithmes plus récents, tels que l’encodage rotatif positionnel (RoPE), ont amélioré la capacité d’encoder efficacement des informations de position pour de très longues séquences, ce qui, à leur tour, a contribué à créer des LLM avec des fenêtres de contexte plus grandes.
 

Mécanisme d’auto-attention dans les modèles transformers

Une fois que chaque plongement de token a été mis à jour avec des informations de position, chacun est utilisé pour générer trois nouveaux vecteurs en transmettant le plongement de token d’origine à travers chacune des trois couches de réseaux neuronaux parallèles (à propagation avant) qui précèdent la première couche d’attention. Chaque couche parallèle possède une matrice unique de pondérations dont les valeurs spécifiques sont apprises grâce à un pré-entraînement autosupervisé sur un jeu de données massif.

  • Le plongement est multiplié par la matrice de poids WQ pour obtenir le vecteur de requête (Q), avec les dimensions dk dimensions

  • Le plongement est multiplié par la matrice de poids WK pour obtenir le vecteur de clé (K), avec les dimensions dk 

  • Le plongement est multiplié par la matrice de poids WV pour obtenir le vecteur de valeur ( V), avec les dimensions dv
Schéma du mécanisme d’attention d’un modèle de transformeur Schéma simplifié du mécanisme d’attention du transformateur : les plongements vectoriels originaux des tokens d’une phrase d’entrée sont multipliés par les matrices de poids W, K et V pour obtenir leurs vecteurs W, K et V respectifs.

La fonction principale du mécanisme d’attention est de pondérer l’importance des paires requête-clé entre chaque token. Pour chaque token x dans une séquence d’entrée, le modèle de transformeur calcule (et applique ensuite) les poids d’attention suivants :

  1. Le vecteur de requête du token x Qx est multiplié par le vecteur de clé K. Le produit scalaire ainsi obtenu sera grand pour un token très pertinent, et petit ou négatif pour un token non pertinent.

  2. Chaque produit scalaire sera mis à l’échelle, c’est-à-dire multiplié, par 1dk. Le résultat est le score d’alignement entre le token x et chaque autre token.
  3. Ces scores d’alignement sont entrées dans une fonction softmax, qui normalise chaque score en une valeur comprise entre 0 et 1, de sorte qu’ils totalisent tous 1. Il s’agit des poids d’attention entre le token x et chaque autre token. Vous pouvez considérer chaque token comme ayant un vecteur de poids d’attention correspondant, dans lequel chaque élément de ce vecteur représente dans quelle mesure un autre token devrait l’influencer.
  4. Le vecteur de valeur de chaque autre token est maintenant multiplié par son poids d’attention correspondant.
  5. La moyenne de tous ces vecteurs de valeur pondérés par l’attention est calculée. Le vecteur obtenu représente la moyenne de toutes les contributions pondérées par l’attention de chaque vecteur clé.

  6. Enfin, le vecteur de changement résultant pour chaque token est ajouté au plongement vectoriel originale du token x. Fondamentalement, le plongement vectoriel du token x a été mise à jour pour mieux refléter le contexte fourni par les autres tokens de la séquence.

Attention multi-tête

Il est mathématiquement efficace de calculer la moyenne des contributions pondérées par l’attention des autres tokens au lieu de tenir compte de chaque contribution individuellement, mais cela entraîne une perte de détails. L’architecture transformatrice résout ce problème en mettant en œuvre l’attention multitête.

Pour profiter de l’efficacité du calcul de la moyenne tout en tenant compte des relations multiples entre les tokens, les modèles de transformeur calculent les opérations d’auto-attention plusieurs fois en parallèle à chaque couche d’attention du réseau. Chaque plongement de token d’entrée d’origine est divisé en h sous-ensembles de taille égale. Chaque élément du plongement est introduit dans l’une des h matrices parallèles des poids Q, K et V , chacune étant respectivement appelée tête de requête, tête de clé ou tête de valeur. Les vecteurs produits par chacun de ces triplets parallèles de têtes de requête, clé et valeur sont ensuite introduits dans une tête d’attention correspondante.

Schéma de l’attention multi-tête Le fameux diagramme simplifié d’attention multi-tête de l’article « Attention is All You Need »

Dans les couches finales de chaque bloc d’attention, les productions de ces h circuits parallèles sont finalement concaténées. En pratique, l’entraînement des modèles permet à chaque circuit d’apprendre des poids différents qui capturent un aspect distinct des significations sémantiques. Cela, à son tour, permet au modèle de traiter différentes façons dont le contexte des autres mots peut influencer la signification d’un mot. Par exemple, une tête d’attention peut se spécialiser dans les changements de temps, tandis qu’une autre se spécialise dans la façon dont les mots à proximité influencent le ton.

Concaténation dans l’attention multitête Les résultats « Z » de chaque tête d’attention sont concaténés. Dans cet exemple, h = 8.

Le circuit complet de la multiplication matricielle dans le bloc d’attention d’un transformeur standard est démontré ici. Il convient de noter que les évolutions ultérieures du mécanisme d’attention du transformeur, telles que l’attention multirequête et l’attention par requêtes groupées, simplifient ou combinent certains éléments du processus afin de réduire les exigences de calcul.

Diagramme de bloc d’attention multi-tête Schéma simplifié de toutes les multiplications de matrices dans un bloc d’attention multi-tête (h = 8), tiré de « The Illustrated Transformer » par Jay Alammar. Notez qu’ici, « + » représente une concaténation, et non une addition.

Générer des sorties

Dans les quelques couches finales des modèles de transformeur, les têtes d’attention sont souvent entraînées pour faire des prédictions spécifiques. Par exemple, dans la couche finale d’un LLM, l’une des têtes d’attention peut être spécialisée dans la reconnaissance d’entités nommées (Named Entity Recognition), une autre dans l’analyse des sentiments, et ainsi de suite.

Dans les LLM autorégressifs, l’avant-dernière couche est une couche linéaire qui reçoit le vecteur entièrement transformé et le projette dans une taille correspondant à celle des plongements vectoriels appris par le modèle pour chaque token dans son vocabulaire. Cela permet de calculer des scores représentant la proximité entre le vecteur résultant et chaque token dans ce vocabulaire. La dernière couche est une couche softmax, qui convertit ces scores en probabilités (sur 1) et utilise ces probabilités pour générer le mot suivant le plus probable, en fonction des mots qui le précèdent.

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

1. « Leaderboard: Object Detection on COCO test-dev », Papers With Code, consulté le 18 novembre 2024
2. « Leaderboards: Image Segmentation » Papers With Code, consulté le 18 novembre 2024
3. « Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev », Papers With Code, accessed 18 November 2024
4. « Learning long-term dependencies with gradient descent is difficult », IEE Transactions on Neural Networks 5(2): 157-66, February 1994
5. « Neural Machine Translation by Jointly Learning to Align and Translate », arXiv, 1er septembre 2014
6. « Multiplicative Attention », Papers With Code