Qu’est-ce qu’un modèle de transformeur ?

Jeune étudiant lisant un livre

Auteurs

Cole Stryker

Staff Editor, AI Models

IBM Think

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Qu’est-ce qu’un modèle transformer ?

Le modèle dit transformer est une architecture de type réseau de neurones qui excelle dans le traitement des données séquentielles, principalement associé aux grands modèles de langage (LLM). Les modèles transformers affichent également un niveau de performance exceptionnel dans d’autres domaines de l’intelligence artificielle (IA) tels que la vision par ordinateur, la reconnaissance vocale et la prévision des séries temporelles.

L’architecture transformatrice a été décrite pour la première fois dans l’article fondateur « Attention is All You Need » publié en 2017 par Vaswani et d’autres auteurs, qui est désormais considéré comme un tournant dans le domaine de l’apprentissage profond.

Initialement présentés comme une évolution des modèles séquence à séquence basés sur les réseaux de neurones récurrents (RNN) employés pour la traduction automatique, les modèles basés sur les transformeurs ont depuis réalisé des avancées de pointe dans presque toutes les disciplines du machine learning (ML).

Malgré leur polyvalence, les modèles transformers sont principalement envisagés dans le contexte du traitement automatique du langage naturel (TAL), avec des cas d’utilisation tels que les chatbots, la génération de texte , la synthèse, les modèles de réponse aux questions et l’analyse des sentiments.

Introduit par Google en 2019, le modèle encodeur-décodeur BERT (ou Bidirectional Encoder Representations from Transformers) a marqué une étape importante dans le développement des transformeurs et reste la base de la plupart des applications modernes d’embedding de mots, des bases de données vectorielles modernes à la recherche Google.

Les LLM utilisant uniquement des décodeurs autorégressifs, comme le modèle GPT-3 (Generative Pre-trained Transformer) qui a permis le lancement de ChatGPT d’OpenAI, ont accéléré l’ère moderne de l’IA générative.

En raison de leur capacité à comprendre la manière complexe dont chaque partie d’une séquence de données influence les autres et s’y rapporte, les modèles transformers permettent également un usage multimodal.

Par exemple, les vision transformers (ViT) s’avèrent souvent plus efficaces que les réseaux de neurones convolutifs (CNN) dans des domaines tels que la segmentation d’image, la détection d’objetss et les tâches connexes. L’architecture de type transformer alimente également de nombreux modèles de diffusion utilisés pour la génération d’images, le Text to Speech multimodal et les modèles vision-langage (VLM).

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Pourquoi les modèles transformers sont-ils importants ?

La fonctionnalité centrale des modèles transformers est leur mécanisme d’auto-attention, dont ils tirent leur incroyable capacité à détecter les relations (ou dépendances) entre les différentes partie d’une entrée. Contrairement aux architectures RNN et CNN qui l’ont précédée, l’architecture de type transformer utilise uniquement des couches d’attention et des couches de propagation standard.

Les avantages de l’auto-attention, et plus particulièrement de la technique d’attention multi-têtes utilisée par les modèles de transformeur pour la calculer, permettent aux transformeurs de surpasser les performances des RNN et des CNN, jusqu’alors à la pointe de la technologie.

Avant l’introduction des modèles transformers, la plupart des tâches TAL reposaient sur des réseaux de neurones. La façon dont les RNN traitent les données séquentielles est intrinsèquement sérielle : ils ingèrent les éléments d’une séquence d’entrée l’un après l’autre, dans un ordre donné.

Cela empêche les RNN de saisir les dépendances à longue portée, ce qui signifie qu’ils ne peuvent traiter efficacement que les séquences de texte courtes.
Si cette lacune a été quelque peu comblée par les réseaux à mémoire à long terme (LSTM), elle demeure l’un des principaux inconvénients liés aux RNN.

Les mécanismes d’attention, quant à eux, examinent simultanément les séquences dans leur intégralité et décident de la manière et du moment où il convient de se concentrer sur certaines étapes de chaque séquence.

