Skip to content

Latest commit

 

History

History
146 lines (96 loc) · 38.1 KB

File metadata and controls

146 lines (96 loc) · 38.1 KB

Open Source Models

अपने LLM को फाइन-ट्यून करना

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

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

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

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

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

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

तैयार हैं? शुरू करते हैं।

चित्रित गाइड

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

इल्युस्ट्रेटेड गाइड टू फाइन ट्यूनिंग लैंग्वेज मॉडल्स

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Microsoft Foundry पर फाइन-ट्यूनिंग

Microsoft Foundry आज Azure पर कस्टम मॉडल को फाइन-ट्यून, तैनात और प्रबंधित करने के लिए आपका स्थान है (यह पहले Azure OpenAI Studio और Azure AI Studio को एक साथ लाता है)। कोई जॉब शुरू करने से पहले, यह समझना सहायक होता है कि Foundry आपको क्या विकल्प देता है और प्लेटफ़ॉर्म की सर्वोत्तम प्रथाएँ क्या सुझाव देती हैं। Foundry के अंदर, मॉडल को जल्दी और किफायती तरीके से फाइन-ट्यून करने के लिए LoRA (लो-रैंक अनुकूलन) का उपयोग किया जाता है, जो सभी भारों को पुनः प्रशिक्षण करने से तेज़ और बचत करने वाला होता है।

चरण 1: एक प्रशिक्षण तकनीक चुनें

Foundry तीन फाइन-ट्यूनिंग तकनीकों का समर्थन करता है। SFT से शुरू करें - यह सबसे व्यापक परिदृश्यों को कवर करता है।

तकनीक यह क्या करती है इसे कब उपयोग करें
सुपरवाइज्ड फाइन-ट्यूनिंग (SFT) इनपुट/आउटपुट उदाहरण जोड़े पर प्रशिक्षित करती है ताकि मॉडल आपकी चाही हुई प्रतिक्रियाएं उत्पन्न करना सीखे। अधिकांश कार्यों के लिए डिफ़ॉल्ट: डोमेन विशेषज्ञता, कार्य प्रदर्शन, शैली और स्वर, निर्देश-अनुपालन, और भाषा अनुकूलन।
डायरेक्ट प्रेफरेंस ऑप्टिमाइजेशन (DPO) पसंदीदा बनाम गैर-पसंदीदा प्रतिक्रिया जोड़े से सीखती है ताकि आउटपुट मानव प्राथमिकताओं के अनुरूप हों। प्रतिक्रिया गुणवत्ता, सुरक्षा, और संरेखण में सुधार जब आपके पास तुलना आधारित प्रतिक्रिया हो।
रिइन्फोर्समेंट फाइन-ट्यूनिंग (RFT) ग्रेडर से पुरस्कार संकेतों का उपयोग कर रिइन्फोर्समेंट लर्निंग के साथ जटिल व्यवहारों का अनुकूलन करता है। उद्देश्यपूर्ण, तर्क-गहन डोमेन (गणित, रसायन, भौतिकी) जिनमें स्पष्ट सही/गलत उत्तर हों। अधिक ML विशेषज्ञता की आवश्यकता।

चरण 2: एक प्रशिक्षण स्तर चुनें

Foundry आपको प्रशिक्षण के लिए कहाँ और कैसे चलाना है, चुनने देता है:

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

चरण 3: एक आधार मॉडल चुनें

फाइन-ट्यून करने योग्य मॉडलों में OpenAI के gpt-4o-mini, gpt-4o, gpt-4.1, gpt-4.1-mini, और gpt-4.1-nano (SFT; 4o/4.1 परिवार DPO का भी समर्थन करता है), रीजनिंग मॉडल o4-mini और gpt-5 (RFT), साथ ही ओपन-सोर्स मॉडल जैसे Ministral-3B, Qwen-32B, Llama-3.3-70B-Instruct, और gpt-oss-20b (Foundry संसाधनों पर SFT) शामिल हैं। सदैव वर्तमान फाइन-ट्यूनिंग मॉडल सूची देखें ताकि समर्थित विधियों, क्षेत्रों और उपलब्धता की जांच कर सकें।

Foundry दो विधाएं प्रदान करता है: सर्वरलेस (उपयोग-आधारित मूल्य निर्धारण, कोई GPU कोटा प्रबंधन नहीं, OpenAI और चयनित मॉडल) और मैनेज्ड कम्प्यूट (Azure मशीन लर्निंग के माध्यम से अपनी VMs लाकर सबसे विस्तृत मॉडल रेंज)। अधिकांश लोगों को सर्वरलेस से शुरू करना चाहिए।

