Skip to content

Latest commit

 

History

History
114 lines (78 loc) · 27.8 KB

File metadata and controls

114 lines (78 loc) · 27.8 KB

Open Source Models

अपने LLM का फाइन-ट्यूनिंग

उत्पादक AI अनुप्रयोग बनाने के लिए बड़े भाषा मॉडल का उपयोग करने में नई चुनौतियाँ आती हैं। एक प्रमुख समस्या यह सुनिश्चित करना है कि मॉडल द्वारा उपयोगकर्ता के अनुरोध के लिए उत्पन्न सामग्री में प्रतिक्रिया की गुणवत्ता (सटीकता और प्रासंगिकता) बनी रहे। पिछले पाठों में, हमने प्रॉम्प्ट इंजीनियरिंग और पुनः प्राप्ति-समृद्ध सृजन जैसी तकनीकों की चर्चा की, जो मौजूदा मॉडल के प्रॉम्प्ट इनपुट को संशोधित करके इस समस्या को हल करने का प्रयास करती हैं।

आज के पाठ में, हम एक तीसरी तकनीक, फाइन-ट्यूनिंग, पर चर्चा करेंगे, जो इस चुनौती को अतिरिक्त डेटा के साथ मॉडल को पुनः प्रशिक्षित करके संबोधित करने का प्रयास करती है। चलिए विवरण में चलते हैं।

सीखने के उद्देश्य

यह पाठ पूर्व-प्रशिक्षित भाषा मॉडलों के लिए फाइन-ट्यूनिंग की अवधारणा प्रस्तुत करता है, इस दृष्टिकोण के लाभों और चुनौतियों का अन्वेषण करता है, और आपके उत्पादक AI मॉडलों के प्रदर्शन को बेहतर बनाने के लिए फाइन-ट्यूनिंग कब और कैसे उपयोग करें, इस पर मार्गदर्शन प्रदान करता है।

इस पाठ के अंत तक, आप निम्नलिखित प्रश्नों का उत्तर देने में सक्षम होंगे:

  • भाषा मॉडलों के लिए फाइन-ट्यूनिंग क्या है?
  • फाइन-ट्यूनिंग कब और क्यों उपयोगी होती है?
  • मैं पूर्व-प्रशिक्षित मॉडल को कैसे फाइन-ट्यून कर सकता हूँ?
  • फाइन-ट्यूनिंग की सीमाएँ क्या हैं?

तैयार? चलिए शुरू करते हैं।

चित्रित मार्गदर्शिका

क्या आप डुबकी लगाने से पहले हमारे कवर किए जाने वाले बड़े चित्र को देखना चाहते हैं? इस चित्रित मार्गदर्शिका को देखें जो इस पाठ की सीखने की यात्रा को वर्णित करती है - फाइन-ट्यूनिंग के कोर कॉन्सेप्ट और प्रेरणा को सीखने से लेकर प्रक्रियाओं और फाइन-ट्यूनिंग कार्य को निष्पादित करने के सर्वोत्तम अभ्यासों को समझने तक। यह अन्वेषण के लिए एक रोचक विषय है, इसलिए संसाधन पृष्ठ पर अतिरिक्त लिंक देखना न भूलें जो आपके स्वयं-निर्देशित सीखने की यात्रा का समर्थन करता है!

Illustrated Guide to Fine Tuning Language Models

भाषा मॉडलों के लिए फाइन-ट्यूनिंग क्या है?

परिभाषा के अनुसार, बड़े भाषा मॉडल इंटरनेट सहित विभिन्न स्रोतों से प्राप्त बड़ी मात्रा में टेक्स्ट पर पूर्व-प्रशिक्षित होते हैं। जैसा कि हमने पिछले पाठों में सीखा है, हमें मॉडल की प्रतिक्रियाओं की गुणवत्ता सुधारने के लिए प्रॉम्प्ट इंजीनियरिंग और पुनः प्राप्ति-समृद्ध सृजन जैसी तकनीकों की आवश्यकता होती है।

