Modèle de transformateur Qu’est-ce qu’un modèle de transformateur ?
Un modèle de transformateur est un type d’architecture de réseau neuronal conçu pour gérer des données séquentielles, telles que du texte, mais il peut également être appliqué à d’autres types de données. Contrairement aux modèles précédents comme les RNN, les transformateurs peuvent traiter des séquences entières simultanément, ce qui les rend plus rapides et plus efficaces. Dans le domaine de l’IA générative, les transformateurs ont révolutionné des tâches telles que la génération, la traduction et le résumé de texte.
- Transformateurs et RNN
- Comment fonctionnent les modèles de transformateurs ?
- Comment fonctionnent les modèles de transformateurs ? – partie 2
- Les atouts d’un partenariat avec HPE
Quelle est la différence entre les transformateurs et les RNN ?
Les principales différences entre les transformateurs et les réseaux neuronaux récurrents (RNN) résident dans leurs architectures, leurs mécanismes de traitement des données et leur efficacité dans la gestion des dépendances à longue portée dans les données séquentielles.
1. Traitement séquentiel et traitement parallèle
RNN : traitent les séquences d’entrée l’une après l’autre en utilisant la sortie de l’étape précédente pour informer la suivante. De fait, ils sont intrinsèquement séquentiels et ne peuvent pas facilement paralléliser les calculs.
Transformateurs : utilisent un mécanisme appelé auto-attention, qui leur permet de visualiser l’intégralité d’une séquence en une seule fois. Ils peuvent ainsi traiter différentes parties d’une séquence en parallèle, réduisant considérablement les temps de formation, et notamment ceux des séquences longues.
2. Gestion des dépendances à long terme
RNN : luttent contre les dépendances à longue portée liées au problème de disparition/d’explosion du gradient. Les informations issues du début de la séquence peuvent s’estomper à mesure qu’elles se propagent dans le temps, ce qui complique la tâche des RNN devant conserver un contexte important sur de longues séquences.
Transformateurs : utilisent l’auto-attention pour calculer simultanément les relations entre tous les mots de la séquence, ce qui leur permet de modéliser plus efficacement les dépendances à longue portée. Le mécanisme d’attention relie directement les mots distants sans nécessiter de traitement étape par étape.
3. Architecture
RNN : l’architecture est récurrente, ce qui signifie que le réseau utilise des boucles qui maintiennent un «∘état caché∘» contenant des informations provenant d’étapes temporelles précédentes. Des variantes telles que les LSTM (Long Short-Term Memory) et les GRU (Gated Recurrent Units) ont été développées pour atténuer les problèmes liés aux RNN traditionnels, mais la nature séquentielle demeure.
Transformateurs : sont constitués de couches de réseaux neuronaux d'auto-attention et à propagation avant (feedforward ou FFN) à têtes multiples, sans structure récurrente. Il n’existe aucun concept d’état caché transmis d’une étape temporelle à l’autre, car le mécanisme d’auto-attention permet des connexions directes entre deux positions quelconques de la séquence.
4. Efficacité de la formation
RNN : dans la mesure où les RNN traitent les données de manière séquentielle, ils sont généralement plus lents à former. La parallélisation est difficile, car chaque étape temporelle dépend de la précédente.
Transformateurs : grâce à leurs fonctionnalités de traitement parallèle, les transformateurs peuvent être formés plus efficacement, en particulier sur du matériel moderne comme les GPU et les TPU. Ils peuvent gérer de grands jeux de données et de longues séquences avec une plus grande efficacité de calcul.
5. Mémoire et complexité informatique
RNN : ont des moindres besoins en mémoire car ils traitent une étape temporelle à la fois. Leur nature séquentielle limite toutefois leur capacité à gérer efficacement des séquences très longues.
Transformateurs : nécessitent beaucoup plus de mémoire, en particulier pendant la formation, car ils stockent des poids d’attention entre toutes les paires de jetons. Leur complexité de calcul augmente de manière quadratique avec la longueur de la séquence en raison du mécanisme d’attention.
6. Cas d’utilisation
RNN : étaient traditionnellement utilisés pour des tâches telles que la reconnaissance vocale, la modélisation du langage et la prévision de séries chronologiques. Les LSTM et les GRU étaient couramment utilisés pour des tâches nécessitant la mémorisation de longues séquences.
Transformateurs : dominants dans des tâches telles que le traitement du langage naturel (NLP), la traduction automatique, la génération de texte et bien d’autres tâches. Des modèles tels que BERT, GPT et T5 sont tous basés sur l’architecture du transformateur, qui a établi de nouvelles références de performances dans un large éventail de tâches NLP.
Comment fonctionnent les modèles de transformateurs ?
Les transformateurs fonctionnent en utilisant une combinaison de mécanismes d’auto-attention, de codage positionnel et de réseaux à propagation avant. L’architecture leur permet de traiter efficacement des données séquentielles et de capturer des dépendances à longue portée entre différentes parties de l’entrée. Vous trouverez ci-dessous une description détaillée du fonctionnement des transformateurs :
1. Incorporation d’entrée et codage positionnel
Incorporations d’entrée : dans les transformateurs, l’entrée (comme une séquence de mots dans une phrase) est d’abord convertie en incorporations, qui sont des vecteurs denses de taille fixe. Ces intégrations représentent la signification sémantique des jetons (mots ou sous-mots).
Codage positionnel : étant donné que l’architecture du transformateur ne dispose pas d’un mécanisme intégré pour capturer l’ordre de la séquence (contrairement aux RNN), des codages positionnels sont ajoutés aux intégrations d’entrée. Ces codages injectent des informations sur la position de chaque jeton dans la séquence. Il s’agit souvent de fonctions sinusoïdales ou d’intégrations apprises qui varient selon les positions.
Cela permet au modèle de comprendre les positions relatives et absolues des jetons.
2. Mécanisme d’auto-attention
Le mécanisme d’auto-attention est le composant principal des transformateurs. Il permet au modèle d’évaluer l’importance de chaque jeton par rapport à chaque autre dans la séquence d’entrée. Pour chaque jeton, l’auto-attention détermine à quels autres jetons elle doit prêter attention.
Comment fonctionnent les modèles de transformateurs ?
Comment fonctionne l’auto-attention :
1. Transformation d’entrée : pour chaque jeton dans la séquence d’entrée, le modèle calcule trois vecteurs : Requête (Q), Clé (K) et Valeur (V), tous dérivés des incorporations de jetons. Ces vecteurs sont appris grâce à des transformations linéaires.
- Requête (Q) : détermine le degré d’attention à accorder aux autres jetons.
- Clé (K) : représente le contenu des autres jetons sur lesquels se concentrer.
- Valeur (V) : contient les informations à extraire ou à transmettre via le mécanisme d’attention.
2. Scores d’attention : les scores d’attention entre les jetons sont calculés comme le produit scalaire entre la requête d’un jeton et la clé d’un autre. Cela mesure le degré de pertinence ou d’«∘attention∘» qu’un jeton devrait avoir envers un autre.
Les scores sont mis à l’échelle par la racine carrée de la dimension du vecteur clé dkd_kdk pour stabiliser les gradients.
3. Somme pondérée : les scores d’attention sont transmis via une fonction softmax, les transformant en probabilités dont la somme est égale à 1. Ces scores sont utilisés pour pondérer les vecteurs de valeur, produisant une somme pondérée qui reflète l’importance de chaque jeton par rapport aux autres.
Attention à têtes multiples :
Au lieu d’utiliser un seul mécanisme d’auto-attention, le transformateur utilise une attention à têtes multiples. Plusieurs ensembles de vecteurs de requête, de clé et de valeur sont créés (chaque ensemble étant une «∘tête∘» d’attention), et chaque tête s’occupe de différents aspects de l’entrée. Les résultats de toutes les têtes d’attention sont concaténés et transmis via une couche linéaire.
Ceci permet au modèle de capturer simultanément différents types de relations entre les jetons.
3. Réseaux neuronaux à propagation avant
Après le mécanisme d’auto-attention, chaque représentation de jeton est transmise via un réseau neuronal à propagation avant. Il s’agit généralement d’un réseau neuronal à deux couches avec une fonction d’activation ReLU. Le FFN est appliqué indépendamment à chaque position et le même ensemble de pondérations est partagé entre toutes les positions.
arduino
Copier le code
\[
\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2
\]
Le FFN permet une transformation supplémentaire des représentations de jetons et introduit la non-linéarité, améliorant ainsi l’expressivité du modèle.
4. Connexions résiduelles et normalisation des couches
Pour stabiliser la formation et faciliter le flux de gradient, des connexions résiduelles (également appelées connexions directes ou « skip ») sont utilisées autour des couches d’auto-attention et à propagation avant. Cela signifie que l’entrée de chaque sous-couche est ajoutée à la sortie de cette sous-couche avant d’être transmise à la suivante.
Chaque connexion résiduelle est suivie d’une normalisation de couche, qui normalise la sortie pour réduire le décalage de covariable interne et améliorer la stabilité de la formation.
5. Architecture de l’encodeur et du décodeur
L’architecture originale du transformateur comporte deux composants principaux : l’encodeur et le décodeur. Cependant, certains modèles, comme BERT, n’utilisent que l’encodeur, tandis que d’autres, comme GPT, n’utilisent que le décodeur.
Encodeur :
L’encodeur est composé de plusieurs couches identiques (généralement 6 à 12). Chaque couche comporte deux composants principaux :
- Auto-attention à têtes multiples
- Réseau neuronal à propagation avant
L’encodeur reçoit la séquence d’entrée et la traite à travers chaque couche, générant une sortie qui encode les jetons d’entrée avec le contexte des autres jetons de la séquence.
Décodeur :
Le décodeur est également constitué de plusieurs couches identiques, avec un mécanisme supplémentaire :
Auto-attention masquée à têtes multiples : empêche les jetons de prêter attention aux futurs jetons de la séquence (important dans les tâches autorégressives comme la génération de texte).
Le décodeur comprend également des couches d’attention croisée qui prennent la sortie de l’encodeur comme entrée supplémentaire pour guider le processus de génération.
6. Sortie (pour les modèles de langage)
Pour des tâches telles que la modélisation du langage ou la traduction automatique, le décodeur produit une séquence de sortie jeton par jeton. Dans la couche finale, la sortie du décodeur est transmise via une fonction softmax pour générer des probabilités sur le vocabulaire, permettant au modèle de prédire le prochain jeton ou de générer des traductions.
7. Objectifs de la formation
Modélisation du langage masqué (MLM) : utilisée dans des modèles comme BERT, où des jetons aléatoires dans la séquence d’entrée sont masqués et le modèle est formé pour les prédire.
Modélisation du langage causal (CLM) : utilisée dans des modèles comme GPT, où le modèle prédit le prochain jeton de la séquence en fonction des jetons précédents.
Objectifs de Seq2Seq : utilisée dans des tâches telles que la traduction automatique, où le modèle apprend à mapper des séquences d’entrée à des séquences de sortie (p. ex., traduire une phrase de l’anglais vers le français).
Les atouts d’un partenariat avec HPE
HPE fournit des produits et des services pour aider à la fois à la création, à la mise en œuvre et à l’exécution d’un modèle multimodal.
HPE Cray XD670
Accélérez les performances de l’IA grâce au système HPE Cray XD670. Découvrez les possibilités que le HPC peut offrir à votre entreprise en matière d’entraînement de modèles LLM, NLP ou multimodaux.
HPE Generative AI Implementation Services
HPE Machine Learning Development Software
Quelle est la différence entre les transformateurs et les RNN ?
Fonctionnalité | RNN (y compris LSTM, GRU) | Transformateurs |
---|---|---|
Méthode de traitement | Séquentiel | Parallèle |
Gestion de séquences longues | Lutte contre les dépendances à longue portée | Excelle grâce à l’auto-attention |
Architecture | États récurrents et cachés | Auto-attention à têtes multiples |
Efficacité de la formation | Lents, plus difficiles à paralléliser | Plus rapides, hautement parallélisables |
Efficacité de la mémoire | Besoins en mémoire réduits | Utilisation excessive de la mémoire |
Applications courantes | Séries chronologiques, premières tâches de NLP | NLP, traduction, génération de texte, etc. |
Résumé des composants du transformateur :
Composant | Description |
---|---|
Incorporations d’entrée | Convertit les jetons en vecteurs de taille fixe. |
Codage positionnel | Ajoute des informations sur les positions des jetons dans la séquence. |
Auto-attention | Calcule les scores d’attention entre tous les jetons pour capturer les dépendances. |
Attention à têtes multiples | Utilise plusieurs têtes d’attention pour capturer différentes relations |
Réseau neuronal à propagation avant | Applique des transformations non linéaires aux représentations de jetons. |
Connexions résiduelles | Aide à stabiliser la formation et améliore le flux de gradient. |
Encodeur | Traite la séquence d’entrée et génère des représentations contextuelles. |
Différents types de transformateurs :
Quels sont les différents types de transformateurs ?
Ces modèles de transformateurs sont largement introduits dans tous les secteurs d’activité, dans le cadre des applications commerciales, et notamment le service client, la génération de contenu, la traduction, les assistants virtuels, les systèmes de recommandation, etc.
Type de modèle | Modèles remarquables | Caractéristiques clés | Applications |
---|---|---|---|
Fondé sur un encodeur | BERT, RoBERTa, XLNet, ELECTRA | Axé sur la compréhension de texte (classification, NER, etc.) | Tâches de NLP nécessitant une compréhension de texte |
Fondé sur un décodeur | GPT (1, 2, 3, 4), CTRL, OPT | Optimisé pour des tâches génératives (génération de texte, dialogue) | Génération de texte, IA conversationnelle |
Encodeur-Décodeur | T5, BART, mT5, Pegasus | Combine compréhension et génération (traduction automatique, résumé) | Résumé, traduction, réponses à des questions |
Multimodal | CLIP, DALL·E, FLAVA | Gère plusieurs types de données (texte + image) | Génération d’images, tâches visuelles et textuelles |