En plus d’améliorer considérablement la capacité à comprendre les dépendances à longue portée, cette qualité des transformeurs permet également la parallélisation, qui consiste à réaliser plusieurs étapes de calcul simultanément, au lieu de les sérialiser.

Bien adaptés au parallélisme, les modèles transformers tirent pleinement parti de la puissance et de la vitesse des GPU lors de l’entraînement et de l’inférence. C’est ce qui permet d’entraîner les modèles transformers sur des jeux de données d’une ampleur sans précédent grâce à l’apprentissage autosupervisé.

Les transformeurs offrent également certains avantages par rapport aux réseaux de neurones, en particulier pour les données visuelles. Intrinsèquement locaux, les CNN utilisent des convolutions pour traiter successivement les sous-ensembles de données d’entrée.

Par conséquent, les CNN peinent à discerner les dépendances à longue portée, telles que les corrélations entre les mots (dans un texte) ou les pixels (dans une image) qui ne sont pas voisins. Les mécanismes d’attention n’ont pas cette limitation.

Mixture of Experts | 28 août, épisode 70

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.

Qu’est-ce que l’auto-attention ?

Comprendre le concept mathématique d’attention, et plus précisément d’auto-attention, est essentiel pour comprendre le succès des modèles transformers dans de si nombreux domaines. Les mécanismes d’attention sont essentiellement des algorithmes conçus pour déterminer les parties d’une séquence de données auxquelles le modèle d’IA doit « prêter attention » à un moment donné.

Envisagez un modèle de langage interprétant le texte anglais « On Friday, the judge issued a sentence. "

  • Le mot précédent « le  » suggère que « « judge » (juge, juger)  » 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 » (juge, juger)  » suggère que « « sentence » (sentence, phrase)  » fait probablement référence à une décision juridique, plutôt qu’à une « phrase » grammaticale.
  • Le mot « « issued » (délivré)  » implique que « « sentence » (sentence, phrase)  » fait référence au concept juridique, et non au concept grammatical.
  • Par conséquent, lors de l’interprétation du mot « « sentence » (sentence, phrase)  », le modèle doit accorder une attention particulière à « « judge » (juge, juger)  » et « issued.  ». Il doit également prêter attention au mot « le  ». Il peut plus ou moins ignorer les autres mots.

Comment fonctionne l’auto-attention ?

D’une manière générale, les couches d’attention des modèles transformers évaluent et utilisent le contexte associé à chaque partie d’une séquence de données en 4 étapes :

  1. Le modèle « lit » les séquences de données brutes et les convertit en représentations vectorielles, où chaque élément de la séquence est représenté par son propre ou ses propres vecteurs caractéristiques, qui reflètent numériquement des qualités telles que la signification.

  2. Le modèle détermine les similitudes, les corrélations et les autres dépendances (ou leur absence) entre les vecteurs. Dans la plupart des modèles transformers, l’importance relative d’un vecteur par rapport à un autre est déterminée en calculant le produit scalaire entre les vecteurs. Si les vecteurs sont bien alignés, leur multiplication donnera une valeur élevée. S’ils ne sont pas alignés, leur produit scalaire sera faible ou négatif.

  3. Ces « scores d’alignement » sont convertis en pondérations d’attention. Pour ce faire, on utilise des scores d’alignement comme entrées d’une fonction d’activation softmax qui normalise toutes les valeurs dans une fourchette comprise entre 0 et 1, de manière à ce que leur somme soit égale à 1. Par exemple, si l’on attribue une pondération de 0 entre le « vecteur A » et le « vecteur B », le vecteur B doit être ignoré lors des prédictions concernant le vecteur A. Si l’on attribue au vecteur B une pondération de 1, il devra recevoir 100 % de l’attention lorsque le modèle prendra des décisions concernant le vecteur A.

  4. Ces pondérations d’attention sont utilisées pour accentuer ou diminuer l’influence de certains éléments d’entrée à des moments donnés. En d’autres termes, les pondérations d’attention aident les modèles transformers à se concentrer sur une certaine information, ou à l’ignorer, à un moment donné.

Avant l’entraînement, le modèle transformer ne « sait » pas encore comment générer des plongements vectoriels ni des scores d’alignement optimaux. Durant l’entraînement, le modèle fait des prédictions sur des millions d’exemples tirés de ses données d’entraînement, et une fonction de perte quantifie l’erreur de chaque prédiction.

Grâce à un cycle itératif qui consiste à faire des prédictions, puis à mettre à jour les pondérations par rétropropagation et descente de gradient, le modèle « apprend » à générer des plongements vectoriels, des scores d’alignement et des pondérations qui favorisent la précision des sorties.

Comment fonctionnent les modèles transformers ?

Les modèles transformers tels que les bases de données relationnelles génèrent des vecteurs de requête, de clé et de valeur pour chaque partie d’une séquence de données, et les utilisent pour calculer les pondérations d’attention grâce à une série de multiplications matricielles.

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. L’article « Attention is All You Need » a appliqué ce cadre conceptuel au traitement des relations entre chaque token dans une séquence de texte.

  • Le vecteur de requête représente les informations qu’un token donné « recherche ». En d’autres termes, le vecteur de requête du token est utilisé pour calculer la manière dont les autres tokens peuvent influencer sa signification, sa conjugaison ou ses connotations dans le contexte.
  • Le vecteur de clé représente les informations que chaque token contient. L’alignement entre la requête et la clé permet de calculer les pondérations d’attention qui reflètent leur pertinence dans le contexte de cette séquence de texte.
  • La valeur (ou vecteur de valeur) « renvoie » les informations de chaque vecteur clé, dimensionnées en fonction de leur poids d’attention respectif. 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.

La « base de données » d’un LLM est le vocabulaire des tokens qu’il a appris à partir des échantillons de texte présents dans ses données d’entraînement. Son mécanisme d’attention utilise les informations de cette « base de données » pour comprendre le contexte du langage.

Tokenisation et embeddings d’entrées

Alors que les caractères (lettres, chiffres ou signes de ponctuation) sont l’unité de base que nous utilisons pour représenter le langage, la plus petite unité de langage utilisée par les modèles d’IA est le token. Chaque token se voit attribuer un numéro d’identification. C’est ce dernier (et non les mots, ni même le token lui-même) qui constitue la manière dont les LLM naviguent dans leur « base de données » de vocabulaire. Cette tokenisation du langage réduit considérablement la puissance de calcul nécessaire pour traiter le texte.

Pour générer des vecteurs de requête et de clé qui alimentent les couches d’attention du transformer, le modèle a besoin d’un plongement vectoriel initial sans contexte pour chaque token. Ces plongements vectoriels initiaux peuvent être appris lors de l’entraînement, ou provenir d’un modèle de plongement pré-entraîné.

Codage positionnel

L’ordre et la position des mots peuvent avoir un impact significatif sur leur signification. Alors que la nature sérielle des RNN préserve intrinsèquement les informations sur la position de chaque token, les modèles transformers doivent ajouter explicitement des informations positionnelles que le mécanisme d’attention doit prendre en compte.

Avec l’encodage positionnel, le modèle ajoute un vecteur de valeurs à l’embedding de chaque token, dérivé de sa position relative, avant que l’entrée n’entre dans le mécanisme d’attention. Plus deux tokens sont proches, plus leurs vecteurs de position seront similaires et, par conséquent, plus leur score d’alignement augmentera grâce à l’ajout d’informations de position. Le modèle apprend ainsi à accorder une plus grande attention aux tokens proches.

Générer des vecteurs de requête, de clé et de valeur

