Was ist Modelloptimierung? Ein kurzer Leitfaden

Abirami Vina

5 Minuten lesen

15. November 2024

Erfahren Sie, wie Modelloptimierungstechniken wie Hyperparameter-Tuning, 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 Modellen des maschinellen Lernens zu verbessern. Durch die Verfeinerung der Struktur und Funktion eines Modells ermöglicht die Optimierung, dass die Modelle mit minimalen Rechenressourcen und reduzierter Trainings- und Evaluierungszeit bessere Ergebnisse liefern.

Dieser Prozess ist besonders wichtig in Bereichen wie der 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 trotzdem genau sein.

Zur Modelloptimierung werden häufig verschiedene Techniken eingesetzt, darunter Hyperparameter-Tuning, Modellbeschneidung, Modellquantisierung und gemischte Präzision. In diesem Artikel werden wir uns mit diesen Techniken und ihren Vorteilen für Computer-Vision-Anwendungen befassen. Fangen wir an!

Verständnis der Modelloptimierung

Computer-Vision-Modelle verfügen in der Regel über tiefe Schichten und komplexe Strukturen, die sich hervorragend für die Erkennung komplizierter Muster in Bildern eignen, aber sie können auch recht anspruchsvoll sein, was die Verarbeitungsleistung angeht. Wenn diese Modelle auf Geräten mit begrenzter Hardware, wie Mobiltelefonen oder Edge-Geräten, eingesetzt werden, können sie auf bestimmte Herausforderungen oder Einschränkungen stoßen. 

Die begrenzte Rechenleistung, der begrenzte Speicher und der begrenzte Stromverbrauch dieser Geräte können zu spürbaren Leistungseinbußen führen, wenn die Modelle nicht mithalten können. Techniken zur Modelloptimierung sind der Schlüssel, um diese Probleme zu bewältigen. Sie tragen dazu bei, das Modell zu straffen, seinen Rechenbedarf zu verringern und sicherzustellen, dass es auch bei begrenzten Ressourcen noch effektiv arbeiten kann. Die Modelloptimierung kann durch die Vereinfachung der Modellarchitektur, die Verringerung der Rechengenauigkeit oder die Entfernung unnötiger Komponenten erfolgen, um das Modell leichter und schneller zu machen.

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

Im Folgenden werden einige der gebräuchlichsten Modelloptimierungstechniken vorgestellt, auf die wir in den folgenden Abschnitten näher eingehen werden:

  • Hyperparameter-Abstimmung: Dabei werden Hyperparameter wie Lernrate und Batchgröße systematisch angepasst, um die Modellleistung zu verbessern.
  • Modell Beschneiden: Diese Technik entfernt überflüssige Gewichte und Verbindungen aus dem neuronalen Netz und reduziert so seine Komplexität und Rechenkosten.
  • Quantisierung des Modells: Bei der Quantisierung wird die Genauigkeit der Gewichte und Aktivierungen des Modells reduziert, in der Regel von 32-Bit auf 16-Bit oder 8-Bit, was den Speicherbedarf und die Rechenanforderungen erheblich verringert.
  • Präzisionseinstellungen: Auch als gemischtes Präzisionstraining bekannt, beinhaltet es die Verwendung unterschiedlicher Präzisionsformate für verschiedene Teile des Modells und die Optimierung der Ressourcennutzung ohne Beeinträchtigung der Genauigkeit.

Erläutert: Hyperparameter in Modellen für maschinelles Lernen

Sie können einem Modell beim Lernen helfen und seine Leistung verbessern, indem Sie seine Hyperparameter einstellen - Einstellungen, die bestimmen, wie das Modell aus Daten lernt. Die Abstimmung von Hyperparametern ist eine Technik zur Optimierung dieser Einstellungen, um die Effizienz und Genauigkeit des Modells zu verbessern. Im Gegensatz zu Parametern, die das Modell während des Trainings erlernt, sind Hyperparameter voreingestellte Werte, die den Trainingsprozess steuern.

Gehen wir einige Beispiele von Hyperparametern durch, die angepasst werden können:

  • Lernrate: Dieser Parameter steuert die Schrittgröße, die das Modell zur Anpassung seiner internen Gewichte benötigt. Eine höhere Lernrate kann das Lernen beschleunigen, birgt aber das Risiko, die optimale Lösung zu verpassen, während eine niedrigere Rate zwar genauer, aber langsamer ist.
  • Stapelgröße: Sie legt fest, wie viele Datenproben in jedem Trainingsschritt verarbeitet werden. Größere Stapelgrößen bieten stabileres Lernen, benötigen aber mehr Speicherplatz. Kleinere Stapel trainieren schneller, können aber weniger stabil sein.
  • Epochen: Mit diesem Parameter können Sie festlegen, wie oft das Modell den gesamten Datensatz betrachtet. Mehr Epochen können die Genauigkeit verbessern, riskieren aber eine Überanpassung.
  • Kernelgröße: Sie definiert die Filtergröße in Faltungsneuronalen Netzen (CNNs). Größere Kernel erfassen breitere Muster, benötigen aber mehr Verarbeitung; kleinere Kernel konzentrieren sich auf feinere Details.

