Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten

Was ist Modelloptimierung? Eine kurze Anleitung

Abirami Vina

5 Min. Lesezeit

15. November 2024

Erfahren Sie, wie Modelloptimierungstechniken wie Hyperparameter-Optimierung, Modellbeschneidung und Modellquantisierung dazu beitragen können, dass Computer-Vision-Modelle effizienter laufen.

Modelloptimierung ist ein Prozess, der darauf abzielt, die Effizienz und Leistung von Machine-Learning-Modellen zu verbessern. Durch die Verfeinerung der Struktur und Funktion eines Modells ermöglicht die Optimierung, dass Modelle mit minimalem Rechenaufwand und reduzierter Trainings- und Evaluierungszeit bessere Ergebnisse liefern.

Dieser Prozess ist besonders wichtig in Bereichen wie Computer Vision, wo Modelle oft erhebliche Ressourcen benötigen, um komplexe Bilder zu analysieren. In ressourcenbeschränkten Umgebungen wie mobilen Geräten oder Edge-Systemen können optimierte Modelle mit begrenzten Ressourcen gut funktionieren und dennoch genau sein.

Zur Modelloptimierung werden häufig verschiedene Techniken eingesetzt, darunter Hyperparameter-Optimierung, Modellbeschneidung (Pruning), Modellquantisierung und Mixed Precision. In diesem Artikel werden wir diese Techniken und ihre Vorteile für Computer Vision Anwendungen untersuchen. Los geht's!

Modelloptimierung verstehen

Computer-Vision-Modelle haben in der Regel tiefe Schichten und komplexe Strukturen, die sich hervorragend eignen, um komplizierte Muster in Bildern zu erkennen, aber sie können auch in Bezug auf die Rechenleistung sehr anspruchsvoll sein. Wenn diese Modelle auf Geräten mit begrenzter Hardware eingesetzt werden, wie z. B. Mobiltelefonen oder Edge-Geräten, können sie mit bestimmten Herausforderungen oder Einschränkungen konfrontiert sein. 

Begrenzte Rechenleistung, Speicher und Energie auf diesen Geräten können zu spürbaren Einbußen bei der Leistung führen, da die Modelle Schwierigkeiten haben, mitzuhalten. Modelloptimierungstechniken sind der Schlüssel zur Bewältigung dieser Probleme. Sie helfen, das Modell zu optimieren, seinen Rechenbedarf zu reduzieren und sicherzustellen, dass es auch mit begrenzten Ressourcen effektiv arbeiten kann. Die Modelloptimierung kann durch Vereinfachung der Modellarchitektur, Reduzierung der Präzision von Berechnungen oder Entfernung unnötiger Komponenten erfolgen, um das Modell leichter und schneller zu machen.

__wf_reserved_inherit
Abb. 1. Gründe für die Optimierung Ihrer Modelle. Bild vom Autor.

Hier sind einige der gängigsten Techniken zur Optimierung von Modellen, die wir in den folgenden Abschnitten näher erläutern werden:

  • Hyperparameter-Optimierung: Sie beinhaltet die systematische Anpassung von Hyperparametern, wie z. B. Lernrate und Batch-Größe, um die Modellleistung zu verbessern.
  • Modellbeschneidung: Diese Technik entfernt unnötige Gewichte und Verbindungen aus dem neuronalen Netzwerk, wodurch dessen Komplexität und Rechenaufwand reduziert werden.
  • Modellquantisierung: Die Quantisierung beinhaltet die Reduzierung der Präzision der Gewichte und Aktivierungen des Modells, typischerweise von 32 Bit auf 16 Bit oder 8 Bit, wodurch der Speicherbedarf und die Rechenanforderungen erheblich reduziert werden.
  • Präzisionsanpassungen: Auch bekannt als Mixed-Precision-Training, beinhaltet es die Verwendung verschiedener Präzisionsformate für verschiedene Teile des Modells und die Optimierung der Ressourcennutzung, ohne die Genauigkeit zu beeinträchtigen.

