Maison >Périphériques technologiques >IA >Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

王林
王林original
2024-06-13 14:06:09822parcourir

La multiplication et le tri fonctionnent également.

Depuis sa proposition en 2017, Transformer est devenue l'architecture dominante pour les grands modèles d'IA et s'est fermement positionnée en position C.

Cependant, ce que tous les chercheurs doivent admettre, c'est que le Transformer fonctionne extrêmement mal dans les tâches arithmétiques, même si elles sont additionnées, et ce défaut provient en grande partie de l'incapacité du Transformer à suivre avec précision chaque chiffre dans une large plage de nombres.

Afin de résoudre ce problème, des chercheurs de l'Université du Maryland, de la CMU et d'autres institutions ont lancé un défi. Ils ont résolu ce problème en ajoutant une intégration à chaque nombre qui code la position du nombre par rapport au début. L'étude a révélé qu'il ne fallait qu'une journée pour entraîner des nombres à 20 chiffres sur un seul GPU afin d'atteindre des performances de pointe, avec une précision allant jusqu'à 99 % sur le problème d'addition à 100 chiffres.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Adresse papier : https://arxiv.org/pdf/2405.17399

Adresse du projet : https://github.com/mcleish7/arithmetic

Titre : Les transformateurs peuvent faire de l'arithmétique avec les bonnes intégrations

Spécifique En particulier, les chercheurs ont suggéré qu’une simple modification de l’affichage du tableau de données pourrait résoudre cette lacune. Ils ont proposé des intégrations Abacus pour coder la position dans la plage de chaque jeton de symbole numérique. En utilisant les intégrations Abacus en conjonction avec les intégrations positionnelles standard, l'étude a observé des améliorations significatives de la précision du transformateur sur les tâches arithmétiques, de sorte que les modèles formés avec des opérandes de 20 chiffres seulement peuvent être adaptés aux problèmes avec des opérandes de 120 chiffres. Ce nombre représente un facteur d'échelle SOTA de 6x, comparé au précédent facteur d'échelle de pointe de seulement 2,5x. Il est entendu qu’il s’agit de la plus longue séquence d’apprentissage par addition démontrée à ce jour.

En plus d'étudier l'optimisation des performances de Transformer en arithmétique et en généralisation, cet article explore également plusieurs autres méthodes pour améliorer les performances de Transformer. Ils ont découvert qu'ils pouvaient réduire l'erreur de généralisation de 50 % par rapport à la ligne de base d'intégration d'Abacus en insérant des connexions sautées entre la couche d'injection d'entrée et chaque couche de décodeur. L'article révèle également que l'architecture Transformer en boucle utilisée conjointement avec les intégrations peut permettre une généralisation presque parfaite du problème d'addition.

Les contributions de cet article peuvent être résumées comme suit :

  • Cet article propose une nouvelle intégration positionnelle, appelée intégration Abacus, pour mieux capturer l'importance de chaque nombre, obtenant ainsi une généralisation intra-distribution presque parfaite

  •  ;
  • La recherche montre que lorsque les intégrations Abacus sont combinées avec une injection d'entrée et des transformateurs en boucle, les performances sont encore améliorées, avec une précision hors distribution augmentant de 92,9 % à 99,1 % et une réduction des erreurs par rapport aux intégrations utilisant uniquement une architecture standard de 87 % ;

  • Les chercheurs ont étendu ces résultats à des problèmes plus complexes, notamment la multiplication et le tri, et ont également démontré une généralisation des longueurs dans ces domaines.

Implémentation de la généralisation de longueur de l'addition

Les auteurs ont étudié une série de méthodes visant à améliorer les performances arithmétiques des modèles de langage formés à partir de zéro. Ils se concentrent principalement sur deux hypothèses : 1) les informations de position des chiffres individuels dans un nombre sont perdues ; 2) le bouclage peut améliorer la capacité de raisonnement de l'architecture Transformer sur des problèmes de raisonnement arithmétique en plusieurs étapes ; Les auteurs discutent brièvement des paramètres de formation et d’évaluation avant de décrire chaque amélioration en détail.

Configuration expérimentale

Les auteurs ont formé un modèle de langage causal contenant uniquement le décodeur pour résoudre le problème d'addition.

Ils ont considéré deux architectures de transformateur standards. Premièrement, ils utilisent un modèle de transformateur autorégressif standard avec plusieurs couches de décodeur empilées de manière anticipée. Deuxièmement, ils augmentent ce modèle de transformateur standard avec une injection d'entrée, qui ajoute des intégrations à l'entrée de chaque couche de décodeur. Les auteurs décrivent visuellement ces architectures dans la figure 20.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

L'intégration d'Abacus aide à aligner les nombres

