Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?
Cevap
Transformer (Vaswani ve ark., 2017), tekrarlama (recurrence) yerine tamamen attention'a dayanan bir dizi modelidir. Bir transformer bloğu kabaca şöyledir (modern pre-norm versiyon):
x = x + MultiHeadAttention(Norm(x))
x = x + FeedForward(Norm(x)) # genelde 4x genişleyen MLP, GELU/SwiGLUAna bileşenler
- Token embedding: Her token ID'si bir vektöre dönüşür.
- Pozisyon bilgisi: Attention sıradan bağımsızdır (permutation equivariant), bu yüzden pozisyon eklenmelidir. Orijinali sinüzoidal, BERT öğrenilmiş pozisyon kullanır. Modern LLM'ler RoPE (rotary embedding) kullanır. RoPE göreli pozisyonu Q ve K'yi döndürerek kodlar ve bağlam uzatmaya (context extension) uygundur.
- Multi-head self-attention, feed-forward ağ, residual connection ve LayerNorm/RMSNorm.
- Çıktıda vocabulary boyutunda bir lineer katman ve softmax.
Üç ana varyant
| Tür | Attention | Eğitim hedefi | Örnekler | Kullanım |
|---|---|---|---|---|
| Encoder-only | Çift yönlü (bidirectional) | Masked language modeling | BERT, RoBERTa | Sınıflandırma, NER, embedding |
| Decoder-only | Causal (sadece geçmiş) | Sonraki token tahmini | GPT, Llama, Claude, Mistral | Metin üretimi, genel amaçlı LLM |
| Encoder-decoder | Encoder çift yönlü, decoder causal + cross-attention | Seq2seq | T5, BART, orijinal Transformer | Çeviri, özetleme |
Neden decoder-only kazandı?
- Tek ve basit hedef (next-token prediction) her metin üzerinde etiketsiz olarak uygulanabilir ve çok iyi ölçeklenir.
- Her görev "metin girdi → metin çıktı" olarak ifade edilebilir, few-shot ve instruction following doğal ortaya çıkar.
- KV cache ile verimli autoregressive inference yapılabilir.
Modern LLM'lerdeki tipik değişiklikler
Pre-norm + RMSNorm, SwiGLU feed-forward, RoPE, GQA (grouped-query attention, KV cache'i küçültür) ve bazı modellerde Mixture-of-Experts (her token için sadece birkaç expert MLP çalışır, toplam parametre büyük ama token başı hesaplama düşük).
İ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?
- 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.
- RNN ve LSTM nasıl çalışır? Transformer'lar neden büyük ölçüde onların yerini aldı?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.