Model Quantization
Erfahre, wie Modell-Quantisierung Ultralytics YOLO26 für Edge AI optimiert. Entdecke, wie du Speicher reduzierst, die Latenz senkst und INT8-Modelle für eine schnellere Inferenz exportierst.
Modellquantisierung ist eine anspruchsvolle Modelloptimierungs-Technik, die verwendet wird, um den Rechen- und Speicheraufwand beim Ausführen von Deep-Learning-Modellen zu reduzieren. In Standard-Trainings-Workflows speichern neuronale Netze Parameter (Gewichte und Biases) und Aktivierungskarten typischerweise mit 32-Bit-Gleitkommazahlen (FP32). Während diese hohe Präzision genaue Berechnungen beim Training gewährleistet, ist sie für die Inferenz oft unnötig. Die Quantisierung konvertiert diese Werte in Formate mit geringerer Präzision, wie etwa 16-Bit-Gleitkommazahlen (FP16) oder 8-Bit-Ganzen Zahlen (INT8), wodurch die Modellgröße effektiv verringert und die Ausführungsgeschwindigkeit beschleunigt wird, ohne die Genauigkeit nennenswert zu beeinträchtigen.
Warum Quantisierung wichtig ist#
Der Hauptgrund für die Quantisierung ist die Notwendigkeit, leistungsstarke KI auf ressourcenbeschränkter Hardware bereitzustellen. Da Computer-Vision-Modelle wie YOLO26 immer komplexer werden, steigen auch ihre Anforderungen an die Rechenleistung. Die Quantisierung adressiert drei kritische Engpässe:
- Speicherbedarf: Durch die Reduzierung der Bitbreite von Gewichten (z. B. von 32-Bit auf 8-Bit) verringert sich der Speicherbedarf des Modells um bis das Vierfache. Dies ist entscheidend für mobile Apps, bei denen die Anwendungsgröße begrenzt ist.
- Inferenzlatenz: Operationen mit geringerer Präzision sind rechentechnisch günstiger. Moderne Prozessoren, insbesondere solche mit spezialisierten neuronalen Prozessor-Einheiten (NPUs), können INT8-Operationen viel schneller ausführen als FP32, wodurch die Inferenzlatenz erheblich reduziert wird.
- Energieverbrauch: Das Bewegen von weniger Daten durch den Speicher und das Ausführen einfacherer arithmetischer Operationen verbraucht weniger Energie, was die Batterielebensdauer in tragbaren Geräten und autonomen Fahrzeugen verlängert.
Vergleich mit verwandten Konzepten#
Es ist wichtig, die Quantisierung von anderen Optimierungstechniken zu unterscheiden, da sie das Modell auf unterschiedliche Weise modifizieren:
- Quantisierung vs. Pruning: Während die Quantisierung die Dateigröße durch Verringerung der Bitbreite von Parametern reduziert, beinhaltet das Modell-Pruning das vollständige Entfernen unnötiger Verbindungen (Gewichte), um ein dünnbesetztes Netzwerk zu erstellen. Pruning verändert die Struktur des Modells, während die Quantisierung die Datenrepräsentation verändert.
- Quantisierung vs. Wissensdistillation: Wissensdistillation ist eine Trainingstechnik, bei der ein kleines „Schüler“-Modell lernt, ein großes „Lehrer“-Modell nachzuahmen. Die Quantisierung wird häufig nach der Distillation auf das Schüler-Modell angewendet, um die Edge-KI-Leistung weiter zu steigern.
Praxisanwendungen#
Die Quantisierung ermöglicht Computer Vision und KI in verschiedenen Branchen, in denen Effizienz von größter Bedeutung ist.
-
Autonome Systeme: In der Automobilindustrie müssen selbstfahrende Autos visuelle Daten von Kameras und LiDAR in Echtzeit verarbeiten. Quantisierte Modelle, die auf NVIDIA TensorRT-Engines bereitgestellt werden, ermöglichen es diesen Fahrzeugen, Fußgänger und Hindernisse mit einer Latenz im Millisekundenbereich zu erkennen und so die Sicherheit der Passagiere zu gewährleisten.
-
Smart Agriculture: Drohnen, die mit Multispektralkameras ausgestattet sind, verwenden quantisierte Objekterkennungs-Modelle, um Pflanzenkrankheiten zu identifizieren oder Wachstumsstadien zu überwachen. Die lokale Ausführung dieser Modelle auf den eingebetteten Systemen der Drohne macht unzuverlässige Mobilfunkverbindungen in abgelegenen Feldern überflüssig.
Implementierung der Quantisierung mit Ultralytics#
Die Ultralytics-Bibliothek vereinfacht den Exportprozess und ermöglicht es Entwicklern, Modelle wie das hochmoderne YOLO26 in quantisierte Formate zu konvertieren. Die Ultralytics Platform bietet zudem Tools zur nahtlosen Verwaltung dieser Bereitstellungen.
Das folgende Beispiel veranschaulicht, wie ein Modell mit aktivierter INT8-Quantisierung nach TFLite exportiert wird. Dieser Prozess beinhaltet einen Kalibrierungsschritt, bei dem das Modell Beispieldaten beobachtet, um den optimalen Dynamikbereich für die quantisierten Werte zu bestimmen.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")Optimierte Modelle werden häufig unter Verwendung interoperabler Standards wie ONNX oder Hochleistungs-Inferenz-Engines wie OpenVINO bereitgestellt, um eine breite Kompatibilität über verschiedene Hardware-Ökosysteme hinweg sicherzustellen.






