मुख्य सामग्री पर जाएं

ज़ीरो-शॉट क्लासिफिकेशन: यह कैसे काम करता है और कब उपयोग करें

जानें कि ज़ीरो-शॉट क्लासिफिकेशन क्या है, यह NLI मॉडल्स के साथ अंदर से कैसे काम करता है, यह फ्यू-शॉट और फाइन-ट्यूनिंग से कैसे तुलना करता है, और Hugging Face Transformers के साथ इसे कैसे लागू करें।
अद्यतन 11 जून 2026  · 15 मि॰ पढ़ना

AI के साथ खोजें

ChatGPT में खोलेंClaude में खोलेंPerplexity में खोलें

क्या करें जब आपको टेक्स्ट को किसी नई श्रेणी में वर्गीकृत करना हो, लेकिन ट्रेनिंग के लिए आपके पास एक भी लेबल किया हुआ उदाहरण न हो?

पारंपरिक क्लासिफायर यहाँ काम नहीं आएंगे। वे हर श्रेणी के लिए लेबल किए गए उदाहरणों की अपेक्षा करते हैं, जिसका मतलब है ट्रेनिंग शुरू करने से पहले कई हफ्तों का एनोटेशन कार्य। और जैसे ही कोई नई श्रेणी आती है, आप फिर से लेबलिंग में लग जाते हैं।

यहीं ज़ीरो-शॉट क्लासिफिकेशन काम आता है। यह पूरे लेबलिंग चरण को छोड़ देता है, क्योंकि मॉडल को ऐसे लेबल असाइन करने देता है जिन्हें उसने ट्रेनिंग के दौरान कभी नहीं देखा। व्यवहार में, आप बिना किसी ट्रेनिंग उदाहरण के, ग्राहक फीडबैक को "billing complaint" या "feature request" जैसी श्रेणियों में बाँट सकते हैं।

इस लेख में, मैं बताऊँगा कि ज़ीरो-शॉट क्लासिफिकेशन कैसे काम करता है, यह पारंपरिक और फ्यू-शॉट तरीकों से कैसे तुलना करता है, और Hugging Face Transformers का उपयोग करके इसे वास्तविक NLP कार्यों पर कैसे लागू करें।

आखिर Hugging Face है क्या? हमारे Hugging Face Fundamentals ट्रैक में नामांकन करें, AI एजेंट बनाएँ और LLMs को फाइन-ट्यून करें।

ज़ीरो-शॉट क्लासिफिकेशन क्या है?

ज़ीरो-शॉट क्लासिफिकेशन एक मशीन लर्निंग तरीका है जिसमें मॉडल विशेष रूप से उन लेबल्स पर प्रशिक्षित हुए बिना डेटा को लेबल असाइन करता है।

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

यह सारा ज्ञान प्रीट्रेनिंग से आता है। बड़े मॉडल विशाल टेक्स्ट कॉर्पस से भाषा और अवधारणाओं की व्यापक समझ सीखते हैं, और नया कुछ क्लासिफाई करने पर वही सामान्य ज्ञान काम आता है।

ज़ीरो-शॉट क्लासिफिकेशन कैसे काम करता है

इसे चरणों में बाँटें तो वर्कफ़्लो सरल है। केवल चार कदम चाहिए:

  1. टेक्स्ट या डेटा इनपुट करें: जो भी आप क्लासिफाई करना चाहते हैं — ग्राहक रिव्यू, सपोर्ट टिकट, समाचार शीर्षक, डॉक्युमेंटेशन का हिस्सा।

  2. उम्मीदवार लेबल प्रदान करें: मॉडल को संभावित श्रेणियों की सूची दें। ये साधारण शब्द या छोटे वाक्यांश होते हैं, जैसे "product question", "refund request", "technical issue", या "general inquiry"

  3. मॉडल इनपुट और लेबल्स के बीच संबंध का आकलन करता है: मॉडल हर लेबल को देखता है और अपनी प्रीट्रेन की हुई भाषा-समझ के आधार पर यह स्कोर करता है कि वह इनपुट से कितना मेल खाता है।

  4. सबसे संभावित लेबल चुना जाता है: सबसे अधिक स्कोर वाला लेबल भविष्यवाणी के रूप में लौटाया जाता है, प्रायः हर उम्मीदवार के लिए कॉन्फिडेंस स्कोर के साथ।

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

ज़ीरो-शॉट क्लासिफिकेशन बनाम पारंपरिक क्लासिफिकेशन

