Eğitim Derleme Değildir
Sayılar nasıl dolar: örnek, hata, küçük oynatma, kayıt.
Kaynak kodu kaydedince javac yeni .class üretir. Davranış değişmiştir çünkü talimatlar değişmiştir. Modelde davranışın çoğu ağırlık dosyasındadır. O dosyayı tsc üretmez. Üreten işe eğitim denir. Bu yazı eğitimi, henüz formül yokken, ne olup bittiği olarak anlatır.
Derleme neyi değiştirir, eğitim neyi?
Derleme: metin talimat → makine talimatı. Girdi aynıysa, kural aynıysa, çıktı aynıdır. Hata varsa kaynakta veya derleyicide ararsın.
Eğitim: boş (veya rastgele) sayılar + çok örnek → işe yarar sayılar. Girdi aynı olsa da, sayılar her adımda biraz oynadığı için çıktı eğitim boyunca değişir. “Build başarılı” yoktur. “Bu örnekte hata küçüldü mü?” vardır. Bitince sayılar diske yazılır. O yazım, artefact’tır; jar değildir, ağırlık dosyasıdır.
Rastgele başlangıç önemlidir. İlk anda model neredeyse gürültü üretir. Eğitim, gürültüyü veriye uydurur. Uydurmanın iyi olması, gerçeği bildiği anlamına gelmez; örneklerdeki desene yaklaştığı anlamına gelir.
Dört adım, binlerce kez
- Örnek al. Bir e-posta ve etiketi (
spam/ham). Dil modelinde örnek, bir metnin kendisidir: “şu kelimeden sonra şu kelime gelmiş.” - Mimariyi o anki ağırlıklarla çalıştır. Bu, önceki yazıdaki çıkarımdır. Bir skor (veya sonraki parça skorları) çıkar.
- Skoru istenenle karşılaştır. Fark bir sayıdır. Bu sayıya kayıp denir. Büyük kayıp: “bu örnekte kötü.” Küçük kayıp: “bu örnekte iyi.” Henüz türev demeden: kayıp, hoşnutsuzluk ölçeridir.
- Ağırlıkları kaybı küçültecek tarafa çok az kaydır. Hangi tarafa? Her sayının kaybı nasıl etkilediği hesaplanır (sonraki yazılarda türevin işi budur). Kaydırma küçüktür; tek örnek bütün dosyayı altüst etmesin diye.
Bu dört adım milyonlarca örnek, günler veya aylar, birçok GPU. İnsan “öğrensin” diye bakmaz; bir döngü while kayıp düşene kadar (veya bütçe bitene kadar) döner. Döngü bitince ağırlık dondurulur. Bundan sonrası yine çıkarımdır: 4. adım kapanır, yalnızca 2 kalır.
Neden javac gibi hissettirmez?
- Süre: dakikalar değil, büyük modellerde haftalar.
- Belirsizlik: aynı kod, aynı veri, farklı rastgele başlangıç, biraz farklı dosya.
- Hata türü: derleme hatası “satır 12.” Eğitim hatası “kayıp düşmüyor” veya “testte kötü, eğitimde iyi” (ezber).
- Tekrar: kaynağı değiştirmeden yeniden eğitmek, yeni bir dosya üretir. Kaynağı değiştirmek (mimari) + yeniden eğitmek, hem tarifi hem sayıları değiştirir.
- Maliyet: eğitim elektrik ve GPU zamanıdır. Çıkarım da elektrik yer ama dosya bir kez üretildikten sonra birçok kullanıcıya hizmet eder.
Küçük bir tablo:
| | Bildiğin yazılım | Model | | Artefact | binary, jar, wasm | ağırlık dosyası | | Üreten | derleyici | eğitim döngüsü | | Değişince ne olur | talimat değişir | sayılar değişir | | Çalışma anı | CPU/JVM | CPU veya GPU, aynı talimat türü | | Kullanıcı isteği ağırlığı değiştirir mi | hayır | hayır (çıkarımda) |
İnce ayar (fine-tune), eğitimin kısa ve dar halidir: hazır dosyayı al, az örnekle biraz daha kaydır, yeni dosya yaz. Hâlâ derleme değildir.
“Öğrendi” ne demek?
Günlük dilde öğrenmek, anlamak ve hatırlamaktır. Eğitimde öğrenmek, kaybı düşüren sayı kaydırmaktır. Model bir kuralı cümle olarak saklamaz. ücretsiz ile spam arasındaki bağ, binlerce ağırlığın birlikte çarpılmasında dağılır. Bu yüzden “neden böyle dedi?” sorusu, if’deki gibi tek satıra inmez.
Sonraki yazılar bu kaydırmanın matematiğine girecek: hata nasıl ölçülür, yön nasıl bulunur, çarpma neden vektör diye anılır. Hepsi hâlâ aynı makinede, hâlâ dosya + kod. Yeni bir altyapı katmanı açılmaz.
Alıştırma
Bir modeli “kendi verinle eğittin” cümlesini ikiye bölün: hangi kod (mimari / eğitim script’i) değişti, hangi dosya (ağırlık) yeniden yazıldı? Yalnızca API’ye örnek gönderdiyseniz eğitim olmamış olabilir; bağlamda örnek göstermek çıkarımdır.