1 puan yazan GN⁺ 2026-03-03 | 1 yorum | WhatsApp'ta paylaş
  • MicroGPT, saf Python ile yazılmış 200 satırlık bir GPT modelinin minimal uygulaması; büyük dil modellerinin temel yapısını görsel olarak anlamayı sağlayacak şekilde tasarlanmış
  • 32.000 adet insan adı veri kümesi üzerinde eğitilerek yeni isimler üretir ve tokenizasyon, tahmin, kayıp hesaplama ve geri yayılım süreçlerini adım adım görselleştirir
  • Softmax, Cross-Entropy Loss, Backpropagation, Embedding, Attention gibi GPT’nin başlıca bileşenlerini kodla birlikte açıklar
  • Eğitim sürecinde Adam optimizer kullanarak kaybı kademeli olarak azaltır; ardından sıcaklık ayarı (Temperature Sampling) ile çeşitli isimler üretir
  • ChatGPT gibi büyük modellerin temel algoritmasını basitleştirilmiş bir biçimde sunan, LLM’lerin iç çalışma mantığını anlamaya yönelik eğitsel bir kaynak

MicroGPT’ye genel bakış

  • Andrej Karpathy tarafından yazılan 200 satırlık Python betiğini temel alarak, GPT modelinin eğitim ve çıkarım sürecini görsel biçimde açıklar
    • Harici kütüphane olmadan yalnızca saf Python ile uygulanmıştır
    • ChatGPT gibi büyük dil modellerinin temel algoritmasını aynen içerir
  • Yazı, yeni başlayanlara uygun görsel bir yaklaşımla modelin her adımını aşama aşama gösterir

Veri kümesi ve eğitim hedefi

  • 32.000 adet insan adı (ör. emma, olivia, ava vb.) eğitim verisi olarak kullanılır
    • Her isim tek bir belge olarak kabul edilir ve model isimlerin karakter örüntülerini öğrenir
    • Eğitim sonrasında “kamon”, “karai”, “anna”, “anton” gibi yeni isimler üretir
  • Model; karakterler arasındaki istatistiksel ilişkileri, isim uzunluğunu ve başlangıç-bitiş ses örüntülerini öğrenir

Metni sayılara dönüştürme süreci

  • Sinir ağları yalnızca sayılarla çalıştığı için her karakter bir tam sayı ID’sine dönüştürülür
    • a–z için 0–25, BOS (Beginning of Sequence) için 26 atanır
    • BOS token’ı ismin başlangıcını ve sonunu işaretler
  • Gerçek GPT-4’ün tiktoken sistemi karakterler yerine karakter parçaları düzeyinde tokenization yapar, ancak ilke aynıdır

Sonraki token tahmini

  • Model, verilen bağlama göre bir sonraki karakteri tahmin eder
    • Örnek: [BOS] → “e”, [BOS, e] → “m”, [BOS, e, m] → “m”, [BOS, e, m, m] → “a”
  • Her adım giriş (bağlam) ve hedef (sonraki karakter) çifti üretir; bu yöntem ChatGPT ile aynıdır

Softmax ve olasılık hesabı

  • Model çıktısı 27 adet logit’ten oluşur ve Softmax ile olasılığa dönüştürülür
    • Her logit üstel alınır, ardından toplamına bölünerek bir olasılık dağılımı oluşturulur
    • En büyük değeri çıkarma işlemi, overflow’u önlemek için yapılan bir kararlılık tekniğidir
  • Softmax sonucu, her token’ın sıradaki öğe olarak gelme olasılığını gösterir

Kayıp hesabı: Cross-Entropy

  • Tahmin doğruluğu −log(p) ile hesaplanır
    • Doğru cevabın olasılığı ne kadar yüksekse kayıp o kadar düşüktür; 0’a yaklaştıkça kayıp büyür
    • p=1 olduğunda kayıp 0, p→0 olduğunda kayıp sonsuzdur
  • Eğitim, bu kaybı en aza indirecek yönde ilerler

Geri yayılım (Backpropagation)

  • Kayıp temel alınarak her parametrenin kayıp üzerindeki etkisi hesaplanır
    • Tüm işlemler (add, multiply, exp, log vb.) düğümlerden oluşan bir hesaplama grafiği üzerinden türevlenir
    • Her düğüm girişleri ve yerel türev değerini saklar, ardından gradient’i geriye doğru yayar
  • Örnek: L = a⋅b + a (a=2, b=3) → a’nın gradient’i 4.0’dır (iki yolun toplamı)
  • Bu, PyTorch’taki loss.backward() ile aynı ilkedir

