Was ist Modelloptimierung? Ein kurzer Leitfaden
Lerne, wie Modelloptimierungstechniken wie Hyperparameter-Tuning, Modell-Pruning und Modellquantisierung dabei helfen können, Computer-Vision-Modelle effizienter auszuführen.

Modelloptimierung ist ein Prozess, der darauf abzielt, die Effizienz und performance von machine learning-Modellen zu verbessern. Durch die Verfeinerung der Struktur und Funktion eines Modells macht es die Optimierung möglich, dass Modelle bessere Ergebnisse mit minimalen computational resources sowie reduzierter training- und evaluation-Zeit liefern.
Dieser Prozess ist besonders in Bereichen wie computer vision wichtig, wo models oft erhebliche Ressourcen erfordern, um complex images zu analysieren. In ressourcenbeschränkten Umgebungen wie mobile devices oder Edge-Systemen können optimierte Modelle gut mit begrenzten Ressourcen arbeiten und dabei dennoch präzise sein.
Mehrere Techniken werden häufig eingesetzt, um die Modelloptimierung zu erreichen, darunter Hyperparameter-Tuning, Modell-Pruning, Modell-Quantisierung und gemischte Genauigkeit (Mixed Precision). In diesem Artikel erkunden wir diese Techniken und die Vorteile, die sie für computer vision applications bringen. Lass uns anfangen!
Modelloptimierung verstehen#
Computer vision models haben normalerweise deep layers und komplexe Strukturen, die sich hervorragend zur Erkennung komplizierter Muster in Bildern eignen, aber sie können auch recht anspruchsvoll hinsichtlich der processing power sein. Wenn diese Modelle auf Geräten mit begrenzter Hardware wie mobile phones oder edge devices deployed werden, können sie vor bestimmten Herausforderungen oder Einschränkungen stehen.
Begrenzte Rechenleistung, Speicher und Energie auf diesen Geräten können zu spürbaren Einbussen bei der performance führen, während die Modelle darum kämpfen, Schritt zu halten. Modelloptimierungstechniken sind der Schlüssel zur Bewältigung dieser Anliegen. Sie helfen dabei, das Modell zu optimieren, seine computational needs zu reduzieren und sicherzustellen, dass es auch mit begrenzten Ressourcen effektiv arbeiten kann. Modelloptimierung kann durchgeführt werden, indem die model architecture vereinfacht, die precision von Berechnungen verringert oder unnötige Komponenten entfernt werden, um das Modell leichter und schneller zu machen.