एक लोकप्रिय प्रॉम्प्ट-इंजीनियरिंग तकनीक में मॉडल को अपेक्षित प्रतिक्रिया के लिए अधिक मार्गदर्शन देना शामिल है, या तो निर्देशों (स्पष्ट मार्गदर्शन) द्वारा या कुछ उदाहरण देकर (अप्रकट मार्गदर्शन)। इसे फ़्यू-शॉट लर्निंग कहा जाता है, लेकिन इसके दो सीमाएं हैं:

  • मॉडल टोकन सीमाएं उस संख्या को सीमित कर सकती हैं जो आप उदाहरण के रूप में दे सकते हैं, और प्रभावशीलता सीमित हो सकती है।
  • मॉडल टोकन लागतें हर प्रॉम्प्ट में उदाहरण जोड़ने को महंगा बना सकती हैं, और लचीलेपन को सीमित करती हैं।

फाइन-ट्यूनिंग मशीन लर्निंग प्रणालियों में एक सामान्य प्रथा है जहां हम एक पूर्व-प्रशिक्षित मॉडल को लेकर इसे नए डेटा के साथ पुनः प्रशिक्षित करते हैं ताकि विशेष टास्क पर इसके प्रदर्शन में सुधार हो सके। भाषा मॉडलों के संदर्भ में, हम किसी विशिष्ट टास्क या अनुप्रयोग क्षेत्र के लिए एक चयनित उदाहरण सेट के साथ पूर्व-प्रशिक्षित मॉडल को फाइन-ट्यून कर सकते हैं ताकि एक कस्टम मॉडल बनाया जा सके जो उस विशेष टास्क या डोमेन के लिए अधिक सटीक और प्रासंगिक हो। फाइन-ट्यूनिंग का एक सहायक लाभ यह है कि यह फ़्यू-शॉट लर्निंग के लिए आवश्यक उदाहरणों की संख्या को भी कम कर सकता है - टोकन उपयोग और संबंधित लागतों को कम करते हुए।

हमें मॉडल को कब और क्यों फाइन-ट्यून करना चाहिए?

इस संदर्भ में, जब हम फाइन-ट्यूनिंग की बात करते हैं, तो हम सुपरवाइज्ड फाइन-ट्यूनिंग की बात करते हैं, जहां पुनः प्रशिक्षण नई डेटा जोड़ने से किया जाता है जो मूल प्रशिक्षण डेटासेट का हिस्सा नहीं था। यह उस अनसुपरवाइज्ड फाइन-ट्यूनिंग दृष्टिकोण से अलग है जहां मॉडल को मूल डेटा पर पुनः प्रशिक्षित किया जाता है, लेकिन विभिन्न हाइपरपैरामीटर के साथ।

ध्यान देने वाली मुख्य बात यह है कि फाइन-ट्यूनिंग एक उन्नत तकनीक है जिसे वांछित परिणाम प्राप्त करने के लिए एक निश्चित स्तर की विशेषज्ञता की आवश्यकता होती है। यदि इसे गलत तरीके से किया गया, तो यह अपेक्षित सुधार प्रदान नहीं कर सकता है, और यहां तक कि आपके लक्षित डोमेन के लिए मॉडल के प्रदर्शन को भी खराब कर सकता है।

इसलिए, "कैसे" फाइन-ट्यून करना सीखने से पहले, आपको यह जानना चाहिए कि "क्यों" आपको इस मार्ग को अपनाना चाहिए, और "कब" फाइन-ट्यूनिंग की प्रक्रिया शुरू करनी चाहिए। अपने आप से ये प्रश्न पूछना शुरू करें:

  • उपयोग मामला: आपका फाइन-ट्यूनिंग के लिए उपयोग मामला क्या है? आप मौजूदा पूर्व-प्रशिक्षित मॉडल के किस पहलू को सुधारना चाहते हैं?
  • विकल्प: क्या आपने वांछित परिणाम प्राप्त करने के लिए अन्य तकनीकों को आजमाया है? उन्हें तुलना के लिए एक आधार रेखा बनाने के लिए उपयोग करें।
    • प्रॉम्प्ट इंजीनियरिंग: प्रासंगिक प्रॉम्प्ट प्रतिक्रियाओं के उदाहरणों के साथ फ्यू-शॉट प्रॉम्प्टिंग जैसी तकनीकों को आजमाएं। प्रतिक्रियाओं की गुणवत्ता का मूल्यांकन करें।
    • पुनः प्राप्ति-समृद्ध सं—जनन: अपनी डेटा तलाश द्वारा प्राप्त क्वेरी परिणामों के साथ प्रॉम्प्ट को समृद्ध करने का प्रयास करें। प्रतिक्रियाओं की गुणवत्ता का मूल्यांकन करें।
  • लागतें: क्या आपने फाइन-ट्यूनिंग के लागतों की पहचान की है?
    • ट्यूनेबिलिटी - क्या पूर्व-प्रशिक्षित मॉडल फाइन-ट्यूनिंग के लिए उपलब्ध है?
    • प्रयास - प्रशिक्षण डेटा तैयार करने, मॉडल का मूल्यांकन करने और सुधारने के लिए।
    • कंप्यूट - फाइन-ट्यूनिंग जॉब चलाने और फाइन-ट्यून किए मॉडल को डिप्लॉय करने के लिए।
    • डेटा - फाइन-ट्यूनिंग प्रभाव के लिए पर्याप्त गुणवत्ता के उदाहरणों तक पहुंच।
  • लाभ: क्या आपने फाइन-ट्यूनिंग के लाभों की पुष्टि की है?
    • गुणवत्ता - क्या फाइन-ट्यून किया गया मॉडल आधार रेखा से बेहतर था?
    • लागत - क्या यह प्रॉम्प्ट को सरल बनाकर टोकन उपयोग कम करता है?
    • विस्तार योग्यता - क्या आप मूल मॉडल को नए डोमेन के लिए पुनः उपयोग कर सकते हैं?

इन प्रश्नों के उत्तर देकर, आपको यह निर्णय लेने में सक्षम होना चाहिए कि आपकी उपयोग केस के लिए फाइन-ट्यूनिंग सही दृष्टिकोण है या नहीं। आदर्श रूप से, यह दृष्टिकोण तभी मान्य है जब लाभ लागत से अधिक हों। एक बार जब आप आगे बढ़ने का निर्णय ले लेते हैं, तो यह सोचने का समय है कि आप पूर्व-प्रशिक्षित मॉडल को कैसे फाइन-ट्यून कर सकते हैं।

निर्णय लेने की प्रक्रिया पर अधिक जानकारी चाहते हैं? देखें To fine-tune or not to fine-tune

हम पूर्व-प्रशिक्षित मॉडल को कैसे फाइन-ट्यून कर सकते हैं?

पूर्व-प्रशिक्षित मॉडल को फाइन-ट्यून करने के लिए आपको चाहिए:

  • फाइन-ट्यून करने के लिए एक पूर्व-प्रशिक्षित मॉडल
  • फाइन-ट्यूनिंग के लिए उपयोग करने वाला एक डेटासेट
  • फाइन-ट्यूनिंग जॉब चलाने के लिए एक प्रशिक्षण वातावरण
  • फाइन-ट्यून किए मॉडल को तैनात करने के लिए एक होस्टिंग वातावरण

फाइन-ट्यूनिंग क्रियान्वयन

निम्नलिखित संसाधन आपको एक चयनित मॉडल के साथ चयनित डेटासेट का उपयोग करके एक वास्तविक उदाहरण में कदम-दर-कदम ट्यूटोरियल प्रदान करते हैं। इन ट्यूटोरियल पर काम करने के लिए, आपको संबंधित मॉडल और डेटासेट तक पहुँच के साथ विशिष्ट प्रदाता पर खाता होना आवश्यक है।

