1 points par GN⁺ 2023-12-21 | 1 commentaires | Partager sur WhatsApp

mamba-minimal

  • Présentation de mamba-minimal, une implémentation simple de Mamba en un seul fichier, écrite en PyTorch.
  • Fournit les mêmes sorties numériques que l’implémentation officielle, aussi bien en propagation avant qu’en rétropropagation.
  • Le code est simplifié, facile à lire et commenté.
  • N’inclut pas certaines fonctionnalités comme les optimisations de vitesse de l’implémentation officielle.
  • N’inclut pas d’initialisation appropriée des paramètres, mais celle-ci peut être ajoutée sans nuire à la lisibilité.

Demo

  • Fichier demo.ipynb montrant un exemple de complétion de prompt.
  • Fournit un exemple de génération de texte à l’aide du modèle Mamba et de AutoTokenizer.
  • Dans le texte généré en exemple, le mamba est décrit comme le serpent venimeux le plus long du monde.

References

  • L’architecture Mamba a été présentée dans l’article d’Albert Gu et Tri Dao, "Mamba: Linear-Time Sequence Modeling with Selective State Spaces".
  • L’implémentation officielle est disponible sur GitHub.

L’avis de GN⁺

  • mamba-minimal est un projet conçu pour réduire la complexité des implémentations existantes de Mamba afin qu’elles puissent être comprises même par des ingénieurs logiciels débutants.
  • Ce projet contribue à améliorer la lisibilité du code et la compréhension dans le domaine du machine learning.
  • À travers des exemples d’usage concrets, il montre simplement comment utiliser le modèle Mamba, ce qui peut en faire une ressource très intéressante pour les apprenants.

1 commentaires

 
GN⁺ 2023-12-21
Avis Hacker News
  • Partage d’une bibliothèque

    • Avec un collègue, création d’une bibliothèque pour extraire la majeure partie du code de modèle commun. La plupart des modèles peuvent être implémentés en environ 100 lignes, hors procédures d’import Python et commentaires.
    • Exemples cités : BERT, Llama 1/2 et MPT, avec prise en charge de TorchScript JIT, de PyTorch flash attention, etc.
  • Partage d’une implémentation d’inférence de Mamba

    • Le code de Mamba contient de nombreux éléments, comme des optimisations de vitesse, qui le rendent difficile à appliquer directement à l’entraînement ; partage de sa propre implémentation d’inférence de Mamba pour aider sur ce point.
  • Demande d’explication de Mamba pour non-spécialistes

    • Demande d’une explication accessible des principales intuitions de Mamba, des modèles d’espace d’état, des raisons du succès de Mamba, et de ses autres avantages même sans intérêt particulier pour la longueur de contexte.
  • Attente principale sur l’algorithme

    • On s’attendait à ce que le cœur de l’algorithme Mamba soit un parallel prefix scan, mais le code réel est implémenté autrement.
  • Blague spirituelle sur Mamba

    • Amusement devant la blague disant que le mamba est le plus long serpent venimeux du monde. Appréciation du fait de pouvoir entrevoir ce qui se cache derrière la recherche en se référant à l’article arXiv.
  • Question sur la difficulté d’entraîner les modèles Mamba

    • Question sur la difficulté d’entraîner les modèles Mamba disponibles sur Hugging Face, ainsi que sur le nombre de GPU et le temps nécessaires pour entraîner le plus grand modèle.
  • Partage d’une tentative d’interprétation de la version CUDA officielle

    • Tentative d’interprétation de la version CUDA officielle, abandonnée après échec et non reprise ensuite. Cette nouvelle implémentation est jugée bien meilleure en comparaison.
  • Admiration pour l’implémentation PyTorch en un seul fichier

    • Admiration pour une autre implémentation PyTorch en un seul fichier, jugée importante pour une recherche ML efficace. La vitesse de progression de la recherche serait liée à l’inverse du temps d’exécution des expériences, lui-même lié à la complexité de Kolmogorov du code. Insistance sur l’importance des outils de recherche pour accélérer la découverte de connaissances.
  • Demande de discussion sur l’article original

    • Question sur l’existence d’une discussion autour de l’article original, avec la remarque que des modèles antérieurs comme RWKV et RetNet ne présentaient pas de résultats complets sur des longueurs de contexte de 8k, faute d’implémentations efficaces, à cause de problèmes mémoire ou d’exigences de calcul irréalistes.
  • Éloge de la simplification du cœur du sujet

    • Appréciation de la manière dont des éléments complexes ont été simplifiés pour n’exprimer que l’essentiel.