SmolGPT: Küçük LLM'leri sıfırdan eğitmek için minimal bir PyTorch uygulaması
(github.com/Om-Alve)- Eğitim amacıyla tasarlanmış, PyTorch tabanlı basit bir LLM eğitim projesi; verimli eğitim ve modern örnekleme tekniklerini uygular
Özellikler
- Minimal kod tabanı: PyTorch ile yazılmıştır, karmaşık soyutlamalar içermez
- Modern mimari: GPT modeli; Flash Attention, RMSNorm, SwiGLU ve verimli örnekleme tekniklerini içerir
- Eğitim özellikleri:
- Karışık hassasiyet (bfloat16/float16)
- Gradient accumulation
- Warmup ile öğrenme oranı azaltımı
- Weight decay ve gradient clipping
- Veri kümesi desteği: TinyStories veri kümesi işleme yerleşik olarak sunulur
- Özel tokenizer: SentencePiece tokenizer eğitimi entegredir
Kurulum
- Python 3.8+
- PyTorch 2.0+ ve CUDA
- Güncel bir GPU önerilir
Hızlı başlangıç 🚀
Seçenek 1: Tam eğitim döngüsü
- Veri kümesini hazırlayın
- Eğitimi başlatın
- Metin üretin
Seçenek 2: Önceden eğitilmiş modeli kullanın
- Varlıkları indirin
- Çıkarımı çalıştırın
Önceden eğitilmiş model ayrıntıları
- TinyStories veri kümesiyle eğitilmiştir
- 4096 token sözlüğü, 8 head, 8 katmanlı transformer, 512 embedding boyutu
- Yaklaşık 400 milyon token ile 18,5 saat eğitildi
- Doğrulama kaybı: 1.0491
Eğitim donanımı özellikleri
- GPU: NVIDIA L4 Tensor Core
- vCPU'lar: 16
- RAM: 64 GB
- VRAM: 24 GB
Not: Bu uygulama, eğitim amacıyla modern LLM eğitim pratikleri referans alınarak hazırlanmıştır. Üretim ortamında model boyutunu ve veri kümesini büyütmek önerilir.
1 yorum
Hacker News yorumları
Bir kullanıcı, GPT uygulamasını C ile geliştirirken bellek yönetimi ve veri yönetiminin önemini öğrendiğini belirtiyor. İlgili projenin yaklaşık 1500 satır koddan oluştuğunu söylüyor ve GitHub bağlantısını paylaşıyor
Başka bir kullanıcı, bir sonraki adımın
numpykullanarak doğrudan uygulamak olduğunu açıklıyor. Güçlü soyutlamalarla başlayıp ardından bu soyutlamaları kademeli olarak kaldırarak sistemi tamamen anlayabileceğinizi vurguluyorA100 GPU üzerinde yaklaşık 2 saat süren bir projeyi Google Colab not defteri kullanarak paylaşıyor. Ücretsiz hesapta da çalışabileceğini belirtiyor
GitHub'da Andrej Karpathy'nin
nanoGPTsi gibi çeşitli projelerin bulunduğunu ve MoE'nin uygulandığı başka projeler de olduğunu açıklıyorBir kullanıcı, belirli bir modeli belirli bir veri kümesi üzerinde eğitip sonuçları test etmenin mümkün olup olmadığını soruyor. Açık kaynak bir proje aradığını, GPU kullanılabilirliğini göstermesini ve CPU ile değiştirilebilen bir Docker container'ı istediğini belirtiyor
Başka bir kullanıcı, kendi çok kanallı tokenizer'ını kullanarak yaptığı uygulamayı anlatıyor. Baş karakterin adının çok sık tekrarlandığını, bu yüzden bir hata olup olmadığından şüphelendiğini belirtiyor
Om Alve, gönderinin viral olmasından dolayı teşekkür ediyor ve harcanan emeğe değdiğini söylüyor
Teknolojinin birkaç yüz satır kodla uygulanabiliyor olmasının ilginç olduğunu belirtiyor. En gelişmiş modellerin kaç satır koddan oluştuğunu tahmin etmeyi öneriyor
Bunun SmolLM ile ilgili olmadığını belirterek HuggingFace'in blog bağlantısını paylaşıyor
Eğitim veri kümesinden örnekler ve kullanım senaryoları paylaşılıp paylaşılamayacağını soruyor