2 puan yazan GN⁺ 2025-08-21 | 1 yorum | WhatsApp'ta paylaş
  • Gemma 3 270M, yalnızca PyTorch kullanılarak doğrudan uygulanabilmesi için örnek kod sunuyor
  • İlgili depo, LLM’lerin yapısını ve eğitim sürecini anlamak ve doğrudan uygulamak için eğitim amaçlı hazırlanmış
  • Ek harici LLM framework’leri olmadan kod çalıştırılabiliyor ve standart dizüstü bilgisayar ortamlarında da çalışabiliyor
  • Geliştiriciler ve araştırmacılar için öğrenmeye somut katkı sağlayan çeşitli bonus örnekler ve uygulama materyalleri içeriyor
  • Yalnızca temel Python bilgisiyle, herkes LLM’lerin prensiplerini ve ayrıntılı uygulamasını adım adım deneyimleyebiliyor

Açık kaynak projenin önemi ve farkları

Bu depo, GPT ailesindeki büyük dil modellerini doğrudan uygulamak, ön eğitimden geçirmek ve ince ayar yapmak için gereken tüm kodu sunuyor. Çoğu büyük dil modeli örneğinin aksine, ek harici LLM odaklı kütüphaneler olmadan, yalnızca PyTorch kullanarak yerel ortamda doğrudan deney ve eğitim yapılabiliyor. Özellikle Gemma 3 270M gibi hafif modellerin de ayrıntılı kodla birlikte sunulması, yeni araştırmacıların ve geliştiricilerin gerçek uygulama yapısını takip ederek temel prensipleri derinlemesine öğrenebilmesi açısından pratik bir avantaj sağlıyor.

Ana içerik ve depo yapısı

  • "Build a Large Language Model (From Scratch)" kitabının resmi kod deposu sunuluyor
  • GPT tarzı LLM’lerin doğrudan uygulanması, ön eğitim ve ince ayarın tüm aşamalarını kapsayan adım adım örnek kodlar içeriyor
  • Büyük dil modeli uygulama mantığını ayrıntılı biçimde ele alıyor; her aşamada açık açıklamalar, şemalar ve örnek kodlar ile yeni başlayanların da kolayca takip edebileceği bir yaklaşım sunuyor
  • Büyük ölçekli model eğitim metodolojilerini ve gerçek uygulama sürecini ayrıntılı biçimde anlatarak, ChatGPT gibi gerçek hizmetlerde kullanılan yöntemleri hissederek öğrenme imkânı veriyor
  • Ön eğitimli model ağırlıklarını yükleme / ince ayar ile ilgili örnekler içeriyor

Depo yapısına dair rehber

  • Resmi kaynak kod deposu, kitap bilgileri, ISBN vb. uygulama ve başvuru bağlantıları sağlanıyor
  • Her bölüm için Jupyter notebook’ları ve Python betikleri içeriyor; böylece adım adım uygulamalar, alıştırmalar ve ek materyaller de incelenebiliyor
  • Ek materyaller ve bonus örnekler olarak Attention mekanizması, Tokenizer, performans optimizasyonu, FLOPS analizi, hiperparametre ayarı, Llama model dönüşümü gibi işte doğrudan fayda sağlayabilecek çeşitli uygulama içerikleri sunuluyor

Ön bilgi ve donanım gereksinimleri

  • Yalnızca Python programlamaya dair temel anlayış ile LLM prensipleri ve uygulamaları anlaşılabiliyor
  • PyTorch’a aşinalık şart değil; temel sözdizimini bilmek yeterli
  • Ayrı yüksek donanım gerektirmeden, standart bir dizüstü bilgisayarda örnekler çalıştırılabiliyor
  • GPU varsa otomatik olarak algılanıyor ve eğitim hızını artırıyor
Reklam

