Batch Normalization ile Layer Normalization arasındaki fark nedir? Transformer'larda neden LayerNorm kullanılır?
Cevap
İkisi de aktivasyonları sıfır ortalama ve birim varyansa normalize edip öğrenilebilir γ (scale) ve β (shift) parametreleriyle yeniden ölçekler. Fark, hangi eksen üzerinde istatistik hesaplandığıdır.
| Özellik | BatchNorm | LayerNorm |
|---|---|---|
| İstatistik ekseni | Batch boyunca, her özellik/kanal için | Tek örnek içinde, tüm özellikler boyunca |
| Batch size bağımlılığı | Var, küçük batch'te kararsız | Yok |
| Train / inference farkı | Var: inference'ta running mean/var kullanılır | Yok, her zaman aynı davranır |
| Değişken uzunluklu diziler | Zor (padding istatistikleri bozar) | Doğal olarak uygun |
| Tipik kullanım | CNN'ler | Transformer, RNN |
Transformer'da neden LayerNorm?
- NLP'de diziler farklı uzunluktadır ve padding içerir. Batch istatistikleri anlamsızlaşır.
- LLM eğitiminde GPU başına batch küçük olabilir, dağıtık eğitimde BatchNorm senkronizasyon gerektirir.
- Autoregressive inference'ta tek token işlenir, batch istatistiği yoktur.
Modern detaylar
- Pre-LN: Normalizasyon residual bloktan önce uygulanır (
x + Attn(LN(x))). Orijinal Post-LN'e göre çok daha stabil eğitilir ve warmup'a daha az bağımlıdır. GPT-2 sonrası standarttır. - RMSNorm: Ortalamayı çıkarmaz, sadece RMS'e böler. Daha ucuzdur, Llama, Mistral ve çoğu modern LLM kullanır.
import torch
def rms_norm(x, weight, eps=1e-6):
return x * torch.rsqrt(x.pow(2).mean(-1, keepdim=True) + eps) * weightPratik tuzak: BatchNorm'lu bir modelde model.eval() çağırmayı unutmak, inference'ta batch istatistiklerinin kullanılmasına ve tutarsız sonuçlara yol açar.
İlgili Derin Öğrenme soruları
- NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?
- PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?
- Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?
- Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?
- Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?
- Self-attention nasıl çalışır? Scaled dot-product attention'ı NumPy ile yazın ve neden sqrt(d_k) ile bölündüğünü açıklayın.
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.