Glossar

Gemischte Präzision

Steigern Sie die Effizienz von Deep Learning mit gemischtem Präzisionstraining! Erzielen Sie höhere Geschwindigkeiten, eine geringere Speichernutzung und Energieeinsparungen ohne Einbußen bei der Genauigkeit.

Das Training mit gemischter Präzision ist eine Technik, die beim Deep Learning (DL) eingesetzt wird, um das Modelltraining zu beschleunigen und den Speicherverbrauch zu verringern, ohne die Modellgenauigkeit wesentlich zu beeinträchtigen. Erreicht wird dies durch die strategische Verwendung einer Kombination verschiedener numerischer Präzisionsformate für die Speicherung und Berechnung von Werten in einem neuronalen Netz (NN). In der Regel wird dabei das standardmäßige 32-Bit-Gleitkommaformat (FP32 oder Single-Precision) für kritische Teile wie die Speicherung von Modellgewichten verwendet, während die schnelleren, weniger speicherintensiven 16-Bit-Gleitkommaformate (FP16 oder Half-Precision und manchmal BF16 oder BFloat16) für Berechnungen während der Vorwärts- und Rückwärtsdurchläufe(Backpropagation) eingesetzt werden.

Wie funktioniert Mixed Precision?

Der Grundgedanke hinter der gemischten Genauigkeit ist die Nutzung der Geschwindigkeits- und Speichervorteile von Formaten mit geringerer Genauigkeit bei gleichzeitiger Abschwächung potenzieller numerischer Stabilitätsprobleme. Ein gängiger Ansatz umfasst diese Schritte:

  1. Beibehaltung der Master-Gewichte in FP32: Eine primäre Kopie der Modellgewichte wird im FP32-Standardformat aufbewahrt, um eine hohe Präzision bei der Aktualisierung der Gewichte zu gewährleisten.
  2. FP16/BF16 für Berechnungen verwenden: Während der Trainingsschleife werden die FP32-Gewichte in FP16 oder BF16 für die Vorwärts- und Rückwärtsdurchläufe umgewandelt. Berechnungen, die diese Formate mit geringerer Genauigkeit verwenden, sind auf moderner Hardware wie NVIDIA GPUs mit Tensor Cores, die speziell für die Beschleunigung von Matrixmultiplikationen mit geringerer Genauigkeit entwickelt wurden, deutlich schneller.
  3. Verlustskalierung: Bei der Verwendung von FP16 ist der Bereich der darstellbaren Zahlen viel kleiner als bei FP32. Dies kann dazu führen, dass kleine Gradientenwerte, die während der Backpropagation berechnet werden, zu Null werden (Unterlauf), was das Lernen behindert. Um dies zu verhindern, wird der Verlustwert vor der Backpropagation nach oben skaliert, wodurch die Gradienten in einen durch FP16 darstellbaren Bereich hochskaliert werden. Vor der Aktualisierung der Gewichte werden diese Gradienten wieder herunterskaliert. BF16 mit seinem größeren dynamischen Bereich, der dem von FP32 ähnelt, aber eine geringere Präzision aufweist, macht eine Verlustskalierung oft überflüssig.
  4. Master-Gewichte aktualisieren: Die berechneten Gradienten (die bei Verwendung der Verlustskalierung wieder herunterskaliert werden) werden zur Aktualisierung der Masterkopie der Gewichte verwendet, die in FP32 verbleiben.

Durch diese sorgfältige Balance können die Modelle schneller trainieren und benötigen weniger GPU-Speicher.

