En présentant la profondeur hybride, la nouvelle conception de DeepMind peut considérablement améliorer l'efficacité du transformateur.
L'importance de Transformer va sans dire. De nombreuses équipes de recherche travaillent actuellement à l'amélioration de cette technologie révolutionnaire. L'une des orientations d'amélioration importantes consiste à améliorer l'efficacité de Transformer, par exemple en lui donnant des capacités informatiques adaptatives. quant à Cela évite les calculs inutiles. Comme Illiya Polosukhin, l'une des proposantes de l'architecture Transformer et co-fondatrice du protocole NEAR, l'a déclaré il n'y a pas si longtemps lors d'une conversation avec Jen-Hsun Huang : « L'informatique adaptative est ce qui doit apparaître ensuite. faites attention, en particulier, à la quantité de ressources informatiques qui seront dépensées pour résoudre le problème ? » . Il devrait en être de même pour la modélisation du langage Afin d'obtenir des résultats de prédiction précis, il n'est pas nécessaire d'investir le même temps ou les mêmes ressources pour tous les jetons et séquences. Cependant, le modèle Transformer dépense la même quantité de calcul pour chaque jeton lors d'une passe directe. Cela fait déplorer les gens : la plupart des calculs sont inutiles ! Idéalement, si vous ne pouvez pas effectuer de calculs inutiles, vous pouvez réduire le budget de calcul du Transformer. Le calcul conditionnel est une technique qui effectue des calculs uniquement lorsqu'ils sont nécessaires, réduisant ainsi le montant total des calculs. De nombreux chercheurs ont déjà proposé divers algorithmes permettant d’évaluer le moment où les calculs sont effectués et la quantité de calculs utilisée. Cependant, pour ce problème difficile, les formes de solution couramment utilisées peuvent ne pas bien gérer les limitations matérielles existantes, car elles ont tendance à introduire des graphiques de calcul dynamiques. Au lieu de cela, les méthodes de calcul conditionnel les plus prometteuses pourraient être celles qui utilisent de manière cohérente la pile matérielle actuelle, en donnant la priorité à l'utilisation de graphiques de calcul statiques et de tailles de tenseurs connues choisies en fonction de l'utilisation maximale du matériel. Récemment, Google DeepMind a étudié ce problème. Ils espèrent utiliser un budget informatique inférieur pour réduire la quantité de calcul utilisée par Transformer. Titre de l'article : Mélange de profondeurs : allocation dynamique de calcul dans des modèles de langage basés sur des transformateurs
- Adresse de l'article : https://arxiv.org/pdf/2404.02258.pdf
Ils envisagent : dans chaque couche, le réseau doit apprendre à prendre des décisions pour chaque jeton, allouant ainsi dynamiquement le budget informatique disponible. Dans leur implémentation spécifique, l'effort de calcul total est défini par l'utilisateur avant la formation et n'est jamais modifié, plutôt que d'être fonction des décisions prises pendant le fonctionnement du réseau. Cela permet d'anticiper et d'exploiter à l'avance les gains d'efficacité matérielle (tels qu'une empreinte mémoire réduite ou une réduction des FLOP par passage direct). Les expériences de l'équipe montrent que ces gains peuvent être obtenus sans compromettre les performances globales du réseau.
Cette équipe de DeepMind adopte une approche similaire au transformateur Mixed Expert (MoE), où les décisions de routage dynamiques au niveau des jetons sont effectuées sur toute la profondeur du réseau. Contrairement au MoE, leur choix ici est le suivant : soit appliquer le calcul au jeton (identique au transformateur standard), soit le contourner via une connexion résiduelle (rester le même, enregistrer le calcul) . Une autre différence par rapport au MoE est que ce mécanisme de routage est utilisé à la fois pour l'attention MLP et multi-têtes. Par conséquent, cela affecte également les clés et les requêtes gérées par le réseau, de sorte que la route décide non seulement quels jetons sont mis à jour, mais également quels jetons sont disponibles pour attention. DeepMind a nommé cette stratégie Mixture-of-Depths (MoD) pour souligner le fait que chaque jeton passe par un nombre différent de couches ou de modules à la profondeur du transformateur. Nous le traduisons ici par « profondeur de mélange », voir Figure 1. MoD aide les utilisateurs à peser performances et vitesse. D'une part, les utilisateurs peuvent former le MoD Transformer avec les mêmes FLOP de formation qu'un Transformer classique, ce qui peut apporter jusqu'à 1,5 % d'amélioration de l'objectif final de formation de log-probabilité.Le MoD Transformer, en revanche, utilise moins de calculs pour obtenir la même perte d'entraînement qu'un Transformer classique : jusqu'à 50 % de FLOP en moins par passe avant. Ces résultats montrent que MoD Transformer peut apprendre à router intelligemment (c'est-à-dire éviter les calculs inutiles). Mise en œuvre d'un transformateur à profondeur mixte (MoD) En résumé, la stratégie est la suivante :
- Fixer un budget de calcul statique inférieur à l'équivalent conventionnel. Le montant de calcul requis par Transformer ; l'approche consiste à limiter le nombre de jetons dans la séquence qui peuvent participer aux calculs du module (c'est-à-dire le module d'auto-attention et le MLP ultérieur). Par exemple, un Transformer standard peut autoriser tous les jetons de la séquence à participer aux calculs d'auto-attention, mais le MoD Transformer peut limiter l'utilisation de seulement 50 % des jetons de la séquence.
- Pour chaque token, il y a un algorithme de routage dans chaque module qui donne un poids scalaire ; ce poids représente la préférence de routage pour chaque token - que ce soit pour participer au calcul du module ou pour le contourner.
- Dans chaque module, trouvez les k plus grands poids scalaires, et leurs jetons correspondants participeront au calcul de ce module. Puisque seuls k tokens doivent participer au calcul de ce module, son graphe de calcul et sa taille de tenseur sont statiques pendant le processus d'entraînement ; ces tokens sont des tokens dynamiques et liés au contexte reconnus par l'algorithme de routage ;
L'équipe a considéré deux schémas de routage appris (voir Figure 2) : la sélection de jetons et la sélection d'experts. Dans le schéma de routage sélectif des jetons, l'algorithme de routage génère une distribution de probabilité pour chaque jeton sur les chemins de calcul (comme entre les identités d'experts dans MoE Transformer). Les jetons sont ensuite envoyés vers leur chemin préféré (c'est-à-dire le chemin avec la probabilité la plus élevée), et la perte auxiliaire garantit que tous les jetons ne convergent pas vers le même chemin. Le routage sélectif des jetons peut poser des problèmes d'équilibrage de charge, car il n'est pas garanti que les jetons soient correctement répartis entre les chemins possibles. Le routage sélectif expert inverse le schéma ci-dessus : au lieu de laisser les jetons choisir leurs chemins préférés, chaque chemin sélectionne les k premiers jetons (top-k) en fonction des préférences des jetons. Cela garantit un équilibrage de charge parfait puisque chaque chemin est toujours garanti d'avoir k jetons. Cependant, cela peut également conduire à un traitement excessif ou insuffisant de certains jetons, car certains jetons peuvent se trouver dans les k premiers chemins multiples et d'autres jetons peuvent n'avoir aucun chemin correspondant. Le choix de DeepMind est d'utiliser un routage sélectif par des experts pour trois raisons. Tout d’abord, cela ne nécessite aucune perte d’équilibre auxiliaire. Deuxièmement, puisque l'opération de sélection du top k dépend de l'ampleur du poids de routage, ce schéma de routage permet l'utilisation de poids de routage relatifs, ce qui aide à déterminer quels jetons sont les plus nécessaires pour le calcul du module actuel ; L'algorithme de routage peut définir le poids de manière appropriée pour essayer de garantir que le jeton le plus critique figure parmi les k premiers - c'est quelque chose que le schéma de routage sélectif des jetons ne peut pas faire. Dans le cas d'utilisation spécifique, il existe un chemin de calcul qui est essentiellement une opération nulle, il convient donc d'éviter de router les jetons importants vers null. Troisièmement, puisque le routage ne passera que par deux chemins, une seule opération top-k peut diviser efficacement le jeton en deux ensembles mutuellement exclusifs (un ensemble pour chaque chemin de calcul), qui peuvent faire face aux problèmes mentionnés ci-dessus. ou des problèmes de sous-traitement. Pour la mise en œuvre spécifique de ce schéma de routage, veuillez vous référer au document original. Bien que le routage sélectif par les experts présente de nombreux avantages, il présente également un problème évident : les opérations top-k ne sont pas causales. C'est-à-dire que le fait que le poids de routage d'un jeton donné se trouve dans le top k dépend de la valeur du poids de routage qui le suit, mais nous ne pouvons pas obtenir ces poids lors d'un échantillonnage autorégressif. Pour résoudre ce problème, l'équipe a testé deux méthodes. La première consiste à introduire une simple perte auxiliaire ; la pratique a prouvé que son impact sur l'objectif principal de la modélisation du langage est de 0,2 % à 0,3 %, mais elle permet au modèle d'échantillonner de manière autorégressive. Ils ont utilisé une perte d'entropie croisée binaire, où la sortie de l'algorithme de routage fournit le logit, et en sélectionnant le top-k de ces logits, la cible peut être fournie (c'est-à-dire 1 si un jeton est dans le top-k, sinon 0).La deuxième méthode consiste à introduire un petit prédicteur MLP auxiliaire (tout comme un autre algorithme de routage), dont l'entrée est la même que celle de l'algorithme de routage (avec gradient d'arrêt), mais sa sortie est un résultat de prédiction : jeton Que ce soit dans le top-k de la séquence. Cette approche n’affecte pas les objectifs de modélisation du langage, et les expériences montrent qu’elle n’affecte pas de manière significative la vitesse de cette étape. Avec ces nouvelles méthodes, il est possible d'effectuer un échantillonnage autorégressif en sélectionnant le jeton vers lequel être acheminé, ou de contourner un module en fonction de la sortie de l'algorithme de routage, sans s'appuyer sur aucune information sur les futurs jetons. Les résultats expérimentaux montrent qu'il s'agit d'une tâche auxiliaire relativement simple qui peut rapidement atteindre une précision de 99 %. Formation, comparaison isoFLOPTout d'abord, l'équipe a formé certains modèles avec un budget FLOP relativement faible (6e18) pour déterminer les hyperparamètres optimaux (voir Figure 3 ci-dessous) . Dans l'ensemble, vous pouvez voir que le transformateur MoD fait glisser la courbe isoFLOP de base vers le coin inférieur droit. En d’autres termes, le transformateur MoD optimal présente des pertes inférieures à celles du modèle de base optimal et possède également plus de paramètres. Cet effet a une conséquence heureuse : il existe des modèles MoD qui fonctionnent aussi bien, voire mieux, que le modèle de base optimal (tout en étant plus rapides en étapes), même s'ils ne sont pas eux-mêmes isoFLOP-optimaux selon leurs paramètres d'hyperparamètres. Par exemple, une variante du MoD avec 220 M de paramètres (modèle n° 3 sur la figure 3) est légèrement meilleure que le modèle de base optimal isoFLOP (également 220 M de paramètres, modèle n° 1 sur la figure 3), mais cette variante du MoD est Les étapes pendant la formation sont plus de 60 % plus rapide. La figure 4 ci-dessous montre l'analyse isoFLOP lorsque le total des FLOP est de 6e18, 2e19 et 1e20. Comme on peut le constater, la tendance se poursuit lorsque le budget FLOP est plus important. La figure 5 ci-dessous montre la décision de routage d'un transformateur MoD formé à l'aide du module de routage entrelacé. Malgré le grand nombre de bypass de modules, ce MoD Transformer atteint toujours de meilleures performances que le Transformer classique. Évaluation autorégressiveIls ont également évalué les performances d'échantillonnage autorégressif des variantes du MoD, et les résultats sont présentés dans la figure 6 ci-dessous. Ces résultats démontrent que les économies de calcul réalisées par le MoD Transformer ne se limitent pas au cadre de formation. Profondeur et expertise mixtes (MoDE) La technologie MoD peut être naturellement intégrée aux modèles MoE pour former ce que l'on appelle les modèles MoDE. La figure 7 ci-dessous illustre MoDE et les améliorations qu'il apporte. MoDE est disponible en deux variantes : Staged MoDE et Integrated MoDE. Le MoDE par étapes consiste à effectuer des opérations de contournement de routage ou d'atteindre des jetons avant l'étape d'auto-attention ; tandis que le MoDE intégré implémente le routage MoD en intégrant des experts « sans opération » entre des experts MLP réguliers. L’avantage du premier est qu’il permet aux jetons de sauter l’étape d’auto-attention, tandis que l’avantage du second est que son mécanisme de routage est simple. L'équipe a remarqué qu'il est nettement préférable de mettre en œuvre MoDE de manière intégrée plutôt que de réduire directement la capacité des experts et de s'appuyer sur l'élimination des jetons pour mettre en œuvre des conceptions de routage résiduelles. 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!