Erläutert: Hyperparameter in Modellen des maschinellen Lernens

Sie können einem Modell helfen, besser zu lernen und zu funktionieren, indem Sie seine Hyperparameter optimieren - Einstellungen, die beeinflussen, wie das Modell aus Daten lernt. Hyperparameter-Optimierung ist eine Technik zur Optimierung dieser Einstellungen, wodurch die Effizienz und Genauigkeit des Modells verbessert wird. Im Gegensatz zu Parametern, die das Modell während des Trainings lernt, sind Hyperparameter voreingestellte Werte, die den Trainingsprozess steuern.

Gehen wir einige Beispiele für Hyperparameter durch, die angepasst werden können:

  • Lernrate: Dieser Parameter steuert die Schrittgröße, mit der das Modell seine internen Gewichtungen anpasst. Eine höhere Lernrate kann das Lernen beschleunigen, birgt aber das Risiko, die optimale Lösung zu verfehlen, während eine niedrigere Rate genauer, aber langsamer sein kann.
  • Batch-Größe: Sie definiert, wie viele Datenstichproben in jedem Trainingsschritt verarbeitet werden. Größere Batch-Größen bieten stabileres Lernen, benötigen aber mehr Speicher. Kleinere Batches trainieren schneller, sind aber möglicherweise weniger stabil.
  • Epochen: Mit diesem Parameter können Sie festlegen, wie oft das Modell den vollständigen Datensatz sieht. Mehr Epochen können die Genauigkeit verbessern, bergen aber das Risiko einer Überanpassung.
  • Kernelgröße: Sie definiert die Filtergröße in Convolutional Neural Networks (CNNs). Größere Kernel erfassen breitere Muster, benötigen aber mehr Rechenleistung; kleinere Kernel konzentrieren sich auf feinere Details.

Wie Hyperparameter-Optimierung funktioniert

Die Hyperparameter-Optimierung beginnt in der Regel mit der Definition eines Bereichs möglicher Werte für jeden Hyperparameter. Ein Suchalgorithmus untersucht dann verschiedene Kombinationen innerhalb dieser Bereiche, um die Einstellungen zu identifizieren, die die beste Leistung erzielen. 

Gängige Tuning-Methoden sind die Gittersuche (Grid Search), die Zufallssuche (Random Search) und die Bayes'sche Optimierung. Die Gittersuche testet jede mögliche Kombination von Werten innerhalb der angegebenen Bereiche. Die Zufallssuche wählt Kombinationen zufällig aus, wodurch oft schneller effektive Einstellungen gefunden werden. Die Bayes'sche Optimierung verwendet ein probabilistisches Modell, um vielversprechende Hyperparameterwerte auf der Grundlage früherer Ergebnisse vorherzusagen. Dieser Ansatz reduziert typischerweise die Anzahl der benötigten Versuche. 

Letztendlich wird für jede Kombination von Hyperparametern die Leistung des Modells bewertet. Der Vorgang wird so lange wiederholt, bis die gewünschten Ergebnisse erzielt sind.

Hyperparameter vs. Modellparameter

Während Sie an der Hyperparameter-Optimierung arbeiten, fragen Sie sich vielleicht, was der Unterschied zwischen Hyperparametern und Modellparametern ist. 

Hyperparameter sind Werte, die vor dem Training festgelegt werden und steuern, wie das Modell lernt, z. B. die Lernrate oder die Batch-Größe. Diese Einstellungen sind während des Trainings festgelegt und beeinflussen den Lernprozess direkt. Modellparameter hingegen werden vom Modell selbst während des Trainings erlernt. Dazu gehören Gewichte und Biaswerte, die sich während des Trainings des Modells anpassen und letztendlich seine Vorhersagen steuern. Im Wesentlichen gestalten Hyperparameter den Lernprozess, während Modellparameter die Ergebnisse dieses Lernprozesses sind.