Foundry सर्वोत्तम प्रथाएँ

  • सबसे पहले बेसलाइन। फाइन-ट्यून करने से पहले प्रॉम्प्ट इंजीनियरिंग और RAG के साथ बेस मॉडल को मापें, ताकि आप सुधार सिद्ध कर सकें।
  • छोटे से शुरू करें, फिर बढ़ाएं। 50-100 उच्च गुणवत्ता वाले उदाहरणों से शुरू करें, फिर उत्पादन के लिए 500+ तक बढ़ाएं। गुणवत्ता मात्रा से बेहतर है - कम गुणवत्ता वाले उदाहरण हटा दें।
  • डेटा सही प्रारूप में। प्रशिक्षण और सत्यापन फाइलें JSONL, UTF-8 BOM के साथ, 512 MB से कम होनी चाहिए, चैट-कंप्लीशन्स मैसेज फॉर्मेट में। हमेशा एक सत्यापन फ़ाइल शामिल करें ताकि ओवरफ़िटिंग पर नजर रख सकें।
  • प्रशिक्षण के दौरान सिस्टम प्रॉम्प्ट को इनफेरेंस में रखें। उस सिस्टम संदेश का उपयोग करें जो आपने प्रशिक्षण के दौरान मॉडल को दिया था।
  • चेकपॉइंट्स का मूल्यांकन करें - केवल अंतिम को अंधाधुंध तैनात न करें। Foundry अंतिम तीन एपीच को आधारित चेकपॉइंट्स के रूप में रखता है; वे देखें जो train_loss / valid_loss और टोकन सटीकता द्वारा सबसे बेहतर सामान्यीकरण करता हो।
  • गुणवत्ता के साथ टोकन लागत मापें जब फाइन-ट्यून किए गए मॉडल की तुलना बेसलाइन से करें।
  • लगातार फाइन-ट्यूनिंग के साथ पुनरावृत्ति करें। आप पहले से फाइन-ट्यून किए गए मॉडल को नए डेटा पर पुनः फाइन-ट्यून कर सकते हैं (OpenAI मॉडल के लिए समर्थित)।
  • होस्टिंग लागतों पर ध्यान दें। तैनात कस्टम मॉडल प्रति घंटे बिल करता है, और 15 दिनों के बाद निष्क्रिय तैनाती हटा दी जाती है - जो आपको नहीं चाहिए उसे साफ करें।

Customize a model with fine-tuning में एंड-टू-एंड वॉकथ्रू करें, और DPO और RFT के गाइड तब देखें जब आप अन्य तकनीकों के लिए तैयार हों।

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

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

प्रदाता ट्यूटोरियल विवरण
OpenAI किस प्रकार चैट मॉडल फाइन-ट्यून करें नवीनतम OpenAI चैट मॉडल को एक विशेष डोमेन ("रेसिपी असिस्टेंट") के लिए फाइन-ट्यून करना सीखें: प्रशिक्षण डेटा तैयार करना, फाइन-ट्यूनिंग जॉब चलाना, और फाइन-ट्यून किए गए मॉडल का उपयोग कर इन्फेरेंस करना।
Microsoft Foundry फाइन-ट्यूनिंग के साथ मॉडल को अनुकूलित करें Microsoft Foundry के साथ Azure पर वर्तमान में समर्थित मॉडल जैसे gpt-4.1-mini को फाइन-ट्यून करना सीखें: प्रशिक्षण और सत्यापन डेटा तैयार और अपलोड करना, फाइन-ट्यूनिंग जॉब चलाना, फिर नया मॉडल तैनात करना और उपयोग करना।
Hugging Face Hugging Face के साथ LLMs का Fine-tuning यह ब्लॉग पोस्ट आपको एक ओपन LLM (उदा: CodeLlama 7B) का transformers लाइब्रेरी और Transformer Reinforcement Learning (TRL) के साथ Hugging Face पर खुले datasets का उपयोग करके fine-tuning करना सिखाता है।
🤗 AutoTrain AutoTrain के साथ LLMs का Fine-tuning AutoTrain (या AutoTrain Advanced) Hugging Face द्वारा विकसित एक पायथन लाइब्रेरी है जो कई विभिन्न कार्यों के लिए finetuning की अनुमति देती है जिसमें LLM finetuning भी शामिल है। AutoTrain एक नो-कोड समाधान है और finetuning आपके अपने क्लाउड, Hugging Face Spaces या लोकली किया जा सकता है। यह वेब-आधारित GUI, CLI, और yaml कॉन्फ़िग फाइलों के माध्यम से ट्रेनिंग दोनों को सपोर्ट करता है।
🦥 Unsloth Unsloth के साथ LLMs का Fine-tuning Unsloth एक open-source फ्रेमवर्क है जो LLM finetuning और reinforcement learning (RL) को सपोर्ट करता है। Unsloth स्थानीय ट्रेनिंग, मूल्यांकन, और डिप्लॉयमेंट को तैयार notebooks के साथ सुगम बनाता है। यह टेक्स्ट-टू-स्पीच (TTS), BERT और मल्टीमोडल मॉडल्स को भी सपोर्ट करता है। शुरू करने के लिए, उनके चरण-दर-चरण Fine-tuning LLMs Guide को पढ़ें।

असाइनमेंट

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

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

इस पाठ को पूरा करने के बाद, हमारे Generative AI लर्निंग कलेक्शन को देखें ताकि आप Generative AI का ज्ञान और बढ़ा सकें!

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

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


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