दोनों ही तरीकों का लक्ष्य एक जैसा है (डेटा को लेबल असाइन करना), लेकिन वे अलग रास्तों से वहाँ पहुँचते हैं।

पारंपरिक क्लासिफिकेशन

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

यह दशकों से अच्छा काम करता आया है, लेकिन दो बड़ी सीमाएँ हैं:

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

ज़ीरो-शॉट क्लासिफिकेशन

ज़ीरो-शॉट उल्टा काम करता है। यहाँ कोई टास्क-विशिष्ट ट्रेनिंग स्टेप नहीं होता। मॉडल प्रीट्रेनिंग के दौरान जो सीख चुका है, उसी से वह आपके दिए किसी भी लेबल का आकलन कर लेता है।

इससे आपको दो फायदे मिलते हैं:

  • टास्क-विशिष्ट ट्रेनिंग नहीं: डेटा संग्रह, एनोटेशन और ट्रेनिंग — सब पूरी तरह छोड़ दें।
  • लचीला लेबल सेट: चलते-चलते श्रेणियाँ बदलें। नई जोड़ें, पुरानी हटाएँ, नाम बदलें — मॉडल बिना किसी रीट्रेनिंग के संभाल लेता है।

समझौते (Tradeoffs)

यह लचीलापन मुफ्त नहीं आता। किसी ठोस लेबल्ड डेटासेट पर प्रशिक्षित पारंपरिक क्लासिफायर आमतौर पर उसी विशिष्ट कार्य पर ज़ीरो-शॉट मॉडल से बेहतर प्रदर्शन करेगा। उसने ठीक वैसी ही मिसालें देखी हैं जिनकी आपको परवाह है और खुद को उसी पर ट्यून किया है।

ज़ीरो-शॉट मॉडल सामान्यज्ञ होते हैं। वे कई कामों में अच्छे होते हैं, पर किसी एक में सर्वश्रेष्ठ शायद ही हों। इसलिए चुनाव आपकी ज़रूरत पर निर्भर करता है।

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

फाउंडेशन मॉडल्स और LLMs की भूमिका

ज़ीरो-शॉट क्लासिफिकेशन इसलिए लोकप्रिय हुआ क्योंकि बड़े प्रीट्रेन मॉडल इसे संभालने लायक अच्छे हो गए।

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

आज के ज़्यादातर ज़ीरो-शॉट वर्कफ़्लोज़ कुछ मॉडल परिवारों पर टिके हैं:

  • BERT और इसके वैरिएंट्स: BERT-शैली के मॉडल प्रीट्रेनिंग के दौरान टेक्स्ट की गहरी रिप्रेज़ेंटेशंस सीखते हैं। RoBERTa और DeBERTa जैसे वैरिएंट्स ने बेहतर ट्रेनिंग विधियों और बड़े डेटासेट्स से इसे और आगे बढ़ाया।
  • NLI-आधारित मॉडल: ये नैचुरल लैंग्वेज इनफ़रेंस कार्यों पर फाइन-ट्यून किए गए मॉडल हैं। ज़्यादातर ऑफ-द-शेल्फ ज़ीरो-शॉट पाइपलाइंस के पीछे यही होते हैं, और अगले सेक्शन में मैं बताऊँगा क्यों।
  • आधुनिक LLMs: GPT परिवार या Claude जैसे बड़े भाषा मॉडल प्रॉम्प्टिंग के ज़रिए ज़ीरो-शॉट क्लासिफिकेशन संभाल सकते हैं। आप कार्य को साधारण भाषा में बताते हैं, श्रेणियाँ सूचीबद्ध करते हैं, और मॉडल एक चुन लेता है।

साझा सूत्र है पैमाना और सामान्यता। किसी संकीर्ण कार्य पर प्रशिक्षित मॉडल वही कर सकता है। व्यापक टेक्स्ट डेटा पर प्रशिक्षित मॉडल बिना लेबल्ड उदाहरण देखे कई कार्यों की ओर मोड़ा जा सकता है।

नैचुरल लैंग्वेज इनफ़रेंस (NLI) और ज़ीरो-शॉट क्लासिफिकेशन

व्यवहार में जो ज़्यादातर ज़ीरो-शॉट क्लासिफायर आप देखेंगे, वे NLI मॉडल्स पर बने होते हैं। यह अक्सर लोगों को चौंकाता है, इसलिए इस पर धीमे से चलते हैं।

