Wat is bfloat16?

16-bits drijvendekommaformaat met 1 tekenbit, 8 exponentbits en 7 mantissebits. Omdat de exponent gelijk is aan die van FP32, is het bereik groot; de precisie is laag, maar het wordt gebruikt voor AI-training. FP16 heeft 5 exponentbits en 10 mantissebits: hogere precisie maar smaller bereik.

Japanse benaming: bfloat16

“bfloat16” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Computerarithmetiek.

Vakgebied: Computerarithmetiek

Nu oefenen: vragen over bfloat16

Wat is de belangrijkste reden dat bfloat16 wordt gebruikt bij het trainen van AI?

  1. ADe exponent is, net als bij FP32, 8 bit, zodat het bereik van weer te geven getallen groot is
  2. BDe mantisse is langer dan bij FP32, zodat de precisie hoger is
  3. CEr kan met gehele-getalbewerkingen worden gerekend
Antwoord en toelichting tonen

Antwoord: A. De exponent is, net als bij FP32, 8 bit, zodat het bereik van weer te geven getallen groot is

bfloat16 is een 16-bitsformaat met 1 tekenbit, 8 exponentbits en 7 mantissebits. Omdat de exponent gelijk is aan die van FP32, is het weer te geven bereik vrijwel hetzelfde; zelfs zeer kleine of grote waarden zoals gradiënten tijdens de training veroorzaken niet snel overflow of underflow, en overstappen vanaf een FP32-model is eenvoudig. De precisie is lager, maar training is tamelijk bestand tegen kleine fouten, zodat dit zelden een probleem is, en de hoeveelheid data en het oppervlak van de rekeneenheid kunnen met de helft worden verminderd. De mantisse is korter dan bij FP32 en er wordt niet met gehele getallen maar met drijvendekommabewerkingen gerekend.

Wat is de belangrijkste reden dat bij AI-training met gemengde precisie het grootste deel van de berekeningen in FP16 of bfloat16 gebeurt, terwijl de oorspronkelijke waarde van de gewichten (master weights) in FP32 wordt bewaard?

  1. ABij het optellen van kleine bijwerkingen bij de gewichten verdwijnt de bijwerking door informatieverlies in een formaat met lage precisie
  2. BFP32 is sneller dan FP16, dus alle berekeningen met gewichten worden aan FP32 overgelaten
  3. CFP16 en bfloat16 mogen volgens de afspraak geen gewichtswaarden in het geheugen opslaan
Antwoord en toelichting tonen

Antwoord: A. Bij het optellen van kleine bijwerkingen bij de gewichten verdwijnt de bijwerking door informatieverlies in een formaat met lage precisie

Bij training wordt telkens een zeer kleine waarde, "leersnelheid × gradiënt", bij de gewichten opgeteld. FP16 en bfloat16 hebben een korte mantisse; als de bijwerking te klein is ten opzichte van het gewicht, blijft de som door afronding gelijk aan het oorspronkelijke gewicht en verdwijnt de bijwerking (informatieverlies). Daarom worden de gewichten in FP32 bewaard, zodat de bijwerkingen correct worden opgebouwd, en wordt voor de voorwaartse en achterwaartse berekeningen een kopie met lagere precisie gebruikt. Rekenen gaat sneller bij lagere precisie, en waarden met lage precisie kunnen wel worden opgeslagen.

“bfloat16” in de toelichting

Vragen met “bfloat16” (2)

  1. Wat is de belangrijkste reden dat bfloat16 wordt gebruikt bij het trainen van AI?
  2. Wat is de belangrijkste reden dat bij AI-training met gemengde precisie het grootste deel van de berekeningen in FP16 of bfloat16 gebeurt, terwijl de oorspronkelijke waarde van de gewichten (master weights) in FP32 wordt bewaard?

Verwante termen

Mantisse (significand) Exponent Gemengde precisie (mixed precision) Informatieverlies (absorptie) Afronden naar even (round to nearest even) Booth-algoritme Cancellation (verlies van significantie) Carry-lookahead-opteller Carry-save-opteller (CSA) FMA (fused multiply-add)

Naar de woordenlijst