SmolGPT: Implementasi PyTorch minimal untuk melatih LLM kecil dari nol
(github.com/Om-Alve)- Proyek pelatihan LLM sederhana berbasis PyTorch yang dirancang untuk tujuan edukasi, dengan pelatihan yang efisien dan penerapan teknik sampling modern
Fitur
- Basis kode minimal: Diimplementasikan dengan PyTorch tanpa abstraksi yang rumit
- Arsitektur modern: Model GPT dengan flash attention, RMSNorm, SwiGLU, dan teknik sampling yang efisien
- Fitur pelatihan:
- Mixed precision (bfloat16/float16)
- Akumulasi gradien
- Penurunan learning rate dengan warmup
- Weight decay dan gradient clipping
- Dukungan dataset: Pemrosesan dataset TinyStories bawaan
- Tokenizer kustom: Integrasi pelatihan tokenizer SentencePiece
Instalasi
- Python 3.8+
- PyTorch 2.0+ dan CUDA
- GPU terbaru direkomendasikan
Mulai cepat ๐
Opsi 1: Siklus pelatihan penuh
- Siapkan dataset
- Mulai pelatihan
- Hasilkan teks
Opsi 2: Gunakan model pra-latih
- Unduh aset
- Jalankan inferensi
Detail model pra-latih
- Dilatih dengan dataset TinyStories
- Kosakata 4096 token, transformer 8 head, 8 layer, dimensi embedding 512
- Dilatih selama 18,5 jam dengan sekitar 400 juta token
- Validation loss: 1.0491
Spesifikasi perangkat pelatihan
- GPU: NVIDIA L4 Tensor Core
- vCPU: 16
- RAM: 64 GB
- VRAM: 24 GB
Catatan: Implementasi ini dibuat untuk tujuan edukasi dengan merujuk pada praktik pelatihan LLM modern. Untuk lingkungan produksi, disarankan memperbesar ukuran model dan dataset.
1 komentar
Komentar Hacker News
Seorang pengguna menyebutkan bahwa saat mengerjakan implementasi GPT dalam C, ia mempelajari pentingnya manajemen memori dan manajemen data. Proyek tersebut terdiri dari sekitar 1500 baris kode, dan ia membagikan tautan GitHub
Pengguna lain menjelaskan bahwa langkah berikutnya adalah mengimplementasikannya sendiri dengan numpy. Ia menekankan bahwa seseorang bisa memulai dengan abstraksi yang kuat lalu secara bertahap menghilangkan abstraksi itu untuk memahami sistem sepenuhnya
Dibagikan sebuah notebook Google Colab untuk proyek yang membutuhkan sekitar 2 jam di GPU A100. Disebutkan bahwa proyek itu mungkin juga berjalan di akun gratis
Dijelaskan bahwa di GitHub ada beberapa proyek seperti nanoGPT milik Andrej Karpathy, dan juga ada proyek lain yang mengimplementasikan MoE
Seorang pengguna bertanya apakah memungkinkan melatih model tertentu pada dataset tertentu dan menguji hasilnya. Ia mengatakan sedang mencari proyek open source, ingin diberi tahu apakah GPU bisa digunakan, dan menginginkan container Docker yang bisa diganti ke CPU
Pengguna lain membagikan kisah implementasinya menggunakan tokenizer multi-channel buatannya sendiri. Ia menyebut bahwa nama tokoh utama sering berulang sehingga ia curiga ada bug
Om Alve menyampaikan terima kasih, mengatakan bahwa unggahan tersebut menjadi viral sehingga usaha itu terasa sepadan
Disebutkan bahwa menarik melihat teknologi ini bisa diimplementasikan hanya dalam beberapa ratus baris kode. Ia mengusulkan untuk menebak jumlah baris kode model mutakhir
Disebutkan bahwa ini tidak terkait dengan SmolLM, lalu membagikan tautan blog HuggingFace
Seorang pengguna bertanya apakah bisa membagikan contoh dataset pelatihan dan use case-nya