Einfach erklärt
Sparsamere Modelle erzeugen. Pruning bedeutet, ein trainiertes oder gerade trainierendes Modell auszudünnen: unwichtige Gewichte, Neuronen, Kanäle oder ganze Layer werden entfernt oder auf 0 gesetzt. Das Modell bleibt funktional, wird aber kleiner, schneller und sparsamer – mit möglichst geringem Qualitätsverlust.
Kurz: Überflüssiges abschneiden → Modell leichter machen → nahezu gleiche Qualität behalten.
Ganz einfache Beispiele
• Baumschnitt: Trockene Zweige werden abgeschnitten, damit der Baum stabiler wächst – das ist Pruning für Netze.
• Rucksack packen: Überflüssiges raus, nur Nützliches bleibt – das Netz trägt weniger Gewicht und kommt schneller voran.
• Text redigieren: Füllwörter streichen, Aussage bleibt klar – das Modell rechnet weniger, sagt aber fast dasselbe.
Professionelle Definition
Pruning ist ein Kompressions‑ und Beschleunigungsverfahren, das Parameter oder Strukturen eines neuronalen Netzes entfernt (oder auf 0 setzt), um Speicherbedarf, FLOPs, Latenz und Energieverbrauch zu reduzieren. Je nach Granularität unterscheidet man unstrukturiertes und strukturiertes Pruning; je nach Zeitpunkt Post‑Training‑Pruning und Training‑integriertes Pruning. Nach dem Pruning erfolgt oft ein kurzes Feintuning, um Genauigkeit zurückzugewinnen.
Arten des Prunings
- Unstrukturiert: Einzelne Gewichte (Magnitude‑basiert) → sehr hohe Sparsity möglich, Speed‑ups nur mit sparsity‑fähigen Kerneln/Hardware.
- Strukturiert: Ganze Filter/Kanäle/Heads/Blöcke → sofortige Beschleunigung auf Standard‑Hardware (geringere FLOPs/Parameter).
- Semi‑strukturiert (N:M, z. B. 2:4): Feste Sparsamkeitsmuster für beschleunigte Sparse‑Kernels.
Zeitpunkt
- Post‑Training (One‑Shot oder iterativ): Erst trainieren, dann prunen und ggf. feintunen.
- Während des Trainings (iterativ/scheduled): Periodisch prunen und weitertrainieren (z. B. Magnitude‑Schedule, Movement‑Pruning).
Kriterien (was wird entfernt?)
- Magnitude: Kleinste |Gewichte| weg (global oder layerweise).
- Sensitivität/Taylor: Entferne, was den Loss am wenigsten beeinflusst.
- Skalen/BN‑Faktoren/Salienz: Nutze Feature‑Skalen oder Importance‑Scores.
Strukturebenen
- Gewicht → Kanal/Filter → Kopf/Block → Layer. Je „gröber“, desto einfacher wird die Beschleunigung.
Ablauf (typisch)
- Trainieren bis stabiles Niveau.
- Kandidaten bewerten (Kriterium).
- Prunen (Schwellwert/Quote, global oder pro Layer).
- Feintunen (einige Epochen, ggf. Lernrate anpassen).
- Export (ggf. sparsity‑freundliches Format/ONNX) und Deployment.
Trade‑offs & Hinweise
- Zu aggressives Pruning → Qualitätsabfall; besser iterativ mit Zwischen‑Feintuning.
- Unstrukturiert bringt Speicher‑/Bandbreiten‑Vorteile, aber Speed nur mit passender Runtime.
- Strukturiert ist hardware‑freundlich, aber kann früher Genauigkeit kosten.
- Gut kombinierbar mit Quantisierung und Distillation (zusätzliche Kompression/Robustheit).
Abgrenzungen und Praxisfälle
- Pruning vs. Quantisierung: Entfernen vs. Wert‑Auflösung verringern. Häufig kombinieren.
- Pruning vs. Dropout: Dropout ist Trainings‑Regularisierung, kein dauerhaftes Entfernen.
- Lottery Ticket Hypothesis: In großen Netzen existieren kleine Subnetze, die ähnlich gut trainierbar sind.
Warum wichtig
- Kleinere Modelle → schnellere Inferenz, geringere Latenz/Kosten/Energie.
- Edge‑/Mobile‑Einsatz wird möglich (Speicher‑Limits).
- Ökobilanz: Weniger Rechenaufwand im Betrieb.
Quellen
Han, S., Mao, H., Dally, W. J. (2016) – Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding https://arxiv.org/abs/1510.00149
Frankle, J., Carbin, M. (2019) – The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks https://arxiv.org/abs/1803.03635
Molchanov, P., Tyree, S., Karras, T., Aila, T., Kautz, J. (2017) – Pruning Convolutional Neural Networks for Resource Efficient Inference https://arxiv.org/abs/1611.06440
Sanh, V., Wolf, T., Rush, A. M. (2020) – Movement Pruning: Adaptive Sparsity by Fine‑Tuning https://arxiv.org/abs/2005.07683
Weitere Informationen Kurse und Schulungen