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 von Struktur und Funktion eines Modells ermöglicht die Optimierung es, mit minimalen computational resources bessere Ergebnisse bei gleichzeitig verkürzter training und evaluation zu erzielen.
Dieser Prozess ist besonders wichtig in Bereichen wie computer vision, in denen models oft erhebliche Ressourcen benötigen, um complex images zu analysieren. In ressourcenbeschränkten Umgebungen wie mobile devices oder Edge-Systemen können optimierte Modelle bei begrenzten Ressourcen gut funktionieren und dabei dennoch genau bleiben.
Mehrere Techniken werden häufig zur Modelloptimierung eingesetzt, darunter Hyperparameter-Tuning, Modell-Pruning, Modell-Quantisierung und gemischte Präzision. In diesem Artikel werden wir diese Techniken und die Vorteile, die sie für computer vision applications bieten, untersuchen. Fangen wir an!
Link to this sectionModelloptimierung verstehen#
Computer vision models verfügen in der Regel über deep layers und komplexe Strukturen, die sich hervorragend zur Erkennung komplizierter Muster in Bildern eignen, aber sie können auch sehr anspruchsvoll in Bezug auf processing power sein. Wenn diese Modelle auf Geräten mit begrenzter Hardware deployed werden, wie z. B. mobile phones oder edge devices, können sie vor bestimmte Herausforderungen oder Einschränkungen gestellt werden.
Begrenzte Rechenleistung, Arbeitsspeicher und Energie auf diesen Geräten können zu spürbaren Einbußen bei der Performance führen, da die Modelle Schwierigkeiten haben, Schritt zu halten. Techniken zur Modelloptimierung sind der Schlüssel, um diese Probleme anzugehen. Sie helfen dabei, das Modell zu optimieren, seinen rechnerischen Bedarf zu reduzieren und sicherzustellen, dass es auch bei begrenzten Ressourcen effektiv arbeiten kann. Modelloptimierung kann durch Vereinfachung der Modellarchitektur, Reduzierung der Präzision der Berechnungen oder durch das Entfernen unnötiger Komponenten erfolgen, 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 optimization-Techniken, die wir in den folgenden Abschnitten genauer betrachten werden:
- Hyperparameter tuning: Dabei werden Hyperparameter wie Lernrate und Batch-Größe systematisch angepasst, um die Modellleistung zu verbessern.
- Model pruning: Diese Technik entfernt unnötige Gewichte und Verbindungen aus dem neuronalen Netzwerk und reduziert so dessen Komplexität und Rechenaufwand.
- Model quantization: Bei der Quantisierung wird die Präzision der Gewichte und Aktivierungen des Modells reduziert, typischerweise von 32-Bit auf 16-Bit oder 8-Bit, was den Speicherbedarf und die Rechenanforderungen erheblich verringert.
- Precision adjustments: Auch als Training mit gemischter Präzision bekannt, beinhaltet es die Verwendung unterschiedlicher Präzisionsformate für verschiedene Teile des Modells, um die Ressourcennutzung zu optimieren, ohne die Genauigkeit zu beeinträchtigen.
Link to this sectionErklärt: Hyperparameter in Machine-Learning-Modellen#
Du kannst einem Modell helfen, besser zu lernen und zu funktionieren, indem du dessen Hyperparameter anpasst – Einstellungen, die bestimmen, wie das Modell aus Daten lernt. Hyperparameter tuning ist eine Technik zur Optimierung dieser Einstellungen, um die Effizienz und accuracy des Modells zu verbessern. Im Gegensatz zu Parametern, die das Modell während des training lernt, sind Hyperparameter voreingestellte Werte, die den Trainingsprozess steuern.
Gehen wir einige Beispiele für Hyperparameter durch, die angepasst werden können:
- Learning rate: Dieser Parameter steuert die Schrittweite, die das Modell zur Anpassung seiner internen Gewichte verwendet. 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 sein kann.
- Batch size: Dies definiert, wie viele Datenbeispiele in jedem Trainingsschritt verarbeitet werden. Größere Batch-Größen sorgen für ein stabileres Lernen, benötigen aber mehr Speicher. Kleinere Batches trainieren schneller, können aber instabiler sein.
- Epochs: Du kannst mit diesem Parameter bestimmen, wie oft das Modell den gesamten dataset sieht. Mehr Epochen können die Genauigkeit verbessern, bergen aber das Risiko von overfitting.
- Kernel-Größ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.
Link to this sectionWie 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 beste Performance erzielen.
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 Performance des Modells evaluiert. Der Prozess wird so lange wiederholt, bis die gewünschten Ergebnisse erzielt werden.
Link to this sectionHyperparameter vs. Modellparameter#
Während du am Hyperparameter-Tuning arbeitest, fragst du dich vielleicht, worin der Unterschied zwischen Hyperparametern und Modellparametern besteht.
Hyperparameter sind Werte, die vor dem Training festgelegt werden und steuern, wie das Modell lernt, wie zum Beispiel die Lernrate oder die Batch-Größe. Diese Einstellungen sind während des Trainings fest und beeinflussen direkt den Lernprozess. 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 letztendlich seine Vorhersagen steuern. Im Grunde genommen formen Hyperparameter den Lernprozess, während Modellparameter die Ergebnisse dieses Lernprozesses sind.