Ek kaynaklar ve uygulamayı güçlendiren içerikler

  • Her bölümde uygulama kodları ve alıştırma notebook’ları sunuluyor
  • Ücretsiz 170 sayfalık PDF quiz kitabı (her bölüm için yaklaşık 30 soru) ile kendi kendine öğrenme destekleniyor
  • Video eğitiminde (17 saat 15 dakika, Manning yayın platformu) yazar, kitabın tüm ana içeriklerini kod yazarak doğrudan anlatıyor

Araştırma ve topluluk katılımı

  • Soru, görüş ve tartışmalar Manning forumu ve GitHub Discussions üzerinde aktif biçimde paylaşılıyor
  • Kitap ve kod arasında tutarlılığı korumak için deponun ana kodunda dış katkılar sınırlı; iyileştirme ve düzeltme önerileri için ayrı tartışmalar öneriliyor

Referans ve alıntı bilgisi

  • Bu proje ve kodlar, LLM geliştirme ve deneysel araştırmalarda doğrudan kullanılabiliyor
  • Makale, teknik blog vb. yerlerde alıntı yapılacaksa Chicago stili ve BibTeX örnekleri için rehber sunuluyor

Özet

Bu depo, Gemma 3 270M gibi büyük dil modellerini yalnızca PyTorch ile doğrudan uygulama ve deneme fırsatı sunuyor. Mevcut LLM açık kaynak projelerinden farklı olarak, en sade ortamda temel prensipleri ve tüm akışı öğrenip deneyebilme olanağı en büyük avantajı. Yeni başlayan geliştiriciler ve araştırmacılar için LLM’leri anlamaya ve uygulamaya uygun yapı, örnekler, ek materyaller ve alıştırmaların tümünü içeriyor.

1 yorum

 
GN⁺ 2025-08-21
Hacker News görüşü
  • Merhaba, bu modeli harika bir ekiple birlikte geliştirdim. Geçen hafta bu model ana sayfada yer aldığında pek çok soruyu yanıtlamıştım. Burada da ek sorular varsa memnuniyetle yanıtlarım. Artık hepinizin bu modele erişebiliyor olmasından şahsen çok heyecan duyuyorum. Umarım iyi şekilde kullanırsınız. Önceki Soru-Cevap bağlantısına bakabilirsiniz
    • Bu kadar küçük bir modelde embedding için toplam parametrelerin 2/3'ünü kullanma konusunda ne düşündüğünüzü merak ediyorum. Byte-level vocabulary kullanıp bunu transformer parametrelerine ayırmak, token işleme hızını düşürse de doğruluğu artırmaz mı diye düşünüyorum
    • Çok temel bir soru ama AI edge gallery uygulamasında tflite modeli GPU'da çalıştırınca neden sadece '[multimodal][multimodal]' çıktısı veriyor, CPU'da ise normal çalışıyor merak ediyorum
    • MLE (Machine Learning Engineer) olmadığım için soruyorum; OP'nin PyTorch ile yeniden uygulamasının artıları ve eksileri neler?
    • İnanılmaz derecede etkileyici bir küçük LM. Hangi donanımda eğitildiğini ve eğitimin ne kadar sürdüğünü paylaşmanız mümkün mü merak ediyorum
    • Bunu yaptığınız için teşekkürler. Ben de zamanında bir Discord chatbot'unu BERT ile geliştirmiştim; 270M parametreye yükseltme fikri gerçekten heyecan verici
  • Birinin (veya OP'nin) bu modeli fine-tuning yaparak ileri seviye NER gibi doğal dil görevlerine uygulamak için bir reçete paylaşabilip paylaşamayacağını merak ediyorum. Geçen hafta Gemma3 270M yayımlandıktan sonra öğreticileri denedim ama pek başarılı olamadım. Öğreticilerin çoğu sohbet ya da rol yapma senaryolarına odaklanıyor; benim asıl işim PDF'lerden varlık çıkarma ve bunları temizlemek olduğu için bu tür kullanım senaryolarına özel ipuçları bulmak zor. Bu modelin bu tür işler için uygun olabileceğini düşünüyorum
    • Eğer geleneksel bir NER görevi ise (çakışmayan token aralıklarından varlık çıkarma), yalnızca encoder kullanan bir model (bert-large-NER gibi) ya da encoder-decoder modeli (ör. t5-base-conll03-english) kullanmak daha iyi olabilir. Bu tür encoding modelleri son dönemde daha az ilgi görüyor ama üretim gerektirmeyen yerleşik doğal dil işleme görevlerinde hâlâ güçlüler ve aynı parametre sayısında NER doğruluğunun decoder-only modellere göre çok daha yüksek olması beklenir
    • gemma-llm Python kütüphanesini (JAX tabanlı) kullanmanın bir yolu var. İlgili öğreticiye bakabilirsiniz
    • Acaba bu NER modelini de test ettiniz mi? Hangi kullanım alanlarına özellikle uygun olabileceğine dair görüşünüzü merak ediyorum
  • Bunun, geçmişte insanların '<model> inference written in vanilla Go, Python, Java, etc' şeklinde yaptığı şeylerle aynı bağlamda olup olmadığını merak ediyorum
  • Benim deneyimim büyük ticari modelleri (sonnet, ChatGPT vb.) kullanmış bir dev olarak sınırlı. Bu tür küçük local modeller nerede kullanılabilir merak ediyorum. Hemen işe yarayan kullanım örnekleri var mı, yoksa sonuçta mutlaka bir miktar sonradan işleme/ek training gerekiyor mu? Ticari araç kullanıcılarıyla model uzmanları arasındaki boşluk büyük görünüyor; bu ara seviyeyi nasıl kapatacağımı pek bilmiyorum
    • Eğitim amaçları dışında en yaygın kullanım alanları şunlar:
      • Gizli on-device modeller (web API'lerine göre daha düşük gecikme ve edge üzerinde işleme)
      • Algoritma araştırması (hızlı ve ucuz prototipleme)
      • Ucuz sınıflandırma/kategorilendirme işleri (decoder LLM gerekmese de bazen serbest yanıt faydalı olur), dilbilgisi sanity check, router'lar (ör. GPT-5 tarzı) vb.
    • Gerçekten çok iyi bir soru. Buna dair daha uzun bir yanıt yazmıştım, bakabilirsiniz: ayrıntılı yanıt bağlantısı
    • Özetleme ve çok basit araç kullanımı için özellikle yararlı. Edge üzerinde, internet gidiş-dönüşü olmadan çalıştığı için maliyet sıfır
    • Gizlilik ve mahremiyet amaçları için de potansiyeli var
  • KV cache + compiler uygulandıktan sonra Mac CPU'da hızın A100 GPU'dan bile daha yüksek olması şaşırtıcı
    • Bunun nedeni küçük model boyutu yüzünden GPU performansının tam kullanılamaması olabilir. Örneğin Qwen3 0.6B modelinde A100 GPU daha hızlı ve bu bağlantıda görülebilir
    • Derlenmiş sürümün A100'de eager'dan daha yavaş olması, kesinlikle optimize edilmeyen bazı kısımlar olduğunu düşündürüyor
    • Mac'te CPU ve GPU belleği paylaşıyor; A100'de ise bazı işlemler GPU tarafından desteklenmiyorsa verinin RAM/CPU'ya taşınması gerektiği için böyle olabilir diye tahmin ediyorum
    • GPU'nun waveform'u dolduramadığı ve bu yüzden bellek gecikmesini gizleyemediği bir durum olabilir mi diye merak ediyorum
  • 270M embedding'lerin ne için kullanılabileceğini, token düzeyindeki embedding'lerin uygun olup olmadığını ya da cümle/belge embedding değerlerinin de iyi çıkıp çıkmadığını merak ediyorum. Cümle/belge embedding'lerini anlamlı biçimde kullanmak için ayrıca fine-tuning gerekir mi?
  • Modelin tamamını sıfırdan eğitmek istesek, makul bir GPU kurulumunda bunun ne kadar süreceğini merak ediyorum
    • Kıyas olması için, 124M model 3090 GPU'da eğitildiğinde batch başına yaklaşık 500 bin token ve forward+backward için yaklaşık 10 saniye sürüyor. 6 trilyon tokenın tamamını (bu modelin eğitim hacmi) eğitmek yaklaşık 4 yıl sürer. Kısacası: "fazla uzun sürer"
    • "Makul" ifadesine bağlı tabii ama genelde ev tipi bir ortamda tamamen sıfırdan eğitim çok uzun sürer. Bu modeli yayımlamamızın nedenlerinden biri de buydu. Artık sıfırdan eğitim olmadan, çeşitli donanımlarda yalnızca fine-tuning ile pratik sonuçlar almak mümkün
  • Bu kadar küçük modellerin gerçekten gerçek dünyada bir kullanım alanı olup olmadığını merak ediyorum (öğrenme ve akademik kullanım dışında)
    • Var! Hatta sadece basit bir öğretici ya da oyuncak olmaktan öte, tekrarlayan görevlerde ve kurumsal/local hızlı geliştirici modeli olarak pratik değeri yüksek. Geçmişte gerçek zamanlı metin işleme ihtiyacından ilham alan bir örnek: eski Gemma sürümüyle hazırlanmış streaming ML öğreticisi ve demo videosu. Teoride bu artık Gemma 270M ile yeniden üretilebilir
    • LoRa ile fine-tuning yapılırsa çok spesifik alanlarda oldukça iyi performans da verebilir. Örneğin:
      • Yalnızca belirli bir JSON şemasında yanıt vermek ya da belirli bir karakter sesiyle cevaplamak
      • Metin sınıflandırma (ör. e-posta, spam vb.)
      • Büyük hacimli metin özetleme (e-posta → başlık/slug)
      • Önceden tanımlı kurallara göre etiket sınıflandırma, içerik pazarlaması vb.
      • Spam/duplikasyon/işaretleme tespiti
      • Bu kadar küçük ve "aptal" modellerin dünya bilgisi az olduğu için saçma şeyler uydurma olasılığı da daha düşüktür; bu da dar alanlarda bazen avantaj sağlar
    • Kaynak metne dayalı çok dilli çeviri görevlerinde sık sık doğru sonuç veriyor (ör. gezginler için konuşma amaçlı kullanım). Örnek:
      (Ukraynaca kaynak metin) Rochechouart, Fransa'da bir şehir, Nouvelle-Aquitaine bölgesindeki Haute-Vienne ilinde bulunur… Nüfus 3637 (2022), Paris'in yaklaşık 360 km güneyinde, Limoges'un 34 km batısında yer alır.
      (Model çeviri çıktısı) Rochechouart, Fransa'da Nouvelle-Aquitaine bölgesinin Haute-Vienne ilinde bulunan bir şehirdir. Nüfus 3637 (2022). Paris'e yaklaşık 360 km, Lyon'a 34 km uzaklıkta.
      (Vietnam'daki konut tipi güneş enerjisi destek politikası da genel olarak doğru çevriliyor)
      
      Wiki kaynağı: Ukraynaca Wikipedia, Vietnam haberi
    • Doğal dille etkileşime giren ama modelin içinde çok fazla bilgi barındırmasının beklenmediği görevlerde faydalı. Tool use, embedding'ler ve bilginin dışarıdan doğrulandığı/sorgulandığı alanlarda kullanışlı
  • Bunun yeni bir 3270 arayüz ürünü olduğunu sanıp tıkladım, ama beklediğim şey çıkmadı
  • Gerçekten etkileyici biri