Yeni repo'yu yayınlamaktan heyecan duyuyoruz: nanochat! (yazdığım en dengesiz yazılardan biri). Yalnızca ön eğitimi kapsayan daha önceki benzer depo nanoGPT'min aksine, nanochat, tek bir bağımlılık-minimum kod tabanında basit bir ChatGPT klonunun minimal, sıfırdan, tam yığın eğitim/çıkarım hattıdır. Bir bulut GPU kutusunu başlatırsınız, tek bir komut dosyası çalıştırırsınız ve 4 saat gibi kısa bir süre sonra ChatGPT benzeri bir web kullanıcı arayüzünde kendi LLM'nizle konuşabilirsiniz. ~8.000 satırlık imo oldukça temiz kod ağırlığındadır: - Yeni bir Rust uygulaması kullanarak belirteç oluşturucuyu eğitin - FineWeb'de bir Transformer LLM'yi önceden eğitin, CORE puanını bir dizi metrikte değerlendirin - SmolTalk'tan kullanıcı asistanı konuşmaları, çoktan seçmeli sorular, araç kullanımı konusunda orta eğitim. - SFT, dünya bilgisi çoktan seçmeli (ARC-E/C, MMLU), matematik (GSM8K), kod (HumanEval) üzerine sohbet modelini değerlendirin - Modeli isteğe bağlı olarak GSM8K'da "GRPO" ile RL yapın - KV önbelleği, basit ön doldurma/kod çözme, araç kullanımı (hafif bir sanal alanda Python yorumlayıcısı) ile bir Motorda modeli verimli bir şekilde çıkarın, onunla CLI veya ChatGPT benzeri WebUI üzerinden konuşun. - Her şeyi özetleyen ve oyunlaştıran tek bir indirim karnesi yazın. ~$100 gibi düşük bir maliyetle bile (8XH100 düğümünde ~4 saat), konuşabileceğiniz, hikayeler/şiirler yazabilen, basit soruları yanıtlayabilen küçük bir ChatGPT klonunu eğitebilirsiniz. Yaklaşık ~12 saat GPT-2 CORE metriğini aşıyor. ~1000$'a (~41.6 saatlik eğitim) doğru ölçeklendikçe, hızla çok daha tutarlı hale gelir ve basit matematik/kod problemlerini çözebilir ve çoktan seçmeli testler yapabilir. Örneğin, 24 saat boyunca eğitilmiş bir derinlik 30 modeli (bu, GPT-3 Small 125M'nin FLOP'larına ve GPT-3'ün 1/1000'ine yaklaşık olarak eşittir) MMLU'da 40'lara ve ARC-Easy'de 70'lere, GSM8K'da 20'lere vb. girer. Amacım, tam "güçlü temel" yığınını tek bir uyumlu, minimal, okunabilir, hacklenebilir, maksimum çatallanabilir depoya dönüştürmek. nanochat, LLM101n'nin (halen geliştirilmekte olan) bitirme projesi olacak. Kendisinden önceki nanoGPT'ye benzer bir araştırma koşum takımı veya bir kıyaslama haline gelme potansiyeline de sahip olduğunu düşünüyorum. Hiçbir şekilde bitmemiş, ayarlanmamış veya optimize edilmemiş (aslında muhtemelen oldukça fazla düşük asılı meyve olduğunu düşünüyorum), ancak genel iskeletin, tüm parçalarının geliştirilebileceği GitHub'da yukarı çıkabilecek kadar iyi olduğu bir yerde olduğunu düşünüyorum. Repo bağlantısı ve nanochat speedrun'un ayrıntılı bir açıklaması yanıtta.
GitHub deposu: Çok daha ayrıntılı ve teknik izlenecek yol: WebUI'de 100 ABD doları, 4 saatlik nanochat ile örnek konuşma. Bu... eğlenceli :) Daha büyük modeller (örneğin 12 saatlik derinlik 26 veya 24 saatlik derinlik 30) hızla daha tutarlı hale gelir.
Ve başlangıç için karnedeki 100 dolarlık hız koşusu tarafından üretilen bazı özet metriklere bir örnek. Mevcut kod tabanı 8000 satırın biraz üzerinde, ancak onları temiz ve iyi yorumlanmış tutmaya çalıştım. Şimdi işin eğlenceli kısmı geliyor - ayarlama ve tepe tırmanma.
4,62M