Traducteur | Li Rui
Critique | Sun Shujuan
Ces dernières années, le modèle d'apprentissage automatique Transformer est devenu l'un des principaux points forts de l'avancement de la technologie de l'apprentissage profond et des réseaux neuronaux profonds. Il est principalement utilisé pour des applications avancées dans le traitement du langage naturel. Google l'utilise pour améliorer les résultats de ses moteurs de recherche. OpenAI a utilisé Transformer pour créer les célèbres modèles GPT-2 et GPT-3.
Depuis ses débuts en 2017, l'architecture Transformer a continué d'évoluer et de s'étendre dans de nombreuses variantes différentes, s'étendant des tâches linguistiques à d'autres domaines. Ils ont été utilisés pour la prévision de séries chronologiques. Ils constituent l’innovation clé derrière AlphaFold, le modèle de prédiction de la structure des protéines de DeepMind. Le modèle de génération de code source d'OpenAI, Codex, est également basé sur Transformer. Les transformateurs sont également récemment entrés dans le domaine de la vision par ordinateur, où ils remplacent lentement les réseaux de neurones convolutifs (CNN) dans de nombreuses tâches complexes.
Les chercheurs explorent toujours des moyens d'améliorer Transformer et de l'utiliser pour de nouvelles applications. Voici une explication rapide de ce qui rend les Transformers passionnants et de leur fonctionnement.
Les réseaux de neurones à rétroaction traditionnels ne sont pas conçus pour suivre les données de séquence et mapper chaque entrée à une sortie. Cela fonctionne bien pour des tâches telles que la classification d'images, mais échoue sur les données de séquence comme le texte. Les modèles d’apprentissage automatique qui traitent le texte doivent non seulement traiter chaque mot, mais également prendre en compte la manière dont les mots sont disposés dans l’ordre et liés les uns aux autres. Et le sens d’un mot peut changer en fonction des autres mots qui apparaissent avant et après lui dans la phrase.
Avant l'avènement de Transformer, les réseaux de neurones récurrents (RNN) étaient la solution privilégiée pour le traitement du langage naturel. Lorsqu'on lui donne une séquence de mots, un réseau neuronal récurrent (RNN) traitera le premier mot et renverra les résultats à la couche qui traite le mot suivant. Cela lui permet de suivre une phrase entière plutôt que de traiter chaque mot individuellement.
Les défauts des réseaux de neurones récurrents (RNN) limitent leur utilité. Premièrement, leur traitement est très lent. Parce qu’ils doivent traiter les données de manière séquentielle, ils ne peuvent pas tirer parti du matériel informatique parallèle et des unités de traitement graphique (GPU) pour la formation et l’inférence. Deuxièmement, ils ne peuvent pas gérer de longues séquences de texte. À mesure que le réseau neuronal récurrent (RNN) pénètre plus profondément dans l’extrait de texte, l’effet des premiers mots de la phrase diminue progressivement. Ce problème connu sous le nom de « gradient de disparition » se produit lorsque deux mots liés sont très éloignés l'un de l'autre dans le texte. Troisièmement, ils capturent uniquement la relation entre un mot et les mots qui le précèdent. En fait, le sens des mots dépend des mots qui les précèdent et qui les suivent.
Le réseau LSTM (Long Short-Term Memory) est le successeur du réseau neuronal récurrent (RNN), qui peut résoudre dans une certaine mesure le problème du gradient de disparition et gérer des séquences de texte plus grandes. Mais la mémoire à long terme (LSTM) est encore plus lente à former que les réseaux de neurones récurrents (RNN) et ne peut toujours pas tirer pleinement parti du calcul parallèle. Ils s'appuient toujours sur le traitement en série de séquences de texte.
Un article publié en 2017 intitulé "L'attention est tout ce qui est nécessaire" a présenté Transformer, déclarant que Transformer
a apporté deux contributions clés : Premièrement, ils ont permis de traiter des séquences entières en parallèle, permettant ainsi de convertir la vitesse et la vitesse séquentielles. la capacité des modèles d’apprentissage profond évolue à des rythmes sans précédent. Deuxièmement, ils introduisent des « mécanismes d'attention » qui peuvent suivre les relations entre les mots dans de très longues séquences de texte, à la fois vers l'avant et vers l'arrière.
Avant de discuter du fonctionnement du modèle Transformer, il est nécessaire de discuter des types de problèmes que les réseaux de neurones séquentiels résolvent.
Malgré leurs différences, tous ces types de modèles ont une chose en commun : ils apprennent les expressions. Le travail d'un réseau de neurones est de convertir un type de données en un autre type de données. Pendant l'entraînement, la couche cachée du réseau neuronal (la couche entre l'entrée et la sortie) ajuste ses paramètres de manière à représenter au mieux les caractéristiques du type de données d'entrée et les mappe à la sortie. Le Transformer original a été conçu comme un modèle séquence à séquence (seq2seq) pour la traduction automatique (bien entendu, les modèles séquence à séquence ne se limitent pas aux tâches de traduction). Il se compose d'un module d'encodeur qui compresse la chaîne d'entrée de la langue source en un vecteur qui représente les mots et leurs relations les uns avec les autres. Le module décodeur convertit le vecteur codé en une chaîne de texte dans la langue cible.
Le texte saisi doit être traité et converti dans un format unifié avant de pouvoir être saisi dans Transformer. Tout d'abord, le texte passe par un « tokenizer », qui le divise en morceaux de caractères pouvant être traités individuellement. L'algorithme de tokenisation peut dépendre de l'application. Dans la plupart des cas, chaque mot et signe de ponctuation compte à peu près comme un jeton. Certains suffixes et préfixes comptent comme des jetons distincts (par exemple, « ize », « ly » et « pre »). Le tokenizer génère une liste de nombres représentant les ID de jeton du texte saisi.
Les jetons sont ensuite convertis en « intégrations de mots ». L'intégration de mots est un vecteur qui tente de capturer la valeur d'un mot dans un espace multidimensionnel. Par exemple, les mots « chat » et « chien » peuvent avoir des valeurs similaires sur certaines dimensions car ils sont tous deux utilisés dans des phrases sur les animaux et les animaux de compagnie. Cependant, sur d'autres dimensions qui distinguent les félins des canidés, « chat » est plus proche de « lion » que de « loup ». De même, « Paris » et « Londres » sont probablement plus proches l’une de l’autre car ce sont toutes deux des villes. Cependant, « Londres » est plus proche de « l'Angleterre » et « Paris » est plus proche de « la France » en raison des dimensions différenciantes d'un pays. Et les intégrations de mots ont généralement des centaines de dimensions.
Les intégrations de mots sont créées via des modèles d'intégration qui sont formés séparément du Transformer. Il existe plusieurs modèles d'intégration pré-entraînés pour les tâches linguistiques.
Une fois la phrase convertie en une liste d'intégrations de mots, elle est introduite dans le module d'encodage du Transformer. Contrairement aux modèles de réseau neuronal récurrent (RNN) et de mémoire à long terme (LSTM), Transformer ne reçoit pas une entrée à la fois. Il peut recevoir des valeurs d'intégration pour des phrases entières et les traiter en parallèle. Cela rend les Transformers plus efficaces sur le plan informatique que leurs prédécesseurs et leur permet également d'examiner des scénarios de texte dans des séquences avant et arrière.
Pour conserver l'ordre des mots dans la phrase, le Transformer applique un "codage positionnel", ce qui signifie essentiellement qu'il modifie la valeur de chaque vecteur d'intégration pour représenter sa position dans le texte.
Ensuite, l'entrée est transmise au premier bloc d'encodeur, qui la traite via une "couche d'attention". La couche d'attention tente de capturer les relations entre les mots dans une phrase. Par exemple, considérons la phrase « Le gros chat noir a traversé la route après avoir laissé tomber une bouteille sur le côté ». Ici, le modèle doit associer « ça » à « chat » et « son » à « bouteille ». Il faudrait donc créer d'autres associations, telles que « grand » et « chat » ou « croisé » et « chat ». Sinon, la couche d'attention reçoit une liste d'incorporations de mots représentant des valeurs de mots individuels et génère une liste de vecteurs représentant des mots individuels et leurs relations. La couche d'attention contient plusieurs « têtes d'attention », chacune pouvant capturer différents types de relations entre les mots.
La sortie de la couche d'attention est transmise à un réseau neuronal à rétroaction, qui la convertit en une représentation vectorielle et l'envoie à la couche d'attention suivante. Les transformateurs
contiennent plusieurs blocs d'attention et couches de rétroaction pour capturer progressivement des relations plus complexes.
Le module décodeur est chargé de convertir les vecteurs d'attention de l'encodeur en données de sortie (par exemple, une version traduite du texte d'entrée). Pendant la phase de formation, le décodeur a accès aux vecteurs d'attention produits par l'encodeur et aux résultats attendus (par exemple, les chaînes traduites).
Le décodeur utilise les mêmes mécanismes de tokenisation, d'intégration de mots et d'attention pour traiter les résultats attendus et créer des vecteurs d'attention. Il transmet ensuite ce vecteur d'attention et cette couche d'attention dans le module d'encodeur pour établir une relation entre les valeurs d'entrée et de sortie. Dans une application de traduction, il s'agit de la partie où les mots de la langue source et de la langue cible sont mappés les uns aux autres. Comme le module encodeur, les vecteurs d’attention du décodeur passent par des couches de rétroaction. Le résultat est ensuite mappé sur un très grand pool de vecteurs, c'est-à-dire la taille des données cibles (dans le cas d'une traduction, cela peut impliquer des dizaines de milliers de mots).
Pendant la formation, le Transformer reçoit un très grand corpus d'exemples appariés (par exemple, des phrases en anglais et leurs traductions françaises correspondantes). Le module encodeur reçoit et traite la chaîne d'entrée complète. Cependant, le décodeur reçoit une version masquée de la chaîne de sortie (un mot à la fois) et tente d'établir une correspondance entre les vecteurs d'attention codés et les résultats attendus. L'encodeur essaie de prédire le mot suivant et effectue des corrections en fonction de la différence entre sa sortie et le résultat attendu. Ce retour permet au convertisseur de modifier les paramètres de l'encodeur et du décodeur et de créer progressivement le mappage correct entre les langages d'entrée et de sortie.
Plus un Transformer possède de données et de paramètres d'entraînement, plus il est capable de maintenir la cohérence et l'homogénéité sur des séquences de texte plus longues.
Dans l'exemple de traduction automatique étudié ci-dessus, le module encodeur de Transformer apprend la relation entre les mots et les phrases anglais, tandis que le décodeur apprend le mappage entre l'anglais et le français.
Mais toutes les applications Transformer ne nécessitent pas de modules d'encodeur et de décodeur. Par exemple, la famille GPT de grands modèles de langage utilise une pile de modules de décodage pour générer du texte. BERT est une autre variante du modèle Transformer développé par les chercheurs de Google, mais il utilise uniquement le module encodeur.
L'avantage de certaines de ces architectures est qu'elles peuvent être formées par des méthodes d'apprentissage auto-supervisées ou non supervisées. BERT, par exemple, effectue l'essentiel de sa formation en prenant un vaste corpus de texte non étiqueté, en masquant certaines parties et en essayant de prédire les parties manquantes. Il ajuste ensuite ses paramètres en fonction de la distance entre ses prédictions et les données réelles. En répétant continuellement ce processus, BERT capture la relation entre différents mots dans différentes scènes. Après cette phase de pré-formation, BERT peut être affiné pour les tâches en aval telles que la réponse aux questions, la synthèse de texte ou l'analyse des sentiments en s'entraînant sur un petit nombre d'exemples étiquetés. L’utilisation d’une pré-formation non supervisée et auto-supervisée peut réduire l’effort requis pour annoter les données de formation.
Il y a bien plus à propos des Transformers et des nouvelles applications qu'ils débloquent, ce qui dépasse le cadre de cet article. Les chercheurs cherchent toujours des moyens d’obtenir davantage d’aide de Transformer.
Transformer a également suscité des discussions sur la compréhension du langage et l'intelligence artificielle en général. Il est évident que le Transformer, comme les autres réseaux de neurones, est un modèle statistique capable de capturer les régularités des données de manière intelligente et sophistiquée. Même s’ils ne « comprennent » pas le langage comme le font les humains, leur développement reste passionnant et a bien plus à offrir.
Lien original : https://bdtechtalks.com/2022/05/02/what-is-the-transformer/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!