Gömme (Embedding)

  • Her token ID, anlam öğrenebilmek için 16 boyutlu bir vektöre dönüştürülür
    • Token embedding ile position embedding toplanarak giriş olarak kullanılır
    • Aynı karakterin rolü bulunduğu konuma göre değişebilir
  • Eğitimden sonra benzer karakterler (ör. sesli harfler) benzer vektörlere sahip olur

Attention

  • Her token, Query, Key, Value vektörleri üretir
    • Query ile Key arasındaki iç çarpım üzerinden ilişki hesaplanır, Softmax ile ağırlıklar elde edilir
    • Ağırlıklı toplamdan çıkan Value, çıktı olarak kullanılır
  • Causal Mask uygulanarak gelecekteki token’lara bakılması engellenir
  • 4 adet attention head paralel çalışır ve farklı örüntüler öğrenir

Genel GPT yapısı

  • Girdi token’ları şu adımlardan geçer
    1. Embedding + position embedding
    2. RMSNorm normalizasyonu
    3. Multi-head attention
    4. Residual bağlantı
    5. MLP (64 boyuta genişleme → ReLU → 16 boyuta daralma)
    6. Yeniden residual bağlantı ve ardından çıktı logit’lerinin hesaplanması
  • Residual bağlantılar, gradient kaybolmasını önler
  • RMSNorm, aktivasyonların büyüklüğünü dengede tutarak eğitimi daha kararlı hale getirir

Eğitim döngüsü

  • 1.000 iterasyon boyunca eğitim yapılır
    • İsim seçimi → tokenization → forward pass → kayıp hesabı → geri yayılım → parametre güncelleme
  • Adam optimizer kullanılır
    • Momentum ve uyarlanabilir öğrenme oranı sayesinde kararlı yakınsama sağlar
  • Başlangıç kaybı yaklaşık 3.3’ten 2.37’ye düşer
    • Üretilen isimler rastgele yapıdan giderek daha doğal bir forma evrilir

Çıkarım (Inference) ve örnekleme

  • Eğitimden sonra BOS ile başlanır ve sıradaki token tekrar tekrar tahmin edilir
    • BOS yeniden görünene kadar üretim sürer
  • Temperature, örnekleme çeşitliliğini kontrol eder
    • Değer düştükçe daha deterministik (ortalama), yükseldikçe daha yaratıcı ama daha dengesiz olur
    • İsim üretimi için uygun sıcaklık yaklaşık 0.5’tir
  • Örnek çıktı: “karai”

Verimlilik ve ölçeklenebilirlik

  • MicroGPT, GPT’nin temel algoritmasının sadeleştirilmiş ama eksiksiz bir uygulamasıdır
    • ChatGPT ile farkı yalnızca ölçektir
    • 32.000 isim yerine trilyonlarca token, 4.192 parametre yerine yüz milyarlarca parametre kullanılır
    • CPU tabanlı skaler işlemler yerine GPU tensor işlemleri kullanılır
  • Temel döngü aynıdır: tokenization → embedding → attention → tahmin → kayıp → geri yayılım → güncelleme

Sonuç

  • MicroGPT, GPT’nin iç çalışma mantığını sezgisel biçimde öğrenmeyi sağlayan eğitsel bir modeldir
  • Büyük ölçekli LLM’lerin karmaşık yapısını sadeleştirerek, dil modellerinin temel mekanizmasını doğrudan deneyimleme imkânı sunar

