cours
Introduction à l'architecture Mamba LLM : Un nouveau paradigme dans l'apprentissage automatique
Les modèles linguistiques sont un type de modèle d'apprentissage automatique formé pour effectuer une distribution de probabilité sur le langage naturel. Leur architecture se compose principalement de plusieurs couches de réseaux neuronaux, telles que des couches récurrentes, des couches d'anticipation, des couches d'intégration et des couches d'attention. Ces couches se combinent pour traiter un texte d'entrée donné et générer des prédictions de sortie.
Fin 2023, des chercheurs de Carnegie Mellon et de l'université de Princeton ont publié un document de recherche révélant une nouvelle architecture pour les grands modèles de langage (LLM) appelée Mamba. Mamba est une nouvelle architecture de modèle d'espace d'état qui s'intéresse à la modélisation des séquences. Il a été développé pour répondre à certaines limitations des modèles de transformateurs , en particulier pour le traitement de longues séquences, et a montré des performances prometteuses.
Explorons l'architecture de Mamba LLM et son importance dans l'apprentissage automatique.
Qu'est-ce que Mamba ?
Mamba est une nouvelle architecture LLM qui intègre le modèle de séquence d'espace d'état structuré (S4) pour gérer de longues séquences de données. En combinant les meilleures caractéristiques des modèles récurrents, convolutifs et à temps continu, S4 peut simuler efficacement les dépendances à long terme. Cela lui permet de traiter des données échantillonnées de manière irrégulière, d'avoir un contexte non limité et de maintenir une efficacité de calcul tout au long de la formation et des tests.
S'appuyant sur le paradigme S4, Mamba apporte plusieurs améliorations notables, notamment en ce qui concerne la gestion des opérations variables dans le temps. Son architecture s'articule autour d'un mécanisme de sélection spécial qui modifie les paramètres du modèle d'espace d'état structuré (SSM) en fonction de l'entrée.
Par conséquent, Mamba peut réussir à filtrer les données moins importantes en se concentrant uniquement sur les informations cruciales au sein des séquences. Selon Wikipedia, "le modèle passe d'un cadre invariant dans le temps à un cadre variable dans le temps, ce qui a un impact à la fois sur le calcul et l'efficacité du système".
Principales caractéristiques et innovations
L'écart de Mamba par rapport à l'attention conventionnelle et aux blocs MLP le distingue. Cette simplification permet d'obtenir un modèle plus léger, plus rapide et qui s'adapte linéairement à la longueur de la séquence, ce qui est un exploit qu'aucun de ses prédécesseurs n'a réussi à accomplir.
Les principaux éléments de Mamba sont les suivants :
- Espaces d'état sélectifs (SSM) : Les modèles récurrents, qui traitent l'information de manière sélective en fonction de l'entrée actuelle, sont la base des SSM Mamba. Cela leur permet de filtrer les données superflues et de se concentrer sur les informations pertinentes, ce qui peut se traduire par un traitement plus efficace.
- Architecture simplifiée : Mamba remplace les blocs d'attention et de MLP complexes de Transformers par un bloc SSM unique et cohérent. Il s'agit d'accélérer l'inférence et de réduire la complexité informatique.
- Le parallélisme en fonction du matériel : Mamba peut être encore plus performant parce qu'il utilise un mode récurrent avec un algorithme parallèle créé spécialement pour l'efficacité matérielle.
Un autre élément clé est l'invariance temporelle linéaire (LTI), qui est l'une des caractéristiques essentielles des modèles S4. Cette caractéristique suggère que les paramètres du modèle restent constants à tous les pas de temps, ce qui maintient la cohérence de la dynamique du modèle. La construction de modèles de séquences est plus facile et plus efficace avec la LTI, qui est la base de la récurrence et des convolutions.
Détails de l'architecture de Mamba LLM
L'architecture de Mamba souligne encore l'importance des progrès réalisés dans le domaine de l'apprentissage automatique. Il modifie la façon dont les modèles traitent les séquences en introduisant une couche de modèle d'espace d'état sélectionné (SSM). Cela permet à Mamba de faire deux choses extrêmement importantes :
- Se concentrer sur les informations pertinentes - Mamba peut donner la priorité à des données plus prédictives pour la tâche en attribuant un poids différent à chaque entrée.
- Adaptation dynamique aux entrées - Grâce à la capacité du modèle à s'adapter aux entrées, Mamba peut facilement gérer différents travaux de modélisation de séquences.
En conséquence, Mamba peut traiter des séquences avec une efficacité inégalée, ce qui en fait le choix idéal pour les tâches impliquant de longues séquences de données.
La philosophie de conception de Mamba est basée sur une prise de conscience des capacités matérielles contemporaines. Il est conçu pour exploiter au maximum la puissance de calcul du GPU, ce qui garantit.. :
- Utilisation optimisée de la mémoire : La réduction des temps de transmission des données et l'accélération du traitement sont obtenues en concevant l'expansion de l'état de Mamba de manière à ce qu'elle s'intègre dans la mémoire à large bande passante (HBM) des GPU.
- Traitement parallèle optimisé : Mamba atteint un niveau de performance qui établit une nouvelle référence pour les modèles de séquence en coordonnant ses calculs avec la nature parallèle de l'informatique GPU.
Mamba vs Transformers
L'introduction de transformateurs, tels que le GPT-4, a révolutionné le domaine du traitement du langage naturel (NLP) et a permis d'établir des références pour plusieurs tâches liées au langage naturel. Les séquences plus longues sont depuis longtemps une épine dans le pied des transformateurs, car elles nuisent considérablement à leur efficacité.
C'est dans ce domaine que Mamba excelle. En effet, mamba peut traiter des séquences longues plus rapidement que les transformateurs, et ce plus simplement grâce à son architecture unique.
Architecture du transformateur
Les transformateurs sont très compétents pour travailler avec des séquences de données, telles que du texte pour les modèles de langage. Ils traitent simultanément des séquences complètes, contrairement aux modèles précédents qui traitaient les données de manière séquentielle. Cette caractéristique innée leur permet de saisir les relations complexes au sein des données.
Ils utilisent un mécanisme d'attention qui permet au modèle de se concentrer sur différents segments de séquence tout en générant des prédictions. Trois ensembles de poids sont utilisés pour calculer cette attention : les valeurs, les clés et les requêtes qui sont obtenues à partir des données d'entrée.
Chaque élément d'une séquence est pesé par rapport à tous les autres éléments afin d'indiquer le poids - ou l'"attention" - qu'il devrait avoir pour prévoir l'élément suivant de la série.
Les transformateurs comprennent deux blocs principaux : le décodeur, qui crée la sortie, et le codeur, qui traite les données d'entrée.
Le codeur se compose de plusieurs couches, chacune comportant deux sous-couches : un réseau de base, positionnel, entièrement connecté et un mécanisme d'auto-attention à têtes multiples. Pour faciliter la formation des réseaux profonds, les connexions résiduelles et la normalisation sont utilisées à chaque sous-couche.
Comme le codeur, le décodeur se compose de deux couches avec deux sous-couches, mais il ajoute également une troisième sous-couche qui gère l'attention de plusieurs têtes sur la sortie du codeur. La propriété autorégressive du décodeur est préservée en raison de la nature séquentielle du décodeur, qui limite les prédictions pour une position à la prise en compte des positions antérieures.
Ainsi, Transformers tente de résoudre le problème des longues séquences en utilisant des processus d'attention plus complexes, mais Mamba adopte une approche différente.
Architecture Mamba
Mamba tire parti des espaces d'état sélectifs. Cette méthode permet de résoudre les problèmes informatiques liés aux longues séquences de Transformers.
L'architecture de Mamba permet une inférence plus rapide et une mise à l'échelle linéaire de la longueur des séquences, créant ainsi un nouveau paradigme pour la modélisation des séquences qui pourrait s'avérer plus efficace à mesure que les séquences s'allongent.
Comme nous avons approfondi l'architecture de Mamba ci-dessus, nous n'y reviendrons pas ici.
Voici un graphique de Wikipedia pour mieux comprendre comment Mamba et Transformers se comparent :
Fonctionnalité |
Transformateur |
Mamba |
Architecture |
Basé sur l'attention |
Basé sur le SSM |
Complexité |
Haut |
Plus bas |
Vitesse d'inférence |
O(n) |
O(1) |
Vitesse d'entraînement |
O(n2) |
O(n) |
Il convient de noter que, malgré les nombreux avantages des SSM par rapport aux Transformers, ces derniers peuvent traiter des séquences beaucoup plus longues que celles que les SSM peuvent stocker en mémoire, ont besoin de beaucoup moins de données pour apprendre des tâches similaires et surpassent les SSM dans les tâches nécessitant l'extraction ou la copie du contexte d'entrée, même avec moins de paramètres.
Démarrer avec Mamba
Si vous souhaitez jouer avec Mamba ou l'utiliser dans un projet, vous devez disposer des éléments suivants :
- Linux
- GPU NVIDIA
- PyTorch 1.12+
- CUDA 11.6+
Pour installer les paquets requis à partir du dépôt Mamba, utilisez quelques instructions pip simples :
- [Option]
pip install causal-conv1d>=1.2.0
: une implémentation efficace d'une simple couche Conv1d causale utilisée à l'intérieur du bloc Mamba. pip install mamba-ssm
: l'ensemble des fonctionnalités de Mamba.
Il peut également être construit à partir des sources avec pip install .
de ce dépôt.
Si les versions de PyTorch posent des problèmes de compatibilité, pip
peut être utilisé avec l'interrupteur --no-build-isolation
pour vous aider. Ces modèles ont été entraînés sur de grands ensembles de données tels que les ensembles de données Pile et SlimPajama et ont été construits pour répondre à diverses exigences de calcul et à des critères de performance.
Le modèle Mamba comporte plusieurs niveaux d'interface, mais le module principal est le bloc d'architecture Mamba qui enveloppe le SSM sélectif.
Une fois que tout est installé, vous pouvez l'utiliser comme suit :
# Source: Mamba Repository
import torch
from mamba_ssm import Mamba
batch, length, dim = 2, 64, 16
x = torch.randn(batch, length, dim).to("cuda")
model = Mamba(
# This module uses roughly 3 * expand * d_model^2 parameters
d_model=dim, # Model dimension d_model
d_state=16, # SSM state expansion factor
d_conv=4, # Local convolution width
expand=2, # Block expansion factor
).to("cuda")
y = model(x)
assert y.shape == x.shape
Applications de Mamba
L'introduction du LLM Mamba constitue un changement potentiel important dans l'espace de l'architecture LLM. Plus rapide, plus efficace et plus évolutif, Mamba traite sans effort de longues séquences avec des normes de performance élevées, ce qui explique pourquoi il est appelé à jouer un rôle essentiel dans l'élaboration de l'avenir des systèmes d'IA sophistiqués.
En effet, la prochaine vague d'innovations en matière d'IA pourrait être portée par l'efficacité et la performance de Mamba, qui ouvre la voie à la création de modèles et d'applications de plus en plus complexes. Son influence potentielle est énorme, englobant les applications de traitement du son et de la parole, l'analyse de textes longs, la création de contenu, la traduction linguistique en temps réel, etc.
Les secteurs d'activité qui pourraient être révolutionnés sont les suivants :
- Soins de santé : Mamba pourrait accélérer le processus de développement de médicaments personnalisés en analysant rapidement les données génétiques.
- Finances : Mamba peut être déployé pour analyser les tendances à long terme du marché, ce qui permet d'établir des prévisions plus précises concernant les actions.
- Service à la clientèle : Mamba a la capacité d'alimenter des chatbots qui surveillent les discussions de longue durée, améliorant ainsi la communication avec les clients.
Le chemin à parcourir pour Mamba
Mamba se distingue comme un phare innovant qui montre la voie vers de nouvelles opportunités pour résoudre des problèmes complexes de modélisation de séquences. Ses débuts constituent une étape vers des systèmes plus intelligents, plus évolutifs et plus efficaces, capables de comprendre et de traiter des séquences d'une profondeur inégalée jusqu'à présent.
Bien que Mamba se soit avéré être une étape technique importante, son succès ne dépend pas uniquement de ses capacités technologiques - la recherche collaborative, les ressources partagées et les contributions à code source ouvert jouent un rôle essentiel :
- Contributions à code source ouvert : Des modèles plus résistants et plus adaptables peuvent résulter de l'encouragement des chercheurs et des développeurs à contribuer à la base de code Mamba.
- Ressources partagées : La communauté peut accélérer les progrès en mettant en commun ses connaissances et ses ressources et en partageant des modèles pré-entraînés.
- Recherche collaborative : Les collaborations entre les institutions universitaires et les entreprises peuvent élargir les capacités de Mamba.
Conclusion
Mamba ne se contente pas d'apporter une amélioration incrémentale aux modèles de séquence actuels ; il redéfinit ce qui est possible. Avec son introduction, l'histoire de l'intelligence artificielle connaîtra un nouveau chapitre dans lequel les inefficacités informatiques et les restrictions de longueur de séquence deviendront enfin obsolètes.
Au cours des dernières années, nous avons assisté à l'évolution de l'IA, des RNN aux Transformers et maintenant à Mamba, chaque étape se rapprochant de la réalisation d'une IA capable d'une pensée profonde et d'un traitement de l'information comparables à ceux des humains. Mamba incarne l'esprit révolutionnaire qui fait avancer le domaine de l'IA grâce à son approche de l'espace d'état sélectionné et à sa mise à l'échelle en temps linéaire.
Mamba marque le début d'une évolution prometteuse dans le domaine de l'intelligence artificielle. Il s'agit d'un paradigme conçu pour l'avenir et qui, grâce à son potentiel illimité, aura un impact considérable sur l'IA.
Pour poursuivre votre apprentissage, consultez le site :
Commencez votre parcours LLM dès aujourd'hui !
cours
Introduction aux LLM en Python
cours