GPT Eğitim Süreci: Veri Kaynakları ve Teknikler
Bir GPT modelini kodlamak yalnızca mimariyi oluşturmaktan ibaret değildir. Modelin gerçek anlamda öğrenebilmesi için doğru veri hazırlığı, kayıp fonksiyonu seçimi ve eğitim döngüsünün doğru kurulması gerekir. Bu yazıda bu adımların tamamını ele alacağız.
Modelden Metin Oluşturma
Eğitime geçmeden önce, modelin nasıl metin ürettiğini anlamak önemlidir. Model, her adımda bir sonraki token'ın olasılık dağılımını hesaplar ve bu dağılımdan örnekleme yaparak yeni token'ı seçer; bu işlem otomatik regresif biçimde devam eder.
Basit bir üretim fonksiyonu şu adımları izler: metni token ID'lerine dönüştür, modelden logit'leri al, son pozisyonun logit'ini vocabulary boyutuna projeksiyon et, softmax uygula, en yüksek olasılıklı token'ı seç (greedy) veya örnekle.
Veri Kümesi Hazırlama
Dil modeli ön eğitimi, etiketli veri yerine ham metin kullanır; bu GPT'yi "self-supervised" bir model yapar. Veriler genellikle %90 eğitim ve %10 doğrulama olarak ayrılır.
Kayan Pencere (Sliding Window) Yaklaşımı
Ham metin bir kez tokenize edilir, ardından sabit uzunlukta pencereler kaydırılarak input-target çiftleri oluşturulur. Hedef dizisi, girdi dizisinden tam olarak bir pozisyon ileriye kaydırılmıştır; yani model her zaman "bir sonraki token'ı tahmin et" görevini öğrenir.

Bu yaklaşımın avantajı verimi maksimize etmesidir: aynı token farklı pencerelerde hem girdi hem de hedef rolü üstlenebilir.
PyTorch Dataset ve DataLoader
Veri hazırlığı için PyTorch'un Dataset ve DataLoader sınıfları kullanılır. Özel bir GPTDataset sınıfı, tokenize edilmiş metni alarak kayan pencere yöntemiyle input-target tensörlerini üretir. DataLoader bu dataset'i shuffle ve batch_size parametreleriyle mini-batch'lere böler.
Loss Hesaplama
GPT eğitiminde standart kayıp fonksiyonu cross-entropy'dir. Her pozisyonda modelin tahmin ettiği token olasılık dağılımı ile gerçek bir sonraki token karşılaştırılır.
PyTorch'un torch.nn.functional.cross_entropy() fonksiyonu, logit'leri ve hedef indekslerini alarak otomatik olarak softmax'ı dahili hesaplar; bu da nümerik stabilite açısından avantajlıdır.
Eğitim Fonksiyonu
Ana eğitim döngüsü şu adımları takip eder.
Epoch Döngüsü
Her epoch'ta tüm eğitim verisi üzerinden geçilir. Mini-batch'ler sırayla işlenir: forward pass, loss hesaplama, backward pass ve ağırlık güncelleme.
Optimizer: AdamW
AdamW, Adam optimizer'ın weight decay düzeltmesiyle geliştirilmiş versiyonudur. Adaptif öğrenme oranları ve weight decay kombinasyonu, GPT gibi büyük modellerde iyi genelleme sağlar.
Değerlendirme ve Örnekleme
Belirli aralıklarla (her N batch'te bir) hem eğitim hem doğrulama seti üzerinde loss hesaplanır ve modelin o anki durumu bir prompt'tan metin üreterek gözlemlenir. Bu, modelin gerçekten öğrenip öğrenmediğini yakından takip etmeyi sağlar.
Sonuçlar
Yazar tarafından yapılan deneyde model, Nvidia RTX 4050 GPU üzerinde 5 epoch boyunca yaklaşık 492.914 token ile eğitildi; bu süreç yaklaşık 6 dakika sürdü.
Eğitim öncesinde model rastgele kelimeler üretirken, eğitim sonrasında tutarlı Türkçe cümleler kurmaya başladı. Eğitim ve doğrulama loss eğrilerinin birbirine paralel düşmesi, modelin ezberlemediğini (overfitting olmadığını) gösterdi.
Bu sonuç, doğru veri hazırlığı ve eğitim döngüsüyle küçük bir GPT modelinin bile anlamlı dil kalıplarını öğrenebildiğini kanıtlar.
