Glossar

Gemischte Präzision

Steigere die Effizienz von Deep Learning mit Mixed Precision Training! Erreiche schnellere Geschwindigkeiten, geringeren Speicherverbrauch und Energieeinsparungen ohne Einbußen bei der Genauigkeit.

Trainiere YOLO Modelle einfach
mit Ultralytics HUB

Mehr erfahren

Mixed-Precision-Training ist eine Technik, die beim Deep Learning eingesetzt wird, um die Berechnungen zu beschleunigen und den Speicherbedarf zu reduzieren, ohne die Leistung des Modells wesentlich zu beeinträchtigen. Dies wird erreicht, indem strategisch verschiedene numerische Präzisionsformate - in erster Linie 16-Bit-Gleitkommazahlen (FP16 oder halbe Präzision) und 32-Bit-Gleitkommazahlen (FP32 oder einfache Präzision) - für verschiedene Teile des Modells während des Trainings und der Inferenz verwendet werden. Dieser Ansatz schafft ein Gleichgewicht zwischen der Geschwindigkeit und Speichereffizienz der niedrigeren Präzision und der numerischen Stabilität und Genauigkeit der höheren Präzision.

Numerische Präzision verstehen

Deep-Learning-Modelle verwenden traditionell das IEEE 754-Standardformat für einfache Gleitkommazahlen (FP32), um Gewichte, Aktivierungen und Gradienten zu speichern. FP32 bietet einen großen dynamischen Bereich und eine hohe Genauigkeit, was es robust für komplexe Berechnungen macht. Allerdings erfordern FP32-Operationen eine hohe Rechenleistung und Speicherbandbreite. Formate mit geringerer Genauigkeit, wie FP16, verwenden nur 16 Bits, was den Speicherbedarf halbiert und oft viel schnellere Berechnungen auf kompatibler Hardware ermöglicht, z. B. auf modernen GPUs mit NVIDIA Tensor Cores.

So funktioniert gemischte Präzision

Das Mixed-Precision-Training kombiniert auf intelligente Weise FP16 und FP32. Die Grundidee ist, rechenintensive Operationen wie Faltungen und Matrixmultiplikationen innerhalb der Schichten des Modells im schnelleren FP16-Format durchzuführen. Bestimmte Operationen reagieren jedoch empfindlich auf den reduzierten Bereich und die Genauigkeit von FP16. Um die Stabilität und Genauigkeit des Modells aufrechtzuerhalten, werden kritische Teile des Trainingsprozesses, wie z. B. die Verlustberechnung und die Aktualisierung des Gradienten, oft im robusteren FP32-Format durchgeführt. Techniken wie die dynamische Verlustskalierung werden eingesetzt, um numerische Unterlauf- oder Überlaufprobleme zu verhindern, wenn die Gradienten für die FP16-Darstellung zu klein oder zu groß werden. Frameworks wie PyTorch (über Automatic Mixed Precision - AMP) und TensorFlow (über tf.keras.mixed_precision API) bieten automatische Unterstützung für die Implementierung von Mixed Precision Training.

Vorteile der gemischten Präzision

Der Einsatz von gemischter Präzision bietet mehrere entscheidende Vorteile:

  • Schnelleres Training: FP16-Operationen können auf unterstützter Hardware deutlich schneller sein, was zu kürzeren Ausbildungszeiten führt.
  • Geringerer Speicherbedarf: Durch die Speicherung von Modellgewichten und Aktivierungen in FP16 wird der Speicherbedarf halbiert, wodurch größere Modelle oder größere Stapelgrößen möglich sind, was die Trainingsdynamik verbessern kann.
  • Energie-Effizienz: Schnellere Berechnungen und weniger Datenbewegungen führen zu einem geringeren Stromverbrauch beim Training und bei der Inferenz.
  • Beibehaltene Genauigkeit: Bei korrekter Umsetzung mit Techniken wie der Verlustskalierung erreicht die gemischte Präzision in der Regel eine vergleichbare Genauigkeit wie das vollständige FP32-Training. Weitere Details zur Optimierung des Trainings findest du in diesen Tipps zum Modelltraining.

Anwendungen in der realen Welt

Gemischte Präzision ist in verschiedenen KI-Bereichen weit verbreitet:

  1. Computer Vision: Modernste Modelle zur Objekterkennung, einschließlich Ultralytics YOLO Modelle wie YOLOv8 und YOLO11nutzen beim Training oft gemischte Präzision. Dadurch können sie schneller trainieren und größere Datensätze wie COCO oder Objects365 verarbeiten, was letztlich einen effizienten Einsatz auf Plattformen von Cloud-Servern bis hin zu Edge-Geräten wie dem NVIDIA Jetson ermöglicht.
  2. Natürliche Sprachverarbeitung (NLP): Das Training massiver Large Language Models (LLMs) wie GPT-3 und BERT ist rechenintensiv. Mixed-Precision-Training ist entscheidend, um die Speicher- und Rechenanforderungen zu bewältigen und diese Modelle für Aufgaben wie Texterstellung, maschinelle Übersetzung und Sentimentanalyse zu trainieren.

Überlegungen und verwandte Konzepte

Eine erfolgreiche Umsetzung der gemischten Präzision ist zwar sehr vorteilhaft, aber sie erfordert:

  • Hardware-Unterstützung: Optimale Geschwindigkeitssteigerungen erfordern Hardware, die speziell für beschleunigte FP16-Berechnungen entwickelt wurde (z. B. NVIDIA Volta, Turing, Ampere oder neuere GPUs).
  • Numerische Stabilität: Eine sorgfältige Handhabung, oft durch automatisierte Rahmenwerkzeuge und Verlustskalierung, ist erforderlich, um Probleme im Zusammenhang mit der begrenzten Reichweite von FP16 zu vermeiden.
  • Framework-Integration: Nutzung der integrierten Unterstützung von Deep-Learning-Frameworks wie PyTorch oder TensorFlow vereinfacht die Implementierung.

Es ist wichtig, das Training mit gemischter Genauigkeit von der Modellquantisierung zu unterscheiden. Bei der Quantisierung werden Modelle in der Regel in noch niedrigere Bitformate (wie INT8) umgewandelt, um die Inferenzgeschwindigkeit zu optimieren und die Modellgröße für den Einsatz auf ressourcenbeschränkten Geräten zu reduzieren, oft nach dem ersten Training. Bei der gemischten Präzision geht es darum, den Trainingsprozess selbst zu beschleunigen, indem FP16 und FP32 kombiniert werden.

Die gemischte Präzision ist zu einer Standardtechnik im Deep-Learning-Toolkit geworden, die die Entwicklung und das Training größerer, komplexerer Modelle schneller und effizienter ermöglicht.

Alles lesen