- rasbt/LLMs-from-scratch, GPT benzeri bir LLM’i geliştirmek, ön eğitimden geçirmek ve ince ayar yapmak için kod içeren bir depo ve Manning’in Build a Large Language Model (From Scratch) kitabının resmi kod deposudur
- Öğrenme yaklaşımı, eğitim amaçlı küçük ama çalışan bir modelin sıfırdan oluşturulması sürecinden oluşur ve ChatGPT’nin arkasındaki büyük temel modelleri kurmaya benzer bir akışı izler
- İçerik; metin verisi işleme, attention mekanizmaları, GPT uygulaması, etiketsiz veriyle ön eğitim, metin sınıflandırma için fine-tuning ve komut izleme fine-tuning’ine kadar bölüm bazlı kodlar ve notebook’lar sunar
- Ana bölümlerdeki kodlar sıradan dizüstü bilgisayarlarda makul sürede çalışacak şekilde tasarlanmıştır, mümkün olduğunda GPU’yu otomatik kullanır ve harici LLM kütüphaneleri olmadan PyTorch ile uygulanmıştır
- Ekler ve bonus materyaller; LoRA, KV Cache, MoE, Llama/Qwen/Gemma ailesi uygulamaları, değerlendirme, DPO ve UI örneklerine kadar genişleyerek LLM öğrenme sürecini uygulama odaklı biçimde derinleştirir
Deponun amacı ve kitapla ilişkisi
- rasbt/LLMs-from-scratch, GPT benzeri bir LLM’i sıfırdan uygulamak için hazırlanmış bir kod deposudur
- Manning’in Build a Large Language Model (From Scratch) kitabının resmi kod deposu olarak sunulur
- Kitap, LLM’lerin içeride nasıl çalıştığını adım adım kodlayarak anlamaya yönelik bir yapı sunar
- Açıklamalar metin, diyagramlar ve örnekler içerir
- Eğitim amaçlı küçük ama çalışan bir model doğrudan geliştirilip eğitilir
- Depoda, daha büyük ön eğitimli model ağırlıklarını yükleyip fine-tuning yapmak için kod da bulunur
- Kitap bilgileri:
Kurulum ve kodun kullanımı
- Depo ZIP olarak indirilebilir veya
git clone ile alınabilir
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
- Manning web sitesinden kod paketini aldıysanız, en güncel değişiklikleri GitHub’daki resmi depodan kontrol etmeniz önerilir
- Python ve paket kurulumu ile kod ortamının hazırlanması setup/README.md içinde ele alınır
- Sorun giderme belgesi Troubleshooting Guide olarak sunulur
Bölüm bölüm öğrenme akışı
- Kitap ve depo, LLM uygulamasını adım adım bir müfredat olarak ayırır
- Ana bölüm yapısı:
- Ch 1: LLM’leri anlama, kod yok
- Ch 2: Metin verisiyle çalışma
- Ch 3: Attention mekanizmasının uygulanması
- Ch 4: GPT modelini sıfırdan uygulamak
- Ch 5: Etiketsiz veriyle ön eğitim
- Ch 6: Metin sınıflandırması için fine-tuning
- Ch 7: Komut izleme fine-tuning’i
- Ekler; PyTorch’a giriş, kaynakça, alıştırma çözümleri, eğitim döngüsü iyileştirmeleri ve LoRA tabanlı parametre verimli fine-tuning içerir
Ön bilgi ve çalışma ortamı
- En önemli ön koşul temel Python programlama bilgisidir
- Derin öğrenme sinir ağları deneyimi varsa bazı kavramlar daha tanıdık gelebilir
- Kod, harici LLM kütüphaneleri olmadan PyTorch ile sıfırdan uygulanmıştır
- PyTorch’ta uzmanlık şart değildir
- Temel PyTorch bilgisi faydalıdır
- Appendix A, PyTorch’a kısa bir giriş sunar
- Ana bölümlerdeki kodlar sıradan dizüstü bilgisayarlarda makul sürede çalışacak şekilde tasarlanmıştır
- Özel donanım gerekmez; GPU varsa otomatik olarak kullanılır
Video dersleri ve devam niteliğindeki kitap
- Manning’de, kitabın yapısını takip eden 17 saat 15 dakikalık eşlikçi video eğitim bulunur
- Kitabın her bölüm ve alt bölüm yapısını yansıtır
- Bağımsız bir alternatif ya da kodlama sürecini takip etmek için tamamlayıcı materyal olarak kullanılabilir
- Devam niteliğinde Build A Reasoning Model (From Scratch) adlı kitap da tanıtılır
- Bağımsız bir kitap olsa da Build A Large Language Model (From Scratch) için bir devam kitabı olarak görülebilir
- Ön eğitimli bir modelden başlayıp akıl yürütme yeteneğini geliştirmeye yönelik yaklaşımları uygular
- Kapsanan yaklaşımlar: inference-time scaling, pekiştirmeli öğrenme, distillation
- İlgili depo: rasbt/reasoning-from-scratch
Alıştırmalar ve bonus materyaller
- Her bölümde birden fazla alıştırma bulunur
- Çözümler Appendix C’de özetlenir ve karşılık gelen kod notebook’ları her bölüm klasöründe yer alır
- Manning web sitesinden ücretsiz 170 sayfalık PDF Test Yourself On Build a Large Language Model (From Scratch) alınabilir
- Bölüm başına yaklaşık 30 quiz ve çözüm içerir
-
Başlıca bonus konular
- Setup:
- Python kurulum ipuçları
- Paket ve kütüphane kurulumu
- Docker ortamı kurulumu
- Ch 2:
- BPE tokenizer’ı sıfırdan uygulamak
- Farklı BPE uygulamalarını karşılaştırmak
- Embedding katmanı ile linear katman arasındaki fark
- Basit sayılarla dataloader sezgisi
- Ch 3:
- Verimli multi-head attention uygulamalarının karşılaştırılması
- PyTorch buffer’larını anlamak
- Ch 4:
- FLOPs analizi
- KV Cache
- Grouped-Query Attention, Multi-Head Latent Attention, Sliding Window Attention
- Gated DeltaNet, DeepSeek Sparse Attention, Cross-Layer KV Sharing
- Mixture-of-Experts
- Ch 5:
- Alternatif ağırlık yükleme yöntemleri
- Project Gutenberg veri kümesiyle ön eğitim
- Eğitim döngüsünü iyileştirme
- Hiperparametre optimizasyonu
- Ön eğitimli LLM ile etkileşim kuran UI
- GPT’yi Llama’ya dönüştürmek
- Bellek verimli model ağırlığı yükleme
- Tiktoken BPE tokenizer’ını genişletmek
- Hızlı LLM eğitimi için PyTorch performans ipuçları
- Llama 3.2, Qwen3, Gemma 3, Olmo 3, Tiny Aya, Qwen3.5, Gemma 4 uygulamaları
- Ch 6:
- Farklı katmanlar ve daha büyük modeller üzerinde fine-tuning için ek deneyler
- 50k IMDb film incelemesi veri kümesi üzerinde sınıflandırma fine-tuning’i
- GPT tabanlı spam sınıflandırıcı UI
- Ch 7:
- Yakın kopya tespiti ve edilgen çatılı öğe üretimi için veri kümesi yardımcı araçları
- OpenAI API ve Ollama ile komut yanıtı değerlendirmesi
- Komut fine-tuning veri kümesi oluşturma ve iyileştirme
- Llama 3.1 70B ve Ollama ile preference dataset oluşturma
- DPO ile LLM hizalamasını uygulamak
- Komut fine-tuning’i yapılmış GPT modeli UI’ı
Katkı ve atıf
- Geri bildirim ve sorular Manning Forum veya GitHub Discussions üzerinden alınır
- Basılı kitaba karşılık gelen bir kod deposu olduğu için şu anda ana bölüm kodunun kapsamını genişleten katkılar kabul edilemez
- Bu kısıtlama, basılı kitap ile kod arasında fark oluşmaması için konmuştur
- Kitap veya kod araştırmanızda faydalı olduysa atıf yapmanız önerilir
- Chicago tarzı atıf ve BibTeX girdisi sağlanır
1 yorum
Hacker News yorumları
Şu ana kadar fine-tuning rehberi en iyi kaynak gibi görünüyor
https://ravinkumar.com/GenAiGuidebook/language_models/finetu...
LLM önemli bir konu, ama üstünkörü geçen çok video ve yazı var. En temelden LLM kodlayınca birçok kavramın netleşeceğini düşünüyorum
İkincil olarak, ihtiyacı olanların kendi LLM’lerini oluşturmasına yardımcı olmak da hedef. Kitapta ön eğitim ve fine-tuning dâhil tüm pipeline kodlanıyor, ama finansal açıdan bir LLM’i önceden eğitmenin gerçekçi olmadığını düşündüğüm için ön eğitim ağırlıklarını yüklemeyi de göstereceğim
GPT-2’ye benzer bir LLM kullanarak her şeyi sıfırdan uygulayıp, dizüstü bilgisayarda çalışan 124M modelden küçük bir GPU’da çalışan 1558M modele kadar ağırlıkların yüklenmesini sağlayacağım. Pratikte HF transformers veya axolotl gibi framework’ler kullanılır, ama bu şekilde doğrudan uygulama yaklaşımının süreci daha az kara kutu gibi göstermesini umuyorum
import torchise, tamamen sıfırdan uygulama sayılmaz gibi :-)Bu alanda çalışan kimse böyle modellerin türevlerini elle hesaplamıyor. Türevlenebilir programlama bakış açısıyla düşünmek temel varsayım; bu durumda bunu yeterince “sıfırdan” sayabiliriz
Bu tür yorumları her gördüğümde, içeride neler olup bittiğini ya da modern makine öğreniminin nasıl çalıştığını pek iyi anlamadıkları şüphesine kapılıyorum
[1] https://karpathy.ai/zero-to-hero.html
Genel geliştiriciler için çok daha erişilebilir ve matematik altyapısı varsaymıyor. İyi bir başlangıç noktası; sonrasında benzer diğer materyaller daha anlaşılır hâle gelmeye başlıyor
Eğitim materyali hazırlamak akıl almaz miktarda emek gerektiriyor; bu kitap ne kadar başarılı olursa olsun rasbt harcadığı zamana karşılık gelirini hesapladığında saatlik ücret olarak mantıklı olmayacaktır
Bu konuyu anlayan çok kişi var, peki bu bilgiyle ne yaptılar? Kendilerine saklayıp OpenAI’a gittiler, bilgiyi kapalı tutarak çok daha fazla para kazandılar
Böyle bilginin açık olduğu bir dünyada yaşamak istiyorsak, iyi bir akşam yemeği fiyatındaki bir kitap hakkında herkesin önünde şikâyet etmekten en azından kaçınmak gerektiğini düşünüyorum
Hedef, ay modülü gibi bir şeyin iniş yapmayı öğrenmesini sağlamak. Basitçe 100 fit yükseklikten başlayıp tek yönde itki vermek ve daha az krater açana kadar denemeye devam etmek gibi
Sonra yatay hareket gibi değişkenler ekleyip, yatay iticiler koyup, daha sonra yatay iticileri kaldırarak iniş aracının dönebilmesini sağlamak şeklinde genişletmek istiyorum
Nereden başlayacağımı hiç bilmiyorum; bu kitap “ana akım” makine öğrenimi gibi göründüğü için işe yarayıp yaramayacağını merak ediyorum
Python’daki gymnasium[1] kütüphanesinde ay modülü ortamı var, buna bakmak iyi olur. Öğrenirken en çok odaklandığım ortam buydu ve birkaç yöntemle çözmüştüm
Bir süre önce PyTorch ile Soft Actor Critic uygularken kullandığım kendi notebook’uma2 da bakabilirsin. Öğretmek için iyi bir kaynak değil, ama belki bir şeyler çıkarabilirsin
[0]: https://www.manning.com/books/grokking-deep-reinforcement-le...
[1]: https://gymnasium.farama.org/environments/box2d/
AlphaGo gibi şeyler de nihayetinde klasik pekiştirmeli öğrenme teknikleri için girdi olarak derin sinir ağlarını kullanmaya daha yakın görülebilir.
Sutton ve Barto'nun Reinforcement Learning: An Introduction kitabı, bu konuda yaygın biçimde kesin giriş kitabı olarak kabul edilir.
Diğer genel makine öğrenmesi/derin öğrenme kitaplarında pekiştirmeli öğrenmeye giriş için epey uzun bölümler olanlar var (https://github.com/rasbt/machine-learning-book/tree/main/ch1...). Yine de bu durumda, başkalarının da söylediği gibi özel bir pekiştirmeli öğrenme kitabı daha uygun olur.
https://www.ida.liu.se/~TDDC17/info/labs/rl.en.shtml
[0] https://www.youtube.com/watch?v=kCc8FmEb1nY
Karakter düzeyinde LLM yerine gerçek bir kelime düzeyinde LLM uyguluyor, ön eğitimden sonra önceden eğitilmiş ağırlıkları yüklemeyi gösteriyor ve bu LLM'i talimat ince ayarından geçiriyor.
Ayrıca talimat ince ayarı yapılmış LLM'in hizalama sürecini kodluyor ve sınıflandırma görevleri için ince ayarı da gösteriyor. Kitabın tamamında çok sayıda görsel var; yalnızca 3. bölümde bile 26 görsel bulunuyor :)
Video da harika görünüyor. 2 saatlik olduğu için sağlam bir giriş niteliğinde tamamlayıcı kaynak olarak iyi olabilir. Kitabı okumak muhtemelen bunun yaklaşık 10 katı zaman alacaktır.
Ben de büyük kısmını iyi anlayabilmek için birkaç kez izledim.
Elbette PyTorch'u da çok iyi bilmek, matris çarpımı, geri yayılım vb. konulara da hâkim olmak gerekiyor. Ayrıca çok hızlı konuşuyor.
Örneğin attention'ın çeşitli modellerde kullanıldığını ve Transformer'ın da dil modelleri dışında başka yerlerde kullanıldığını biliyorum.
Bu kitabı okuyunca attention ve Transformer'ı dil modelleri dışında da kullanabilecek kadar iyi anlayıp anlayamayacağımı merak ediyorum.
Fark şu: LLM'lerde metin token'lara dönüştürülür ve bu token'lar LLM'e giren vektör embedding'lerine çevrilir. Vision Transformer'da ise görüntüyü token olarak görmek yerine görüntü parçaları token olarak kullanılır ve bunlar vektör embedding'lerine dönüştürülür.
Metin de olsa görme de olsa aynı attention mekanizmasıdır ve her iki durumda da giriş olarak vektör embedding'leri alır.
(*3. bölümü geçen hafta zaten teslim ettim ve yakında MEAP'e yüklenecek. Bu arada kodu notlarla birlikte burada görebilirsiniz: https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01...)