नैचुरल लैंग्वेज इनफ़रेंस अपने आप में एक कार्य है। दो वाक्य (premise और hypothesis) दिए जाने पर, मॉडल उनके बीच संबंध तय करता है। आउटपुट तीन में से एक लेबल होता है:

  • Entailment: hypothesis, premise से निकलती है।
  • Contradiction: hypothesis, premise का खंडन करती है।
  • Neutral: दोनों वाक्य असंबद्ध हैं, या निर्णय के लिए पर्याप्त जानकारी नहीं है।

उदाहरण के लिए, यदि premise है "The team finished the project two weeks early" और hypothesis है "The team delivered on time", तो एक NLI मॉडल को entailment भविष्यवाणी करनी चाहिए। यदि hypothesis है "The team missed the deadline", तो उसे contradiction आनी चाहिए।

यह सेटअप ज़ीरो-शॉट क्लासिफिकेशन के लिए बेहतरीन साबित होता है। यदि आप अपने इनपुट को premise मानें, तो हर उम्मीदवार लेबल को एक hypothesis में बदला जा सकता है।

मान लीजिए आप वाक्य "My package never arrived" को तीन श्रेणियों में से किसी एक में वर्गीकृत करना चाहते हैं: shipping issue, billing issue, या product question। मॉडल इन्हें लेबल्स के रूप में नहीं देखता। वह इन्हें hypotheses के रूप में देखता है, आमतौर पर "This text is about {label}" जैसे सरल टेम्पलेट में लपेटकर:

  • Premise: "My package never arrived" | Hypothesis: "This text is about a shipping issue"

  • Premise: "My package never arrived" | Hypothesis: "This text is about a billing issue"

  • Premise: "My package never arrived" | Hypothesis: "This text is about a product question"

NLI मॉडल प्रत्येक जोड़ी को स्कोर करता है। जिस hypothesis का entailment स्कोर सबसे अधिक होता है, वह जीतती है, और वही लेबल भविष्यवाणी बन जाता है।

मॉडल को "shipping issue" या "billing issue" का अर्थ लेबल के रूप में सीखने की ज़रूरत नहीं पड़ी। उसे केवल सामान्य रूप से entailment कैसा दिखता है, यह सीखना था — जो उसने NLI फाइन-ट्यूनिंग के दौरान सीखा।

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

ज़ीरो-शॉट बनाम फ्यू-शॉट बनाम फाइन-ट्यून मॉडल्स

किसी क्लासिफिकेशन टास्क को बिना पूरी ट्रेनिंग रन के करवाने का तरीका केवल ज़ीरो-शॉट नहीं है। आइए विकल्पों से तुलना करें।

ज़ीरो-शॉट

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

मॉडल ने आपके विशिष्ट कार्य के लिए लेबल्ड डेटा कभी नहीं देखा। वह पूरी तरह सामान्य ज्ञान से काम कर रहा है।

फ्यू-शॉट

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

यहाँ मॉडल को रीट्रेन नहीं किया जा रहा। वह अब भी अपनी प्रीट्रेन वेट्स का उपयोग कर रहा है। उदाहरण एक संदर्भ के रूप में काम करते हैं — भविष्यवाणी से पहले एक त्वरित "इन श्रेणियों से मेरा मतलब यही है"।

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

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

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

तीनों की तुलना

ये तीनों व्यवहार में मायने रखने वाली तीन बातों पर अलग हैं: सटीकता, लचीलापन, और लागत।

  Accuracy Flexibility Cost
Zero-shot तीनों में सबसे कम, लेकिन सामान्य उपयोग के लिए फिर भी ठीक सबसे अधिक, आप किसी भी समय लेबल बदल सकते हैं सबसे कम, न डेटा चाहिए न ट्रेनिंग
Few-shot ज़ीरो-शॉट से बेहतर, विशेषकर अच्छे चुने हुए उदाहरणों के साथ ऊँचा, आप प्रॉम्प्ट में उदाहरण और लेबल बदल सकते हैं कम, केवल कुछ उदाहरण चाहिए
Fine-tuning जिस कार्य पर प्रशिक्षित है, उस पर सबसे अधिक सबसे कम, नई श्रेणियों के लिए रीट्रेनिंग आवश्यक सबसे अधिक, डेटा संग्रह, एनोटेशन और ट्रेनिंग शामिल

विकल्पों की तुलना में ज़ीरो-शॉट लर्निंग

इस तालिका से कुछ बातें अलग से ध्यान देने लायक हैं।

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

