paint-brush
L'algorithme de transformateur avec la complexité temporelle optimale la plus faible possiblepar@thomascherickal
1,104 lectures
1,104 lectures

L'algorithme de transformateur avec la complexité temporelle optimale la plus faible possible

par Thomas Cherickal17m2024/05/26
Read on Terminal Reader

Trop long; Pour lire

Il y a eu des progrès incroyables dans les transformateurs comme DPO, LoRa, etc. Mais l'algorithme de base du transformateur a également été amélioré ! Nous allons voir les transformateurs fonctionner à un tout autre niveau. L’ampleur de ces découvertes ne peut être surestimée ! C'est révolutionnaire.
featured image - L'algorithme de transformateur avec la complexité temporelle optimale la plus faible possible
Thomas Cherickal HackerNoon profile picture
0-item
1-item


Comparaison d'Attention, Mamba, Jamba et xLSTM

Prologue

Nous parlons uniquement de complexité temporelle dans cet article – délibérément.


Pour la complexité spatiale, reportez-vous à mon article sur les transformateurs 1 bit, disponible ici :

Introduction

Nous nous dirigeons vers l’avenir en ce qui concerne la technologie de l’IA générative et les algorithmes derrière les grands modèles linguistiques ne font pas exception. Dans cet article, nous allons aborder trois des développements les plus passionnants récemment dans le domaine de l’IA générative et en parler en détail. L’un d’eux a également atteint la complexité temporelle optimale pour exécuter un grand algorithme de modèle de langage. En d'autres termes, un développement récent est devenu l'algorithme de transformateur LLM le plus rapide possible - il n'est, d'après nos modèles actuels, pas possible d'aller plus vite que cela en ce qui concerne la complexité temporelle asymptotique, sauf par des optimisations en temps constant. Parce que nous avons affaire à des centaines de milliards de paramètres, l’accélération des constantes peut être assez importante ! J'espère que vous êtes aussi excité que moi car ce sera une aventure passionnante !


L'algorithme actuel - le transformateur basé sur l'attention

Tout le monde connaît le papier phare de 2017 Attention, c'est tout ce dont vous avez besoin, mais je vais quand même le résumer afin que les nouveaux arrivants aient une idée plus claire de ce dont nous parlons.


Voici le lien vers le document de recherche :

L'attention est tout ce dont vous avez besoin

Extrait de l'introduction du papier :

Les réseaux de neurones récurrents, la mémoire à long terme et les réseaux de neurones récurrents fermés en particulier, ont été solidement établis comme approches de pointe dans les problèmes de modélisation de séquences et de transduction tels que la modélisation du langage et la traduction automatique.


Depuis, de nombreux efforts ont continué à repousser les limites des modèles de langage récurrents et des architectures codeur-décodeur.


Les modèles récurrents prennent généralement en compte le calcul en fonction des positions des symboles des séquences d'entrée et de sortie.


En alignant les positions sur les étapes du temps de calcul, ils génèrent une séquence d’états cachés ℎ𝑡, en fonction de l’état caché précédent ℎ𝑡−1 et de l’entrée pour la position 𝑡.


Cette nature intrinsèquement séquentielle exclut la parallélisation au sein des exemples d'entraînement, ce qui devient critique pour des séquences plus longues, car les contraintes de mémoire limitent le traitement par lots entre les exemples.


Des travaux récents ont permis d'améliorer considérablement l'efficacité du calcul grâce à des astuces de factorisation et au calcul conditionnel, tout en améliorant également les performances du modèle dans ce dernier cas.


La contrainte fondamentale du calcul séquentiel demeure cependant.


Les mécanismes d'attention sont devenus partie intégrante de modèles de modélisation de séquence et de transduction convaincants dans diverses tâches, permettant la modélisation des dépendances sans tenir compte de leur distance dans les séquences d'entrée ou de sortie.


Cependant, dans la plupart des cas, ces mécanismes d’attention sont utilisés conjointement avec un réseau récurrent.


Dans ce travail, nous proposons le Transformer, une architecture de modèle évitant la récurrence et s'appuyant entièrement sur un mécanisme d'attention pour établir des dépendances globales entre l'entrée et la sortie.