Abb. 1. Gründe für die Optimierung deiner Modelle. Bild vom Autor.
Hier sind einige der gängigsten Techniken zur optimization von Modellen, die wir in den folgenden Abschnitten genauer beleuchten werden:
- Hyperparameter tuning: Dies beinhaltet die systematische Anpassung von Hyperparametern wie Lernrate und Batch-Größe, um die Modellleistung zu verbessern.
- Model pruning: Diese Technik entfernt unnötige Gewichte und Verbindungen aus dem neuronalen Netzwerk, wodurch dessen Komplexität und Rechenaufwand verringert werden.
- Model quantization: Bei der Quantisierung wird die Genauigkeit der Gewichte und Aktivierungen des Modells reduziert, typischerweise von 32-Bit auf 16-Bit oder 8-Bit, wodurch der Speicherbedarf und die Rechenanforderungen erheblich sinken.
- Precision adjustments: Auch bekannt als Mixed-Precision-Training, beinhaltet die Verwendung verschiedener Genauigkeitsformate für verschiedene Teile des Modells und die Optimierung der Ressourcennutzung, ohne die Genauigkeit zu beeinträchtigen.
Erklärt: Hyperparameter in Machine-Learning-Modellen#
Du kannst einem Modell helfen, besser zu lernen und abzuschneiden, indem du seine Hyperparameter abstimmst – Einstellungen, die prägen, wie das Modell aus Daten lernt. Hyperparameter tuning ist eine Technik zur Optimierung dieser Einstellungen, die die Effizienz und accuracy des Modells verbessert. Im Gegensatz zu Parametern, die das Modell während des training lernt, sind Hyperparameter voreingestellte Werte, die den Trainingsprozess leiten.
Gehen wir einige Beispiele für Hyperparameter durch, die angepasst werden können:
- Learning rate: Dieser Parameter steuert die Schrittweite, mit der das Modell seine internen Gewichte anpasst. Eine höhere Lernrate kann das Lernen beschleunigen, birgt jedoch das Risiko, die optimale Lösung zu verfehlen, während eine niedrigere Rate möglicherweise genauer, aber langsamer ist.
- Batch size: Sie definiert, wie viele Datenstufen in jedem Trainingsschritt verarbeitet werden. Größere Batch-Größen bieten ein stabileres Lernen, erfordern jedoch mehr Speicher. Kleinere Batches trainieren schneller, sind aber möglicherweise weniger stabil.
- Epochs: Du kannst mit diesem Parameter bestimmen, wie oft das Modell den vollständigen dataset sieht. Mehr Epochen können die Genauigkeit verbessern, bergen jedoch das Risiko von overfitting.
- Kernel-Größe: Sie definiert die Filtergröße in Convolutional Neural Networks (CNNs). Größere Kernel erfassen breitere Muster, erfordern jedoch mehr Rechenleistung; kleinere Kernel konzentrieren sich auf feindatierte Details.
Wie Hyperparameter-Tuning funktioniert#
Das Hyperparameter-Tuning beginnt im Allgemeinen 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 best performance erzeugen.
Zu den gängigen Tuning-Methoden gehören Grid Search, Random Search und Bayesian-Optimierung. Grid Search testet jede mögliche Kombination von Werten innerhalb der angegebenen Bereiche. Random Search wählt Kombinationen nach dem Zufallsprinzip aus und findet oft schneller effektive Einstellungen. Die Bayes'sche Optimierung verwendet ein probabilistisches Modell, um auf der Grundlage früherer Ergebnisse vielversprechende Hyperparameter-Werte vorherzusagen. Dieser Ansatz reduziert in der Regel die Anzahl der erforderlichen Versuche.
Letztendlich wird für jede Kombination von Hyperparametern die Leistung des Modells evaluated. Der Prozess wird wiederholt, bis die gewünschten Ergebnisse erzielt werden.
Hyperparameter vs. Modellparameter#
Während du am Hyperparameter-Tuning arbeitest, fragst du dich vielleicht, worin der Unterschied zwischen Hyperparametern und model parameters besteht.
Hyperparameter sind Werte, die vor dem training festgelegt werden und steuern, wie das model lernt, wie zum Beispiel die Lernrate oder die Batch-Größe. Diese Einstellungen sind während des Trainings fixiert und beeinflussen den Lernprozess direkt. Modellparameter hingegen werden vom Modell selbst während des Trainings gelernt. Dazu gehören Gewichte und biases, die sich während des Trainings des Modells anpassen und schließlich dessen predictions leiten. Im Wesentlichen prägen Hyperparameter den Lernweg, während Modellparameter das Ergebnis dieses Lernprozesses sind.

Fig 2. Vergleich von Parametern und Hyperparametern.
Warum Modell-Pruning im Deep Learning wichtig ist#
Model pruning ist eine Technik zur Größenreduzierung, die unnötige Gewichte und Parameter aus einem Modell entfernt, um es effizienter zu machen. In der computer vision, insbesondere bei tiefen neural networks, kann eine große Anzahl von Parametern – wie Gewichte und Aktivierungen (Zwischenausgaben, die bei der Berechnung der endgültigen Ausgabe helfen) – sowohl die Komplexität als auch den Rechenbedarf erhöhen. Pruning hilft dabei, das Modell zu optimieren, indem Parameter identifiziert und entfernt werden, die nur minimal zur Leistung beitragen, was zu einem leichteren, effizienteren Modell führt.

Fig3. Vor und nach dem Modell-Pruning.
Nachdem das Modell trainiert wurde, können Techniken wie größenbasiertes Pruning oder Sensitivitätsanalysen die Bedeutung jedes Parameters bewerten. Parameter mit geringer Bedeutung werden dann mit einer von drei Haupttechniken entfernt: Gewichts-Pruning, Neuronen-Pruning oder strukturiertes Pruning.
Gewichts-Pruning entfernt einzelne Verbindungen mit minimalen Auswirkungen auf die Ausgabe. Neuron-Pruning entfernt ganze Neuronen, deren Ausgaben wenig zur Funktion des Modells beitragen. Strukturiertes Pruning eliminiert größere Abschnitte wie Faltungsfilter oder Neuronen in vollständig verbundenen Schichten, wodurch die Effizienz des Modells optimiert wird. Sobald das Pruning abgeschlossen ist, wird das Modell nachtrainiert, um die verbleibenden Parameter abzustimmen (fine-tune), wodurch sichergestellt wird, dass es in reduzierter Form eine hohe Genauigkeit beibehält.
Reduzierung der Latenz in KI-Modellen durch Quantisierung#
Model quantization reduziert die Anzahl der Bits, die zur Darstellung der Gewichte und Aktivierungen eines Modells verwendet werden. Sie konvertiert typischerweise hochpräzise 32-Bit-Gleitkommawerte in eine geringere Genauigkeit, wie beispielsweise 16-Bit- oder 8-Bit-Ganzzahlen. Durch die Reduzierung der Bit-Genauigkeit verringert die Quantisierung die model's size, den Speicherbedarf und die Rechenkosten erheblich.
In der computer vision sind 32-Bit-Floats Standard, aber die Konvertierung in 16-Bit oder 8-Bit kann die Effizienz verbessern. Es gibt zwei Haupttypen der Quantisierung: Gewichtsquantisierung und Aktivierungsquantisierung. Die Gewichtsquantisierung senkt die Genauigkeit der Gewichte des Modells und gleicht dabei Größenreduzierung und Genauigkeit aus. Die Aktivierungsquantisierung reduziert die Genauigkeit von Aktivierungen, wodurch Speicher- und Rechenanforderungen weiter sinken.

