Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Model Pruning

Beim Pruning eines Modells werden wenig wichtige Gewichte, Filter oder Schichten aus einem neuronalen Netzwerk entfernt, um Größe und Rechenaufwand zu verringern. Unstrukturiertes und strukturiertes Pruning mit Code.

Beim Pruning eines Modells werden Parameter entfernt, die wenig zum Ergebnis eines trainierten neuronalen Netzes beitragen. Das reicht von einzelnen Gewichten bis hin zu ganzen Filtern, Attention-Köpfen oder Schichten, damit das Modell kleiner wird und weniger Rechenaufwand verursacht. Die meisten Netzwerke sind überparametrisiert. Daher lässt sich ein großer Teil ihrer Gewichte entfernen, ohne die Genauigkeit stark zu beeinträchtigen – besonders, wenn das Modell anschließend feinabgestimmt wird. Eine Pruning-und-Nachtrainingsmethode aus dem Jahr 2015 reduzierte AlexNet von 61 Millionen auf 6,7 Millionen Parameter und VGG-16 von 138 Millionen auf 10,3 Millionen, ohne die Genauigkeit auf ImageNet zu beeinträchtigen. Pruning ist ein gängiger Schritt bei der Vorbereitung von Modellen für Smartphones, Kameras und andere Edge-AI-Hardware und wird inzwischen auch auf große Sprachmodelle (LLMs) angewendet.

So funktioniert das Pruning von Modellen#

Beim Pruning werden mögliche Gewichte oder Strukturen nach ihrer Bedeutung bewertet, die am niedrigsten bewerteten entfernt und die verbleibenden Modellgewichte feinabgestimmt, um die Genauigkeit wiederherzustellen. Das einfachste und weiterhin gebräuchlichste Bewertungskriterium ist der Betrag: Gewichte nahe null oder Filter mit kleiner L1- oder L2-Norm verändern die Ausgabe beim Entfernen am wenigsten. Andere Kriterien verwenden Gradienten oder Aktivierungen, um abzuschätzen, wie stark der Verlust ohne den jeweiligen Teil steigen würde. Das gleichzeitige Entfernen eines großen Anteils beeinträchtigt oft die Genauigkeit. Daher erfolgt Pruning gewöhnlich in mehreren Runden, auf die jeweils eine Feinabstimmung folgt, bis das Modell seine Zielgröße erreicht oder die Genauigkeit unter den Toleranzwert fällt:

Pruning hat auch verändert, wie Forschende über die Netzwerkgröße denken. Die Lotterielos-Hypothese besagt, dass ein dichtes Netzwerk kleine Teilnetzwerke enthält, die isoliert mit ihren ursprünglichen Anfangsgewichten trainiert die Genauigkeit des vollständigen Netzwerks erreichen. Die Autoren fanden auf MNIST und CIFAR-10 durchweg solche Teilnetzwerke, deren Größe weniger als 10–20 % der ursprünglichen betrug.

Unstrukturiertes und strukturiertes Pruning#

Beim unstrukturierten Pruning werden einzelne Gewichte an beliebigen Stellen eines Tensors auf null gesetzt. So lässt sich eine hohe Sparsität mit geringem Genauigkeitsverlust erreichen. Die Tensoren behalten jedoch ihre Form, sodass standardmäßige dichte Kernel dieselbe Arbeit ausführen und Beschleunigungen spezielle Sparse-Kernel oder Hardwareunterstützung erfordern. NVIDIA-GPUs ab der Ampere-Generation unterstützen ein solches Muster: 2:4-Sparsität mit zwei Nullen in jeweils vier aufeinanderfolgenden Gewichten, bei bis zu doppelter Rechenleistung im Vergleich zu dichten Operationen. Strukturiertes Pruning entfernt ganze Filter, Kanäle, Attention-Köpfe oder Schichten. Dadurch entsteht ein kleineres dichtes Modell, das auf jedem Prozessor schneller läuft, allerdings bei gleicher Anzahl entfernter Gewichte mit höheren Genauigkeitseinbußen. Wird ein Filter entfernt, muss auch der entsprechende Eingabekanal der nächsten Schicht entfernt werden. Bibliotheken wie Torch-Pruning verfolgen diese Abhängigkeiten automatisch. Die Pruning-Hilfsfunktionen von PyTorch veranschaulichen den Unterschied zwischen beiden Verfahren:

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

Bei beiden Schichten sind am Ende 50 % der Gewichte null. Nur die strukturierte Schicht hat leere Filter: 16 von 32. Werden diese gelöscht, entsteht eine dichte Schicht mit halb so vielen Filtern, was den Rechenaufwand auf gewöhnlicher Hardware halbiert. Auch Hardware, die für Sparsität ausgelegt ist, profitiert vom unstrukturierten Verfahren: Ambarellas CVflow-Integration für Ultralytics YOLO, die Ambarella in einem eigenen Paket-Fork pflegt, entfernt während des YOLO-Trainings schrittweise Gewichte und erhält die Sparsität beim ONNX-Export für die Kompilierung auf Edge-AI-Chips des Unternehmens.

  • Modellquantisierung: Verringert die Präzision aller Gewichte, zum Beispiel von 32-Bit-Gleitkommazahlen auf 8-Bit-Ganzzahlen, behält sie aber alle bei. Pruning und Quantisierung werden häufig kombiniert, da Pruning die Zahl der Operationen verringert und Quantisierung jede Operation kostengünstiger macht.
  • Wissensdestillation: Trainiert ein kleineres Schülermodell so, dass es ein größeres Lehrermodell nachahmt. Häufig folgt sie auf strukturiertes Pruning, um den Genauigkeitsverlust auszugleichen, der durch das Entfernen ganzer Filter oder Schichten entsteht.
  • Dropout: Setzt während des Trainings vorübergehend zufällige Aktivierungen auf null, um das Modell zu regularisieren. Bei der Inferenz kommt das vollständige Netzwerk zum Einsatz.

Pruning großer Sprachmodelle#

Ein LLM nach jeder Pruning-Runde neu zu trainieren ist zu kostspielig. Daher entfernen Einmalverfahren Parameter in einem einzigen Durchgang anhand eines kleinen Kalibrierungsdatensatzes. SparseGPT reduzierte die Modelle OPT mit 175 Milliarden und BLOOM mit 176 Milliarden Parametern in weniger als 4,5 Stunden auf 60 % unstrukturierte Sparsität. Der Anstieg der Perplexität war dabei vernachlässigbar. Das Verfahren unterstützt auch das 2:4-Muster, das GPUs beschleunigen. Strukturiertes Pruning in Kombination mit Wissensdestillation ergibt kleinere dichte Modelle: NVIDIA leitete mit Minitron 8B- und 4B-Modelle aus einem vortrainierten 15B-Modell ab, indem Einbettungskanäle, MLP-Neuronen und Attention-Köpfe entfernt und die Modelle anschließend mit bis zu 40-mal weniger Tokens als beim Training von Grund auf neu trainiert wurden.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens