BFloat16 (BFloat16 (Brain Float16))

Geniş üs aralığıyla eğitim kararlılığı sağlayan Google kökenli 16 bitlik kayan nokta formatı.

BFloat16 (Brain Float16), Google'ın TPU'ları için geliştirdiği 16 bitlik kayan nokta sayı formatıdır. Standart Float16 ile aynı bit genişliğini (16 bit) paylaşmasına karşın bit dağılımı farklıdır: • Float16: 1 işaret + 5 üs + 10 mantis • BFloat16: 1 işaret + 8 üs + 7 mantis BFloat16'nın 8 bitlik üs alanı, Float32 ile aynı dinamik aralığı sağlar; bu sayede eğitim sırasında sayısal taşma (overflow) ve altaşma (underflow) sorunları büyük ölçüde azalır. Mantis biti azlığından kaynaklanan hafif hassasiyet kaybı ise derin öğrenme eğitimini pratikte etkilemez. Bu özellikleri nedeniyle PyTorch ve JAX başta olmak üzere modern derin öğrenme çerçevelerinde karma hassasiyetli (mixed-precision) eğitimin tercih edilen formatına dönüşmüştür.

Float16 ile Karşılaştırma

| Format | İşaret | Üs | Mantis | Dinamik Aralık | |--------|--------|-----|--------|---------------| | Float32 | 1 | 8 | 23 | ±3.4×10³⁸ | | BFloat16 | 1 | 8 | 7 | ±3.4×10³⁸ | | Float16 | 1 | 5 | 10 | ±6.5×10⁴ | BFloat16, Float32 ile aynı üs genişliğine sahip olduğundan gradient güncellemeleri sırasında değerler çok küçük ya da çok büyük olduğunda Float16'nın aksine taşma yaşamaz. Bu fark, büyük modellerin kararlı biçimde eğitilmesinde kritik önem taşır.