Kapitel 6 — Pruning und Knowledge Distillation
Sechster Beitrag im Kapitel-für-Kapitel-Walkthrough zu LLM Primer VI: KI-Systeme skalieren. Das Kapitel greift die Gewichtszahl direkt an — erst durch Nullsetzen unbedeutender Gewichte, dann durch Übertragung des Verhaltens eines großen Modells in ein kleineres.
Warum es dieses Kapitel gibt
Quantisierung schrumpft die Bytes pro Gewicht. Pruning schrumpft die Anzahl der Gewichte, die überhaupt multipliziert werden. Knowledge Distillation überträgt das Verhalten eines großen Lehrers in einen kleineren Schüler, der Ende-zu-Ende günstiger läuft. Pruning ist ein architekturkonstanter Eingriff, der Overhead abrasiert; Distillation ist ein Architekturwechsel, der Trainingskosten in Kauf nimmt für eine dauerhafte Ersparnis zur Inferenzzeit. Kapitel 6 geht beides ab — die Mechanik, auf die sich jedes stützt, die Ausfallmodi, auf die die Praxis stößt, und das hardwarebeschleunigte Muster (2:4-Sparsity), das strukturiertes Pruning auf Hopper und Blackwell wieder wirtschaftlich interessant gemacht hat.
6.1 2:4-Sparsity ist das Pruning-Muster, das die Hardware belohnt
Unstrukturiertes Magnituden-Pruning — die kleinsten 50 Prozent der Gewichte auf null setzen und kurz feintunen — funktioniert numerisch, beschleunigt aber nicht. GPUs führen dichte GEMMs aus; verstreute Nullen werden weiterhin multipliziert. Strukturiertes Pruning entfernt ganze Einheiten, die die Hardware überspringen kann: Attention-Köpfe, MLP-Neuronen oder (der wichtige Fall) N:M-Muster innerhalb von Gewichtsmatrizen. Hopper und Blackwell unterstützen 2:4-Sparsity nativ — genau zwei Nullen in je vier aufeinanderfolgenden Gewichten entlang der Eingabedimension. Der Chip speichert jede Vierergruppe als zwei Nicht-Null-Werte plus eine Zwei-Bit-Maske, der Sparse Tensor Core überspringt die Null-Multiplikationen, und Bandbreite und FLOPs sinken jeweils um rund den Faktor zwei. In gemessener Dekodier-Durchsatzleistung sind das 1,7–1,9-fache Beschleunigung. Der Trick ist, dass 2:4 beim Pruning erzwungen werden muss: der Algorithmus geht jede Matrix in Vierergruppen durch und zwingt die beiden kleinsten auf null, dann folgt entweder kurzes Feintuning oder SparseGPT kompensiert. Die Maske ist Metadaten; die Laufzeit-Ersparnis ist automatisch.
6.2 Distillation überträgt die Verteilung des Lehrers, nicht sein Argmax
Ein trainiertes Lehrer-LLM erzeugt an jeder Position eine Verteilung über das Vokabular — ein 128k-dimensionales Softmax. Das Argmax ist das Token, das es bei Greedy Decoding ausgeben würde. Die Verteilung kodiert aber die Unsicherheit des Lehrers, seine Präferenzstruktur zwischen Beinahesynonymen und seine Kalibrierung. Einen Schüler darauf zu trainieren, diese Verteilung nachzubilden, überträgt all das: der Loss ist eine KL-Divergenz zwischen aufgeweichten Lehrer- und Schülerausgaben mit einer Temperatur, die das Gradientensignal in den niedrigen Wahrscheinlichkeitsausläufer verbreitert. Der resultierende Schüler verhält sich wie eine kleinere, schnellere Version des Lehrers, nicht wie ein kleineres Modell, das auf denselben Daten von null trainiert wurde. Patient Knowledge Distillation erweitert das Rezept auf Zwischenschichten, indem sie versteckte Zustände zwischen zugeordneten Schüler-Lehrer-Schichtpaaren aufeinander abbildet. MiniLLM adressiert ein feineres Problem — die Mittelwertsbildung, bei der ein Forward-KL-Schüler zwischen mehreren plausiblen Fortsetzungen hedged und eine blasse Ausgabe produziert — indem es zu Reverse-KL wechselt, das eine scharfe Übereinstimmung mit einem Modus des Lehrers einer weichen Abdeckung aller vorzieht.
6.3 Die drei Kompressionen stapeln sich in einer bestimmten Reihenfolge
Zuerst distillieren, dann prunen, zuletzt quantisieren. Distillation ist die teuerste und architektonisch invasivste Operation; sie sollte einmal auf einem dichten, hochpräzisen Modell erfolgen, bevor andere Wahlmöglichkeiten festgezurrt werden. Den Schüler mit SparseGPT auf 2:4 prunen und kurz zur Erholung feintunen. Den gesparsten Schüler mit llm-compressor auf FP8 quantisieren. Ein durchgerechneter Stack: 70B-BF16-Lehrer → 13B-BF16-Schüler durch Distillation → 2:4-gesparst → FP8-quantisiert. Die Gewichts-Bytes pro Forward-Pass sinken von 140 GB auf rund 6,5 GB — ein Faktor 22 — und Hoppers FP8- und 2:4-Pfade verwandeln das in einen 8- bis 10-fachen Durchsatzgewinn pro GPU. Was der Stack nicht reduziert, ist der KV-Cache, der von versteckter Dimension, Kopfzahl und Kontextlänge abhängt, nicht von der Gewichtszahl. Das ist Gegenstand von Kapitel 8. Und die Kompression auf Modellebene wirkt pro Inferenz; sie gibt der GPU Kopffreiheit, aber der Laufzeit-Hebel, der diese Kopffreiheit mit nebenläufigen Nutzern füllt, ist Batching.
Was Kapitel 6 vorbereitet
Die Kapitel 5 und 6 erschöpfen die modellseitigen Kompressionen — die Bytes pro Gewicht quantisieren, die Anzahl der Gewichte prunen, das ganze Modell distillieren. Die GPU hat nun bei jedem Forward-Pass Kopffreiheit. Kapitel 7 wendet sich dem systemseitigen Hebel zu, der diese Kopffreiheit mit nützlicher Arbeit füllt: Batching. Statisches Batching funktioniert fast und kollabiert am Problem des schnellsten Beenders. Continuous Batching mit iterationsweisem Scheduling ist das, was Produktions-Engines ausführen und was die bandbreitengebundene Dekodierphase von einem leerlaufenden Chip in einen Chip verwandelt, der viele Nutzer gleichzeitig bedient.
Als Nächstes — Kapitel 7: Fortgeschrittene Batching-Strategien. Statisches, dynamisches und Continuous Batching — und die Schulden, die Continuous Batching für den KV-Cache aufmacht.
torch.sparse-Code für die 2:4-Konvertierung, die vollständige PyTorch-Distillationsschleife mit KL-Loss und Temperatur, die PKD-Schichtzuordnungs-Erweiterung, die MiniLLM-Reverse-KL-Formulierung und den „In Plain English"-Kasten dazu, warum Schüler hedgen und wie man sie daran hindert. LLM Primer VI auf Amazon →