Une fois les informations positionnelles ajoutées, chaque plongement de token mis à jour est utilisé pour générer trois nouveaux vecteurs. Ces vecteurs de requête, de clé et de valeur sont générés en faisant passer les plongements du token par chacune des trois couches de réseaux de neurones à propagation avant parallèles qui précèdent la première couche d’attention. Chaque sous-ensemble parallèle de cette couche linéaire possède une matrice de pondérations unique, apprise par pré-entraînement auto-supervisé sur un jeu de données textuelles.

  • Les embeddings sont multipliés par la matrice de poids WQ pour obtenir les vecteurs de requête (Q), qui ont les dimensions dk.
  • Les embeddings sont multipliés par la matrice de poids WK pour obtenir le vecteur clé (K), également avec les dimensions dk
  • Les embeddings sont multipliés par la matrice de poids WV pour obtenir les vecteurs de valeur (V), avec les dimensions dv.

Calcul de l’auto-attention

La fonction principale du mécanisme d’attention du transformeur est d’attribuer des poids d’attention précis aux paires formées par le vecteur de requête de chaque token et les vecteurs clés de tous les autres tokens de la séquence. Une fois cela réalisé, vous pouvez considérer chaque token x 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.

  • Le vecteur de valeur de chaque autre token est maintenant multiplié par son poids d’attention correspondant.
  • Ces vecteurs de valeur pondérés par l’attention sont tous additionnés. Le vecteur résultant représente les informations contextuelles agrégées fournies au token x par tous les autres tokens de la séquence.
  • Enfin, le vecteur résultant des changements pondérés par l’attention de chaque token est ajouté à l’embedding vectoriel original post-positionnel du token x.

Fondamentalement, l’embedding vectoriel du token xa été mise à jour pour mieux refléter le contexte fourni par les autres tokens de la séquence.

Attention multi-tête

Afin de saisir les multiples facettes des relations entre les tokens, les modèles de transformeur implémentent une attention multi-tête à travers plusieurs blocs d’attention.

Avant d’être introduit dans la première couche de propagation, chaque embedding de token d’entrée d’origine est divisé en h sous-ensembles de taille égale. Chaque élément de l’embedding 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 un sous-ensemble correspondant de la couche d’attention suivante, appelé tête d’attention.

Dans les couches finales de chaque bloc d’attention, les productions de ces h circuits parallèles sont finalement concaténées ensemble avant d’être envoyées à la prochaine couche de propagation. 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.

Connexions résiduelles et normalisation des couches

Dans certaines situations, la transmission de la sortie d’embedding mise à jour en fonction du contexte par le bloc d’attention peut entraîner une perte inacceptable d’informations par rapport à la séquence d’origine.

Pour y remédier, les modèles transformers équilibrent généralement informations contextuelles fournies par le mécanisme d’attention et signification initiale du token. Une fois les sous-ensembles de l’embedding du token concaténés, le vecteur mis à jour est ajouté à l’embedding vectoriel d’origine (codé par position) du token. L’embedding d’origine du token est fourni par le biais d’une connexion résiduelle entre cette couche et une couche antérieure du réseau.

Le vecteur ainsi obtenu est introduit dans une autre couche de propagation linéaire, où il est normalisé à nouveau pour atteindre une taille constante avant d’être transmis au bloc d’attention suivant. Ensemble, ces mesures permettent de préserver la stabilité lors de l’entraînement et d’éviter que le sens du texte ne soit perdu au fur et à mesure que les données se déplacent au sein du réseau de neurones.

Générer des sorties

Le modèle finit par disposer de suffisamment d’informations contextuelles pour informer ses sorties. La nature et la fonction de la couche de sortie dépendront de la tâche pour laquelle le modèle transformer a été conçu.

Dans les LLM autorégressifs, la couche finale utilise une fonction softmax pour déterminer la probabilité que le mot suivant corresponde à chaque token de sa « base de données » de vocabulaire. En fonction des hyperparamètres d’échantillonnage définis, le modèle utilise ces probabilités pour déterminer le prochain token de la séquence de sortie.