Fig 4. Ein Beispiel für die Quantisierung von 32-Bit-Float zu 8-Bit-Integer.
Wie gemischte Präzision KI-Inferenz beschleunigt#
Mixed precision ist eine Technik, die verschiedene numerische Genauigkeiten für verschiedene Teile eines neural network verwendet. Durch die Kombination von Werten höherer Genauigkeit, wie z. B. 32-Bit-Floats, mit Werten geringerer Genauigkeit, wie z. B. 16-Bit- oder 8-Bit-Floats, macht es Mixed Precision für computer vision models möglich, das Training zu beschleunigen und den Speicherverbrauch zu reduzieren, ohne an Genauigkeit einzubüßen.
Während des Trainings wird gemischte Präzision erreicht, indem in bestimmten Schichten eine geringere Präzision verwendet wird, während an anderer Stelle im Netzwerk die höhere Präzision beibehalten wird. Dies erfolgt durch Casting und Loss-Skalierung. Casting konvertiert Datentypen zwischen verschiedenen Präzisionen, wie vom Modell benötigt. Loss-Skalierung passt die reduzierte Präzision an, um numerisches 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.

Fig 5. Das Mixed-Precision-Training verwendet sowohl 16-Bit- (FP16) als auch 32-Bit-Gleitkommatypen (FP32).
Ausbalancierung von Modellgenauigkeit und Effizienz#
Nun, da wir mehrere Modelloptimierungstechniken behandelt haben, lass uns besprechen, wie du entscheidest, welche du basierend auf deinen spezifischen Anforderungen verwendest. Die Wahl hängt von Faktoren wie der verfügbaren hardware, den Rechen- und Speicherbeschränkungen der deployment environment, und dem erforderlichen Genauigkeitsgrad ab.
Zum Beispiel sind kleinere, schnellere Modelle besser für mobile Geräte mit begrenzten Ressourcen geeignet, während größere, präzisere Modelle auf Hochleistungssystemen verwendet werden können. Hier ist, wie sich die einzelnen Techniken an different goals ausrichten:
- Pruning: 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 (IoT)-Geräte macht.
- Quantisierung: Eine hervorragende Option zum Verkleinern der Modellgröße und Beschleunigen der inference, insbesondere auf Mobilgeräten und embedded systems mit begrenztem Speicher und begrenzter Rechenleistung. Sie funktioniert gut für Anwendungen, bei denen geringfügige Genauigkeitseinbußen akzeptabel sind.
- Mixed Precision: Entwickelt für groß angelegte Modelle, reduziert diese Technik den Speicherverbrauch 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 Effizienz wichtig ist.
- Hyperparameter tuning: Obwohl rechenintensiv, ist es unerlässlich für Anwendungen, die eine hohe Genauigkeit erfordern, wie etwa medical imaging oder autonomous driving.
Wichtige Erkenntnisse#
Modelloptimierung ist ein wesentlicher Teil des maschinellen Lernens, insbesondere für den Einsatz von KI in realen Anwendungen. Techniken wie Hyperparameter-Tuning, Modell-Pruning, Quantisierung und gemischte Präzision helfen dabei, 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 Rechenleistung ist. Optimierte Modelle sind auch einfacher zu skalieren und auf verschiedenen Plattformen bereitzustellen, was KI-Lösungen ermöglicht, die sowohl effektiv als auch an eine Vielzahl von Einsatzmöglichkeiten anpassbar sind.
Besuche das Ultralytics GitHub repository und tritt unserer community bei, um mehr über KI-Anwendungen in der manufacturing und agriculture zu erfahren.






