Glossar

Modellbeschneidung

Optimiere Modelle für maschinelles Lernen mit Model Pruning. Erreiche schnellere Inferenzen, geringeren Speicherverbrauch und Energieeffizienz für ressourcenbeschränkte Einsätze.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Model Pruning ist eine Technik, die beim maschinellen Lernen eingesetzt wird, um trainierte Modelle zu optimieren, indem ihre Größe und Komplexität reduziert wird. Dazu werden weniger wichtige Parameter wie Gewichte oder Verbindungen innerhalb eines neuronalen Netzes (NN), die nur minimal zur Gesamtleistung des Modells beitragen, identifiziert und entfernt. Das Ziel ist es, kleinere, schnellere Modelle zu erstellen, die weniger Rechenleistung und Speicherplatz benötigen und dadurch effizienter werden, ohne dass die Genauigkeit darunter leidet. Dieser Prozess ist eine spezielle Art des Pruning, die direkt auf Modelle für maschinelles Lernen angewendet wird.

Warum Model Pruning verwenden?

Die Hauptmotivation für das Pruning von Modellen ist die Effizienz. Moderne Deep-Learning-Modelle sind zwar leistungsstark, können aber sehr groß und rechenintensiv sein. Dies stellt eine Herausforderung für den Einsatz der Modelle dar, insbesondere auf Geräten mit begrenzten Ressourcen wie Smartphones oder Edge-Computing-Systemen. Model Pruning löst diese Probleme durch:

  • Verringerung der Modellgröße: Kleinere Modelle benötigen weniger Speicherplatz und lassen sich daher leichter auf Geräten einsetzen, auf denen die Ultralytics HUB App läuft.
  • Höhere Inferenzgeschwindigkeit: Mit weniger Parametern führen Pruned-Modelle Berechnungen schneller durch und verringern so die Inferenzlatenz. Das ist entscheidend für Echtzeit-Inferenzanwendungen.
  • Senkung des Energieverbrauchs: Weniger Berechnungen bedeuten weniger Stromverbrauch, was für batteriebetriebene Geräte und für die Förderung nachhaltiger KI-Praktiken wichtig ist.
  • Minimierung von Overfitting: Das Entfernen überflüssiger Parameter kann manchmal dazu beitragen, dass Modelle besser auf neue Daten verallgemeinert werden können, wodurch die Überanpassung reduziert werden kann.

Arten der Modellbeschneidung

Es gibt verschiedene Techniken für das Modellpruning, aber im Allgemeinen lassen sie sich in verschiedene Kategorien einteilen, je nachdem, was entfernt wird:

  • Weight Pruning (Unstructured): Einzelne Gewichte oder Verbindungen innerhalb des Netzes, die eine geringe Größe oder Bedeutung haben, werden auf Null gesetzt. Dies führt oft zu spärlichen Modellen, kann aber für eine optimale Beschleunigung spezielle Hardware oder Software erfordern.
  • Neuron/Filter Pruning (strukturiert): Ganze Neuronen, Filter (in Convolutional Neural Networks (CNNs)) oder andere strukturelle Komponenten werden entfernt. Dies führt in der Regel zu regelmäßigeren, kleineren und dichteren Modellen, die sich auf Standardhardware mit Tools wie NVIDIA TensorRT.

Das Pruning kann nach dem Training erfolgen oder in den Trainingsprozess integriert werden. Oft erfordert ein beschnittenes Modell eine gewisse Feinabstimmung (zusätzliches Training), um die verlorene Genauigkeit wiederherzustellen. Du kannst verschiedene Pruning-Strategien in Ressourcen wie dem PyTorch Pruning Tutorial erkunden.

Anwendungen in der realen Welt

Modellbereinigung ist in vielen Bereichen nützlich:

  1. Mobile Computer Vision: Ultralytics YOLO Modelle, die für die Objekterkennung auf mobilen Geräten verwendet werden, können so beschnitten werden, dass sie effizient laufen und eine Echtzeitanalyse direkt auf dem Gerät ermöglichen, ohne dass eine ständige Cloud-Verbindung erforderlich ist. Dies ist wichtig für Anwendungen, die auf Plattformen wie dem Raspberry Pi oder mit Beschleunigern wie der Edge TPU vonGoogle eingesetzt werden.
  2. Autonome Systeme: In selbstfahrenden Autos oder Drohnen müssen die Modelle Sensordaten sofort verarbeiten. Das Pruning komplexer Wahrnehmungsmodelle hilft dabei, die geringe Latenzzeit zu erreichen, die für eine sichere Navigation und Entscheidungsfindung erforderlich ist, und wird oft auf Hardware wie NVIDIA Jetson eingesetzt.

Model Pruning im Vergleich zu anderen Optimierungstechniken

Model Pruning ist eine von mehreren Techniken zur Optimierung von Modellen. Es ist wichtig, sie zu unterscheiden von:

  • Modellquantisierung: Verringert die Genauigkeit der Gewichte und Aktivierungen des Modells (z. B. von 32-Bit-Fließkommazahlen auf 8-Bit-Ganzzahlen). Dies verringert ebenfalls die Größe und beschleunigt die Berechnung, funktioniert aber durch Änderung des Datentyps und nicht durch Entfernen von Parametern. Beispiele findest du unter TensorFlow Lite-Optimierung.
  • Wissensdestillation: Dabei wird ein kleineres "Schüler"-Modell trainiert, um den Output eines größeren, vorab trainierten "Lehrermodells" zu imitieren. Das Ziel ist es, Wissen zu übertragen und ein kompaktes Modell zu erstellen, ohne das Lehrermodell direkt zu verändern. Lies das Originalpapier zur Knowledge Distillation für weitere Details.

Diese Techniken schließen sich nicht gegenseitig aus und werden oft mit Pruning kombiniert, um maximale Optimierungsvorteile zu erzielen. So kann ein Modell zum Beispiel erst beschnitten und dann quantifiziert werden, bevor es endgültig eingesetzt wird. Eine Anleitung zur Optimierung findest du in der Ultralytics Dokumentation.

Alles lesen