Optimizer
Adam, AdamW, SGD
Gradient descent'i pratik hâle getiren algoritmalar — momentum, uyarlamalı öğrenme oranı ve düzenlileştirme gibi tekniklerle eğitimi hem hızlandırır hem kararlı hâle getirir.
Saf SGD modern büyük modelleri eğitmek için yetersizdir; çok yavaş yakınsar, lokal minimumlara takılır, hiperparametre seçimine aşırı duyarlıdır. Optimizer aileleri, gradyan iniş fikrinin üstüne pratikte gerçekten çalışan tekniklerle binerek eğitimi hızlandırır ve daha kararlı hâle getirir.
Tarihsel sırayla gelişim:
- SGD + Momentum: önceki adımların hareketini biriktirir. Yamaçta aşağı inerken hız kazanır, gürültülü gradyanlarda sapmaz. Hâlâ küçük modeller ve son fine-tuning'de kullanılır. - AdaGrad: her parametre için ayrı, geçmiş gradyan büyüklüklerine göre öğrenme oranı. Sık güncellenenler yavaşlar — ama zamanla öğrenme oranı sıfıra iner, yetersiz kalır. - RMSprop / AdaDelta: AdaGrad'ın "öğrenme tükenir" sorununa çözüm — yakın geçmişin hareketli ortalamasını kullanır. - Adam: Momentum + RMSprop birleşimi. 2014'ten bu yana derin öğrenmenin standardı. Hızlı yakınsama, makul varsayılan değerler. - AdamW: Adam'ın weight decay düzeltmesi — modern transformer ve büyük model eğitimlerinin defaultu. L2 düzenlileştirmesini doğru biçimde uygular, generalization'ı iyileştirir.
Pratikte: yeni bir derin öğrenme projesinde AdamW (lr=1e-4 ya da 3e-4) başlangıç noktasıdır. Modeli güzel eğitir, sonra final fine-tuning için SGD + Momentum (lr=1e-2) denenebilir.
Bir dağ koşusu antrenörü gibi. Saf gradyan inişi, koşucuya "her adım eşit, tam ileri" der. Momentum, "yokuşta hızlan, düz alanda sürdür" der. Adam, koşucunun her bacağına ayrı talimat verir: "sağ bacak son zamanlarda çok çalıştı, biraz rahatla; sol bacak az kullanıldı, biraz zorla". AdamW üstüne bir disiplin daha ekler: "kasları aşırı şişirme, mütevazı kal" (weight decay). Sonuç: daha hızlı, daha kararlı bir koşu.
Bir LLM fine-tune ediyorsun, 7B parametreli model, 100K tokenlı veri seti. Üç optimizer denenir:
- SGD lr=0.01: 50 epoch'tan sonra hâlâ kayıp düzgün düşmüyor. Manuel olarak learning rate ayarlamak günler alır. - Adam lr=3e-4: 5 epoch'ta makul bir kayba iner ama validation üzerinde aşırı öğrenme görünüyor. - AdamW lr=3e-4, weight_decay=0.1: Aynı epoch sayısında benzer eğitim kaybı, ama validation hatası %2 daha düşük.
AdamW seçilir; sonra son fine-tuning için cosine schedule ile SGD + Momentum'a geçilir, son %0.5 başarı oradan kazanılır. Modern büyük model eğitimlerinin standart koreografisidir.
import torch
from torch.optim import AdamW
from torch.optim.lr_scheduler import CosineAnnealingLR
# Her parametre grubuna farklı weight decay (transformer yaygın)
no_decay = ["bias", "LayerNorm.weight"]
param_groups = [
{
"params": [p for n, p in model.named_parameters()
if not any(nd in n for nd in no_decay)],
"weight_decay": 0.01,
},
{
"params": [p for n, p in model.named_parameters()
if any(nd in n for nd in no_decay)],
"weight_decay": 0.0,
},
]
optimizer = AdamW(param_groups, lr=3e-4, betas=(0.9, 0.95))
scheduler = CosineAnnealingLR(optimizer, T_max=total_steps)
for batch in train_loader:
optimizer.zero_grad()
loss = compute_loss(model, batch)
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) # gradient clip
optimizer.step()
scheduler.step()- Sinir ağı eğitiyorsan optimizer kaçınılmaz
- Bilinmedik bir görev için: AdamW lr=3e-4 ile başla
- Computer vision son fine-tune'da: SGD+Momentum daha düz minimum bulabiliyor
- Çok büyük modellerde: gradient accumulation + AdamW + warm-up + cosine
- Klasik ML algoritmaları (RF, GBDT) — kendi optimizasyonları var
- Konveks ve kapalı çözümlü problemler — analitik daha iyi
Adam vs AdamW karıştırmak
Vanilla Adam, weight decay ile L2 düzenlileştirmeyi yanlış uygular. Modern transformer eğitimleri için AdamW kullan. Kütüphane varsayılanları yanıltıcı olabilir.
Learning rate'i değiştirmeden farklı optimizerlere geçmek
SGD ve Adam'ın uygun lr'leri büyük ölçüde farklı (1e-2 vs 1e-4). Optimizer değişince lr de yeniden ayarlanmalı.
Warm-up'ı atlamak
Büyük modellerde ilk birkaç bin adım, lr'yi 0'dan hedef değere yumuşakça çıkarmazsan eğitim ilk başta dengesiz olabilir. Linear warmup + cosine decay modern standart.