Grâce à des recherches antérieures et à des expériences préliminaires, l'auteur a découvert que même si les nombres saisis sont affichés avec les nombres les moins importants en premier, les données d'entraînement sont hiérarchiques et riches (des centaines de milliers d'exemples), il est également difficile pour les transformateurs standards d'apprendre l'addition à plusieurs chiffres. Ils ont également observé que lorsque les humains effectuent de longues opérations d’addition, ils organisent d’abord les nombres comportant le même chiffre en colonnes. Par conséquent, la première hypothèse de l'auteur est que les chiffres de chaque nombre ne sont pas facilement représentables pour le transformateur, et que ce sous-problème pose un obstacle plus important que l'addition elle-même.

Pour remédier aux limites du transformateur dans la représentation des informations de position, les auteurs ont conçu une intégration de position spéciale qui code la position de chaque nombre par rapport à la position de départ du nombre actuel. Les auteurs appellent cela l’intégration d’Abacus. Ils appliquent la même intégration positionnelle à tous les nombres comportant le même chiffre, fournissant un signal explicite que le modèle peut utiliser pour aligner les nombres, comme le montre la figure 2.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

L'intégration d'Abacus résout les problèmes d'addition

Pour les architectures de transformateur standard, l'intégration d'Abacus améliore les performances de généralisation à 100 bits et plus. Dans la figure 3 (à gauche), les auteurs mettent en évidence l'avantage comparatif des intégrations Abacus par rapport aux architectures et intégrations de transformateurs standard lors de l'exécution d'opérations additives, en prenant la précision moyenne dans tous les cas des trois modèles.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

La figure 1 montre également les résultats de précision pour les modèles de transformateurs standard formés avec FIRE et Abacus, qui ont été testés dans le domaine (ID) et hors domaine (OOD). Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Les boucles dans Transformer améliorent les performances

Après avoir résolu le problème d'intégration positionnelle, l'auteur a ensuite exploré si l'architecture de boucle pouvait encore améliorer la capacité du transformateur à effectuer une addition à plusieurs chiffres. Ils utilisent le terme « bloc récurrent » pour désigner un ensemble de couches de décodeur avec des poids différents, et « récurrence » fait référence au nombre de fois que le bloc récurrent est répété. Les auteurs utilisent le terme profondeur effective pour désigner le nombre de couches utilisées dans un transformateur, que leurs poids soient ou non uniques. Sauf indication contraire, ils utilisent une architecture à boucle maximale, qui parcourt uniquement une couche unique pour atteindre une profondeur efficace. Ils ont également utilisé l'injection d'entrée et les connexions résiduelles pour propager une copie de l'entrée à chaque couche du réseau.

Avantages des boucles

Dans la figure 3 (à droite), les auteurs comparent toutes les variantes architecturales utilisant les intégrations FIRE et NoPE pour les ajouts de formation avec des opérandes jusqu'à 40 bits. Bien que le nombre de paramètres ne représente que 1/10 de celui des autres modèles, nous pouvons voir que le transformateur en boucle (en boucle, avec injection d'entrée et perte progressive) atteint les meilleures performances hors distribution lors de l'utilisation de tout type d'intégration positionnelle. Dans la figure 8, les auteurs démontrent la robustesse de ce résultat sur diverses tailles de données de formation.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Pour les modèles récurrents, vous pouvez choisir de modifier le nombre de boucles pour chaque passe avant pendant l'entraînement. Cela tend à améliorer la capacité de généralisation du modèle à des tâches plus difficiles lors des tests, également appelées calcul de perte progressive. Cette fonction de perte est une combinaison convexe des valeurs de perte de deux passes avant, l'une utilisant un nombre littéral de cycles (16 pour le modèle 1 × 16) et l'autre utilisant un nombre de cycles aléatoirement plus petit.

Ensuite, les auteurs explorent l'effet de la modification de la taille du bloc de boucle tout en gardant la profondeur effective fixe. Ils ont réduit de moitié le nombre de couches dans le bloc de boucles et doublé le nombre de boucles, passant d'un modèle avec 16 couches dans le bloc et un seul nombre de boucles (16 × 1, le transformateur standard) à un modèle avec une seule couche dans le bloc. et nombre de boucles Il existe des modèles 16 fois (1 × 16).

En analysant ces résultats via la figure 4, les auteurs ont constaté que dans certains cas, la combinaison de boucles et d'intégrations Abacus peut encore améliorer les performances. Plus précisément, sur le problème OOD, le modèle à deux cycles (8 × 2) a produit la moitié de l'erreur du modèle purement acyclique (16 × 1), tandis que sur le problème OOD avec 100+, sa précision était également légèrement supérieure.

Enfin, en annexe A.7.3, les auteurs font varier la profondeur effective du modèle pour analyser l'impact du nombre de paramètres sur cette tâche, y compris les intégrations Abacus, FIRE et NoPE. Bien que les expériences de la figure 4 constituent une comparaison équitable de différentes profondeurs, le modèle de transformateur standard pur comporte beaucoup plus de paramètres que le modèle de boucle correspondant. Dans le tableau 3 en annexe, les auteurs enregistrent les quantités de paramètres au million le plus proche.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Expérience

Les chercheurs ont non seulement exploré les problèmes d'addition, mais aussi la multiplication et le tri.

Multiplication d'entiers

La figure 5 montre que le modèle d'intégration d'Abacus surpasse les travaux précédents en termes de précision sur une distribution de multiplications à 15 chiffres sans remplir chaque opérande avec des zéros de la même longueur. En particulier, l'étude souligne que la combinaison des intégrations Abacus avec FIRE améliore également la précision sur les problèmes de distribution les plus difficiles (en bas à droite) par rapport à la ligne de base utilisant FIRE seul.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Tri par tableau

Le Tableau 1 montre les performances d'un transformateur standard (huit couches) entraîné avec différentes intégrations – FIRE, Abacus et leur combinaison. Les résultats montrent que la méthode d'intégration combinée améliore la capacité de généralisation du modèle.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Comme le montre le tableau 2, nous avons observé des résultats mitigés lors de l'association de la combinaison d'intégration Abacus+FIRE avec différentes architectures de modèles (profondeur effective 8).

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Abacus et intégrations associées

La figure 6 illustre le potentiel réel de l'intégration des intégrations Abacus dans des systèmes plus généraux, montrant que les intégrations Abacus combinées à FIRE peuvent débloquer des capacités de résolution de problèmes bien au-delà de celles des intégrations FIRE.

Après une journée de formation sur un seul GPU, Transformer peut atteindre une précision de 99 % en additionnant des nombres à 100 chiffres.

Pour plus de détails sur la recherche, veuillez vous référer à l'article original.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn