
MaskLLM
NVIDIA Research · Coding · Sonstiges
MaskLLM ist eine Open-Source-Pruning-Methode von NVIDIA Research, die N:M-Sparsity-Masken lernt, um Sprachmodelle zu verkleinern und Inferenzkosten zu senken, ohne viel Genauigkeit zu verlieren.

Über MaskLLM
What Is MaskLLM
MaskLLM ist eine Forschungsmethode zum Komprimieren großer Sprachmodelle. Sie gehört zur Familie der Pruning-Werkzeuge, die Parameter entfernen, die das Modell nicht braucht, und nutzt dafür halbstrukturierte Sparsity, auch N:M-Sparsity genannt. Die Idee ist einfach: In jedem Block von M aufeinanderfolgenden Gewichten bleiben nur N erhalten. Ein 2:4-Muster behält zwei von vier Gewichten, was das Volumen halbiert, das die Hardware bewegen muss.
Was MaskLLM abhebt, ist die Wahl der Gewichte. Ältere Verfahren stützen sich auf eine feste Regel, etwa die kleinsten Gewichte zu verwerfen oder eine statistische Schätzung zu nutzen. MaskLLM behandelt die Maskenwahl als etwas, das das Modell lernt. Es modelliert die N:M-Muster als Wahrscheinlichkeitsverteilung und trainiert sie mit einer Sampling-Technik namens Gumbel Softmax, sodass das Modell auf einem großen Datensatz bessere Masken findet. Die Gewichte bleiben eingefroren, während die Masken gelernt werden, und genau das macht die 2:4-Sparsity für eine bestimmte Aufgabe "verlustfrei".
Der praktische Reiz steckt in den Zahlen. Laut NVIDIA erreicht das dichte Modell LLaMA-2 7B eine Perplexität von 5,12 auf Wikitext, während frühere Pruning-Methoden sie über 10 treiben. MaskLLM landet bei 6,72 bis 6,78, allein indem es die Masken lernt, mit eingefrorenen Gewichten. Das Projekt ist Open Source unter einer NVIDIA-Lizenz, also können Forscher und Entwickler es selbst ausführen. Es braucht trotzdem echte GPU-Hardware und Kenntnisse im maschinellen Lernen.
Getting Started
- Installieren Sie die Python-Pakete und starten Sie das Skript, das eine bereits berechnete Maske von Hugging Face herunterlädt
- Laden Sie das Zielmodell, etwa LLaMA-2 7B oder LLaMA-3 8B, in PyTorch
- Wenden Sie die heruntergeladene Maske an und messen Sie die Genauigkeit mit dem mitgelieferten Perplexitäts-Skript
- Für eigene Arbeit richten Sie die Megatron-LM-Umgebung ein, bereiten die Daten vor und trainieren eine neue Maske für Ihre Domäne
Produktinformationen
Ein kurzer Überblick über Preise, unterstützte Plattformen und die Leistung von MaskLLM.
Am besten für
Die Nutzer, Aufgaben und Szenarien, für die dieses Tool am besten passt.
Nutzer
- Forscher im maschinellen Lernen
- ML-Entwickler, die Modelle ausrollen
- Studierende und Forschende
- Entwickler von Frameworks und Werkzeugen
Aufgaben
- Pruning großer Sprachmodelle
- Komprimierung in einem Schritt
- Domänenspezifische Sparsity
- Übertragung der Sparsity
- Vergleich von Pruning-Methoden
Szenarien
- Ein Team, das ein 7B-Modell auf wenigen GPUs betreibt
- Forschung, die veröffentlichte Zahlen reproduzieren muss
- Ein Modell, das allgemein gut ist, aber in einer Nische schwächelt
- Eine Komprimierungs-Pipeline für eine Modellfamilie bauen
- Lizenz- oder Datenschutzgrenzen prüfen
Wichtigste Funktionen
Lernbares Pruning mit N:M-Masken
Statt jedes Gewicht von Hand zu bewerten, lernt MaskLLM die Maske selbst. Es behandelt die Menge gültiger N:M-Muster als Verteilung und zieht während des Trainings Stichproben, sodass das Modell zu den besten Masken für einen Datensatz konvergiert. Dieser lernbare Schritt ist der eigentliche Unterschied zu Einmal-Verfahren, die eine Maske einmal wählen und dann aufhören.
Gumbel-Softmax-Sampling
Die Methode leiht sich eine Technik aus dem diskreten Sampling, damit sich die Maskenwahl durchgängig trainieren lässt. Gumbel Softmax lässt Gradienten durch das fließen, was sonst eine harte Entscheidung nach dem Alles-oder-nichts-Prinzip wäre. Erst dadurch lässt sich die Verteilung über die N:M-Masken mit echten Daten optimieren, statt sie zu schätzen.
Fertig berechnete Masken für Hugging-Face-Modelle
Das Projekt liefert fertige Masken, sodass Sie ohne Training ausprobieren können. Veröffentlicht sind Masken für LLaMA-2 7B, LLaMA-3 8B und LLaMA-3.1 8B, jede auf einem C4-Ausschnitt trainiert. Ein Skript lädt sie von Hugging Face und wendet sie zur Bewertung auf die offiziellen Modelle an.
Halbstrukturierte 2:4-Sparsity
MaskLLM zielt auf N:M-Sparsity, meist auf das 2:4-Muster, das zwei Werte ungleich null in jedem Block von vier aufeinanderfolgenden Gewichten behält. Dieses Format ist wichtig, weil es zur Hardware-Beschleunigung passt: Das kleinere Modell braucht nicht nur weniger Platz, es kann auf der passenden GPU auch schneller laufen.
Übertragung der Sparsity-Muster
Dasselbe Wahrscheinlichkeitsmodell, das eine Maske lernt, kann sie von einer Domäne in eine andere tragen. Diese Musterübertragung lässt sich mit weniger Aufwand als ein Neustart an eine neue Aufgabe oder einen neuen Datensatz anpassen, sobald eine Maskenverteilung einmal trainiert ist. Das nennen die Autoren Übertragbarkeit, und es hilft, wenn ein Modell in mehr als einem Kontext scharf bleiben soll.
Trainings-Pipeline mit Megatron-LM
Für vollständige Trainingsläufe enthält MaskLLM einen Megatron-LM-Ablauf, der ein LLaMA-Modell über mehrere GPUs verteilt. Das Repository bietet Skripte, um Checkpoints zu konvertieren, Daten zu tokenisieren, mit SparseGPT, Wanda oder Magnitude-Pruning eine vorab erzeugte Maske zu gewinnen, die Maske zu trainieren und den Checkpoint vor der Veröffentlichung zu kürzen.
Vor- und Nachteile
Vorteile
- Lernt die Masken aus den Daten, statt sich auf eine feste Wichtigkeitsregel zu stützen, was die Genauigkeit bei gleicher Sparsity erhöht
- Veröffentlicht Code, Gewichte und fertig berechnete Masken unter offener Lizenz, sodass Ergebnisse reproduzierbar sind
- Unterstützt Transferlernen, sodass eine Maskenverteilung für mehrere Aufgaben und Domänen dient
- Läuft mit bekannten Modellen wie LLaMA-2, LLaMA-3 und LLaMA-3.1 über Hugging Face und Megatron-LM
- Hält die Gewichte eingefroren, sodass die gelernte 2:4-Sparsity für die Aufgabe, auf die sie abgestimmt wurde, verlustfrei ist
Nachteile
- Eine neue Maske zu trainieren verlangt eine Multi-GPU-Maschine, und das Repository nennt rund 40 GB Speicher pro GPU für volle Läufe
- Es ist ein Forschungsartefakt, kein Produkt: kein Support, kein gehosteter Dienst, keine API
- Die fertigen Masken gibt es für wenige LLaMA-Modelle, andere Architekturen erfordern also eigene Trainingsläufe
- Der Nutzen zeigt sich auf Hardware mit 2:4-Beschleunigung, was den Vorteil auf älteren oder Nicht-NVIDIA-GPUs begrenzt
Häufige Fragen
MaskLLM ist eine lernbare Pruning-Methode, die großen Sprachmodellen N:M-Sparsity hinzufügt. Statt jedes Gewicht zu bewerten, lernt sie, welche erhalten bleiben, indem sie die Masken als Wahrscheinlichkeitsverteilung modelliert. NVIDIA Research hat sie auf der NeurIPS 2024 vorgestellt, und der MaskLLM-Code ist auf GitHub offen.
Ähnliche Inhalte
Entdecke passende Tools, Skills und Artikel zu MaskLLM.
Alternativen zu MaskLLM
Base Code
Base44 (Wix) · Coding · ProduktivitätBase Code ist eine geteilte Cloud-Entwicklungsumgebung von Base44. Das Team beschreibt Änderungen an einem bestehenden GitHub-Repository im Chat, prüft sie in der Vorschau und reicht sie als Pull Request ein.
Google EmbeddingGemma 2
Google DeepMind · Schreiben · Bilder · CodingGoogle EmbeddingGemma 2 ist ein offenes Modell mit 740 Millionen Parametern, das Text, Code, Bilder, Audio und Videobilder in Vektoren eines gemeinsamen 768-dimensionalen Raums umwandelt und auf Handys und Notebooks läuft.
GitGlow
GitGlow · Coding · ProduktivitätGitGlow ist ein Git-Client für den Desktop, der Ihren Code und die Änderungen Ihrer KI-Agenten in einer Review bündelt, damit Sie vor dem Ausliefern sehen, was die Maschine verlässt.
