Grundlagen des Datenformats – Einfache Genauigkeit (FP32) vs. halbe Genauigkeit (FP16)

Schauen wir uns nun die Formate FP32 und FP16 genauer an. FP32 und FP16 sind IEEE-Formate, die Gleitkommazahlen mit 32-Bit-Binärspeicher und 16-Bit-Binärspeicher darstellen. Beide Formate bestehen aus drei Teilen: a) einem Vorzeichenbit, b) Exponentenbits und c) Mantissenbits. FP32 und FP16 unterscheiden sich in der Anzahl der dem Exponenten und der Mantisse zugewiesenen Bitswodurch sich unterschiedliche Wertebereiche und Genauigkeiten ergeben.

Unterschied zwischen FP16 (IEEE-Commonplace), BF16 (Google Mind-Commonplace), FP32 (IEEE-Commonplace) und TF32 (Nvidia-Commonplace). Bildquelle: https://en.wikipedia.org/wiki/Bfloat16_floating-point_format

Wie konvertiert man FP16 und FP32 in reale Werte? Gemäß IEEE-754-Requirements ist der Dezimalwert für FP32 = (-1)^(Vorzeichen) × 2^(Dezimalexponent —127 ) × (implizite führende 1 + Dezimalmantisse), wobei 127 der verzerrte Exponentenwert ist. Für FP16 lautet die Formel (-1)^(Vorzeichen) × 2^(Dezimalexponent — 15) × (implizite führende 1 + Dezimalmantisse), wobei 15 der entsprechende verzerrte Exponentenwert ist. Weitere Einzelheiten zum verzerrten Exponentenwert finden Sie hier Hier.

In diesem Sinne beträgt der Wertebereich für FP32 ungefähr (-2¹²⁷, 2¹²⁷) ~(-1,7*1e38, 1,7*1e38) und der Wertebereich für FP16 ungefähr (-2¹⁵, 2¹⁵)=(-32768, 32768). Beachten Sie, dass der Dezimalexponent für FP32 zwischen 0 und 255 liegt und wir den größten Wert 0xFF ausschließen, da er NAN darstellt. Deshalb ist der größte Dezimalexponent 254–127 = 127. Eine ähnliche Regel gilt für FP16.

Beachten Sie bei der Genauigkeit, dass sowohl der Exponent als auch die Mantisse zu den Genauigkeitsgrenzen beitragen (was auch als Denormalisierungsehen ausführliche Diskussion hier), daher kann FP32 eine Genauigkeit von bis zu 2^(-23)*2^(-126)=2^(-149) darstellen, und FP16 kann eine Genauigkeit von bis zu 2^(10)*2^(-14)=2^(-24) darstellen.

Der Unterschied zwischen FP32- und FP16-Darstellungen bringt die Hauptprobleme des Combined-Precision-Trainings mit sich, da Verschiedene Schichten/Operationen von Deep Studying-Modellen sind entweder unempfindlich oder empfindlich gegenüber Wertebereichen und Präzision und müssen separat behandelt werden..

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert