Inwiefern beeinflussen unterschiedliche Floating-Point-Formate wie BF16 gegenüber FP16 die Konvergenz und numerische Stabilität beim Fine-Tuning großer Modelle?

Der Unterschied zwischen FP16 (Half Precision) und BF16 (Bfloat16) liegt primär in der Allokation der Bits für den Exponenten und die Mantisse. Während FP16 auf eine höhere Präzision setzt, priorisiert BF16 den Dynamikbereich.

MerkmalFP16BF16FP32 (Referenz)
Exponent-Bits588
Mantissen-Bits10723
WertebereichEng ($\approx 6 \cdot 10^{-5}$ bis $65504$)Weit ($\approx 10^{-38}$ bis $10^{38}$)Weit
PräzisionHöherNiedrigerSehr hoch
Loss ScalingErforderlichNicht erforderlichNicht erforderlich

Die geringe Exponentenbreite von FP16 führt beim Fine-Tuning großer Modelle häufig zu numerischen Instabilitäten. Gradienten können schnell den darstellbaren Bereich überschreiten (Overflow $\rightarrow$ NaNs) oder unter diesen fallen (Underflow $\rightarrow$ Nullwerte). Um dies zu kompensieren, ist ein Loss Scaling notwendig, bei dem der Loss mit einem Faktor multipliziert wird, um die Gradienten in den darstellbaren Bereich zu verschieben. Dieser Prozess erhöht die Komplexität der Trainingspipeline und kann bei falscher Konfiguration die Konvergenz behindern.

BF16 hingegen nutzt dieselbe Exponentenbreite wie FP32. Dadurch bleibt der Dynamikbereich identisch, was die Wahrscheinlichkeit von Overflows und Underflows massiv reduziert. Die geringere Präzision der Mantisse hat in der Praxis kaum negative Auswirkungen auf die Konvergenz von Large Language Models (LLMs), da die Stabilität der Gradienten wichtiger ist als die exakte Repräsentation kleinster Nachkommastellen. Die Wahl des Formats ist ein zentraler Aspekt im Data Engineering, da sie direkt die Hardware-Auslastung und die Speicherbandbreite beeinflusst.

Wir empfehlen für alle modernen Hardware-Setups (NVIDIA Ampere-Architektur und neuer) den ausschließlichen Einsatz von BF16. Die Zeitersparnis durch den Verzicht auf Loss Scaling und die signifikant höhere Robustheit gegenüber Divergenz machen BF16 zum technischen Standard für das Fine-Tuning großer Modelle. FP16 sollte nur als Fallback für ältere Hardware-Generationen verwendet werden, sofern keine stabilen Mixed-Precision-Strategien implementiert sind.

Sergej Wiens

Sergej Wiens

Gründer & Software Architekt