Abb. 2. Vergleich von Parametern und Hyperparametern.
Link to this sectionWarum 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 und es so effizienter macht. 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 Rechenaufwand erhöhen. Pruning hilft dabei, das Modell zu rationalisieren, indem Parameter identifiziert und entfernt werden, die nur minimal zur Leistung beitragen, was zu einem leichteren, effizienteren Modell führt.

Abb. 3. 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. Neuronen-Pruning entfernt ganze Neuronen, deren Ausgaben kaum zur Funktion des Modells beitragen. Strukturiertes Pruning eliminiert größere Abschnitte, wie Faltungskernfilter oder Neuronen in vollständig verbundenen Schichten, und optimiert so die Effizienz des Modells. Sobald das Pruning abgeschlossen ist, wird das Modell neu trainiert, um die verbleibenden Parameter zu fine-tune, wodurch sichergestellt wird, dass es in einer reduzierten Form eine hohe Genauigkeit beibehält.
Link to this sectionReduzierung 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. Normalerweise werden hochpräzise 32-Bit-Gleitkommawerte in eine geringere Präzision konvertiert, z. B. in 16-Bit- oder 8-Bit-Ganzzahlen. Durch die Reduzierung der Bit-Präzision verringert die Quantisierung die model's size, den Speicherbedarf und den Rechenaufwand 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 Hauptarten der Quantisierung: Gewichts-Quantisierung und Aktivierungs-Quantisierung. Die Gewichts-Quantisierung senkt die Präzision der Gewichte des Modells und gleicht die Größenreduzierung mit der Genauigkeit ab. Die Aktivierungs-Quantisierung reduziert die Präzision der Aktivierungen, wodurch Speicher- und Rechenbedarf weiter sinken.

Abb. 4. Ein Beispiel für die Quantisierung von 32-Bit-Float zu 8-Bit-Ganzzahl.
Link to this sectionWie gemischte Präzision KI-Inferenz beschleunigt#
Mixed precision ist eine Technik, die unterschiedliche numerische Präzisionen für verschiedene Teile eines neural network verwendet. Durch die Kombination von Werten höherer Präzision, wie 32-Bit-Floats, mit Werten niedrigerer Präzision, wie 16-Bit- oder 8-Bit-Floats, ermöglicht gemischte Präzision computer vision models, das Training zu beschleunigen und den Speicherbedarf zu senken, ohne die Genauigkeit zu opfern.
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.

Abb. 5. Das Training mit gemischter Präzision verwendet sowohl 16-Bit (FP16) als auch 32-Bit (FP32) Gleitkommatypen.
Link to this sectionAusbalancierung von Modellgenauigkeit und Effizienz#
Nachdem wir nun verschiedene Modelloptimierungstechniken behandelt haben, lass uns besprechen, wie du entscheidest, welche du basierend auf deinen spezifischen Anforderungen verwenden solltest. 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, genauere Modelle auf Hochleistungssystemen verwendet werden können. Hier ist, wie jede Technik mit different goals übereinstimmt:
- 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 großartige Option, um die Modellgröße zu verringern und die inference zu beschleunigen, insbesondere auf mobilen Geräten und embedded systems mit begrenztem Speicher und begrenzter Rechenleistung. Sie funktioniert 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 den Speicherbedarf sowie die Trainingszeit auf Hardware wie GPUs und TPUs, die Operationen mit gemischter Präzision unterstützen. Sie wird häufig bei Hochleistungsaufgaben eingesetzt, bei denen Effizienz entscheidend ist.
- Hyperparameter-Tuning: Obwohl rechenintensiv, ist es für Anwendungen unerlässlich, die eine hohe Genauigkeit erfordern, wie z. B. medical imaging oder autonomous driving.
Link to this sectionWichtige 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 GitHub repository von Ultralytics und trete unserer community bei, um mehr über KI-Anwendungen in der manufacturing und agriculture zu erfahren.