So funktioniert die Abstimmung der Hyperparameter

Die Abstimmung der Hyperparameter beginnt im Allgemeinen mit der Festlegung eines Bereichs möglicher Werte für jeden Hyperparameter. Ein Suchalgorithmus prüft dann verschiedene Kombinationen innerhalb dieser Bereiche, um die Einstellungen zu ermitteln, die die beste Leistung erbringen. 

Zu den gängigen Abstimmungsmethoden gehören die Rastersuche, die Zufallssuche und die Bayes'sche Optimierung. Bei der Rastersuche wird jede mögliche Kombination von Werten innerhalb der angegebenen Bereiche getestet. Bei der zufälligen Suche werden Kombinationen nach dem Zufallsprinzip ausgewählt, wodurch oft schneller effektive Einstellungen gefunden werden. Bei der Bayes'schen Optimierung wird ein probabilistisches Modell verwendet, um auf der Grundlage früherer Ergebnisse vielversprechende Hyperparameterwerte vorherzusagen. Dieser Ansatz reduziert in der Regel die Anzahl der erforderlichen Versuche. 

Schließlich wird für jede Kombination von Hyperparametern die Leistung des Modells bewertet. Der Prozess wird so lange wiederholt, bis die gewünschten Ergebnisse erzielt werden.

Hyperparameter vs. Modellparameter

Bei der Arbeit an der Abstimmung von Hyperparametern 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 Stapelgröße. Diese Einstellungen werden während des Trainings festgelegt und beeinflussen direkt den Lernprozess. Modellparameter hingegen werden vom Modell selbst während des Trainings erlernt. Dazu gehören Gewichte und Verzerrungen, die sich beim Training des Modells anpassen und letztlich die Vorhersagen steuern. Im Wesentlichen bestimmen die Hyperparameter den Lernprozess, während die Modellparameter die Ergebnisse dieses Lernprozesses sind.

__wf_reserved_inherit
Abb. 2. Vergleich von Parametern und Hyperparametern. 

Warum Modellbeschneidung beim Deep Learning wichtig ist

Modellbeschneidung ist eine Technik zur Größenreduzierung, bei der unnötige Gewichte und Parameter aus einem Modell entfernt werden, um es effizienter zu machen. Beim Computer Vision, insbesondere bei tiefen neuronalen Netzen, kann eine große Anzahl von Parametern wie Gewichte und Aktivierungen (Zwischenergebnisse, die zur Berechnung des endgültigen Ergebnisses beitragen) sowohl die Komplexität als auch den Rechenaufwand erhöhen. Pruning hilft bei der Verschlankung des Modells, indem Parameter, die nur minimal zur Leistung beitragen, identifiziert und entfernt werden, was zu einem schlankeren, effizienteren Modell führt.

__wf_reserved_inherit
Abb. 3. Vor und nach der Modellbeschneidung.

Nachdem das Modell trainiert wurde, kann mit Techniken wie dem magnitudenbasierten Pruning oder der Sensitivitätsanalyse die Bedeutung der einzelnen Parameter bewertet werden. Parameter mit geringer Bedeutung werden dann mit einer der drei Haupttechniken beschnitten: Gewichtsbeschneidung, Neuronenbeschneidung oder strukturierte Beschneidung. 

Beim Weight Pruning werden einzelne Verbindungen mit minimalen Auswirkungen auf die Ausgabe entfernt. Beim Neuron Pruning werden ganze Neuronen entfernt, deren Ausgaben wenig zur Funktion des Modells beitragen. Strukturiertes Pruning entfernt größere Abschnitte, wie Faltungsfilter oder Neuronen in vollständig verbundenen Schichten, um die Effizienz des Modells zu optimieren. Sobald das Pruning abgeschlossen ist, wird das Modell neu trainiert, um die verbleibenden Parameter fein abzustimmen und so eine hohe Genauigkeit in einer reduzierten Form zu gewährleisten.

Verringerung der Latenzzeit in KI-Modellen durch Quantisierung

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

In der Computer Vision sind 32-Bit-Fließkommazahlen Standard, aber eine Konvertierung in 16-Bit oder 8-Bit kann die Effizienz verbessern. Es gibt zwei Hauptarten der Quantisierung: Gewichtsquantisierung und Aktivierungsquantisierung. Bei der Gewichtungsquantisierung wird die Genauigkeit der Modellgewichte verringert, um einen Ausgleich zwischen Größenreduzierung und Genauigkeit zu schaffen. Bei der Aktivierungsquantisierung wird die Genauigkeit der Aktivierungen verringert, was den Speicher- und Rechenbedarf weiter senkt.

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