लचीलापन उलटी दिशा में चलता है। ज़ीरो-शॉट आपको मनचाहे समय पर श्रेणियाँ बदलने देता है। फाइन-ट्यून मॉडल उन लेबल सेट्स में बंद रहते हैं जिन पर उन्हें प्रशिक्षित किया गया था।

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

ज्यादातर टीमें इस वर्कफ़्लो पर आती हैं: पहले ज़ीरो-शॉट से शुरू करें यह देखने के लिए कि टास्क संभव है भी या नहीं। यदि सटीकता पर्याप्त नहीं, तो फ्यू-शॉट पर जाएँ। यदि वह भी कम पड़े और टास्क महत्वपूर्ण हो, तो फाइन-ट्यून करें।

NLP में ज़ीरो-शॉट क्लासिफिकेशन

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

सेंटिमेंट एनालिसिस

सेंटिमेंट एनालिसिस पाठ्यपुस्तक-जैसी शुरुआत है। आप मॉडल को टेक्स्ट देते हैं और "positive", "negative", और "neutral" जैसे लेबल्स में से चुनने को कहते हैं।

दिलचस्प यह है कि मानक तीन से आगे जाना कितना आसान है। पारंपरिक सेंटिमेंट क्लासिफायर जिस पर प्रशिक्षित है, उसी में बंधा है। ज़ीरो-शॉट के साथ, आप "frustrated", "satisfied", "confused", या "excited" जैसे अधिक विशिष्ट लेबल्स उपयोग कर सकते हैं और मॉडल बिना किसी रीट्रेनिंग के उन्हें संभाल लेता है। यह प्रोडक्ट फीडबैक या सोशल मीडिया मॉनिटरिंग के लिए बढ़िया है जहाँ भावनात्मक श्रेणियाँ संदर्भ पर निर्भर करती हैं।

टॉपिक क्लासिफिकेशन

टॉपिक क्लासिफिकेशन दस्तावेज़ों को विषय क्षेत्रों में बाँटता है। समाचार लेखों को "politics", "sports", "technology", "finance" में। सपोर्ट टिकट्स को "billing", "shipping", "account access", "feature request" में।

ज़ीरो-शॉट के साथ इसे सेटअप करना बेहद आसान है। हर नए टॉपिक के लिए लेबल्ड डेटासेट की ज़रूरत नहीं। यदि आपका प्रोडक्ट नई फीचर लॉन्च करता है और आप उससे जुड़े टिकट्स ट्रैक करना चाहते हैं, तो आप अपने उम्मीदवार लेबल्स में बस "new feature feedback" जोड़ें और काम हो गया।

इंटेंट डिटेक्शन

इंटेंट डिटेक्शन जानता है कि उपयोगकर्ता क्या करना चाहता है। यही अधिकांश चैटबॉट्स और वॉइस असिस्टेंट्स का इंजन है। जब कोई लिखता है "I need to change my password", तो मॉडल को इंटेंट "password reset" पहचानना होता है, न कि "general security question"

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

कंटेंट मॉडरेशन

कंटेंट मॉडरेशन समस्याग्रस्त टेक्स्ट को फ़्लैग करता है — जैसे "hate speech", "spam", "harassment", या "misinformation"। प्लेटफ़ॉर्म्स को अपनी नीतियाँ अद्यतन रखनी होती हैं, और नई तरह की दुरुपयोग के आने पर श्रेणियाँ बदलती रहती हैं।

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

Hugging Face Transformers के साथ ज़ीरो-शॉट क्लासिफिकेशन

Hugging Face की transformers लाइब्रेरी Python में ज़ीरो-शॉट क्लासिफिकेशन आज़माने का सबसे आसान तरीका है। pipeline API लगभग सारा मॉडल-लोडिंग काम छिपा देता है, ताकि आप कुछ ही लाइनों के कोड में भविष्यवाणियाँ प्राप्त कर सकें।

पहली बार यह कोड चलाने पर मॉडल डाउनलोड होगा, इसलिए थोड़ा समय लगेगा।

यहाँ एक पूरा उदाहरण है जिसे आप चला सकते हैं:

from transformers import pipeline
from pprint import pprint

# Load a zero-shot classification pipeline
classifier = pipeline(
    "zero-shot-classification",
    model="facebook/bart-large-mnli"
)

# The text you want to classify
text = "My package never arrived and customer support hasn't responded in three days."