Le Transformer permet une parallélisation nettement supérieure et peut atteindre un nouvel état de l'art en matière de qualité de traduction après avoir été formé pendant seulement douze heures sur huit GPU P100.


Et comme nous le savons, les transformateurs GPT-1, GPT-2, GPT-3 et GPT 3.5 ont rapidement révolutionné à jamais l’IA générative.


Soudain, les machines pouvaient parler un anglais apparemment humain.


C’était le diagramme classique qui dominait les articles et les bulletins d’information sur la recherche au cours des deux années suivantes :

L'architecture du transformateur séminal.


Puis GPT-4 est sorti – et la vie ne sera plus jamais la même.


Nous avions franchi un point critique.


Mais ces transformateurs étaient coûteux, lents à former et difficiles à déployer en raison de leurs coûts d’exploitation extrêmement élevés.


La complexité temporelle de l'algorithme Transformer était quadratique, ou O(n*n) où n était le nombre de paramètres d'entrée .


Pour un modèle de transformateur standard avec 𝐿 couches, la complexité temporelle de l'algorithme d'inférence est 𝑂( L*n*n*d ) où L était le nombre de couches, n le nombre de jetons d'entrée et d la profondeur du transformateur .


Cela semblait être l’état de la technique – pendant un certain temps.


La quantification a été introduite dans un autre article dès 2021, et cela semblait être le prochain mécanisme de pointe (voir la section Prélude ).


Mais bientôt nous étions sur le point d’avoir un autre concurrent.


Bienvenue dans l'algorithme Mamba

Voici le document de recherche pertinent :



Mamba : modélisation de séquences temporelles linéaires avec des espaces d'états sélectifs


Extrait du résumé du document de recherche :


Les modèles de base, qui alimentent désormais la plupart des applications passionnantes du deep learning, sont presque universellement basés sur l'architecture Transformer et son module d'attention principal.


De nombreuses architectures à temps subquadratique telles que l'attention linéaire, les modèles de convolution fermée et récurrents et les modèles d'espace d'état structuré (SSM) ont été développées pour remédier à l'inefficacité de calcul des Transformers sur de longues séquences, mais elles n'ont pas été aussi performantes que l'attention portée aux modalités importantes telles que comme langage.


Nous identifions qu'une des principales faiblesses de ces modèles est leur incapacité à effectuer un raisonnement basé sur le contenu et apportons plusieurs améliorations.


Premièrement, le simple fait de laisser les paramètres SSM être des fonctions de l'entrée corrige leur faiblesse avec des modalités discrètes, permettant au modèle de propager ou d'oublier sélectivement les informations le long de la dimension de longueur de séquence en fonction du jeton actuel.


Deuxièmement, même si ce changement empêche l’utilisation de convolutions efficaces, nous concevons un algorithme parallèle sensible au matériel en mode récurrent.


Nous intégrons ces SSM sélectifs dans une architecture de réseau neuronal simplifiée de bout en bout sans attention ni même blocs MLP (Mamba).


Mamba bénéficie d'une inférence rapide (débit 5 fois supérieur à celui des Transformers) et d'une mise à l'échelle linéaire de la longueur des séquences, et ses performances s'améliorent sur les données réelles jusqu'à des séquences d'une longueur d'un million.


En tant qu'épine dorsale du modèle de séquence général, Mamba atteint des performances de pointe dans plusieurs modalités telles que le langage, l'audio et la génomique.


En matière de modélisation du langage, notre modèle Mamba-3B surpasse les Transformers de même taille et correspond à des Transformers deux fois plus grands, à la fois en pré-entraînement et en évaluation en aval.

SuSoudain



Soudain, nous avons eu un nouveau concurrent en ville !


Les principaux avantages de l’algorithme Mamba-transformateur étaient :



  1. Architecture hybride :

    Mamba combine les couches Transformer et Mamba, permettant des performances améliorées et un débit plus élevé tout en conservant une empreinte mémoire gérable.


  2. Défis abordés :

    • Efficacité de la mémoire et du calcul : Mamba a répondu aux exigences élevées en matière de mémoire et de calcul des Transformers, en particulier pour les contextes longs.

    • État récapitulatif : contrairement à Transformers, Mamba fournissait un état récapitulatif unique, permettant une inférence plus rapide.


  3. Détails architecturaux :

    • Couches de transformateur : Mamba a incorporé des couches de transformateur.
    • Couches Mamba : Mamba introduit des couches de modélisation d'espace d'état (SSM), qui gèrent efficacement les contextes longs.
    • Mélange d'experts (MoE) : Mamba utilise les couches MoE pour augmenter la capacité du modèle sans augmenter de manière significative les besoins de calcul.


  4. Performance :

    Mamba a fonctionné de manière comparable aux modèles existants comme Mixtral-8x7B et Llama-2 70B, tout en prenant en charge des longueurs de contexte allant jusqu'à 256 000 jetons.


  5. Efficacité : le débit de Mamba était 3 fois supérieur à celui de Mixtral-8x7B pour les contextes longs, et il s'intégrait dans un seul GPU même avec des contextes volumineux.


L'architecture Mamba représente une avancée significative dans les grands modèles de langage, combinant les atouts des approches Transformer et SSM.


Cependant, au fur et à mesure que les tests se poursuivaient, il s’est avéré que l’algorithme Mamba n’était pas un candidat approprié pour tous les cas d’utilisation.


En particulier, l’algorithme Mamba a lamentablement échoué lorsqu’il lui a été présenté avec l’ensemble de données IMDB.


Cependant, l’architecture était toujours à la pointe de la technologie et s’est avérée extrêmement utile dans les cas d’utilisation de la vision.


Vous pouvez voir une implémentation en Python ici :


Et c'est une excellente explication de l'algorithme Mamba avec la théorie également fournie.

Et voici l'implémentation standard de Mamba dans PyPI :


L’algorithme Mamba a fait son temps et constitue toujours un domaine de recherche très actif. Un successeur est rapidement apparu, mais nous garderons le meilleur pour la fin.


Passons au prochain concurrent : l'algorithme xLSTM.


L'algorithme xLSTM

Vous pouvez vous référer au document de recherche ici :

xLSTM : mémoire étendue à long terme et à court terme - arXiv .


Extrait du résumé du document de recherche :

Dans les années 1990, le carrousel d’erreurs constantes et le déclenchement ont été introduits comme idées centrales de la mémoire à long terme et à court terme (LSTM).


Depuis, les LSTM ont résisté à l’épreuve du temps et ont contribué à de nombreuses réussites en matière d’apprentissage profond, ils ont notamment constitué les premiers Large Language Models (LLM).


Cependant, l’avènement de la technologie Transformer, basée sur l’auto-attention parallélisable, a marqué l’aube d’une nouvelle ère, dépassant les LSTM à grande échelle.


Nous soulevons maintenant une question simple : jusqu'où pouvons-nous aller dans la modélisation du langage en adaptant les LSTM à des milliards de paramètres, en tirant parti des dernières techniques des LLM modernes, mais en atténuant les limitations connues des LSTM ?


Tout d’abord, nous introduisons le déclenchement exponentiel avec des techniques de normalisation et de stabilisation appropriées.


Deuxièmement, nous modifions la structure de la mémoire LSTM, obtenant :


(i) sLSTM avec une mémoire scalaire, une mise à jour scalaire et un nouveau mixage de mémoire,


(ii) mLSTM entièrement parallélisable avec une mémoire matricielle et une règle de mise à jour de covariance.


L'intégration de ces extensions LSTM dans des backbones de blocs résiduels produit des blocs xLSTM qui sont ensuite empilés de manière résiduelle dans des architectures xLSTM.


Le déclenchement exponentiel et les structures de mémoire modifiées renforcent les capacités de xLSTM pour fonctionner favorablement par rapport aux transformateurs et aux modèles d'espace d'état de pointe, à la fois en termes de performances et de mise à l'échelle.


xLSTM était un nouveau lever de soleil pour le modèle LSTM


L’algorithme LSTM (Long Short-Term Memory) était très utile à l’époque et a connu son lot de succès.


Le xLSTM utilisait le même modèle mais dans une architecture totalement différente.


