उच्च उपलब्धता के साथ वास्तविक समय, कम-विलंबता (<100ms) भविष्यवाणियों के लिए एक मॉडल डिप्लॉय करें।
→मॉडल को एक Azure ML Managed Online Endpoint पर डिप्लॉय करें।
क्यों: प्रबंधित ऑनलाइन एंडपॉइंट्स वास्तविक समय के अनुमान के लिए अनुकूलित एक पूरी तरह से प्रबंधित सेवा है, जो ऑटो-स्केलिंग, लोड बैलेंसिंग, ब्लू-ग्रीन डिप्लॉयमेंट और अंतर्निहित मॉनिटरिंग प्रदान करती है।
संदर्भ↗
लागत दक्षता को प्राथमिकता देते हुए, बड़ी मात्रा में डेटा (लाखों रिकॉर्ड) को एसिंक्रोनस रूप से स्कोर करें।
→मॉडल को एक Azure ML Batch Endpoint पर डिप्लॉय करें।
क्यों: बैच एंडपॉइंट्स बड़े डेटासेट के उच्च-थ्रूपुट, एसिंक्रोनस स्कोरिंग के लिए डिज़ाइन किए गए हैं। वे स्केलेबल कंप्यूट क्लस्टर का उपयोग कर सकते हैं जो निष्क्रिय होने पर शून्य तक घूमते हैं, जिससे लागत अनुकूलित होती है।
जोखिम को कम करते हुए एक नया मॉडल संस्करण डिप्लॉय करें। नए संस्करण में ट्रैफ़िक को धीरे-धीरे स्थानांतरित करने और आसान रोलबैक की अनुमति देने की आवश्यकता है।
→दो डिप्लॉयमेंट (जैसे पुराने मॉडल के लिए "ब्लू", नए के लिए "ग्रीन") के साथ एक एकल प्रबंधित ऑनलाइन एंडपॉइंट का उपयोग करें। प्रत्येक डिप्लॉयमेंट पर जाने वाले अनुरोधों के प्रतिशत को नियंत्रित करने के लिए ट्रैफ़िक स्प्लिटिंग का उपयोग करें।
क्यों: यह ब्लू-ग्रीन डिप्लॉयमेंट पैटर्न सुरक्षित, शून्य-डाउनटाइम रोलआउट की अनुमति देता है। आप पूर्ण स्विच के लिए प्रतिबद्ध होने से पहले लाइव ट्रैफ़िक के एक छोटे से हिस्से पर नए मॉडल को मान्य कर सकते हैं।
डिप्लॉयमेंट के लिए एक मानकीकृत, फ्रेमवर्क-अज्ञेयवादी तरीके से एक मॉडल को उसकी निर्भरताओं और कलाकृतियों के साथ पैकेज करें।
→MLflow मॉडल प्रारूप का उपयोग करें। मॉडल को पंजीकृत करते समय, conda.yaml या requirements.txt फ़ाइल और किसी भी आवश्यक कोड आर्टिफैक्ट्स को शामिल करें।
क्यों: MLflow एक मानक मॉडल पैकेजिंग कन्वेंशन प्रदान करता है जिसे Azure ML स्वाभाविक रूप से समझता है। यह डिप्लॉयमेंट को सरल बनाता है क्योंकि Azure ML स्वचालित रूप से आवश्यक वातावरण का निर्माण कर सकता है।
एक डिप्लॉय किए गए मॉडल में उच्च विलंबता होती है क्योंकि यह प्रत्येक भविष्यवाणी अनुरोध पर बड़ी सहायक फ़ाइलों (जैसे एक बड़ा फ़ीचराइज़र) को लोड करता है।
→फाइल लोडिंग लॉजिक को स्कोरिंग स्क्रिप्ट में `run()` फ़ंक्शन से `init()` फ़ंक्शन में ले जाएँ।
क्यों: `init()` फ़ंक्शन कंटेनर शुरू होने पर केवल एक बार चलता है। यहाँ एसेट्स लोड करने से वे सभी `run()` कॉलों के लिए विश्व स्तर पर उपलब्ध हो जाते हैं, जिससे प्रत्येक अनुरोध पर अनावश्यक लोडिंग से बचा जा सकता है।
एक वास्तविक समय एंडपॉइंट परिवर्तनीय ट्रैफ़िक (उच्च शिखर, निम्न गर्त) का अनुभव करता है। लागत-प्रभावी ढंग से प्रदर्शन बनाए रखने की आवश्यकता है।
→प्रबंधित ऑनलाइन एंडपॉइंट डिप्लॉयमेंट पर ऑटो-स्केलिंग कॉन्फ़िगर करें। इंस्टेंस की न्यूनतम और अधिकतम संख्या सेट करें और CPU उपयोग या अनुरोध विलंबता के आधार पर एक स्केलिंग नियम परिभाषित करें।
क्यों: ऑटो-स्केलिंग ट्रैफ़िक लोड से मेल खाने के लिए कंप्यूट इंस्टेंस की संख्या को स्वचालित रूप से समायोजित करता है, जिससे शिखर के दौरान प्रदर्शन सुनिश्चित होता है और कम गतिविधि के दौरान लागत बचती है।
एक मॉडल डिप्लॉयमेंट को विशिष्ट सिस्टम लाइब्रेरी, कस्टम CUDA संस्करण, या डिफ़ॉल्ट Azure ML इमेज में मौजूद न होने वाले कस्टम अनुमान सर्वर की आवश्यकता होती है।
→एक कस्टम Dockerfile बनाएँ जो एक Azure ML बेस अनुमान इमेज का विस्तार करता है, आवश्यक निर्भरताओं को जोड़ें, इसे बनाएँ, और इसे Azure Container Registry पर पुश करें। डिप्लॉयमेंट वातावरण में इस इमेज को संदर्भित करें।
क्यों: एक बेस इमेज का विस्तार करना रनटाइम वातावरण पर पूर्ण नियंत्रण प्रदान करता है जबकि Azure ML की सेवारत अवसंरचना के साथ संगतता बनाए रखता है।
कोड या डेटा परिवर्तनों द्वारा ट्रिगर किए गए पुनर्प्रशिक्षण, मूल्यांकन और डिप्लॉयमेंट सहित एंड-टू-एंड ML जीवनचक्र को स्वचालित करें।
→CI/CD पाइपलाइन बनाने के लिए Azure ML CLI v2 के साथ एकीकृत Azure DevOps या GitHub Actions का उपयोग करें। पाइपलाइन में एक क्वालिटी गेट शामिल होना चाहिए जो डिप्लॉय करने से पहले नए मॉडल की बेसलाइन से तुलना करता है।
क्यों: यह MLOps पैटर्न ML वर्कफ़्लो को स्वचालित करता है, निरंतरता, गुणवत्ता और तीव्र पुनरावृति सुनिश्चित करता है। क्वालिटी गेट मॉडल प्रदर्शन प्रतिगमन को रोकता है।
इनपुट डेटा वितरण में बदलाव के कारण एक उत्पादन मॉडल का प्रदर्शन खराब हो रहा है। महत्वपूर्ण ड्रिफ्ट का पता चलने पर मॉडल को स्वचालित रूप से पुनर्प्रशिक्षित करने की आवश्यकता है।
→एंडपॉइंट पर एक Azure ML डेटा ड्रिफ्ट मॉनिटर कॉन्फ़िगर करें। एक अलर्ट सेट करें जो एक Azure Logic App या Azure Function को ट्रिगर करता है, जो बदले में पुनर्प्रशिक्षण पाइपलाइन शुरू करता है।
क्यों: यह एक क्लोज्ड-लूप MLOps सिस्टम बनाता है जो मैन्युअल हस्तक्षेप के बिना, बदलते डेटा पैटर्न के जवाब में मॉडल की प्रासंगिकता को स्वचालित रूप से बनाए रखता है।
उत्पादन में एक नया डिप्लॉय किया गया मॉडल संस्करण दोषपूर्ण पाया गया है। पिछली स्थिर संस्करण पर शीघ्रता से वापस लौटने की आवश्यकता है।
→यदि ब्लू-ग्रीन डिप्लॉयमेंट का उपयोग कर रहे हैं, तो 100% ट्रैफ़िक को स्थिर डिप्लॉयमेंट पर वापस स्थानांतरित करें। वैकल्पिक रूप से, मॉडल रजिस्ट्री से पिछले मॉडल संस्करण को फिर से डिप्लॉय करने के लिए एंडपॉइंट को अपडेट करें।
क्यों: ट्रैफ़िक शिफ्टिंग एक तात्कालिक रोलबैक प्रदान करती है। रजिस्ट्री से एक संस्करण को फिर से डिप्लॉय करना भी एक ज्ञात-अच्छी स्थिति को बहाल करने का एक तेज़ और विश्वसनीय तरीका है।
एक डिप्लॉय किए गए मॉडल के परिचालन स्वास्थ्य (विलंबता, त्रुटियाँ) और भविष्य कहनेवाला गुणवत्ता (डेटा ड्रिफ्ट, सटीकता) दोनों की निगरानी करने की आवश्यकता है।
→परिचालन मेट्रिक्स के लिए एंडपॉइंट पर Application Insights एकीकरण सक्षम करें। मॉडल गुणवत्ता मेट्रिक्स के लिए Azure ML डेटा संग्रह और डेटा ड्रिफ्ट मॉनिटरिंग कॉन्फ़िगर करें।
क्यों: यह दो-तरफ़ा दृष्टिकोण मॉडल स्वास्थ्य का एक पूर्ण दृश्य प्रदान करता है। App Insights सिस्टम प्रदर्शन को ट्रैक करता है, जबकि डेटा संग्रह/ड्रिफ्ट मॉनिटरिंग मॉडल के भविष्य कहनेवाला प्रदर्शन को ट्रैक करता है।
क्लाइंट्स से गलत या अप्रत्याशित इनपुट डेटा के कारण मॉडल एंडपॉइंट विफल हो रहा है।
→स्कोरिंग स्क्रिप्ट के `run()` फ़ंक्शन के भीतर इनपुट सत्यापन लॉजिक लागू करें। डेटा प्रकार, रेंज और संरचनाओं की जाँच करें, और अमान्य अनुरोधों के लिए एक सार्थक त्रुटि (जैसे HTTP 400) लौटाएँ।
क्यों: सर्वर-साइड सत्यापन मॉडल को क्रैश होने से बचाता है और API उपभोक्ताओं को स्पष्ट, तत्काल प्रतिक्रिया प्रदान करता है, जिससे सेवा अधिक मजबूत बनती है।