bfloat16
Formato de ponto flutuante de 16 bits criado pelo Google Brain para TPUs. Basicamente pega o formato de 32 bits do IEEE 754 e corta os 16 bits menos significativos da mantissa.
Isso deixa 8 bits de expoente — exatamente o mesmo alcance do float32 — mas só 7 bits de mantissa, ou seja, precisão bem grosseira. Soa errado até você lembrar do que redes neurais realmente precisam: gradientes cobrem ordens de grandeza enormes, mas não precisam de muitos algarismos significativos. O formato fp16 padrão tem 5 bits de expoente e estoura por cima ou por baixo durante o treinamento, o que obriga a usar loss scaling. Com o bfloat16 nada disso é necessário, e a conversão de e para float32 é pura truncagem de bits. É suportado por TPUs, Nvidia a partir de Ampere, AMD e x86 mais recente. Virou o formato padrão para treinamento; para inferência, a indústria desce ainda mais para fp8 e int4.