#experience
Ko'pchilik bir xil savol beradi:
"Model o'zilarnikimi yoki open-source modelmi?"
O'zimizniki ham bor, open source modellarimiz ham bor. Nimaga "pre-train" (ma'lumot yig'ib, PyTorch va JAX code bilan neural networkni tuzish, necha qavatli qilish, attention, yashirin dimension lar va hardware ga mos optimizatsiya qilish, keyin katta model uchun distributed system qilish chunki katta modellar bitta GPU ga sig'maydi, Hyperparameter configuration va h.k.z larni hammasini qilish deganida) qilmaysizlar to'liq ham deyishadi. Odatda javobim bunday.
Pre-training juda og'ir jarayon, ayniqsa low-resource (resursi kam bo'lgan) tillar uchun model qilish undanda og'ir. Ma'lumot yig'ish, tozalash jarayonini o'zi sizni butun umrlik qiynoqqa soladi. Biz bunday holatlarda osonroq yo'ldan ketamiz. Bor modelni olamiz, uni shunchaki post-train (fine-tuning) qilamiz. Bu jarayonda model'dagi og'irlik (weight) qayta balans qilinadi. Bu orqali model yaxshiroq o'rganadi eski ma'lumotlarini. Ya'ni ona tili ustozingiz diktantni faqat bir marta qaytarishi aniqlikni oshiradimi, yoki 2-3 marotabami?
Ikkinchi masala bu "compute". Hozirgi paytda bizga Azure, AWS va GCP zo'rga GPU'lar uchun imtiyoz berishgan. Ba'zilarida H100, H200 yoki B200 kabi kuchli videokartalar topishimiz qiyin bo'lsa, ba'zilarida bor ammo juda qimmat. Startup uchun bu og'ir.
Ammo imkon topayabmiz, modellarimizni yaxshilab borayabmiz. Undan tashqari CPU da ham ishlay oladigan modellarni ustida ishlayabmiz. Jarayondan o'rgangan 2 xulosam bor. Biri pre-train jarayoniga. Ikkinchisi post-training jarayoniga tegishli.
Barcha ma'lumotlarni chalkashtirib (shuffle qilib) keyin ularni boshidan oxirgacha teng distrbute qilish juda xato ekan. Model o'rganish darajasini (Learning rate) train jaryoni oxirida pasaytirish, va yuqori sifatli ma'lumotlarni berish kerak. Chunki aynan shu qismi modelni tugashi va post-training boshlanishi bo'ladi. Model ma'lumotni o'rgandi, endi unga bu ma'lumotni to'g'ri tushunish va ishlatishni o'rgatish (post-training) qismida ham sifatini saqlab qolishi uchun oxirgi ko'rgan ma'lumotlari juda sifatli bo'lishi kerak.
Model aldashni o'rganadi. Agar label qilingan ma'lumot faqat yaxshi tondagi javobga mukofot (reward) olsa, demak u cheat code qilishni boshlaydi. U doim muloyim va ishonchli aldashni boshlaydi. Buni natijasida u hallucinate qiladi, asosiy sabab bitta reward tonga (yoki stilga) nisbatan, haqiqatga (mazmun) emas.
RL muhitda bu tarafga qarash uchun modelni objective test qilish kerak, ya'ni natijani tekshirish oson bo'lishi kerak. Misol uchun "kod compile bo'ldi va to'g'ri ishladimi?", "javob haqiqatdan 42 chiqdimi?", "bergan javobi yaroqli JSONmi yoki nimadir qo'shvordimi?" degan savollarga javob topish. Chunki bularni tekshirsa bo'ladi.
Ovozli modellarda ham huddi shu jarayonni avtomatlashtirsa bo'ladi. Faqat ozgina sabr kerak ekan. Biz buni o'rgandik, bir kun yozish ham nasib qilsin. Uxlanglar endi : )
Post #697
5.83K