हाल ही में मैंने Gemma 3 के छोटे मॉडलों का उपयोग करके मूवी recommendation डोमेन के लिए SFT और LoRA फाइन-ट्यूनिंग की है। प्रयोग के दौरान छोटे मॉडल (SLM) की ज्ञान अर्जित करने की क्षमता में कुछ सीमाएँ महसूस हुईं, इसलिए यह प्रश्न पूछ रहा हूँ।
[प्रयोग]
- उपयोग किए गए मॉडल: gemma-3-270m-it, gemma-3-1b-it
- प्रशिक्षण विधि: LoRA और SFT
- प्रयोग परिणाम: 1B मॉडल मौजूदा ज्ञान के आधार पर कुछ हद तक inference कर पा रहा था, लेकिन 270M मॉडल में parameter count की सीमा के कारण ऐसा लगा कि नया डोमेन ज्ञान स्वीकार करने के लिए उसका मूल 'कंटेनर' ही पर्याप्त नहीं है।
पूरी ट्यूनिंग प्रक्रिया को मैंने नीचे दिए गए ब्लॉग में कई पोस्ट के रूप में दर्ज किया है।
https://seungsang.tistory.com/entry/…
[सामना की गई समस्याएँ]
- LoRA की capacity सीमा: प्रशिक्षण पैरामीटर कुल का लगभग 1% होने के कारण, साधारण task adaptation से आगे बढ़कर knowledge injection करने में सीमा थी।
- full fine-tuning की दुविधा: यदि मॉडल के सभी weights अपडेट किए जाएँ, तो knowledge injection के लिए यह लाभदायक हो सकता है, लेकिन मुझे लगता है कि इससे मॉडल की पहले से मौजूद general reasoning क्षमता खो सकती है। इसे रोकने के लिए replay data मिलाना चाहूँ भी, तो base model का training data सार्वजनिक न होने से यह कठिन है।
मूवी के मामले में मुझे लगता है कि मॉडल के पास पहले से कुछ ज्ञान था, इसलिए fine-tuning संभव हुई।
लेकिन अगर मैं किसी विशिष्ट डोमेन को आधार बनाना चाहूँ, तो मुझे क्या करना चाहिए?
जब छोटे मॉडल को किसी विशेष डोमेन में specialize करना हो, तब सीमित parameter capacity को पार करके प्रभावी ढंग से डोमेन ज्ञान inject करने की कौन-सी रणनीतियाँ हो सकती हैं?
कृपया बहुत-सी सलाह दें। CPT (Continue Pre-training) आदि सहित अपने विभिन्न अनुभव साझा करेंगे तो आभारी रहूँगा।
5 टिप्पणियां
मैंने भी 7B के साथ fine-tuning करते-करते इतना संघर्ष किया कि पागल होने वाला था। PTSD फिर से उभर रहा है।
क्या आप अभी भी यह कर रहे हैं?
अगर आपने इसे आज़माया हो, तो आपने क्या महसूस किया और क्या कोई टिप्स हैं?
LoRA और fine-tuning ज्ञान inject करने के लिए उपयुक्त नहीं हैं। LoRA और fine-tuning output style/tone को सुधारने के लिए सबसे बेहतर हैं। RAG के रूप में input prompt में ज्ञान-संबंधी जानकारी शामिल करें, और output data की recall/accuracy का मूल्यांकन करने के बाद LoRA/fine-tuning करें, तो यह कहीं अधिक प्रभावी होगा।
मैं भी RAG के उपयोग के पक्ष में एक वोट और जोड़ना चाहूंगा।
जवाब के लिए धन्यवाद।
अगर RAG की बात करें, तो domain के हिसाब से data को सही तरीके से कैसे लाया जाए, इस पर थोड़ा सोच रहा हूँ।
क्या embedding model को ही train करना पड़ेगा...
मैं छोटे model में token की संख्या भी कम रखना चाहता था, इसलिए knowledge को internalize करना चाहता था, लेकिन लगता है कि LoRA की भी कुछ सीमाएँ हैं।
आपने जो बातें बताई हैं, उन पर विचार करूँगा। धन्यवाद।