Adım Adım GPT Modeli Kodlaması
GPT (Generative Pretrained Transformer) mimarisi; embedding, layer normalization, masked multi-head attention, feedforward, linear projection ve softmax katmanlarından oluşur. Bu katmanlar, modelin derinliğine bağlı olarak N kez tekrarlanan bloklara göre düzenlenir.
Model Konfigürasyonu
Bir GPT modelini kodlamadan önce temel hiperparametreleri tanımlamak gerekir. Aşağıdaki örnek konfigürasyon küçük ölçekli bir model için kullanılabilecek değerleri gösterir.
- Vocabulary size: 50.257 (GPT-2 tokenizer)
- Context length: 256 token
- Embedding dimension: 384
- Attention head sayısı: 12
- Layer sayısı: 12
- Dropout oranı: 0.1
Embedding'ler
Embedding'ler, ayrık token'ları semantik ilişkileri koruyan yoğun vektörlere dönüştürür. İki tür embedding kullanılır: token embedding'leri (kelime temsilleri) ve positional embedding'ler (konum bilgisi). Bu ikisi toplanarak nihai embedding vektörü oluşturulur.
Token embedding katmanı, her token ID'sini sabit boyutlu bir vektöre eşler. Positional embedding ise aynı boyutta olup sıradaki konumu (0'dan context_length-1'e) kodlar. Model, bu iki vektörü toplayarak hem içerik hem de konum bilgisini aynı anda taşır.

Layer Normalization
Layer normalization, katmanlar arasındaki aktivasyon dağılımlarını normalize ederek öğrenmeyi stabilize eder. Gradyan vanishing/exploding sorunlarını önler ve derin ağlarda daha hızlı yakınsama sağlar.
Geleneksel batch normalization'dan farklı olarak layer normalization her örneği bağımsız olarak normalize eder; bu da batch boyutundan bağımsız çalışmasını sağlar ve dil modelleri için çok daha uygun hale getirir.
Feedforward Network (MLP)
MLP bileşeni, aralarında GELU aktivasyon fonksiyonu bulunan iki lineer dönüşüm uygular. Boyutları önce 4 kat genişletip sonra tekrar daraltarak karmaşık temsiller öğrenir.
GELU (Gaussian Error Linear Unit), ReLU'dan farklı olarak negatif değerlere küçük de olsa geçirgenlik sağlar. Bu sayede model, sıfır bölgesine yakın girdilerde daha iyi gradyan akışı elde eder.
Dikkat Mekanizması
Attention mekanizması GPT'nin kalbini oluşturur. Üç farklı türü bulunur.
Self-Attention
Her token'ın diğer token'larla ilişkisini anlamasını sağlar. Bir Query, Key ve Value üçlüsü hesaplanır; Q ile K'nın skaler çarpımı normalize edilerek attention ağırlıkları elde edilir, bu ağırlıklar V ile ağırlıklı toplanır.

Masked Self-Attention
Gelecekteki token'lara atıfta bulunmayı önler. Eğitim sırasında model, bir sonraki token'ı tahmin ederken yalnızca o ana kadar gördüklerini kullanabilmelidir. Bu kısıtlama bir alt üçgen maskesiyle uygulanır.

Multi-Head Attention
Farklı ağırlık projeksiyonlarıyla paralel dikkat hesaplamaları yapar. Her "head", veriyi farklı bir alt uzayda yorumlar; bu sayede model aynı anda farklı türde ilişkileri öğrenebilir. Tüm head'lerin çıktıları birleştirilerek son projeksiyon katmanından geçirilir.

Transformer Bloğu
Bir transformer bloğu şu bileşenleri sırayla birleştirir:
- Pre-normalization (Layer Norm)
- Multi-head attention + residual bağlantı
- Pre-normalization (Layer Norm)
- Feedforward (MLP) + residual bağlantı
Pre-normalization yaklaşımı, orijinal "Post-LN" Transformer'a göre eğitimi daha stabil hale getirir ve büyük modellerde tercih edilir.
Residual Bağlantılar
Residual (artık) bağlantılar, katmanın girdisini çıktısına doğrudan ekler: çıktı = katman(x) + x. Bu yapı iki kritik avantaj sağlar:
- Gradyan akışı: Geri yayılım sırasında gradyanlar katmanları atlayarak direkt akabilir; bu da derin ağlarda vanishing gradient sorununu büyük ölçüde çözer.
- Öğrenme kolaylığı: Katmanın öğrenmesi gereken şey artık tam dönüşüm değil, yalnızca "artık" (residual) kısımdır; bu da optimizasyonu kolaylaştırır.

Tamamlanmış GPT Modeli
Nihai model tüm bileşenleri şu sırayla birleştirir:
- Token embedding + Positional embedding → toplam embedding
- N adet Transformer bloğu (sıralı)
- Son Layer Normalization
- Linear projeksiyon → vocabulary boyutunda logit
- Softmax → olasılık dağılımı
Eğitim sırasında cross-entropy loss kullanılır; hedef, bir sonraki token'ın doğru tahmin edilmesidir. Inference'ta ise greedy decoding, top-k sampling veya nucleus (top-p) sampling gibi stratejilerle metin üretilir.