Sonunda, doktoramın son makalesi 🧮 13 Parametrede 🧮 Akıl Yürütmeyi Öğrenmek yeni bir ft yöntemi olan TinyLoRA'yı geliştiriyoruz. TinyLoRA + RL ile modeller onlarca ya da yüzlerce paramla iyi öğrenir örneğin: GSM8K'da 🤯 7B Qwen modelini %76'dan %91'e kadar eğitmek için sadece 13 parametre kullanıyoruz
2018'de beğendiğim bir makale var, adı Altı Nöronla Atari'yi Oynamak. bu, RL'nin çok az bayt alan bazı "programları" öğrenebileceği bir emsal oluşturdu ama günümüzde insanların yaptığı en küçük ince ayar sıra=1 olan LoRA'dır, bu da hâlâ milyonlarca parametre kullanır... 🤔
buraya gelmemizin yolu, LLaMA veya Qwen'e ne kadar büyük bir "program" öğretebileceğini düşünmekti. bf16'da 3 milyon param 6 MB sürüyor. Bu çok mu büyük görünüyor? teorimiz: her RL bölümü yaklaşık 1 bit iletirse, örneğin GSM8K'yı çok daha az veriyle kodlayabilmeliyiz...
ve bunun SFT ile *çalışmadığını* not edin. SFT ile kaybı tamamen en aza indirmek için tüm çıkış tokenlarını %100 güvenle ezberlemeniz gerekiyor. Bu çok daha fazla bit gerektiriyor ve dolayısıyla, SFT modellerinde iyi performans için daha büyük güncelleme boyutlarına ihtiyacımız var: (Bununla ilgili daha fazla bilgi Bölüm 3'te)
bu sadece GSM8K ya da herhangi bir modelin bir artefaktı değil denediğimiz tüm veri setlerinde (MATH, AIME, Minerva...), yüzlerce parametreyi eğiterek performans artışlarının %>90'ını geri kazanabiliyoruz (AMC hariç, ki bazen binlerce parametre gerektirir)
Eğlenceli bir mühendislik detayı, farklı LoRA şekilleriyle RL yapmanın gerçekten zor olmasıydı, çünkü LLM RL hızlı çıkarım gerektiriyor ve bu da donanım düzeyinde uygulama (çekirdek) gerektiriyor Bunu her dağıtımda LoRA ağırlıklarını birleştirip sonra eğitim için ayırarak aştım. Aslında o kadar da yavaş değil. Makalede bazı detaylar var ve yakında kodu paylaşacağız
112