Modellquantisierung
Optimieren Sie die KI-Leistung mit Modellquantisierung. Reduzieren Sie die Größe, steigern Sie die Geschwindigkeit und verbessern Sie die Energieeffizienz für reale Anwendungen.
Die Modellquantisierung ist eine leistungsstarke Technik zur Modelloptimierung, die den Speicherbedarf und die Rechenkosten eines neuronalen Netzes (NN) reduziert, indem sie dessen Gewichte und Aktivierungen von hochpräzisen Gleitkommazahlen (wie 32-Bit-Float oder FP32) in Datentypen mit niedrigerer Präzision, wie z. B. 8-Bit-Integer (INT8), umwandelt. Dieser Prozess macht Modelle deutlich kleiner und schneller und ermöglicht ihren Einsatz auf ressourcenbeschränkter Hardware wie Mobiltelefonen und eingebetteten Systemen. Das Hauptziel ist die Verbesserung der Leistung, insbesondere der Inferenzlatenz, bei minimalen Auswirkungen auf die Vorhersagegenauigkeit des Modells.
Wie Modellquantisierung funktioniert
Der Quantisierungsprozess beinhaltet die Abbildung des kontinuierlichen Bereichs von Gleitkommawerten in einem trainierten Modell auf eine kleinere, diskrete Menge von Integer-Werten. Diese Konvertierung reduziert die Anzahl der Bits, die zum Speichern jedes Parameters erforderlich sind, wodurch die Gesamtmodellgröße verringert wird. Darüber hinaus sind Berechnungen mit Integer-Werten geringerer Präzision auf vielen modernen CPUs und spezialisierten KI-Beschleunigern wie GPUs und TPUs, die über dedizierte Befehle für Integer-Arithmetik verfügen, wesentlich schneller.
Es gibt zwei primäre Methoden zur Anwendung der Quantisierung:
- Post-Training Quantisierung (PTQ): Dies ist der einfachste Ansatz, bei dem ein bereits trainiertes Modell in ein Format mit geringerer Präzision konvertiert wird. Es ist ein schneller Prozess, bei dem die Verteilung von Gewichten und Aktivierungen auf einem kleinen Kalibrierungsdatensatz analysiert wird, um die optimale Zuordnung von Float zu Integer zu bestimmen.
- Quantization-Aware Training (QAT): Bei dieser Methode wird das Modell trainiert oder feinabgestimmt, während die Auswirkungen der Quantisierung simuliert werden. Der Forward Pass des Trainingsprozesses ahmt die quantisierte Inferenz nach, wodurch sich das Modell an die reduzierte Präzision anpassen kann. QAT führt oft zu einer höheren Genauigkeit als PTQ, da das Modell lernt, potenzielle Informationsverluste während der Trainingsphase zu kompensieren. Frameworks wie PyTorch und TensorFlow bieten robuste Werkzeuge zur Implementierung von QAT.
Anwendungsfälle in der Praxis
Die Quantisierung ist entscheidend für die Ausführung anspruchsvoller Computer Vision-Modelle in realen Szenarien, insbesondere auf Edge-KI-Geräten.
- On-Device Bildanalyse: Viele Smartphone-Anwendungen verwenden quantisierte Modelle für Echtzeitfunktionen. Beispielsweise verwendet eine App, die Live-Objekterkennung über die Kamera bietet, wie z. B. die Identifizierung von Produkten oder Sehenswürdigkeiten, ein quantisiertes Modell wie Ultralytics YOLO11, um effizient auf der Hardware des Telefons zu laufen, ohne den Akku zu entladen oder eine Cloud-Verbindung zu benötigen.
- Automobil und Robotik: In autonomen Fahrzeugen müssen Modelle für die Fußgängererkennung und die Spurhaltung mit extrem niedriger Latenz arbeiten. Die Quantisierung dieser Modelle ermöglicht es ihnen, auf spezialisierter Hardware wie NVIDIA Jetson oder Google Coral Edge TPUs zu laufen, wodurch sichergestellt wird, dass Entscheidungen in Sekundenbruchteilen getroffen werden, was für die Sicherheit entscheidend ist.
Quantisierung vs. andere Optimierungstechniken
Die Modellquantisierung wird oft zusammen mit anderen Optimierungsmethoden eingesetzt, unterscheidet sich aber in ihrem Ansatz.
- Model Pruning: Diese Technik entfernt redundante oder unwichtige Verbindungen (Gewichte) innerhalb des neuronalen Netzes, um seine Größe und Komplexität zu reduzieren. Während Pruning das Netzwerk verkleinert, indem es Teile davon entfernt, macht Quantisierung die verbleibenden Teile effizienter, indem sie ihre numerische Präzision reduziert. Die beiden werden oft für eine maximale Optimierung kombiniert.
- Knowledge Distillation: Dies beinhaltet das Trainieren eines kleineren „Studenten“-Modells, um ein größeres, vortrainiertes „Lehrer“-Modell zu imitieren. Ziel ist es, das Wissen des Lehrers auf eine kompaktere Architektur zu übertragen. Dies unterscheidet sich von der Quantisierung, die die numerische Darstellung eines bestehenden Modells verändert, anstatt ein neues zu trainieren.
- Gemischte Präzision: Diese Technik verwendet eine Kombination verschiedener numerischer Präzisionen (z. B. FP16 und FP32) während des Modelltrainings, um den Prozess zu beschleunigen und den Speicherverbrauch zu reduzieren. Obwohl verwandt, ist es in erster Linie eine Trainingsoptimierung, während die Quantisierung typischerweise auf die Optimierung des Modells für die Inferenz ausgerichtet ist.
Überlegungen und Support
Obwohl die Quantisierung sehr vorteilhaft ist, kann sie potenziell die Modellgenauigkeit beeinträchtigen. Es ist wichtig, nach der Quantisierung eine gründliche Evaluierung anhand relevanter Leistungsmetriken durchzuführen, um sicherzustellen, dass der Performance-Kompromiss akzeptabel ist.
Ultralytics erleichtert die Bereitstellung von quantisierten Modellen durch die Unterstützung des Exports in Formate, die für die Quantisierung geeignet sind. Dazu gehören ONNX für breite Kompatibilität, OpenVINO für die Optimierung auf Intel-Hardware und TensorRT für hohe Leistung auf NVIDIA-GPUs. Plattformen wie Ultralytics HUB können helfen, den gesamten Lebenszyklus zu verwalten, vom Training bis zur Bereitstellung optimierter Modelle. Integrationen mit Tools wie Neural Magic nutzen ebenfalls Quantisierung und Pruning, um GPU-ähnliche Leistung auf CPUs zu erzielen.