BF16 Nedir?
İngilizce: BFloat16
Yayın: · Son güncelleme:
BF16 Nedir? Kısaca
BF16 (BFloat16), sayıları 16 bit ile saklayan ve 32 bitlik FP32 ile aynı üs aralığını koruyan kayan noktalı sayı biçimidir. Hassasiyetten bir miktar ödün vererek yapay zekâ eğitiminde bellek ve hız kazancı sağlar.

BF16, "brain floating point" ifadesinden gelir; Google Brain ekibi tarafından makine öğrenmesi için geliştirildi. Bugün pek çok ekran kartı ve yapay zekâ hızlandırıcısı tarafından desteklenir.
BF16 nedir?
BF16, FP32 biçiminin ilk 16 bitini alır gibi tasarlanmıştır. Bit dağılımı şöyledir:
| Biçim | İşaret | Üs | Kesir |
|---|---|---|---|
| FP32 | 1 | 8 | 23 |
| FP16 | 1 | 5 | 10 |
| BF16 | 1 | 8 | 7 |
Üs biti FP32 ile aynı olduğu için BF16 çok büyük ve çok küçük sayıları FP32 kadar geniş bir aralıkta temsil eder. Buna karşılık kesir biti az olduğundan hassasiyeti, yani ondalık ayrıntıyı temsil etme gücü FP16'dan düşüktür.
Neden tercih edilir?
Derin öğrenmede değerlerin aralığı çoğu zaman küçük ondalık ayrıntılardan daha önemlidir. FP16 ile eğitimde sık görülen taşma ve küçük gradyanların sıfırlanması sorunları BF16'da çok daha az yaşanır; çoğu durumda ek kayıp ölçekleme gerekmez. Bellek kullanımı ise FP16 ile aynıdır.
Nelere dikkat etmeli?
BF16'nın düşük hassasiyeti, bazı hassas hesaplamalarda küçük farkların kaybolmasına yol açabilir. Bu yüzden eğitimde genellikle ağırlıkların ana kopyası ya da bazı birikimli toplamlar FP32'de tutulur. Ayrıca eski donanımlar BF16'yı yerel olarak desteklemeyebilir; bu durumda hız kazancı olmaz.
Sıkça Sorulan Sorular
BF16 mı FP16 mı daha iyi?
Kullanıma bağlıdır. BF16 geniş aralığı sayesinde eğitimde daha kararlıdır; FP16 ise daha yüksek hassasiyet sunar ve bazı çıkarım senaryolarında tercih edilir.
BF16 model boyutunu küçültür mü?
FP32'ye göre evet, bellek ihtiyacını yarıya indirir. FP16 ile karşılaştırıldığında ise ikisi de 16 bit olduğu için aynı yeri kaplar.