bfloat16
Un formato in virgola mobile a 16 bit ideato da Google Brain per le TPU. Prende il formato a 32 bit dell'IEEE 754 e ne elimina semplicemente i 16 bit meno significativi della mantissa.
Restano 8 bit di esponente, esattamente lo stesso intervallo di float32, ma soltanto 7 bit di mantissa, quindi una precisione molto grossolana. Sembra sbagliato, finché non si considera ciò di cui le reti neurali hanno davvero bisogno: i gradienti coprono enormi ordini di grandezza, ma non richiedono molte cifre significative. Il formato fp16 standard ha 5 bit di esponente e in addestramento va in overflow o underflow, imponendo il loss scaling. Con bfloat16 tutto questo non serve, e la conversione da e verso float32 è un semplice troncamento di bit. È supportato da TPU, da Nvidia a partire da Ampere, da AMD e dai x86 più recenti. È diventato il formato di addestramento predefinito; per l'inferenza il settore scende ulteriormente verso fp8 e int4.