Bersemangat untuk merilis repo baru: nanochat! (ini adalah salah satu yang paling tidak terkendali yang pernah saya tulis). Tidak seperti nanoGPT repo serupa saya sebelumnya yang hanya mencakup prapelatihan, nanochat adalah alur pelatihan/inferensi full-stack minimal, dari awal, dari klon ChatGPT sederhana dalam satu basis kode minimal dependensi. Anda mem-boot kotak GPU cloud, menjalankan satu skrip dan hanya dalam 4 jam kemudian Anda dapat berbicara dengan LLM Anda sendiri di UI web seperti ChatGPT. Beratnya ~8.000 baris kode imo yang cukup bersih untuk: - Melatih tokenizer menggunakan implementasi Rust baru - Pralatih LLM Transformer di FineWeb, evaluasi skor CORE di sejumlah metrik - Midtrain pada percakapan asisten pengguna dari SmolTalk, pertanyaan pilihan ganda, penggunaan alat. - SFT, mengevaluasi model obrolan tentang pilihan ganda pengetahuan dunia (ARC-E/C, MMLU), matematika (GSM8K), kode (HumanEval) - RL model opsional pada GSM8K dengan "GRPO" - Inferensi model yang efisien di Engine dengan cache KV, pra-pengisian/dekode sederhana, penggunaan alat (penerjemah Python dalam kotak pasir ringan), bicarakan melalui CLI atau WebUI seperti ChatGPT. - Tulis satu rapor penurunan harga, ringkas dan gamifikasi semuanya. Bahkan dengan biaya serendah ~$100 (~4 jam pada node 8XH100), Anda dapat melatih sedikit klon ChatGPT yang dapat Anda ajak bicara, dan yang dapat menulis cerita/puisi, menjawab pertanyaan sederhana. Sekitar ~12 jam melampaui metrik GPT-2 CORE. Saat Anda semakin meningkat menuju ~$1000 (~41,6 jam pelatihan), dengan cepat menjadi jauh lebih koheren dan dapat memecahkan masalah matematika/kode sederhana dan mengikuti tes pilihan ganda. Misalnya model depth 30 yang dilatih selama 24 jam (ini hampir sama dengan FLOP GPT-3 Small 125M dan 1/1000th GPT-3) menjadi 40-an di MMLU dan 70-an di ARC-Easy, 20-an di GSM8K, dll. Tujuan saya adalah untuk mendapatkan tumpukan "baseline yang kuat" penuh menjadi satu repo yang kohesif, minimal, dapat dibaca, dapat diretas, dan dapat dicabang secara maksimal. nanochat akan menjadi proyek batu penjuru LLM101n (yang masih dikembangkan). Saya pikir itu juga memiliki potensi untuk tumbuh menjadi harness penelitian, atau tolok ukur, mirip dengan nanoGPT sebelumnya. Ini sama sekali belum selesai, disetel, atau dioptimalkan (sebenarnya saya pikir kemungkinan ada sedikit buah yang menggantung rendah), tetapi saya pikir itu di tempat di mana kerangka keseluruhan cukup baik sehingga dapat naik di GitHub di mana semua bagiannya dapat ditingkatkan. Tautan ke repositori dan panduan terperinci dari nanochat speedrun ada di balasan.
Repositori GitHub: Panduan yang jauh lebih rinci dan teknis: Contoh percakapan dengan nanochat 4 jam senilai $100 di WebUI. Ini... menghibur :) Model yang lebih besar (misalnya kedalaman 12 jam 26 atau kedalaman 24 jam 30) dengan cepat menjadi lebih koheren.
Dan contoh beberapa metrik ringkasan yang dihasilkan oleh speedrun $100 di rapor untuk memulai. Basis kode saat ini sedikit lebih dari 8000 baris, tetapi saya mencoba menjaganya tetap bersih dan dikomentari dengan baik. Sekarang datang bagian yang menyenangkan - dari penyetelan dan pendakian bukit.
3,19M