Quantisierung
Eine Optimierungstechnik, die die Präzision der Gewichte eines KI-Modells reduziert (z.B. von 32-Bit auf 4-Bit), um Speicherbedarf und Rechenaufwand drastisch zu senken.
Eine Optimierungstechnik, bei der unwichtige Gewichte oder Neuronen aus einem trainierten Modell entfernt werden – für kleinere, schnellere Modelle mit minimaler Qualitätseinbuße.
Pruning ist eine Modell-Komprimierungstechnik, die unwichtige oder redundante Parameter aus einem trainierten neuronalen Netz entfernt. Die Intuition: Nicht alle Parameter eines Modells tragen gleich viel zur Vorhersagequalität bei. Gewichte nahe null können oft entfernt werden, ohne die Accuracy wesentlich zu beeinträchtigen. Das Ergebnis ist ein kleineres, schnelleres Modell – ideal für Edge-Deployment auf Smartphones oder IoT-Geräten, wo Speicher und Rechenleistung begrenzt sind.
Pruning entfernt unwichtige Teile eines neuronalen Netzes. Viele Gewichte in trainierten Modellen sind nahe Null oder redundant – sie können entfernt werden, ohne die Qualität wesentlich zu beeinträchtigen.
Das Ergebnis:
Vorher: 100M Parameter, 400MB, 50ms Inferenz
Nachher: 20M Parameter, 80MB, 15ms Inferenz
Qualität: 99.5% der ursprünglichen Accuracy
Warum funktioniert das?
Neuronale Netze sind oft überparametrisiert – sie haben mehr Kapazität als nötig. Pruning findet und entfernt die redundanten Teile.
| Typ | Was wird entfernt | Beschleunigung |
|---|---|---|
| Unstrukturiert | Einzelne Gewichte | Schwer (braucht Sparse-Hardware) |
| Strukturiert | Ganze Neuronen/Filter | Einfach (Standard-Hardware) |
| Block-Sparse | Blöcke von Gewichten | Mittel |
import torch.nn.utils.prune as prune
# 50% der kleinsten Gewichte entfernen
prune.l1_unstructured(model.layer, name='weight', amount=0.5)
# Pruning permanent machen
prune.remove(model.layer, 'weight')
1. Trainiere Modell
2. Prune 20% der Gewichte
3. Fine-Tune
4. Wiederhole bis Ziel-Sparsity erreicht
Original: 100M × 32bit = 400MB
Pruning (80%): 20M × 32bit = 80MB
+ Quantisierung (INT8): 20M × 8bit = 20MB
= 95% Reduktion Pruning ist wie das Beschneiden eines Baumes: Du entfernst Äste, die wenig zum Wachstum beitragen. Der Baum wird kompakter und effizienter, ohne seine wesentliche Form zu verlieren.
Entfernt Gewichte oder Neuronen mit geringem Einfluss auf die Ausgabe
Reduziert Modellgröße und Inferenz-Zeit um 50-90%
Oft kombiniert mit Quantisierung für maximale Effizienz
Edge Deployment
Modelle klein genug für Smartphones und IoT
Latenz-Reduktion
Schnellere Inferenz durch weniger Berechnungen
Kosten-Optimierung
Weniger GPU-Ressourcen für Inferenz
Typisch 50-90% der Gewichte, abhängig vom Modell und der Aufgabe. Manche Modelle sind überparametrisiert und verlieren bei 80% Pruning kaum Qualität. Andere reagieren empfindlicher.
Unstrukturiert: Einzelne Gewichte entfernen (hohe Sparsity, aber schwer zu beschleunigen). Strukturiert: Ganze Neuronen/Filter entfernen (einfacher zu beschleunigen, aber weniger flexibel).
Ja, aber es ist schwieriger als bei CNNs. LLMs sind empfindlicher, und die Beschleunigung erfordert spezielle Sparse-Inference-Engines. Quantisierung ist für LLMs oft praktischer.