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.

ÖzellikBatchNormLayerNorm
İstatistik ekseniBatch boyunca, her özellik/kanal içinTek örnek içinde, tüm özellikler boyunca
Batch size bağımlılığıVar, küçük batch'te kararsızYok
Train / inference farkıVar: inference'ta running mean/var kullanılırYok, her zaman aynı davranır
Değişken uzunluklu dizilerZor (padding istatistikleri bozar)Doğal olarak uygun
Tipik kullanımCNN'lerTransformer, 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) * weight

Pratik 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.

  1. NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?ZorDerin ÖğrenmeYapay Zeka
  2. PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?OrtaDerin ÖğrenmeYapay Zeka
  3. Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?OrtaDerin ÖğrenmeYapay Zeka
  4. Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?KolayDerin ÖğrenmeYapay Zeka
  5. Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?ZorDerin ÖğrenmeYapay Zeka
  6. 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.ZorDerin ÖğrenmeYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle