paint-brush
Grands modèles de langage : exploration des transformateurs - Partie 2par@shyamganesh
1,504 lectures
1,504 lectures

Grands modèles de langage : exploration des transformateurs - Partie 2

par Shyam Ganesh S5m2024/05/22
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

Les modèles de transformateur sont un type de modèle de réseau neuronal d'apprentissage profond qui est largement utilisé dans les tâches de traitement du langage naturel (NLP). Ces dernières années, les transformateurs ont été utilisés comme modèles de base dans de nombreux grands modèles linguistiques (LLM). Dans ce blog, nous explorerons les transformateurs, leurs composants, leur fonctionnement et bien plus encore.

People Mentioned

Mention Thumbnail
Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Grands modèles de langage : exploration des transformateurs - Partie 2
Shyam Ganesh S HackerNoon profile picture


Bonjour lecteurs, je suis ravi que vous me rejoigniez alors que nous plongeons dans le monde fascinant des grands modèles linguistiques (LLM). Le développement des LLM a suscité l’intérêt de personnes de divers domaines. Si vous êtes nouveau sur ce sujet, vous êtes au bon endroit. Dans ce blog, nous explorerons les transformateurs, leurs composants, leur fonctionnement et bien plus encore.


Prêt à commencer? Allons-y !

Transformateurs en PNL

Les modèles de transformateur sont un type de modèle de réseau neuronal d'apprentissage profond qui est largement utilisé dans les tâches de traitement du langage naturel (NLP). Les modèles de transformateur sont experts dans l'apprentissage du contexte des données d'entrée données sous forme de séquence et dans la génération de nouvelles données à partir de celles-ci. Ces dernières années, les transformateurs ont été utilisés comme modèles de base dans de nombreux grands modèles linguistiques (LLM) .

Histoire des transformateurs

L'architecture du transformateur a été présentée en juin 2017 dans l'article « Attention Is All You Need ». Après l’introduction des transformateurs, le domaine de la PNL a considérablement évolué autour de l’architecture des transformateurs. De nombreux grands modèles linguistiques (LLM) et modèles pré-entraînés ont été lancés avec un transformateur comme épine dorsale. Voyons un bref aperçu de l'évolution des transformateurs dans le domaine de la PNL.


Histoire des transformateurs. (Crédits image : HuggingFace)

En juin 2018, le premier GPT (Generative Pre-trained Transformers) basé sur un transformateur a été introduit. Plus tard dans la même année, BERT (Bi-directionnel Encoder Representations from Transformers) a été lancé. En février 2019, la version avancée de GPT, c'est-à-dire GPT-2 , a été lancée par OpenAI. La même année, de nombreux modèles pré-entraînés, comme XLM et RoBERTa , ont été mis en place, rendant le domaine de la PNL encore plus compétitif.


À partir de 2020, le domaine de la PNL est en plein essor avec le lancement de nombreux nouveaux modèles pré-entraînés. La croissance de ces modèles dépendait largement de l’architecture du transformateur. Les éléments ci-dessus ne sont que quelques représentants de la liste, alors que, dans des scénarios réels, il existe même de nombreux modèles développés sur l'architecture du transformateur.


Avant d'explorer la structure des transformateurs, comprenons d'abord quelques concepts de base.

Pré-formation

La pré-formation est un acte de formation d'un modèle d'apprentissage automatique (ML) à partir de zéro. La procédure de formation commence par randomiser initialement les poids du modèle. Au cours de cette phase, un corpus massif de données est introduit dans le modèle d’apprentissage. Généralement, cette phase de formation est coûteuse et prend du temps.

Pré-formation et mise au point. (Crédits image : Wikipédia)


Réglage fin

Le réglage fin est une procédure de formation effectuée sur un modèle pré-entraîné avec des informations spécifiques au domaine. Les modèles pré-entraînés ont acquis des connaissances approfondies, ce qui les rend moins adaptés à des domaines spécifiques. Au cours de ce processus, le modèle pré-entraîné est ré-entraîné, mais avec un coût réduit puisqu'il a déjà appris certains concepts.


Pour effectuer un réglage fin sur un modèle pré-entraîné, nous utilisons la technique de l'apprentissage par transfert. L'apprentissage par transfert est une méthode d'apprentissage automatique dans laquelle un modèle applique les connaissances acquises dans un cas d'utilisation pour prédire les inférences dans un autre cas d'utilisation.

Encodeur