1 yorum

 
GN⁺ 2026-03-03
Hacker News görüşleri
  • Eğitimin sonunda modelin "kamon", "karai", "anna", "anton" gibi isimler ürettiği söylenmiş, ama aslında bu isimler veri kümesinde zaten var
    Başka isimler kullanmak daha iyi olabilir — veri kümesi bağlantısı

    • Doğru, yazının tamamı AI tarafından yazılmış gibi hissettirdi
    • Teşekkürler, düzelteceğim
  • Yeni başlayanlara yönelik deniyor ama bu tür matematiksel açıklamaları anlayabilecek kaç acemi vardır emin değilim
    Örneğin cross-entropy loss formülünün açıklandığı bölüm fazla karmaşık geldi

    • Ben de uzman değilim ama belli bir bilgiye sahip olduğum için yeni başlayan biri açısından zor olabilecek ifadeler kullanıyor olabilirim
      Bunu yeniden düşüneceğim
  • Benim anlamadığım kısım, böyle basit bir modelin nasıl olup da rastgele kod problemlerini debug edebilir hale geldiği
    İstatistiksel çıkarımın nasıl “akıl yürütme yeteneği”ne dönüştüğünü merak ediyorum
    Claude code'u her gün kullandıkça artık bunun gerçekten böyle olduğuna inanmaya başladım

    • Bence bu soru ML araştırmalarındaki en büyük gizem
      Özünde mesele şu: “Eğer her zaman doğru bir sonraki kelimeyi tahmin edebiliyorsan, sonuçta her soruya da doğru cevap verebilirsin”
      Bu yüzden son dönemde RLHF ya da RLVR gibi pekiştirmeli öğrenme tabanlı yaklaşımlarla ‘doğru cevabı’ bulma yönünde ilerleniyor
    • Bu, sadece kelime düzeyinde istatistiksel çıkarım değil; karmaşık anlamsal yapıları hiyerarşik olarak çıkarımlama sürecinin tekrar tekrar gerçekleşmesi
    • DNN, genel anlamdaki istatistiksel çıkarım değildir
      Matematiksel olarak kalkülüs tabanlı bir optimizasyon problemine daha yakındır
      Sadece metin istatistiklerini öğrenmek değil, bir sonraki token'ı tahmin etmek için karmaşık bir çözüm bulmaktır
    • “İstatistiksel çıkarım” ifadesi fazla indirgemeci bir açıklama
      Sinir ağlarında istatistiksel unsurlar var ama insan beyni gibi bunun ötesinde bir tarafı da var
  • Yazının tamamını okudum; faydalı kısımları vardı ama 'gerisini de baykuşu çiz' türü bir his verdi
    Kavramlar arasındaki bağlantı noktaları eksik gibiydi ama interaktif kurgu güzeldi

    • Başta iyiydi ama kısa süre sonra “MLP iki katmanlı bir feedforward network'tür; 64 boyuta projekte eder, ReLU uygular, sonra yeniden 16 boyuta projekte eder” gibi açıklamalar gelince zorluk seviyesi bir anda yükseliyor
      Biraz daha derinlemesine ele alınsa iyi olurdu
  • Acaba bu aralar kasıtlı olarak imla ya da dilbilgisi hataları ekleyip yazının LLM tarafından yazılmadığını gösterme modası mı var
    Karpathy'nin blogunda ve bu yazıda da böyle epey yazım hatası gördüm

    • Bu tür ters sinyal verme (counter signaling) yaklaşımı sanırım ileride daha da yaygınlaşacak
    • Sanırım bunu ancak şimdi fark ettim
    • Dürüst olmak gerekirse Karpathy o kadar da büyük bir figür değil
      Sadece Elon'un Full Self Driving projesini uzun süre ayakta tuttu ve OpenAI'de de çok uzun kalmadı
      Son zamanlarda neredeyse tamamen code golf ya da yeni terimler uydurmaya odaklanmış gibi görünüyor
  • Orijinal metin Karpathy'nin blogunda — microGPT yazı bağlantısı

  • Bazıları fazla temel, bazıları da fazla derin olduğunu söyledi ama
    benim gibi modellerin nasıl çalıştığını çok iyi bilmeyen biri için iyi bir genel bakış oldu
    Tam olarak anlamadım ama öğrenmeye başlamak için iyi bir başlangıç noktası gibi görünüyor

  • Şimdiye kadar gördüğüm en faydalı öğreticilerden biriydi
    Kod yazmayan biri olmama rağmen AI sayesinde kod yazmaya başladım
    Açıklama basit ve netti; bu da AI'ya ne girmem gerektiğini düşünürken bana çok yardımcı oluyor

  • Görünüşe göre T-Mobile bu blog sayfasını engelliyor
    engelleme uyarısı sayfası bağlantısı

  • Yazıyı okuyup isimlerin çıktılanmasını anladım ama neden özellikle isim üretimi örneğinin seçildiğini merak ettim

    • İsimler, modeli göstermek için kullanılan rastgele bir problem sadece
      Başka herhangi bir veriyle de yapılabilirdi