Intelligence artificielle
Grands modèles de langage basés sur un décodeur : un guide complet
grands modèles linguistiques (LLM) ont révolutionné le domaine du traitement du langage naturel (NLP) en démontrant des capacités remarquables à générer des textes de type humain, à répondre aux questions et à aider dans un large éventail de tâches liées au langage. Au cœur de ces modèles puissants se trouve le architecture de transformateur pour décodeur uniquement, une variante de l'architecture originale du transformateur proposée dans l'article fondateur «L'attention est tout ce dont vous avez besoin» de Vaswani et al.
Dans ce guide complet, nous explorerons le fonctionnement interne des LLM basés sur un décodeur, en approfondissant les éléments de base, les innovations architecturales et les détails de mise en œuvre qui ont propulsé ces modèles à l'avant-garde de la recherche et des applications en PNL.
L'architecture du transformateur : un rappel
Avant de plonger dans les spécificités des LLM basés sur un décodeur, il est essentiel de revisiter l'architecture du transformateur, la base sur laquelle ces modèles sont construits. Le transformateur a introduit une nouvelle approche de la modélisation de séquence, s'appuyant uniquement sur des mécanismes d'attention pour capturer les dépendances à longue portée dans les données, sans avoir besoin de couches récurrentes ou convolutives.
L'architecture originale du transformateur se compose de deux composants principaux : un encodeur et un décodeur. L'encodeur traite la séquence d'entrée et génère une représentation contextualisée, qui est ensuite consommée par le décodeur pour produire la séquence de sortie. Cette architecture a été initialement conçue pour les tâches de traduction automatique, où l'encodeur traite la phrase saisie dans la langue source et le décodeur génère la phrase correspondante dans la langue cible.
L'attention personnelle : la clé du succès de Transformer
Au coeur de la transformateur réside le mécanisme d’auto-attention, une technique puissante qui permet au modèle de peser et d’agréger les informations provenant de différentes positions dans la séquence d’entrée. Contrairement aux modèles de séquence traditionnels, qui traitent les jetons d'entrée de manière séquentielle, l'auto-attention permet au modèle de capturer les dépendances entre n'importe quelle paire de jetons, quelle que soit leur position dans la séquence.
L’opération d’auto-attention peut se décomposer en trois étapes principales :
- Projections de requêtes, de clés et de valeurs: La séquence d'entrée est projetée dans trois représentations distinctes : requêtes (Q), clés (K), et valeurs (V). Ces projections sont obtenues en multipliant les entrées avec des matrices de poids apprises.
- Calcul du score d'attention: Pour chaque position dans la séquence d'entrée, les scores d'attention sont calculés en prenant le produit scalaire entre le vecteur de requête correspondant et tous les vecteurs clés. Ces scores représentent la pertinence de chaque poste par rapport au poste en cours de traitement.
- Somme pondérée des valeurs: Les scores d'attention sont normalisés à l'aide d'une fonction softmax, et les poids d'attention résultants sont utilisés pour calculer une somme pondérée des vecteurs de valeurs, produisant la représentation de sortie pour la position actuelle.
L'attention multi-têtes, une variante du mécanisme d'auto-attention, permet au modèle de capturer différents types de relations en calculant les scores d'attention sur plusieurs « têtes" en parallèle, chacun avec son propre ensemble de projections de requêtes, de clés et de valeurs.
Variantes et configurations architecturales
Bien que les principes fondamentaux des LLM basés sur un décodeur restent cohérents, les chercheurs ont exploré diverses variantes et configurations architecturales pour améliorer les performances, l'efficacité et les capacités de généralisation. Dans cette section, nous approfondirons les différents choix architecturaux et leurs implications.
Types d'architectures
Les LLM basés sur un décodeur peuvent être globalement classés en trois types principaux : codeur-décodeur, décodeur causal et décodeur de préfixe. Chaque type d'architecture présente des modèles d'attention distincts.
Architecture codeur-décodeur
Basée sur le modèle Vanilla Transformer, l'architecture encodeur-décodeur se compose de deux piles : un encodeur et un décodeur. L'encodeur utilise des couches d'auto-attention multi-têtes empilées pour encoder la séquence d'entrée et générer des représentations latentes. Le décodeur effectue ensuite une attention croisée sur ces représentations pour générer la séquence cible. Bien qu'efficaces dans diverses tâches de PNL, peu de LLM, tels que Flan-T5, adoptez cette architecture.
Architecture du décodeur causal
L'architecture du décodeur causal intègre un masque d'attention unidirectionnel, permettant à chaque jeton d'entrée de s'occuper uniquement des jetons passés et de lui-même. Les jetons d'entrée et de sortie sont traités dans le même décodeur. Des modèles notables comme GPT-1, GPT-2 et GPT-3 sont construits sur cette architecture, GPT-3 présentant de remarquables capacités d'apprentissage en contexte. De nombreux LLM, notamment OPT, BLOOM et Gopher, ont largement adopté des décodeurs causals.
Architecture du décodeur de préfixe
Également connue sous le nom de décodeur non causal, l'architecture du décodeur de préfixe modifie le mécanisme de masquage des décodeurs causals pour permettre une attention bidirectionnelle sur les jetons de préfixe et une attention unidirectionnelle sur les jetons générés. Comme l'architecture codeur-décodeur, les décodeurs de préfixe peuvent coder la séquence de préfixe de manière bidirectionnelle et prédire les jetons de sortie de manière autorégressive à l'aide de paramètres partagés. Les LLM basés sur des décodeurs de préfixe incluent GLM130B et U-PaLM.
Les trois types d'architecture peuvent être étendus à l'aide de mélange d'experts (MoE) technique de mise à l'échelle, qui active de manière éparse un sous-ensemble de poids de réseau neuronal pour chaque entrée. Cette approche a été utilisée dans des modèles tels que Switch Transformer et GLaM, l'augmentation du nombre d'experts ou de la taille totale des paramètres montrant des améliorations significatives des performances.
Transformateur décodeur uniquement : adopter la nature autorégressive
Alors que l'architecture originale du transformateur a été conçue pour des tâches séquence à séquence comme la traduction automatique, de nombreuses tâches NLP, telles que la modélisation du langage et la génération de texte, peuvent être présentées comme des problèmes autorégressifs, dans lesquels le modèle génère un jeton à la fois, conditionné par le jetons générés précédemment.
Entrez le transformateur décodeur uniquement, une variante simplifiée de l’architecture du transformateur qui ne conserve que le composant décodeur. Cette architecture est particulièrement adaptée aux tâches autorégressives, car elle génère les jetons de sortie un par un, en exploitant les jetons générés précédemment comme contexte d'entrée.
La principale différence entre le transformateur à décodeur uniquement et le décodeur à transformateur d'origine réside dans le mécanisme d'auto-attention. Dans le cadre du décodeur uniquement, l'opération d'auto-attention est modifiée pour empêcher le modèle de s'occuper des futurs jetons, une propriété connue sous le nom de causalité. Ceci est réalisé grâce à une technique appelée « auto-attention masquée », où les scores d'attention correspondant aux positions futures sont fixés à l'infini négatif, les masquant efficacement pendant l'étape de normalisation softmax.
Composants architecturaux des LLM basés sur un décodeur
Bien que les principes fondamentaux de l’auto-attention et de l’auto-attention masquée restent les mêmes, les LLM modernes basés sur un décodeur ont introduit plusieurs innovations architecturales pour améliorer les performances, l’efficacité et les capacités de généralisation. Explorons certains des composants et techniques clés utilisés dans les LLM de pointe.
Représentation d'entrée
Avant de traiter la séquence d'entrée, les LLM basés sur un décodeur utilisent des techniques de tokenisation et d'intégration pour convertir le texte brut en une représentation numérique adaptée au modèle.
tokenization: Le processus de tokenisation convertit le texte saisi en une séquence de jetons, qui peuvent être des mots, des sous-mots ou même des caractères individuels, selon la stratégie de tokenisation utilisée. Les techniques de tokenisation populaires pour les LLM incluent Byte-Pair Encoding (BPE), SentencePièce et WordPièce. Ces méthodes visent à trouver un équilibre entre la taille du vocabulaire et la granularité de la représentation, permettant au modèle de gérer efficacement les mots rares ou hors vocabulaire.
Intégrations de jetons: Après la tokenisation, chaque jeton est mappé à une représentation vectorielle dense appelée intégration de jeton. Ces intégrations sont apprises au cours du processus de formation et capturent les relations sémantiques et syntaxiques entre les jetons.
Intégrations positionnelles: Les modèles de transformateur traitent simultanément toute la séquence d'entrée, sans la notion inhérente de positions de jetons présente dans les modèles récurrents. Pour incorporer des informations de position, des intégrations de position sont ajoutées aux intégrations de jetons, permettant au modèle de distinguer les jetons en fonction de leurs positions dans la séquence. Les premiers LLM utilisaient des intégrations positionnelles fixes basées sur des fonctions sinusoïdales, tandis que des modèles plus récents ont exploré des intégrations positionnelles apprenables ou des techniques de codage positionnelles alternatives telles que les intégrations positionnelles rotatives.
Blocs d'attention multi-têtes
Les éléments de base des LLM basés sur un décodeur sont des couches d'attention multi-têtes, qui effectuent l'opération d'auto-attention masquée décrite précédemment. Ces couches sont empilées plusieurs fois, chaque couche s'occupant de la sortie de la couche précédente, permettant au modèle de capturer des dépendances et des représentations de plus en plus complexes.
Têtes d'attention: Chaque couche d'attention multi-têtes se compose de plusieurs « têtes d'attention », chacune avec son propre ensemble de projections de requêtes, de clés et de valeurs. Cela permet au modèle de s’occuper simultanément de différents aspects de l’entrée, capturant diverses relations et modèles.
Connexions résiduelles et normalisation des couches: Pour faciliter la formation de réseaux profonds et atténuer le problème du gradient de disparition, les LLM basés sur un décodeur utilisent des connexions résiduelles et des techniques de normalisation de couche. Les connexions résiduelles ajoutent l'entrée d'un calque à sa sortie, permettant aux dégradés de s'écouler plus facilement lors de la rétropropagation. La normalisation des couches aide à stabiliser les activations et les gradients, améliorant ainsi davantage la stabilité et les performances de l'entraînement.
Couches à action directe
En plus des couches d'attention multi-têtes, les LLM basés sur un décodeur intègrent des couches de rétroaction, qui appliquent un simple réseau neuronal de rétroaction à chaque position de la séquence. Ces couches introduisent des non-linéarités et permettent au modèle d'apprendre des représentations plus complexes.
Fonctions d'activation: Le choix de la fonction d'activation dans les couches de feed-forward peut avoir un impact significatif sur les performances du modèle. Alors que les premiers LLM reposaient sur l'activation ReLU largement utilisée, les modèles plus récents ont adopté des fonctions d'activation plus sophistiquées telles que l'unité linéaire d'erreur gaussienne (GELU) ou l'activation SwiGLU, qui ont montré des performances améliorées.
Attention clairsemée et transformateurs efficaces
Bien que le mécanisme d’auto-attention soit puissant, il s’accompagne d’une complexité de calcul quadratique en ce qui concerne la longueur de la séquence, ce qui le rend coûteux en termes de calcul pour les longues séquences. Pour relever ce défi, plusieurs techniques ont été proposées pour réduire les besoins de calcul et de mémoire liés à l'auto-attention, permettant ainsi un traitement efficace de séquences plus longues.
Attention clairsemée: Les techniques d'attention clairsemée, telles que celle utilisée dans le modèle GPT-3, s'intéressent sélectivement à un sous-ensemble de positions dans la séquence d'entrée, plutôt que de calculer les scores d'attention pour toutes les positions. Cela peut réduire considérablement la complexité des calculs tout en conservant des performances raisonnables.
Attention fenêtre coulissante: Introduite dans le modèle Mistral 7B, l'attention par fenêtre coulissante (SWA) est une technique simple mais efficace qui limite la durée d'attention de chaque jeton à une taille de fenêtre fixe. Cette approche exploite la capacité des couches de transformation à transmettre des informations sur plusieurs couches, augmentant ainsi efficacement la durée d'attention sans la complexité quadratique d'une pleine attention personnelle.
Cache de tampon roulant: Pour réduire davantage les besoins en mémoire, en particulier pour les longues séquences, le modèle Mistral 7B utilise un cache tampon roulant. Cette technique stocke et réutilise les vecteurs de clé et de valeur calculés pour une taille de fenêtre fixe, évitant ainsi les calculs redondants et minimisant l'utilisation de la mémoire.
Attention aux requêtes groupées: Introduite dans le modèle LLaMA 2, l'attention de requête groupée (GQA) est une variante du mécanisme d'attention multi-requêtes qui divise les têtes d'attention en groupes, chaque groupe partageant une matrice de clé et de valeur commune. Cette approche établit un équilibre entre l'efficacité de l'attention multi-requêtes et les performances de l'auto-attention standard, offrant des temps d'inférence améliorés tout en conservant des résultats de haute qualité.