C’était la principale innovation, résumée dans ce schéma du document de recherche :


Les principaux avantages du xLSTM étaient :


Avantages de xLSTM par rapport à l'algorithme Transformer :

  1. Gestion des longues séquences :

    • xLSTM a été spécialement conçu pour gérer de longues séquences grâce à ses mécanismes de contrôle qui contrôlaient le flux d'informations. Cela l'a rendu plus efficace dans la capture des dépendances à long terme dans les données séquentielles par rapport au LSTM traditionnel.




  2. Efficacité informatique :

    • xLSTM pourrait être plus efficace sur le plan informatique pour certaines tâches, en particulier lorsqu'il s'agit de jeux de données plus petits ou lorsque la longueur de la séquence n'est pas excessivement grande.

    • Les transformateurs, en revanche, nécessitaient des ressources de calcul importantes en raison de leur mécanisme d’auto-attention, qui évoluait quadratiquement avec la longueur de la séquence.




  3. Utilisation de la mémoire :

    • xLSTM nécessitait généralement moins de mémoire que Transformers.

    • Le mécanisme d'auto-attention de Transformers nécessitait de stocker de grandes matrices d'attention, ce qui pouvait être gourmand en mémoire, en particulier pour les longues séquences.


  4. Stabilité de la formation :

    • xLSTM pourrait être plus stable pendant l'entraînement en raison de sa nature récurrente et des mécanismes de déclenchement qui ont contribué à atténuer le problème du gradient de disparition.

    • Les transformateurs, bien que puissants, pouvaient parfois être plus difficiles à entraîner et auraient pu nécessiter un réglage minutieux des hyperparamètres et des techniques de régularisation.


  5. Simplicité et Interprétabilité :

    • Les modèles xLSTM pourraient être plus simples à comprendre et à interpréter que les Transformers.

    • La nature récurrente des LSTM facilite le suivi du flux d'informations à travers le réseau, alors que les mécanismes d'attention des Transformers pourraient être plus abstraits et plus difficiles à interpréter.


  6. Performances sur de petits ensembles de données :

    • xLSTM pourrait mieux fonctionner sur de petits ensembles de données ou lorsque les données étiquetées étaient limitées.

    • Les transformateurs nécessitaient généralement de grandes quantités de données pour atteindre leur plein potentiel, ce qui faisait de xLSTM un meilleur choix dans les scénarios où la disponibilité des données était limitée.

      .

  7. Données séquentielles :

    • Pour certains types de données séquentielles, telles que les séries chronologiques ou certains types de tâches de traitement du langage naturel, xLSTM aurait pu offrir de meilleures performances en raison de sa conception inhérente à la gestion des séquences.


Cependant, il était important de noter que les Transformers présentaient leurs propres avantages, tels que de meilleures capacités de parallélisation, des performances supérieures sur de grands ensembles de données et des résultats de pointe dans de nombreuses tâches NLP.


Le choix entre xLSTM et Transformer doit être basé sur les exigences et contraintes spécifiques de la tâche à accomplir.


Vous pouvez voir une implémentation de xLSTM dans PyTorch ici :


Vous pouvez voir une explication détaillée de xLSTM ici :

Voici un bon résumé de son état actuel :





Mais il y a eu un successeur à Mamba qui a atteint le Saint Graal : la complexité temporelle optimale pour un algorithme LLM.


Jamba - le successeur de Mamba qui l'a battu haut la main !


Le document de recherche peut être consulté ici :

Jamba : un modèle de langage hybride Transformer-Mamba


Extrait du résumé du document de recherche :


Nous présentons Jamba, un nouveau modèle de langage de grande base basé sur une nouvelle architecture hybride de mélange d'experts (MoE) Transformer-Mamba.


Plus précisément, Jamba entrelace des blocs de couches Transformer et Mamba, bénéficiant ainsi des avantages des deux familles de modèles.


MoE est ajouté dans certaines de ces couches pour augmenter la capacité du modèle tout en gardant l'utilisation des paramètres actifs gérable.


Cette architecture flexible permet des configurations spécifiques aux ressources et aux objectifs.


Dans la configuration particulière que nous avons implémentée, nous nous retrouvons avec un modèle puissant qui tient dans un seul GPU de 80 Go.