Wie gemischte Präzision KI-Schlüsse beschleunigt

Gemischte Präzision ist eine Technik, bei der verschiedene Teile eines neuronalen Netzes mit unterschiedlichen numerischen Genauigkeiten arbeiten. Durch die Kombination von Werten mit höherer Genauigkeit, wie z. B. 32-Bit-Fließkommazahlen, mit Werten mit geringerer Genauigkeit, wie z. B. 16-Bit- oder 8-Bit-Fließkommazahlen, ermöglicht die gemischte Genauigkeit Computer-Vision-Modellen , das Training zu beschleunigen und die Speichernutzung zu reduzieren, ohne die Genauigkeit zu beeinträchtigen.

Während des Trainings wird eine gemischte Präzision erreicht, indem eine geringere Präzision in bestimmten Schichten verwendet wird, während eine höhere Präzision dort beibehalten wird, wo sie im gesamten Netz benötigt wird. Dies wird durch Casting und Verlustskalierung erreicht. Beim Casting werden Datentypen je nach Bedarf des Modells zwischen verschiedenen Genauigkeiten konvertiert. Die Verlustskalierung passt die reduzierte Genauigkeit an, um einen numerischen Unterlauf zu verhindern und ein stabiles Training zu gewährleisten. Gemischte Präzision ist besonders nützlich für große Modelle und große Losgrößen.

__wf_reserved_inherit
Abb. 5. Beim Training mit gemischter Genauigkeit werden sowohl 16-Bit (FP16) als auch 32-Bit (FP32) Gleitkommatypen verwendet.

Ausgleich zwischen Modellgenauigkeit und Effizienz

Nachdem wir uns nun mit den verschiedenen Techniken der Modelloptimierung befasst haben, wollen wir nun erörtern, wie Sie je nach Ihren spezifischen Anforderungen entscheiden können, welche Methode Sie verwenden möchten. Die Wahl hängt von Faktoren wie der verfügbaren Hardware, den Rechen- und Speicherbeschränkungen der Einsatzumgebung und dem erforderlichen Genauigkeitsgrad ab. 

So eignen sich kleinere, schnellere Modelle besser für mobile Geräte mit begrenzten Ressourcen, während größere, genauere Modelle auf Hochleistungssystemen verwendet werden können. Im Folgenden wird erläutert, wie jede Technik auf die verschiedenen Ziele abgestimmt ist:

  • Beschneiden: Es ist ideal, um die Modellgröße zu reduzieren, ohne die Genauigkeit wesentlich zu beeinträchtigen, was es perfekt für ressourcenbeschränkte Geräte wie Mobiltelefone oder Internet-of-Things-Geräte (IoT) macht.
  • Quantisierung: Eine großartige Option zur Verringerung der Modellgröße und zur Beschleunigung der Inferenz, insbesondere auf mobilen Geräten und eingebetteten Systemen mit begrenztem Speicher und begrenzter Verarbeitungsleistung. Sie eignet sich gut für Anwendungen, bei denen leichte Genauigkeitseinbußen akzeptabel sind.
  • Gemischte Präzision: Diese Technik wurde für große Modelle entwickelt und reduziert die Speichernutzung und beschleunigt das Training auf Hardware wie GPUs und TPUs, die Operationen mit gemischter Genauigkeit unterstützen. Sie wird häufig bei Hochleistungsaufgaben eingesetzt, bei denen es auf Effizienz ankommt.
  • Abstimmung der Hyperparameter: Sie ist zwar rechenintensiv, aber für Anwendungen, die eine hohe Genauigkeit erfordern, wie z. B. die medizinische Bildgebung oder das autonome Fahren, unerlässlich.

Die wichtigsten Erkenntnisse

Modelloptimierung ist ein wichtiger Bestandteil des maschinellen Lernens, insbesondere für den Einsatz von KI in realen Anwendungen. Techniken wie die Abstimmung von Hyperparametern, Modellbeschneidung, Quantisierung und gemischte Präzision helfen, die Leistung, Effizienz und Ressourcennutzung von Computer-Vision-Modellen zu verbessern. Diese Optimierungen machen Modelle schneller und weniger ressourcenintensiv, was ideal für Geräte mit begrenztem Speicher und begrenzter Verarbeitungsleistung ist. Optimierte Modelle lassen sich auch leichter skalieren und auf verschiedenen Plattformen einsetzen, was KI-Lösungen ermöglicht, die sowohl effektiv als auch anpassungsfähig für eine breite Palette von Anwendungen 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.

Lassen Sie uns gemeinsam die Zukunft
der KI gestalten!

Beginnen Sie Ihre Reise in die Zukunft des maschinellen Lernens

Kostenloser Start
Link in die Zwischenablage kopiert