प्रदाता ट्यूटोरियल विवरण
OpenAI How to fine-tune chat models एक विशिष्ट डोमेन ("रिसिपी असिस्टेंट") के लिए gpt-35-turbo को फाइन-ट्यून करने का तरीका सीखें, प्रशिक्षण डेटा तैयार करना, फाइन-ट्यूनिंग जॉब चलाना, और फाइन-ट्यून किए गए मॉडल का उपयोग इनफेरेंस के लिए करना।
Azure OpenAI GPT 3.5 Turbo fine-tuning tutorial Azure पर gpt-35-turbo-0613 मॉडल को फाइन-ट्यून करना सीखें, प्रशिक्षण डेटा बनाने और अपलोड करने के चरणों को अपनाएं, फाइन-ट्यूनिंग जॉब चलाएं। नए मॉडल को डिप्लॉय और उपयोग करें।
Hugging Face Fine-tuning LLMs with Hugging Face यह ब्लॉग पोस्ट आपको ओपन LLM (जैसे: CodeLlama 7B) को फाइन-ट्यून करने में मार्गदर्शन करता है, transformers लाइब्रेरी और Transformer Reinforcement Learning (TRL) का उपयोग करते हुए, और Hugging Face पर उपलब्ध खुले datasets के साथ।
🤗 AutoTrain Fine-tuning LLMs with AutoTrain AutoTrain (या AutoTrain Advanced) Hugging Face द्वारा विकसित एक पायथन लाइब्रेरी है जो विभिन्न कार्यों के लिए फाइन-ट्यूनिंग की अनुमति देता है, जिसमें LLM फाइन-ट्यूनिंग भी शामिल है। AutoTrain एक नो-कोड समाधान है और फाइन-ट्यूनिंग आपके स्वयं के क्लाउड, Hugging Face Spaces या स्थानीय रूप से किया जा सकता है। यह वेब आधारित GUI, CLI और yaml कॉन्फ़िग फाइलों के माध्यम से प्रशिक्षण का समर्थन करता है।
🦥 Unsloth Fine-tuning LLMs with Unsloth Unsloth एक ओपन-सोर्स फ्रेमवर्क है जो LLM फाइन-ट्यूनिंग और रिइंफोर्समेंट लर्निंग (RL) को सपोर्ट करता है। Unsloth स्थानीय प्रशिक्षण, मूल्यांकन और परिनियोजन को सरल बनाता है, और उपयोग के लिए तैयार नोटबुक्स के साथ आता है। यह टेक्स्ट-टू-स्पीच (TTS), BERT और मल्टीमॉडल मॉडलों का भी समर्थन करता है। शुरुआत करने के लिए, उनके चरण-दर-चरण Fine-tuning LLMs Guide को पढ़ें।

असाइनमेंट

उपरोक्त ट्यूटोरियल में से किसी एक को चुनें और उसे पूरा करें। हम इन ट्यूटोरियल के एक संस्करण को संदर्भ के लिए Jupyter नोटबुक्स में इस रिपॉजिटरी में दोहरा सकते हैं। कृपया नवीनतम संस्करण प्राप्त करने के लिए मूल स्रोतों का सीधे उपयोग करें

शानदार काम! अपनी सीख जारी रखें।

इस पाठ को पूरा करने के बाद, हमारी Generative AI Learning collection देखें ताकि आप अपनी उत्पादक AI की ज्ञान क्षमता को बढ़ाते रहें!

बधाई हो!! आपने इस कोर्स की v2 श्रृंखला से अंतिम पाठ पूरा कर लिया है! सीखना और निर्माण करना न रोकें। **इस विषय के लिए अतिरिक्त सुझावों की सूची के लिए RESOURCES पृष्ठ देखें।

हमारी v1 श्रृंखला के पाठों को भी अधिक असाइनमेंट और अवधारणाओं के साथ अपडेट किया गया है। इसलिए अपना ज्ञान ताज़ा करने के लिए एक मिनट निकालें - और कृपया अपने प्रश्न और प्रतिक्रिया साझा करें ताकि हम समुदाय के लिए इन पाठों में सुधार कर सकें।


अस्वीकरण: यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। हालांकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या असंगतियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्राधिकारी स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।