1 Punkte von GN⁺ 2023-12-21 | 1 Kommentare | Auf WhatsApp teilen

mamba-minimal

  • Erklärung zu mamba-minimal, einer einfachen Mamba-Implementierung in einer einzigen Datei, geschrieben in PyTorch.
  • Liefert dieselben numerischen Ausgaben wie die offizielle Implementierung, sowohl beim Vorwärts- als auch beim Rückwärtsdurchlauf.
  • Der Code ist vereinfacht, gut lesbar und kommentiert.
  • Funktionen wie die Geschwindigkeitsoptimierungen der offiziellen Implementierung sind nicht enthalten.
  • Eine geeignete Parameterinitialisierung ist nicht enthalten, kann aber hinzugefügt werden, ohne die Lesbarkeit zu beeinträchtigen.

Demo

  • Die Datei demo.ipynb zeigt ein Beispiel für Prompt-Vervollständigung.
  • Bietet ein Beispiel zur Textgenerierung mit dem Mamba-Modell und AutoTokenizer.
  • Im generierten Beispieltext wird Mamba als die längste Giftschlange der Welt beschrieben.

References

  • Die Mamba-Architektur wurde in der von Albert Gu und Tri Dao verfassten Arbeit "Mamba: Linear-Time Sequence Modeling with Selective State Spaces" vorgestellt.
  • Die offizielle Implementierung ist auf GitHub verfügbar.

Meinung von GN⁺

  • mamba-minimal ist ein Projekt, das die Komplexität bestehender Mamba-Implementierungen reduziert, damit auch Softwareingenieure mit wenig Erfahrung es verstehen können.
  • Dieses Projekt trägt dazu bei, die Lesbarkeit und Verständlichkeit von Code im Bereich Machine Learning zu verbessern.
  • Anhand praktischer Nutzungsbeispiele wird leicht verständlich gezeigt, wie das Mamba-Modell eingesetzt werden kann, was für Lernende sehr interessant sein dürfte.

1 Kommentare

 
GN⁺ 2023-12-21
Hacker-News-Kommentare
  • Teilen einer Bibliothek

    • Zusammen mit einem Kollegen wurde eine Bibliothek erstellt, die den Großteil des gemeinsamen Modellcodes extrahiert. Die meisten Modelle lassen sich so, abgesehen von Python-import-Abläufen und Kommentaren, in etwa 100 Zeilen implementieren.
    • Als Beispiele werden BERT-, Llama-1/2- und MPT-Modelle genannt; unterstützt werden unter anderem TorchScript JIT und PyTorch Flash Attention.
  • Teilen einer Mamba-Inferenzimplementierung

    • Im Mamba-Code gibt es viele Stellen, etwa zur Geschwindigkeitsoptimierung, die sich nicht ohne Weiteres direkt fürs Training nutzen lassen, daher wird eine eigene Mamba-Inferenzimplementierung geteilt, die dabei helfen kann.
  • Bitte um eine Erklärung von Mamba für Nichtfachleute

    • Es wird um eine Erklärung für Nichtfachleute gebeten: die wichtigste Einsicht hinter Mamba und State-Space-Modellen, warum Mamba erfolgreich ist und welche weiteren Vorteile Mamba hat, selbst wenn einen die Kontextlänge nicht interessiert.
  • Erwartung an den Kern des Algorithmus

    • Es wurde erwartet, dass der Kern des Mamba-Algorithmus ein paralleler Prefix-Scan sein würde, der tatsächliche Code ist jedoch anders implementiert.
  • Ein geistreicher Witz über Mamba

    • Es wird darüber gelacht, dass Mamba angeblich die längste Giftschlange der Welt sei. Gut gefiel auch, mit Verweis auf das arXiv-Paper einen Blick auf das hinter der Forschung Verborgene werfen zu können.
  • Frage zum Schwierigkeitsgrad des Trainings von Mamba-Modellen

    • Es wird gefragt, wie schwierig es ist, die auf Hugging Face verfügbaren Mamba-Modelle zu trainieren und wie viele GPUs sowie wie viel Zeit für das Training des größten Modells nötig wären.
  • Versuch einer Interpretation der offiziellen CUDA-Version

    • Es wurde versucht, die offizielle CUDA-Version zu verstehen, der Versuch scheiterte jedoch, und danach wurde kein weiterer unternommen. Im Vergleich dazu wird die neue Implementierung als deutlich besser bewertet.
  • Bewunderung für eine PyTorch-Implementierung in einer einzigen Datei

    • Es wird erneut Bewunderung für eine PyTorch-Implementierung in nur einer Datei geäußert, und solche Arbeiten werden als wichtig für effiziente ML-Forschung angesehen. Die Geschwindigkeit des Forschungsfortschritts stehe in Beziehung zum Kehrwert der Ausführungszeit von Experimenten, was wiederum mit der Kolmogorov-Komplexität des Codes zusammenhänge. Es wird betont, wie wichtig Forschungswerkzeuge dafür sind, den Prozess der Wissensentdeckung zu beschleunigen.
  • Bitte um Diskussion des Originalpapers

    • Es wird gefragt, ob es eine Diskussion zum Originalpaper gab, und darauf hingewiesen, dass bei früheren Modellen wie RWKV und RetNet aufgrund fehlender effizienter Implementierungen entweder Speicherprobleme oder unrealistische Rechenanforderungen dazu führten, dass vollständige Ergebnisse für 8k Kontextlänge fehlten.
  • Lob für die Vereinfachung der Kernaussagen

    • Gelobt wird, dass komplexe Inhalte auf ihre wesentlichen Bestandteile reduziert und so dargestellt wurden.