Glossar

Beschneiden

Optimiere KI-Modelle mit Pruning - reduziere die Komplexität, steigere die Effizienz und stelle sie schneller auf Edge-Geräten bereit, ohne die Leistung zu beeinträchtigen.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Pruning ist eine Technik zur Modelloptimierung, die in der künstlichen Intelligenz (KI) und beim maschinellen Lernen (ML) eingesetzt wird, um die Größe und Rechenkomplexität von trainierten Modellen zu reduzieren. Dabei werden selektiv Parameter wie Gewichte oder Verbindungen in einem neuronalen Netzwerk (NN) entfernt, die für die Aufgabe des Modells als weniger wichtig oder überflüssig eingestuft werden. Das Hauptziel ist es, kleinere, schnellere Modelle zu erstellen, die weniger Rechenressourcen und Speicherplatz benötigen, idealerweise ohne eine signifikante Verringerung der Leistung oder Genauigkeit. Dieser Prozess ist ein wichtiger Bestandteil eines effizienten Modelleinsatzes, vor allem auf Geräten mit begrenzten Möglichkeiten. Während "Pruning" der allgemeine Begriff ist, bezieht sich"Model Pruning" speziell auf die Anwendung dieser Technik auf ML-Modelle.

Die Bedeutung des Beschneidens

Da Deep Learning-Modelle (DL) immer größer und komplexer werden, um anspruchsvolle Aufgaben zu bewältigen, steigt ihr Bedarf an Rechenleistung, Speicherplatz und Energie erheblich. Pruning geht diese Herausforderung direkt an, indem es die Modelle schlanker und effizienter macht. Diese Optimierung führt zu mehreren Vorteilen: geringerer Speicherbedarf, niedrigerer Energieverbrauch während des Betriebs und geringere Latenzzeiten bei der Inferenz, was für Anwendungen, die Inferenzen in Echtzeit benötigen, entscheidend ist. Pruning ist besonders wertvoll für den Einsatz von Modellen in ressourcenbeschränkten Umgebungen wie mobilen Geräten, eingebetteten Systemen und verschiedenen Edge-KI-Szenarien, in denen Effizienz ein Hauptanliegen ist. Es kann auch dazu beitragen, die Überanpassung zu verringern, indem es das Modell vereinfacht.

Anwendungen des Beschneidens

Pruning-Techniken werden in zahlreichen KI-Bereichen eingesetzt. Hier sind zwei konkrete Beispiele:

  1. Einsatz von Objekterkennungsmodellen auf Edge Devices: Eine Ultralytics YOLO Ein für die Objekterkennung trainiertes Modell ist möglicherweise zu groß oder zu langsam für den Einsatz auf einem Gerät mit geringem Stromverbrauch wie einem Raspberry Pi oder einer Google Edge TPU. Durch Pruning kann die Größe des Modells und die Rechenlast reduziert werden, so dass es auf solcher Hardware effektiv für Aufgaben wie Sicherheitssysteme oder die Überwachung von Wildtieren vor Ort eingesetzt werden kann. In Anleitungen wie dem Edge TPU on Raspberry Pi Tutorial oder der NVIDIA Jetson Anleitung findest du Einsatzbeispiele.
  2. Optimierung von Modellen für autonome Systeme: In autonomen Fahrzeugen müssen komplexe Wahrnehmungsmodelle für Aufgaben wie Bildsegmentierung oder Sensorfusion mit minimaler Latenzzeit laufen. Pruning hilft dabei, diese Convolutional Neural Networks (CNNs) so zu optimieren, dass sie die strengen Anforderungen an die Echtzeitverarbeitung erfüllen und einen sicheren und reaktionsschnellen Fahrzeugbetrieb gewährleisten. Frameworks wie NVIDIA TensorRT unterstützen oft Pruned-Modelle für optimierte Schlussfolgerungen.

Arten und Techniken

Die Beschneidungsmethoden sind unterschiedlich, lassen sich aber im Allgemeinen in diese Hauptkategorien einteilen:

  • Unstrukturiertes Pruning: Dabei werden einzelne Gewichte oder Neuronen aufgrund von Kriterien wie geringer Größe oder Beitrag zum Output entfernt. Das Ergebnis sind spärliche Modelle mit unregelmäßigen Mustern der entfernten Verbindungen. Diese Modelle können zwar hohe Komprimierungsraten erzielen, erfordern aber für eine effiziente Ausführung spezielle Hardware oder Softwarebibliotheken (wie DeepSparse vonNeural Magic). Siehe die Ultralytics Neural Magic Integration.
  • Strukturiertes Pruning: Bei dieser Technik werden ganze strukturelle Komponenten des Netzes, wie Filter, Kanäle oder sogar Schichten, entfernt. Dadurch wird eine regelmäßige Struktur beibehalten, wodurch das beschnittene Modell besser mit Standard-Hardwarebeschleunigern und Bibliotheken wie NVIDIA Structured Sparsity Support kompatibel ist.

Pruning kann in verschiedenen Phasen durchgeführt werden: vor dem Training (mit Einfluss auf die Architektur), während des Trainingsprozesses oder nach dem Training eines bereits trainierten Modells, oft gefolgt von einer Feinabstimmung, um die verlorene Genauigkeit wiederherzustellen. Große Deep Learning-Frameworks wie PyTorch und TensorFlow bieten Tools und Tutorials, wie z. B. das PyTorch Pruning Tutorial, um verschiedene Pruning-Strategien zu implementieren.

Pruning vs. andere Optimierungstechniken

Pruning ist eine von mehreren Techniken, die zur Modelloptimierung eingesetzt werden. Es ist sinnvoll, es von verwandten Konzepten zu unterscheiden:

  • Modellquantisierung: Verringert die Genauigkeit der Gewichte und Aktivierungen des Modells (z. B. von 32-Bit-Fließkommazahlen auf 8-Bit-Ganzzahlen), wodurch die Größe des Modells verringert und die Berechnungen oft beschleunigt werden, insbesondere auf spezieller Hardware.
  • Wissensdestillation: Dabei wird ein kleineres "Schüler"-Modell so trainiert, dass es das Verhalten eines größeren, bereits trainierten "Lehrermodells" nachahmt und Wissen überträgt, ohne die Komplexität zu übernehmen.

Diese Techniken schließen sich nicht gegenseitig aus und werden häufig in Kombination mit Pruning eingesetzt, um ein höheres Maß an Optimierung zu erreichen. So kann ein Modell zum Beispiel zuerst beschnitten und dann für maximale Effizienz quantisiert werden. Optimierte Modelle können oft in Standardformate exportiert werden wie ONNXexportiert werden, um eine breite Kompatibilität mit verschiedenen Inferenzmaschinen zu gewährleisten.

Zusammenfassend lässt sich sagen, dass Pruning eine leistungsstarke Technik zur Erstellung effizienter KI-Modelle ist, die sich für verschiedene Einsatzzwecke eignen und eine wichtige Rolle bei der praktischen Anwendung von Computer Vision (CV) und anderen ML-Aufgaben spielen. Plattformen wie Ultralytics HUB bieten Tools und Infrastruktur, einschließlich Cloud-Training, die die Entwicklung und Optimierung von Modellen wie YOLOv8 oder YOLO11.

Alles lesen