Makine Öğrenmesi
Fine-tuning
BERT, sınıflandırma gibi görevler için fine-tuning yapılır.
İnce ayar
İnce ayarda önceden eğitilmiş BERT'in üstüne küçük bir görev katmanı (ör. 768 → 2 doğrusal katman) eklenir ve tüm model küçük bir öğrenme oranıyla birkaç tur eğitilir:
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"dbmdz/bert-base-turkish-cased", num_labels=2)
# tipik: lr = 2e-5, 2-4 tur, yığın 16-32, ısınma + doğrusal azalma
Az veride ya da kısıtlı donanımda gövde dondurulup yalnızca baş eğitilebilir; bu daha hızlıdır ama genellikle daha düşük doğruluk verir.
Isınma ve azalma takvimi
BERT ince ayarında öğrenme oranı önce sıfırdan hedefe doğrusal olarak ısınır, sonra sıfıra doğru doğrusal azalır. Isınma, rastgele başlatılan başın ilk adımlarda gövdeyi bozmasını önler:
def lr(adim, toplam, isinma, tepe=2e-5):
if adim < isinma:
return tepe * adim / isinma
return tepe * (toplam - adim) / (toplam - isinma)
Hugging Face'te get_linear_schedule_with_warmup aynı takvimi uygular.
Uygulama Takvim ve eğitilebilir parametreler
lr(adim, toplam, isinma) fonksiyonunu yaz. toplam=1000, isinma=100 için 0, 50, 100, 550 ve 1000. adımdaki oranları aynı satırda yazdır. Ardından BERT-base (109 482 240 parametre) üstüne 768 → 2 sınıflandırma başı eklenince tam ince ayarda ve gövde donukken eğitilen parametre sayılarını aynı satırda yazdır.
Örnek çözümü göster
govde = 109_482_240
def lr(adim, toplam, isinma, tepe=2e-5):
if adim < isinma:
return tepe * adim / isinma
return tepe * (toplam - adim) / (toplam - isinma)
print(*[lr(a, 1000, 100) for a in [0, 50, 100, 550, 1000]])
bas = 768 * 2 + 2
print(govde + bas, bas)
Kendini test et
-
İnce ayarda öğrenme oranı neden küçük (ör. 2e-5) seçilir?
- Önceden öğrenilmiş bilgiyi bozmamak (felaket unutmayı önlemek) için
- Eğitimi hızlandırmak için
- Bellek kazanmak için
- Tokenizasyon gerektirdiği için
Cevabı göster
Önceden öğrenilmiş bilgiyi bozmamak (felaket unutmayı önlemek) için — Büyük adımlar ön eğitimle öğrenilen ağırlıkları hızla bozar.
-
Isınma döneminde oranı doğrusal artır.
return tepe * adim / ____
Cevabı göster
return tepe * adim / isinma
-
Eşleştir.
- tüm model eğitilir
- Tam ince ayar
- yalnızca baş
- Dondurulmuş gövde
- ısınma
- Oran sıfırdan artar
- 2e-5
- Tipik öğrenme oranı
Sıradaki ders: CLS token