__wf_reserved_inherit
Abb. 2. Vergleich von Parametern und Hyperparametern. 

Warum Model Pruning im Deep Learning wichtig ist

Modellbeschneidung (Model Pruning) ist eine Technik zur Größenreduzierung, die unnötige Gewichte und Parameter aus einem Modell entfernt und es so effizienter macht. In der Computer Vision, insbesondere bei tiefen neuronalen Netzen, kann eine große Anzahl von Parametern, wie z. B. Gewichte und Aktivierungen (Zwischenausgaben, die bei der Berechnung der endgültigen Ausgabe helfen), sowohl die Komplexität als auch den Rechenaufwand erhöhen. Pruning hilft, das Modell zu verschlanken, indem es Parameter identifiziert und entfernt, die nur minimal zur Leistung beitragen, was zu einem leichteren, effizienteren Modell führt.

__wf_reserved_inherit
Abb. 3. Vorher und nachher Modellbeschneidung.

Nach dem Training des Modells können Techniken wie Magnitude-Based Pruning oder Sensitivitätsanalyse die Bedeutung jedes Parameters bewerten. Parameter von geringer Bedeutung werden dann mit einer von drei Haupttechniken entfernt: Weight Pruning, Neuron Pruning oder Structured Pruning. 

Weight Pruning entfernt einzelne Verbindungen mit minimalen Auswirkungen auf die Ausgabe. Neuron Pruning entfernt ganze Neuronen, deren Ausgaben wenig zur Funktion des Modells beitragen. Structured Pruning eliminiert größere Abschnitte, wie z. B. Convolutional Filter oder Neuronen in vollständig verbundenen Schichten, und optimiert so die Effizienz des Modells. Sobald das Pruning abgeschlossen ist, wird das Modell erneut trainiert, um die verbleibenden Parameter zu feinabzustimmen, wodurch sichergestellt wird, dass es in reduzierter Form eine hohe Genauigkeit beibehält.

Reduzierung der Latenz in KI-Modellen durch Quantisierung

Modellquantisierung reduziert die Anzahl der Bits, die zur Darstellung der Gewichte und Aktivierungen eines Modells verwendet werden. Typischerweise werden hochpräzise 32-Bit-Gleitkommawerte in niedrigere Präzisionen wie 16-Bit- oder 8-Bit-Ganzzahlen umgewandelt. Durch die Reduzierung der Bitpräzision verringert die Quantisierung die Größe des Modells, den Speicherbedarf und die Rechenkosten erheblich.

Im Bereich Computer Vision sind 32-Bit-Gleitkommazahlen Standard, aber die Umwandlung in 16-Bit oder 8-Bit kann die Effizienz verbessern. Es gibt zwei Haupttypen der Quantisierung: Gewichtungsquantisierung und Aktivierungsquantisierung. Die Gewichtungsquantisierung reduziert die Präzision der Gewichte des Modells und gleicht Größenreduzierung mit Genauigkeit aus. Die Aktivierungsquantisierung reduziert die Präzision der Aktivierungen, wodurch der Speicher- und Rechenbedarf weiter gesenkt wird.

__wf_reserved_inherit
Abb. 4. Ein Beispiel für die Quantisierung von 32-Bit-Float zu 8-Bit-Integer.

Wie Mixed Precision KI-Inferenz beschleunigt

Gemischte Präzision ist eine Technik, die unterschiedliche numerische Präzisionen für verschiedene Teile eines neuronalen Netzes verwendet. Durch die Kombination von Werten mit höherer Präzision, wie z. B. 32-Bit-Gleitkommazahlen, mit Werten mit niedrigerer Präzision, wie z. B. 16-Bit- oder 8-Bit-Gleitkommazahlen, ermöglicht die gemischte Präzision es Computer Vision Modellen, das Training zu beschleunigen und den Speicherverbrauch zu reduzieren, ohne die Genauigkeit zu beeinträchtigen.

Während des Trainings wird gemischte Präzision erreicht, indem in bestimmten Schichten eine niedrigere Präzision verwendet wird, während in anderen Bereichen des Netzwerks bei Bedarf eine höhere Präzision beibehalten wird. Dies geschieht durch Casting und Loss Scaling. Casting konvertiert Datentypen zwischen verschiedenen Präzisionen, wie vom Modell gefordert. Loss Scaling passt die reduzierte Präzision an, um numerischen Underflow zu verhindern und ein stabiles Training zu gewährleisten. Gemischte Präzision ist besonders nützlich für große Modelle und große Batch-Größen.

__wf_reserved_inherit
Abb. 5. Gemischte Präzisionstraining verwendet sowohl 16-Bit- (FP16) als auch 32-Bit-Gleitkommatypen (FP32).

Modellgenauigkeit und Effizienz in Einklang bringen

Nachdem wir nun verschiedene Techniken zur Modelloptimierung behandelt haben, wollen wir erörtern, wie Sie entscheiden, welche Technik Sie basierend auf Ihren spezifischen Bedürfnissen einsetzen sollten. Die Wahl hängt von Faktoren wie der verfügbaren Hardware, den Rechen- und Speicherbeschränkungen der Einsatzumgebung und dem erforderlichen Genauigkeitsgrad ab. 

Beispielsweise eignen sich kleinere, schnellere Modelle besser für mobile Geräte mit begrenzten Ressourcen, während größere, genauere Modelle auf Hochleistungssystemen eingesetzt werden können. Hier ist, wie jede Technik mit verschiedenen Zielen übereinstimmt:

  • Pruning: Es ist ideal, um die Modellgröße zu reduzieren, ohne die Genauigkeit wesentlich zu beeinträchtigen, wodurch es sich perfekt für ressourcenbeschränkte Geräte wie Mobiltelefone oder Geräte des Internets der Dinge (IoT) eignet.
  • Quantisierung: Eine großartige Option zum Verkleinern der Modellgröße und zum Beschleunigen der Inferenz, insbesondere auf Mobilgeräten und eingebetteten Systemen mit begrenztem Speicher und begrenzter Rechenleistung. Es eignet sich gut für Anwendungen, bei denen geringfügige Genauigkeitsreduzierungen akzeptabel sind.
  • Gemischte Präzision: Diese Technik wurde für groß angelegte Modelle entwickelt und reduziert den Speicherbedarf und beschleunigt das Training auf Hardware wie GPUs und TPUs, die Operationen mit gemischter Präzision unterstützen. Sie wird häufig in Hochleistungsaufgaben eingesetzt, bei denen Effizienz wichtig ist.
  • Hyperparameter-Optimierung: Obwohl rechenintensiv, ist sie unerlässlich für Anwendungen, die eine hohe Genauigkeit erfordern, wie z. B. medizinische Bildgebung oder autonomes Fahren.

Wesentliche Erkenntnisse

Die Modelloptimierung ist ein wichtiger Bestandteil des maschinellen Lernens, insbesondere für den Einsatz von KI in realen Anwendungen. Techniken wie Hyperparameter-Optimierung, Modellbeschneidung, Quantisierung und gemischte Präzision tragen dazu bei, die Leistung, Effizienz und Ressourcennutzung von Computer-Vision-Modellen zu verbessern. Diese Optimierungen machen Modelle schneller und ressourcenschonender, was ideal für Geräte mit begrenztem Speicher und Rechenleistung ist. Optimierte Modelle lassen sich auch einfacher skalieren und auf verschiedenen Plattformen einsetzen, was KI-Lösungen ermöglicht, die sowohl effektiv als auch an eine Vielzahl von Anwendungen anpassbar sind.

Besuchen Sie das Ultralytics GitHub-Repository und treten Sie unserer Community bei, um mehr über KI-Anwendungen in der Fertigung und Landwirtschaft zu erfahren.

Lasst uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens

Kostenlos starten
Link in die Zwischenablage kopiert