Optimieren Sie KI-Modelle durch 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 Modelloptimierungstechnik, die verwendet wird, um die Größe und die rechnerische Komplexität eines trainierten neuronalen Netzes (NN) zu reduzieren. Der Prozess umfasst das Identifizieren und Entfernen von redundanten oder weniger wichtigen Parametern (Gewichten) oder Strukturen (Neuronen, Kanäle oder Schichten) aus dem Modell. Ziel ist es, ein kleineres, schnelleres und energieeffizienteres Modell zu erstellen, das ein vergleichbares Maß an Genauigkeit wie das Originalmodell beibehält. Dies ist besonders wichtig für den Einsatz komplexer KI-Modelle in ressourcenbeschränkten Umgebungen, wie z. B. auf Edge-Geräten.
Der Prozess des Pruning beginnt typischerweise, nachdem ein Deep-Learning-Modell vollständig trainiert wurde. Es basiert auf dem Prinzip, dass viele große Modelle überparametrisiert sind, was bedeutet, dass sie viele Gewichte und Neuronen enthalten, die sehr wenig zur endgültigen Vorhersage beitragen. Eine gängige Methode, um diese unwichtigen Komponenten zu identifizieren, ist die Analyse ihrer Größenordnung; Parameter mit Werten nahe Null gelten als weniger signifikant. Nach der Identifizierung werden diese Parameter entfernt oder auf Null gesetzt. Nach dem Pruning-Prozess wird das nun kleinere Netzwerk in der Regel einem Fine-Tuning unterzogen, bei dem das Modell für einige weitere Epochen erneut trainiert wird. Dieser Schritt hilft den verbleibenden Parametern, sich an die architektonischen Veränderungen anzupassen und jegliche Leistung wiederzuerlangen, die während des Pruning verloren gegangen sein könnte. Dieser iterative Prozess des Pruning und Fine-Tuning kann wiederholt werden, um ein gewünschtes Gleichgewicht zwischen Modellgröße und Leistung zu erreichen, wie in grundlegenden Forschungsarbeiten wie "Deep Compression" beschrieben.
Pruning-Techniken lassen sich grob danach einteilen, was aus dem Netzwerk entfernt wird:
Wichtige Machine-Learning-Frameworks wie PyTorch und TensorFlow bieten integrierte Dienstprogramme und Tutorials zur Implementierung von Pruning.
Pruning ist unerlässlich, um leistungsstarke KI-Modelle in praktischen Szenarien einzusetzen, in denen die Rechenressourcen begrenzt sind.
Pruning ist eine von mehreren Techniken zur Modelloptimierung und wird oft zusammen mit anderen verwendet. Es ist wichtig, es von verwandten Konzepten zu unterscheiden:
Diese Techniken schließen sich nicht gegenseitig aus. Ein üblicher Workflow besteht darin, zuerst ein Modell zu stutzen, um redundante Parameter zu entfernen, und dann Quantisierung auf das gestutzte Modell anzuwenden, um maximale Effizienz zu erzielen. Optimierte Modelle können dann in Standardformate wie ONNX mit der Ultralytics Exportfunktion für eine breite Bereitstellung über verschiedene Inference Engines exportiert werden. Plattformen wie Ultralytics HUB können helfen, den gesamten Lebenszyklus zu verwalten, vom Training bis zur optimierten Modellbereitstellung.