# The labels you want the model to choose from
candidate_labels = [
    "shipping issue",
    "billing issue",
    "product question",
    "general inquiry"
]

# Run the classification
result = classifier(text, candidate_labels)

pprint(result)

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

Pipeline output

Pipeline output

"shipping issue" 0.82 के कॉन्फिडेंस के साथ जीतता है। मॉडल ने ट्रेनिंग के दौरान शिपिंग शिकायतों के लेबल्ड उदाहरण कभी नहीं देखे, लेकिन उसने यह bart-large-mnli प्रीट्रेन मॉडल से समझ लिया, जिसे NLI डेटा पर फाइन-ट्यून किया गया था — जैसा कि पहले सेक्शन में कवर किया गया।

इस वर्कफ़्लो के बारे में कुछ बातें ध्यान देने योग्य हैं:

  • मॉडल एक NLI मॉडल है: bart-large-mnli BART है जिसे MultiNLI डेटासेट पर फाइन-ट्यून किया गया है। जब आप पाइपलाइन कॉल करते हैं, तो यह पर्दे के पीछे आपके लेबल्स को hypotheses में बदलता है और उन्हें मॉडल से गुज़ारता है।

  • आप किसी भी समय लेबल बदल सकते हैं: मॉडल में कुछ बदलने की ज़रूरत नहीं। candidate_labels सूची बदलें और आप अलग श्रेणियों में क्लासिफाई कर रहे होंगे।

  • मल्टी-लेबल बस एक फ़्लैग दूर है: पाइपलाइन कॉल करते समय multi_label=True सेट करें, और लेबल एक-दूसरे से प्रतिस्पर्धा नहीं करेंगे। हर लेबल को स्वतंत्र प्रायिकता मिलती है, इसलिए एक इनपुट एक से अधिक श्रेणियों में हो सकता है।

result = classifier(text, candidate_labels, multi_label=True)
pprint(result)

Multi label output

Multi-label output

यही पूरा वर्कफ़्लो है। पाइपलाइन लोड करें, अपने लेबल परिभाषित करें, क्लासिफायर कॉल करें। शुरू से क्लासिफिकेशन मॉडल बनाने से कहीं तेज़ और आसान।

ज़ीरो-शॉट क्लासिफिकेशन में आम गलतियाँ

ज़ीरो-शॉट क्लासिफिकेशन सेटअप करना आसान है, और इसी वजह से इसका गलत उपयोग भी आसान है। वास्तविक प्रोजेक्ट्स में सबसे आम गलतियाँ ये हैं:

अस्पष्ट लेबल चुनना

लेबल्स ही वह माध्यम हैं जिससे आप मॉडल को कार्य समझाते हैं। अस्पष्ट लेबल्स से अस्पष्ट भविष्यवाणियाँ मिलेंगी।

"good" और "bad" मॉडल को ज़्यादा नहीं बताएँगे। "customer is happy with the product" और "customer is reporting a problem with the product" मॉडल को काम करने के लिए सामग्री देते हैं। आपके लेबल जितने सार्थक वाक्यांशों जैसे दिखेंगे, मॉडल उतना बेहतर उन्हें आपके इनपुट्स के विरुद्ध स्कोर करेगा।

साथ ही, ओवरलैपिंग लेबल्स से बचें। यदि "complaint" और "negative feedback" दोनों आपके उम्मीदवारों में हैं, तो मॉडल अपना कॉन्फिडेंस इनके बीच बाँट देगा और कोई भी स्पष्ट विजेता नहीं बनेगा।

मान लेना कि ज़ीरो-शॉट, फाइन-ट्यूनिंग के बराबर प्रदर्शन करेगा

यह सबसे आम है। ज़ीरो-शॉट अच्छा है, लेकिन जादू नहीं।

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

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

बहुत संकीर्ण डेटासेट पर मूल्यांकन करना

अक्सर ऐसा होता है: आपने ज़ीरो-शॉट क्लासिफायर बनाया, खुद लिखे 50 उदाहरणों पर टेस्ट किया, और सब सही आ गए। आप इसे शिप कर देते हैं, और प्रोडक्शन में जाते ही सब शिकायत करते हैं कि यह खराब है।

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

डोमेन-विशिष्ट भाषा की अनदेखी करना

सामान्य-उद्देश्य ज़ीरो-शॉट मॉडल सामान्य-उद्देश्य भाषा जानते हैं। वे आपके उद्योग का जार्गन नहीं जानते।

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

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