Construit à grande échelle, Jamba offre un débit élevé et une faible empreinte mémoire par rapport aux Transformers Vanilla, et en même temps des performances de pointe sur les tests de référence de modèles de langage standard et les évaluations de contexte long.


Remarquablement, le modèle présente des résultats solides pour une longueur de contexte allant jusqu'à 256 000 jetons.


Nous étudions diverses décisions architecturales, telles que la manière de combiner les couches Transformer et Mamba, et la manière de mélanger les experts, et montrons que certaines d'entre elles sont cruciales dans la modélisation à grande échelle.


Nous décrivons également plusieurs propriétés intéressantes de ces architectures que la formation et l'évaluation de Jamba ont révélées, et prévoyons de publier des points de contrôle lors de diverses opérations d'ablation, afin d'encourager une exploration plus approfondie de cette nouvelle architecture.


Nous rendons les poids de notre implémentation de Jamba accessibles au public sous une licence permissive.



L'implémentation est disponible sur le référentiel HuggingFace ici :


Modèle : https://huggingface.co/ai21labs/Jamba-v0.1



  1. Comparaison avec d'autres modèles :


En résumé, l'architecture hybride de Jamba combine les atouts des couches Transformers et Mamba, ce qui se traduit par des performances et une évolutivité impressionnantes.


Le schéma clé à retenir est celui présenté dans ce document de recherche ci-dessus :



L'entrelacement des modèles Mamba et Transformer conduit à une incroyable augmentation de la complexité temporelle, qui est magnifiquement résumée dans l'article ci-dessous :


Mamba et Jamba – expliqués simplement

  • Auteur : Nimrita Koul

  • Date : 1 avril 2024


  • Résumé :

    • Jamba est le premier modèle de langage étendu basé sur Mamba de qualité production introduit par AI21.


    • Il combine les atouts des architectures Transformer et Mamba.


      • Les modèles basés sur des transformateurs ont du mal avec les longues séquences en raison de la complexité de leur temps de formation de O(n²) .


      • L'architecture Mamba offre une complexité de temps de formation linéaire ( O(n) ) et un temps d'inférence constant ( O(1) ).


      • Mamba est basé sur l'architecture State Space Model (SSM).


      • Les SSM utilisent des variables d'état pour décrire un système à l'aide d'équations différentielles ou de différence.


      • L'approche hybride de Mamba vise à répondre aux limites des modèles existants.



Vous pouvez lire l'article entier ici:

Mamba et Jamba — Simplement expliqué , par Nimrita Koul, sur Medium.com.


La limite optimale a été atteinte !

Le point clé à noter ici est que, pour la formation, l'algorithme doit examiner chaque jeton d'entrée au moins une fois, ce qui donne une complexité temporelle de O(n).


De plus, la vitesse la plus rapide possible que l'inférence puisse prendre pour n'importe quel modèle LLM est O(1) - temps constant, indépendant de la longueur des jetons (une réussite incroyable) !


Ces deux limites ont été atteintes dans le cas de l’algorithme Jamba !


Ainsi, en termes d'améliorations à temps constant - qui peuvent encore être très élevées (ces chiffres se comptent en centaines de milliards) :


Jamba a atteint la limite optimale de complexité temporelle pour un algorithme de transformateur !


Dans les conditions système données, à moins qu’une nouvelle technologie ne soit introduite (informatique quantique, n’importe qui), nous ne pouvons tout simplement pas avoir une complexité temporelle asymptotique plus rapide !


Ce qui est un résultat très significatif !


Jamba est l'algorithme de transformateur le plus prometteur à ce jour !


L'annonce officielle des laboratoires A121 :

Un autre bon article sur Medium sur Jamba :

L'une des meilleures implémentations de Jamba disponibles actuellement :


Encore une fois, le modèle Jamba du HuggingFace Hub :

Conclusion

