Optimieren Sie KI-Modelle mit Pruning - reduzieren Sie die Komplexität, steigern Sie die Effizienz und stellen Sie sie schneller auf Edge-Geräten bereit, ohne die Leistung zu beeinträchtigen.
Pruning ist eine Technik zur Modelloptimierung, die dazu dient, die Größe und Rechenkomplexität eines trainierten neuronalen Netzes (NN) zu reduzieren. Bei diesem Verfahren werden redundante oder weniger wichtige Parameter (Gewichte) oder Strukturen (Neuronen, Kanäle oder Schichten) identifiziert und aus dem Modell entfernt. Ziel ist es, ein kleineres, schnelleres und energieeffizienteres Modell zu erstellen, das eine vergleichbare Genauigkeit wie das ursprüngliche Modell beibehält. Dies ist besonders wichtig für den Einsatz komplexer KI-Modelle in ressourcenbeschränkten Umgebungen, wie z. B. in Edge-Geräten.
Der Prozess des Pruning beginnt in der Regel, nachdem ein Deep-Learning-Modell vollständig trainiert worden ist. Er beruht auf dem Prinzip, dass viele große Modelle überparametrisiert sind, d. h. sie enthalten viele Gewichte und Neuronen, die nur wenig zur endgültigen Vorhersage beitragen. Eine gängige Methode zur Identifizierung dieser unwichtigen Komponenten ist die Analyse ihrer Größe; Parameter mit Werten nahe Null werden als weniger wichtig angesehen. Sobald sie identifiziert sind, werden diese Parameter entfernt oder auf Null gesetzt. Nach dem Pruning-Prozess wird das nun kleinere Netz in der Regel einer Feinabstimmung unterzogen, bei der das Modell für einige weitere Epochen neu trainiert wird. Dieser Schritt hilft den verbleibenden Parametern, sich an die architektonischen Änderungen anzupassen und die Leistung wiederherzustellen, die während des Pruning-Prozesses verloren gegangen sein könnte. Dieser iterative Prozess des Pruning und der Feinabstimmung kann wiederholt werden, um das gewünschte Gleichgewicht zwischen Modellgröße und Leistung zu erreichen, wie in grundlegenden Forschungsarbeiten wie"Deep Compression" beschrieben.
Pruning-Techniken lassen sich grob in verschiedene Kategorien einteilen, je nachdem, was aus dem Netz entfernt wird:
Große Frameworks für maschinelles Lernen wie PyTorch und TensorFlow bieten integrierte Dienstprogramme und Anleitungen für die Implementierung von Pruning.
Pruning ist unerlässlich für den Einsatz leistungsstarker KI-Modelle in praktischen Szenarien, in denen die Rechenressourcen begrenzt sind.
Pruning ist eine von mehreren Techniken zur Modelloptimierung und wird häufig neben anderen eingesetzt. Es ist wichtig, es von verwandten Konzepten zu unterscheiden:
Diese Techniken schließen sich nicht gegenseitig aus. Ein gängiger Arbeitsablauf besteht darin, zunächst ein Modell zu beschneiden, um redundante Parameter zu entfernen, und dann eine Quantisierung auf das beschnittene Modell anzuwenden, um maximale Effizienz zu erzielen. Optimierte Modelle können dann mit der Ultralytics-Exportfunktion in Standardformate wie ONNX exportiert werden, damit sie in verschiedenen Inferenzmaschinen eingesetzt werden können. Plattformen wie Ultralytics HUB können bei der Verwaltung des gesamten Lebenszyklus helfen, vom Training bis zur Bereitstellung optimierter Modelle.