Modèles transformers dans le traitement automatique du langage naturel (TAL)

Les modèles transformers sont le plus souvent associés au TAL, car développés à l’origine à des fins de machine learning. L’architecture de type transformer a notamment donné naissance aux grands modèles de langage (LLM), qui ont accéléré l’avènement de l’IA générative.

La plupart des LLM connus du grand public, des modèles à source fermée, tels que la série GPT d’OpenAI et les modèles Claude d’Anthropic, aux modèles open source comme Meta Llama et IBM Granite, sont des LLM autorégressifs à décodeur uniquement.

Les LLM autorégressifs sont conçus pour la génération de texte, qui s’étend naturellement à des tâches connexes telles que la synthèse et la réponse à des questions. Ils sont entraînés par apprentissage auto-supervisé, dans lequel le modèle reçoit le premier mot d’un passage de texte et doit prédire de manière itérative le mot suivant jusqu’à la fin de la séquence.

Grâce aux informations fournies par le mécanisme d’auto-attention, le modèle est capable d’extraire le contexte de la séquence d’entrée et de maintenir la cohérence et la continuité de sa sortie.

Les modèles de langage masqué encodeur-décodeur (MLM), tels que BERT et ses nombreux dérivés, représentent l’autre branche principale de l’évolution des LLM basés sur les transformeurs. Lors de l’entraînement, un MLM reçoit un échantillon de texte dont certains tokens sont masqués (cachés) et doit compléter les informations manquantes.

Bien que cette méthode d’entraînement soit moins efficace pour la génération de texte, elle aide les MLM à exceller dans les tâches nécessitant des informations contextuelles fiables, telles que la traduction, la classification de texte et l’apprentissage des embeddings.

Modèles de transformeur dans d’autres domaines

Bien que les modèles de transformeur aient été initialement conçus pour des cas d’utilisation liés au langage naturel, auxquels ils restent principalement associés, ils peuvent être déployés dans presque toutes les situations impliquant des données séquentielles. Cela a conduit au développement de modèles basés sur les transformeurs dans d’autres domaines, allant du réglage fin des LLM dans des systèmes multimodaux aux modèles de prévision de séries temporelles dédiés et aux transformeurs de vision (ViT) pour la vision par ordinateur.

Certaines modalités de données se prêtent plus naturellement à une représentation séquentielle compatible avec les transformeurs que d’autres. Les séries temporelles, les données audio et vidéo sont intrinsèquement séquentielles, contrairement aux données image. Malgré cela, les ViT et autres modèles basés sur l’attention ont obtenu des résultats hors pair pour de nombreuses tâches de vision par ordinateur, notamment la légende d’images, la détection d’objets, la segmentation d’images et la réponse à des questions visuelles.

L’utilisation de modèles de transformeurs pour des données qui ne sont pas traditionnellement considérées comme « séquentielles » exige une solution conceptuelle pour représenter ces données sous forme de séquence. Par exemple, pour comprendre les données visuelles à l’aide de mécanismes d’attention, les ViT ont recours à des embeddings de patchs afin de rendre les données d’images interprétables sous forme de séquences.

  • L’image est d’abord divisée en un ensemble de patchs. Par exemple, une image de 224 x 224 pixels peut être subdivisée en 256 patchs de 14 x 14 pixels, ce qui réduit considérablement le nombre d’étapes de calcul nécessaires pour traiter l’image.
  • Ensuite, une couche de projection linéaire associe chaque correctif à un plongement vectoriel.
  • Des informations de position sont ajoutées à chacun de ces embeddings, à l’instar du codage positionnel décrit précédemment dans cet article.
  • Ces embeddings de patchs peuvent désormais fonctionner essentiellement comme une séquence d’embeddings de tokens, ce qui permet à l’image d’être interprétée par un mécanisme d’attention.
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 Google’s BERT Rolls Out Worldwide (lien externe à ibm.com), Search Engine Journal, 9 décembre 2019