Description
Mamba introduit une nouvelle architecture de modèle d'espace d'états (SSM) qui aborde les limitations des modèles subquadratiques précédents dans le traitement des données denses en information, telles que la modélisation du langage. Elle s'appuie sur les progrès des modèles d'espace d'états structurés, en intégrant une conception efficace et adaptée au matériel, inspirée par FlashAttention. Cette approche permet à Mamba d'atteindre des performances prometteuses, en faisant une alternative compétitive aux architectures Transformer.
Lire la suite
Le cœur de Mamba réside dans sa couche SSM sélective, détaillée dans la Section 3 et l'Algorithme 2 du papier associé. Cette couche est intégrée dans le bloc d'architecture Mamba, servant de module principal au sein du dépôt. L'implémentation est optimisée pour l'efficacité, en exploitant des techniques qui permettent une modélisation de séquence en temps linéaire.
Mamba propose différentes versions, notamment Mamba, Mamba-2 et Mamba-3, chacune avec des implémentations et des configurations de paramètres spécifiques. Mamba-3, par exemple, introduit des capacités améliorées de modélisation de séquence utilisant les principes de l'espace d'états et prend en charge les modes MIMO (Multiple-Input Multiple-Output). Le dépôt fournit le code pour ces blocs, ainsi que des exemples d'utilisation dans PyTorch, démontrant comment les intégrer dans des modèles personnalisés.
Pour une application pratique, Mamba fournit des modèles pré-entraînés disponibles sur Hugging Face, couvrant une gamme de tailles allant de 130M à 2,8 milliards de paramètres. Ces modèles sont entraînés sur de grands ensembles de données comme The Pile et SlimPajama. Le dépôt comprend également des scripts pour les évaluations zero-shot à l'aide de la bibliothèque lm-evaluation-harness, permettant aux utilisateurs de comparer les performances des modèles sur diverses tâches NLP. Des scripts d'inférence sont également fournis pour tester la latence et le débit de génération avec différentes stratégies d'échantillonnage.
L'audience cible de Mamba comprend les chercheurs et les développeurs travaillant sur le traitement du langage naturel, la modélisation de séquences et l'apprentissage profond. Son efficacité et ses performances le rendent adapté aux tâches nécessitant le traitement de longues séquences où les Transformers traditionnels pourraient devenir prohibitivement coûteux en calcul. Le projet est open-source, encourageant les contributions de la communauté et le développement futur.
- CatégorieModèles d'IA et LLM
- Modèle tarifaireOpen source
- DéploiementCloud, Auto-hébergé
- PlateformesLinux
Fonctionnalités principales de Architecture Mamba SSM
Architecture de modèle d'espace d'états sélectif (SSM)
Conception adaptée au matériel pour une implémentation efficace
Capacités de modélisation de séquence en temps linéaire
Implémentations des blocs Mamba, Mamba-2 et Mamba-3
Prise en charge de l'intégration PyTorch
Modèles pré-entraînés disponibles sur Hugging Face
Scripts d'évaluation zero-shot utilisant lm-evaluation-harness
Scripts d'inférence pour la comparaison de la latence et du débit de génération
Prise en charge de l'entraînement en précision mixte (PyTorch AMP)
Prise en charge ROCm pour les GPU AMD
Premiers pas avec Architecture Mamba SSM
Installer PyTorch et CUDA : Assurez-vous d'avoir une version compatible de PyTorch et le toolkit CUDA installés.
Installer le package Mamba : Utilisez pip pour installer le package Mamba principal et ses dépendances.
Intégrer les blocs Mamba : Importez les modules Mamba dans votre code PyTorch pour la construction du modèle.
Charger les modèles pré-entraînés : Utilisez Hugging Face pour télécharger et charger les modèles Mamba pré-entraînés.
Exécuter les évaluations : Employez les scripts lm-evaluation-harness pour évaluer les performances du modèle sur les tâches NLP.
Effectuer l'inférence : Utilisez les scripts fournis pour générer du texte et comparer la vitesse d'inférence.
Cas d'utilisation de Architecture Mamba SSM
- Modélisation du Langage
- Modélisation de Séquences
- Données Denses en Information
- Recherche en Apprentissage Profond
- Traitement du Langage Naturel