Jamba atteint ainsi la complexité temporelle ultime qui peut être atteinte par un algorithme de transformateur de courant sous le système existant, jusqu'à une variation de niveau constante. Répéter; les constantes peuvent être très grandes, car elles sont de l’ordre de centaines de milliards de termes ! Il s’agit néanmoins d’une réussite substantielle. Et il n'y a pas de limites à la recherche à ce sujet, en particulier lorsqu'elle est combinée avec le DPO (optimisation des préférences directes) et la quantification - voir l'épilogue pour en savoir plus.

Pour l’instant, il n’y a littéralement aucune limite !


Épilogue:


Il y a un côté à cela sur lequel personne ne semble travailler ouvertement.


Les modèles Mamba, xLSTM et Jamba peuvent-ils être quantifiés avec une précision de 1 bit ?


Bien sûr!


J'ai hâte de voir les améliorations de performances de Mamba et Jamba une fois quantifiées sur un bit ! Ou 1,58 bits {-1, 0, 1 }.


Encore une fois, consultez cet article pour plus de détails :


https://hackernoon.com/why-1-bit-transformers-will-change-the-world


L’avenir de cette technologie va être incroyablement excitant !


Que la joie et le plaisir de travailler dans ce domaine restent toujours avec vous !


Acclamations!


Des moments passionnants à venir !


Les références:

Autres que ceux explicitement mentionnés dans l’article ci-dessus :

  1. Transformer-XL : modèles de langage attentifs au-delà d'un contexte de longueur fixe
  2. Longformer : le transformateur de documents longs
  3. Reformer : le transformateur efficace
  4. Linformer : l'auto-attention avec une complexité linéaire
  5. Modèles spatiaux d'états : un cadre général pour la modélisation des données de séries chronologiques
  6. S4 : Modélisation de séquences avec des espaces d'états structurés
  7. Sur l'efficacité informatique des grands modèles de langage
    • Auteurs anonymes. (Année non précisée). [Sur l'efficacité informatique des grands modèles linguistiques] (URL non fournie).
  8. Transformateurs efficaces : une enquête
  9. Quantification et formation des réseaux de neurones pour une inférence efficace uniquement en arithmétique entière
  10. Q-BERT : quantification de BERT à très faible précision basée sur la toile de jute
  11. BERT : Pré-formation de transformateurs bidirectionnels profonds pour la compréhension du langage
  12. GPT-3 : les modèles linguistiques sont des apprenants rares
  13. RoBERTa : une approche de pré-formation BERT robustement optimisée
  14. ALBERT : Un BERT léger pour l'apprentissage auto-supervisé des représentations linguistiques
  15. T5 : Explorer les limites de l'apprentissage par transfert avec un transformateur texte-texte unifié
  16. DistilBERT, une version distillée de BERT : plus petite, plus rapide, moins chère et plus légère




Et n'oubliez pas la complexité spatiale ! Presque tout aussi important !


Pour le prologue et l'épilogue

Pour la quantification, cet article vaut vraiment la peine d'être lu :

  1. Document de recherche - BitNet : Mise à l'échelle des transformateurs 1 bit pour les grands modèles de langage :

    • Résumé : La taille croissante des grands modèles de langage a posé des défis de déploiement et soulevé des inquiétudes quant à l'impact environnemental en raison de la forte consommation d'énergie. Dans ce travail, nous introduisons BitNet , une architecture Transformer 1 bit évolutive et stable conçue pour les grands modèles de langage. Plus précisément, nous introduisons BitLinear en remplacement de la couche nn.Linear pour entraîner des poids de 1 bit à partir de zéro. Les résultats expérimentaux sur la modélisation du langage montrent que BitNet atteint des performances compétitives tout en réduisant considérablement l'empreinte mémoire et la consommation d'énergie par rapport aux méthodes de quantification 8 bits de pointe et aux lignes de base du transformateur FP16. De plus, BitNet présente une loi de mise à l'échelle semblable à celle des Transformers de pleine précision , ce qui suggère son potentiel pour une mise à l'échelle efficace vers des modèles de langage encore plus grands tout en conservant les avantages en termes d'efficacité et de performances.

      Lire le document de recherche complet


      https://arxiv.org/abs/2310.11453



Et le modèle sur HuggingFace :

  1. Référentiel de visages câlins - BitNet b1.58-3B quantifié :


Une chose à propos de l’avenir : ce sera passionnant !