bfloat16
Un format à virgule flottante sur 16 bits conçu par Google Brain pour les TPU. Il prend le format 32 bits de l'IEEE 754 et lui coupe simplement les 16 bits de mantisse de poids faible.
Il reste 8 bits d'exposant — exactement la même plage que le float32 — mais seulement 7 bits de mantisse, donc une précision très grossière. Ce qui paraît absurde jusqu'à ce qu'on se demande de quoi les réseaux de neurones ont réellement besoin : les gradients s'étalent sur de nombreux ordres de grandeur mais n'exigent pas beaucoup de chiffres significatifs. Le format fp16 standard, avec ses 5 bits d'exposant, déborde ou s'annule pendant l'entraînement et impose un loss scaling. Avec bfloat16, rien de tout cela, et la conversion depuis et vers le float32 se réduit à une troncature de bits. Pris en charge par les TPU, par Nvidia depuis Ampere, par AMD et par les x86 récents. C'est devenu le format d'entraînement par défaut ; en inférence, l'industrie descend encore plus bas, vers le fp8 et l'int4.