Vorteile von Mixed Precision

  • Schnelleres Training: Berechnungen mit geringerer Genauigkeit (FP16/BF16) werden auf kompatibler Hardware viel schneller ausgeführt, wodurch die für jede Trainingsepoche benötigte Zeit erheblich reduziert wird. Dies ermöglicht eine schnellere Iteration und Experimentierung.
  • Geringerer Speicherverbrauch: FP16/BF16-Werte benötigen die Hälfte des Speichers von FP32-Werten. Diese Reduzierung gilt für die während des Vorwärtsdurchlaufs gespeicherten Aktivierungen und die während des Rückwärtsdurchlaufs berechneten Gradienten. Eine geringere Speichernutzung ermöglicht das Training größerer Modelle oder die Verwendung größerer Stapelgrößen, was die Modellleistung und Trainingsstabilität verbessern kann.
  • Verbesserte Effizienz: Die Kombination aus schnelleren Berechnungen und geringeren Anforderungen an die Speicherbandbreite führt zu einer effizienteren Nutzung der Hardwareressourcen, wodurch die Schulungskosten für Cloud Computing oder On-Premise-Cluster gesenkt werden können.

Gemischte Präzision vs. verwandte Konzepte

  • Volle Präzision (FP32): Bei der traditionellen Ausbildung wird FP32 für alle Speicher- und Berechnungsvorgänge verwendet. Dies ist im Allgemeinen numerisch stabiler, aber langsamer und speicherintensiver als gemischte Präzision.
  • Halbe Genauigkeit (FP16/BF16): Die ausschließliche Verwendung von FP16 oder BF16 während des Trainings kann zu erheblicher numerischer Instabilität (insbesondere FP16 ohne Techniken wie Verlustskalierung) und potenziellen Genauigkeitsverlusten führen. Gemischte Präzision ist ein robusterer Ansatz, der FP32 und FP16/BF16 kombiniert.
  • Modell-Quantisierung: Dies bezieht sich in der Regel auf die Konvertierung von Modellgewichten und/oder Aktivierungen in Formate mit noch geringerer Genauigkeit, wie z. B. 8-Bit-Ganzzahlen (INT8), in erster Linie zur Optimierung der Inferenzgeschwindigkeit und -effizienz, insbesondere auf Edge-Geräten. Sie wird zwar manchmal während des Trainings verwendet(Quantization-Aware Training), unterscheidet sich aber von der typischen FP32/FP16-Mischpräzision, die während der normalen Trainingsphasen verwendet wird.

Anwendungen und Beispiele

Gemischte Präzision ist beim Training großer Modelle des maschinellen Lernens (ML) weit verbreitet.

  1. Training großer Sprachmodelle (LLMs): Modelle wie GPT-3, BERT und T5 haben Milliarden von Parametern. Sie nur mit FP32 zu trainieren, würde untragbare Mengen an GPU-Speicher und Zeit erfordern. Die gemischte Präzision macht das Training solcher Basismodelle möglich, indem sie den Speicherbedarf erheblich reduziert und die Berechnungen beschleunigt. Frameworks wie PyTorch und TensorFlow bieten integrierte Unterstützung für das Training mit gemischter Genauigkeit.
  2. Beschleunigung von Computer Vision Modellen: In der Computer Vision (CV) beschleunigt die gemischte Präzision das Training komplexer Modelle wie Convolutional Neural Networks (CNNs) und Vision Transformers (ViTs), die für Aufgaben wie Objekterkennung, Bildsegmentierung und Bildklassifizierung verwendet werden. Zum Beispiel können Ultralytics YOLO-Modelle, einschließlich des neuesten Ultralytics YOLO11, während des Trainings gemischte Präzision nutzen, um eine schnellere Konvergenz und eine effiziente Ressourcennutzung zu erreichen, wie in unseren Tipps zum Modelltraining und Modellvergleichen beschrieben. Dies ermöglicht es den Benutzern, Hochleistungsmodelle schneller auf Datensätzen wie COCO zu trainieren. Die schnelleren Trainingszyklen erleichtern eine schnellere Abstimmung der Hyperparameter und Modellentwicklung auf Plattformen wie Ultralytics HUB. Die gemischte Präzision kann auch während der Inferenz verwendet werden, um die Bereitstellung zu beschleunigen, insbesondere beim Export von Modellen in Formate wie TensorRT, die stark für niedrigere Genauigkeiten optimiert sind.

Werden Sie Mitglied der Ultralytics-Gemeinschaft

Beteiligen Sie sich an der Zukunft der KI. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten
Link in die Zwischenablage kopiert