Un encodeur dans un transformateur prend la séquence de données en entrée et génère une séquence de vecteurs pour la séquence d'entrée donnée. Les modèles d'encodeurs y parviennent en utilisant les couches d'auto-attention qu'ils contiennent. Nous discuterons de ces couches d’auto-attention plus en détail plus tard.


Ces modèles sont fréquemment décrits comme ayant une attention « bidirectionnelle » et sont souvent appelés modèles à codage automatique. Les modèles d'encodeurs sont principalement utilisés dans la classification de phrases et la reconnaissance d'entités nommées (NER).

Les modèles à encodeur uniquement sont des modèles de transformateur qui n'ont que des encodeurs dans leur architecture. Ils sont très efficaces dans des cas d'utilisation comme la classification de texte, où le modèle vise à comprendre la représentation sous-jacente du texte.


Encodeur et décodeur. (Crédits image : Moyen)


Décodeur

Un décodeur dans un transformateur prend une séquence de vecteurs en entrée et produit une séquence de jetons de sortie. Ces jetons de sortie sont les mots du texte généré. Comme les encodeurs, les décodeurs utilisent également de nombreuses couches d’auto-attention. Le pré-entraînement des modèles de décodeur tourne généralement autour de la prédiction du mot suivant dans la phrase. Ces modèles sont les mieux adaptés aux tâches impliquant la génération de texte.

Les modèles avec décodeur uniquement sont des modèles de transformateur qui n'ont que des décodeurs dans leur architecture. Ils sont très efficaces pour la génération de texte. Les décodeurs sont spécialisés dans la génération de jetons de sortie (texte). La traduction automatique et le résumé de texte sont quelques cas d'utilisation dans lesquels les modèles uniquement décodeurs excellent.

Couches d'attention

Les couches d'auto-attention du transformateur permettent au modèle d'apprendre les dépendances à longue portée entre les mots du texte d'entrée.

En d’autres termes, cette couche demandera au modèle d’accorder plus d’attention à des mots spécifiques dans le texte d’entrée donné.

Pour ce faire, le modèle calcule le score de similarité entre les paires de texte dans la séquence d'entrée. La couche utilise ensuite ce score pour calculer les poids du vecteur d'entrée. La sortie de ces couches correspond aux vecteurs d’entrée pondérés.


Maintenant que vous avez une idée des concepts de base des encodeurs, des décodeurs et des couches d’attention, plongeons-nous dans l’architecture des transformateurs.


Architecture des transformateurs

La structure d'un modèle de transformateur ressemble à l'image ci-dessous.


Architecture du transformateur. (Crédits image : HuggingFace)


Les encodeurs sont placés sur le côté gauche et les décodeurs sont placés sur le côté droit. Les encodeurs acceptent la séquence de texte en entrée et produisent une séquence de vecteurs en sortie, qui sont transmises en entrée aux décodeurs. Les décodeurs généreront une séquence de jetons de sortie. Les encodeurs sont empilés avec des couches d’auto-attention.


Chaque couche prend un vecteur d'entrée et renvoie un vecteur d'entrée pondéré basé sur le mécanisme d'auto-attention, dont nous avons déjà parlé. La somme pondérée est le résultat de la couche d’auto-attention.


Le décodeur contient également une pile de couches d'auto-attention et un réseau neuronal récurrent (RNN). Les couches d'auto-attention fonctionnent de la même manière que les encodeurs, mais le RNN se chargera de convertir la somme pondérée des vecteurs en jetons de sortie. Par conséquent, il devrait être clair maintenant que le RNN accepte les vecteurs pondérés en entrée et génère les jetons de sortie en sortie. En termes simples, les jetons de sortie sont les mots présents dans la phrase de sortie.


Pour avoir une compréhension des transformateurs au niveau du code, j'apprécierais que vous jetiez un œil à cette implémentation PyTorch de Transformers .


Conclusion

Les transformateurs ont révolutionné le domaine de l'intelligence artificielle (IA) et du traitement du langage naturel (NLP) en excellant dans la gestion de grandes quantités de données. Des modèles phares tels que les séries BERT de Google et GPT d'OpenAI présentent leur effet transformateur sur les moteurs de recherche et la génération de texte.


Par conséquent, ils sont devenus essentiels dans l’apprentissage automatique moderne, repoussant les limites de l’IA et créant de nouvelles opportunités de progrès technologique. En conséquence, ils sont devenus indispensables dans l’apprentissage automatique moderne, repoussant les limites de l’IA et ouvrant de nouvelles voies en matière de progrès technologiques.


Bon apprentissage!


Les références

Reportez-vous aux autres articles de cette série sur les grands modèles linguistiques (LLM) :