आधुनिक AI में ज़ीरो-शॉट क्लासिफिकेशन क्यों महत्वपूर्ण है

ज़ीरो-शॉट क्लासिफिकेशन इस बात का सबसे स्पष्ट प्रदर्शन है कि फाउंडेशन मॉडल्स ने AI में क्या संभव कर दिया है।

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

अब यह मान्यता सच नहीं रही।

विस्तृत टेक्स्ट डेटा पर प्रशिक्षित फाउंडेशन मॉडल किसी नए क्लासिफिकेशन टास्क को उस क्षण संभालने लायक भाषा-समझ रखता है जब आप उसे वर्णित करते हैं। आपको केवल लेबल सूची परिभाषित करनी होती है।

यह बदलाव कुछ बड़े AI रुझानों से जुड़ी वजहों से मायने रखता है:

  • यह दिखाता है कि फाउंडेशन मॉडल्स वास्तव में किसलिए हैं: बड़े पैमाने पर प्रीट्रेनिंग का उद्देश्य ऐसा मॉडल बनाना था जो बिना रीट्रेनिंग के कई कार्यों की ओर मोड़ा जा सके। ज़ीरो-शॉट क्लासिफिकेशन इस वादे का सबसे साफ़ उदाहरण है।
  • यह सुपरवाइज़्ड डेटासेट्स पर निर्भरता घटाता है: लेबल्ड डेटा अब भी उपयोगी है, पर कामचलाऊ क्लासिफायर बनाने के लिए अब यह अनिवार्य नहीं रहा। जिन टीमों के पास एनोटेशन प्रोजेक्ट्स का बजट नहीं, वे भी मूल्यवान AI फीचर्स तैनात कर सकती हैं।
  • यह तैनाती की गति बदलता है: एक क्लासिफिकेशन फीचर जिसे शिप करने में पहले एक तिमाही लगती थी, अब एक दोपहर में प्रोटोटाइप हो सकता है। इससे टीमें क्या बनाती हैं, यह प्रभावित होता है, क्योंकि कुछ आज़माने की लागत लगभग शून्य हो गई है।

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

निष्कर्ष

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

यही लचीलापन असली बात है। आज जिन श्रेणियों की आपको परवाह है, हो सकता है अगले महीने वे न हों — और ज़ीरो-शॉट मॉडल आपको अपना मन बदलने देते हैं।

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

यदि आप LLMs में नए हैं, तो हमारे Large Language Models (LLMs) Concepts कोर्स में नामांकन करें। यह LLM एप्लिकेशंस, ट्रेनिंग मेथडोलॉजीज़ और नवीनतम शोध के बारे में आवश्यक सब कुछ सिखाता है।

FAQs

सरल शब्दों में ज़ीरो-शॉट क्लासिफिकेशन क्या है?

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

मुझे अपने मॉडल को ट्रेन करने के बजाय कब ज़ीरो-शॉट क्लासिफिकेशन उपयोग करना चाहिए?

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

ज़ीरो-शॉट क्लासिफिकेशन कितना सटीक है?

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

ज़ीरो-शॉट क्लासिफिकेशन और NLI में क्या अंतर है?

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

क्या मैं गैर-अंग्रेज़ी टेक्स्ट के लिए ज़ीरो-शॉट क्लासिफिकेशन उपयोग कर सकता/सकती हूँ?

हाँ, पर आपको एक बहुभाषी मॉडल चाहिए। xlm-roberta-large-xnli जैसे मॉडल बहुभाषी NLI डेटा पर प्रशिक्षित होते हैं और दर्जनों भाषाओं में ज़ीरो-शॉट क्लासिफिकेशन संभाल सकते हैं। अंग्रेज़ी टेक्स्ट के लिए bart-large-mnli और इसी तरह के केवल-अंग्रेज़ी मॉडल्स पर टिके रहें, और जब आपके इनपुट अंग्रेज़ी में न हों, तो बहुभाषी वैरिएंट पर स्विच करें।

विषय

DataCamp के साथ सीखें

Track

मशीन लर्निंग वैज्ञानिक में Python

85 घंटा
Python के साथ मशीन लर्निंग की खोज करें और मशीन लर्निंग वैज्ञानिक बनने की दिशा में आगे बढ़ें। पर्यवेक्षित, अपर्यवेक्षित, और डीप लर्निंग का अन्वेषण करें।
विस्तृत जानकारी देखेंRight Arrow
कोर्स शुरू करें
और देखेंRight Arrow