प्रोडक्शन एमएल सिस्टम: पाइपलाइन की निगरानी करना

बधाई हो! आपने यूनिकॉर्न मॉडल डिप्लॉय कर लिया है. आपका मॉडल बिना किसी समस्या के 24x7 चलना चाहिए. यह पक्का करने के लिए कि वह है, आपको अपनी मशीन लर्निंग (एमएल) पाइपलाइन को मॉनिटर करना होगा.

रॉ डेटा की पुष्टि करने के लिए, डेटा स्कीमा लिखें

अपने डेटा पर नज़र रखने के लिए, आपको इसकी लगातार जांच करनी चाहिए कि यह उम्मीद के मुताबिक है या नहीं आंकड़ों की वैल्यू के लिए, ऐसे नियम लिखें जो डेटा के लिए ज़रूरी हों. यह संग्रह को डेटा स्कीमा कहा जाता है. डेटा स्कीमा तय करने के लिए, यह तरीका अपनाएं:

  1. अपनी सुविधाओं की रेंज और डिस्ट्रिब्यूशन को समझें. कैटगरीकल के लिए संभावित वैल्यू के सेट को समझने की सुविधा मिलती है.

  2. अपनी समझ को डेटा स्कीमा में बदलें. नीचे इसके उदाहरण दिए गए हैं नियम:

    • पक्का करें कि उपयोगकर्ताओं की सबमिट की गई रेटिंग हमेशा 1 से 5 के बीच की हों.
    • देखें कि शब्द the सबसे ज़्यादा बार आता हो (अंग्रेज़ी टेक्स्ट के लिए फ़ीचर).
    • जांच लें कि कैटगरी से जुड़ी हर सुविधा, किसी तय सेट की वैल्यू पर सेट हो संभावित वैल्यू का इस्तेमाल किया जा सकता है.
  3. डेटा स्कीमा के हिसाब से अपने डेटा की जांच करें. आपके स्कीमा में डेटा इकट्ठा होना चाहिए इस तरह की गड़बड़ियां होती हैं:

    • अनियमितताएं
    • कैटगरीकल वैरिएबल की ग़ैर-ज़रूरी वैल्यू
    • डेटा का अचानक डिस्ट्रिब्यूशन

फ़ीचर इंजीनियरिंग की पुष्टि करने के लिए, यूनिट टेस्ट लिखना

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

फ़ीचर इंजीनियर डेटा के बारे में अपनी समझ के आधार पर, यूनिट टेस्ट लिखें. उदाहरण के लिए, आप फ़ॉलो किया जा रहा है:

  • अंकों वाली सभी सुविधाएं स्केल की जाती हैं, जैसे कि 0 और 1 के बीच.
  • वन-हॉट एन्कोडेड वेक्टर में सिर्फ़ एक 1 और N-1 शून्य होते हैं.
  • बदलाव के बाद डेटा का डिस्ट्रिब्यूशन, उम्मीदों के मुताबिक होता है. उदाहरण के लिए, यदि आपने Z-स्कोर का उपयोग करके नॉर्मलाइज़ किया है, तो माध्य Z-स्कोर 0 होना चाहिए.
  • आउटलायर मैनेज की जाती हैं, जैसे कि स्केलिंग या क्लिप का इस्तेमाल करें.

ज़रूरी डेटा स्लाइस के लिए मेट्रिक देखना

कामयाब कैंपेन कभी-कभी असफल सबसेट को छिपा देता है. दूसरे शब्दों में, ऐसा मॉडल जिसकी मेट्रिक की कुल वैल्यू शानदार होती है, लेकिन मुमकिन है कि वह मॉडल अब भी कुछ परिस्थितियों में. उदाहरण के लिए:

आपका यूनिकॉर्न मॉडल कुल मिलाकर अच्छा परफ़ॉर्म करता है, लेकिन जब परफ़ॉर्मेंस खराब रहती है सहारे के रेगिस्तान के लिए पूर्वानुमान लगा रही हूँ.

अगर आप एक शानदार AUC से संतुष्ट हैं, तो शायद आपको सहारा के रेगिस्तान में मॉडल की समस्याएं न दिखें. अगर बना रहे हैं हर क्षेत्र के लिए अच्छे अनुमान लगाना ज़रूरी है, तो ऐसे में आपको हर क्षेत्र के लिए हर क्षेत्र के लिए परफ़ॉर्मेंस. डेटा के सबसेट, जैसे कि संबंधित डेटा के सबसेट को डेटा स्लाइस कहते हैं.

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

रीयल-वर्ल्ड मेट्रिक का इस्तेमाल करें

यह ज़रूरी नहीं है कि मॉडल मेट्रिक, आपके मॉडल के असल दुनिया में होने वाले असर को मेज़र करें. उदाहरण के लिए, हाइपर पैरामीटर को बदलने से किसी मॉडल का AUC बढ़ सकता है, लेकिन क्या बदलाव से उपयोगकर्ता अनुभव पर असर पड़ा? दुनिया पर इसका असर मापने के लिए, आपको का इस्तेमाल करें. उदाहरण के लिए, आप अपने मॉडल के उपयोगकर्ताओं का सर्वे कर सकते हैं ताकि यह पुष्टि की जा सके कि जब मॉडल ने भविष्य में यूनिकॉर्न को देखा था, करते.

ट्रेनिंग और सेवा देने वाले कॉन्टेंट में अंतर की जांच करना

ट्रेनिंग और सेवा देने वाले दर्शकों में अंतर इसका मतलब है कि ट्रेनिंग के दौरान आपका इनपुट डेटा अलग-अलग है सर्विंग में आपके इनपुट डेटा से ली जाती है. नीचे दी गई टेबल में, दो ज़रूरी टाइप के अंतर:

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

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

व्यायाम: अपनी समझ की जांच करें

मान लें कि आपका एक ऑनलाइन स्टोर है और आपको जानें कि किसी दिन आपकी कितनी कमाई होगी. आपका एमएल लक्ष्य है हर दिन का अनुमान लगाना सुविधा के तौर पर ग्राहकों की संख्या का इस्तेमाल करके रेवेन्यू हासिल करना.

आपको किस तरह की समस्या आ सकती है?
जवाब देखने के लिए यहां क्लिक करें

लेबल लीक होने की जांच करना

लेबल लीक होने का मतलब है कि भूतिया सत्य लेबल जो आप हैं ऐसा करके यह अनुमान लगाने की कोशिश करना कि अनजाने में आपकी ट्रेनिंग वाली सुविधाओं की जानकारी शामिल हो गई है. लेबल कभी-कभी लीक का पता लगाना बहुत मुश्किल होता है.

व्यायाम: अपनी समझ की जांच करें

मान लें कि आपने बाइनरी क्लासिफ़िकेशन मॉडल बनाकर, यह अनुमान लगाया है कि अस्पताल के एक नए मरीज़ को कैंसर है. आपका मॉडल, इन सुविधाओं का इस्तेमाल करता हो:

  • मरीज़ की उम्र
  • मरीज़ का लिंग
  • स्वास्थ्य से जुड़ी पहले की स्थितियां
  • अस्पताल का नाम
  • शरीर के बारे में ज़रूरी जानकारी देने वाले लक्षण
  • परीक्षण परिणाम
  • आनुवांशिकी

लेबल इस प्रकार है:

  • बूलियन: क्या मरीज़ को कैंसर है?

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

टेस्ट सेट पर बेहतरीन काम करने वाला यह मॉडल बुरी तरह से क्यों फ़ेल हुआ असल दुनिया में कैसे इस्तेमाल करते हैं?
जवाब देखने के लिए यहां क्लिक करें

पाइपलाइन में मॉडल की उम्र पर नज़र रखें

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

यह जांच करना कि मॉडल के वेट और आउटपुट संख्या के हिसाब से स्थिर हैं

मॉडल ट्रेनिंग के दौरान, आपके वेट और लेयर आउटपुट, NaN नहीं होने चाहिए (कोई संख्या नहीं) या Inf (अनंत). अपने वज़न और लेयर आउटपुट की NaN और Inf वैल्यू की जांच करने के लिए टेस्ट लिखें. इसके अलावा, जांच करें कि किसी लेयर के आधे से ज़्यादा आउटपुट, शून्य नहीं हैं.

मॉडल की परफ़ॉर्मेंस पर नज़र रखना

यूनिकॉर्न के लुक का अनुमान लगाने वाला टूल, उम्मीद से ज़्यादा लोकप्रिय हो गया है! कोई बकाया राशि नहीं है अनुमान के लिए कई अनुरोध करने के साथ-साथ ट्रेनिंग का ज़्यादा डेटा भी मिल सकता है. आपको लगता है यह तब तक बढ़िया रहता है, जब तक आपको यह महसूस न हो जाए कि आपका मॉडल ज़्यादा से ज़्यादा मेमोरी ले रहा है ट्रेनिंग का समय भी तय होता है. आप अपने मॉडल की परफ़ॉर्मेंस को मॉनिटर करने का फ़ैसला लेते हैं. इसके लिए, यह तरीका अपनाएं:

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

दिखाए गए डेटा पर लाइव मॉडल की क्वालिटी की जांच करना

आपने अपने मॉडल की पुष्टि कर ली है. लेकिन क्या होगा अगर असल ज़िंदगी के हालात, जैसे कि यूनिकॉर्न क्या आपको पुष्टि करने वाला डेटा रिकॉर्ड करने के बाद बदलाव करना है? इसके बाद, आपके पेश किए गए मॉडल की क्वालिटी खराब हो जाएगी. हालांकि, खोज के नतीजों में क्वालिटी की जांच करना मुश्किल है, क्योंकि रीयल-वर्ल्ड डेटा को हमेशा लेबल नहीं किया जाता. अगर आपके डेटा को लेबल नहीं किया गया है, इन परीक्षणों पर विचार करें:

  • रेटिंग देने वाले लोगों का इस्तेमाल करके लेबल जनरेट करें.

  • ऐसे मॉडल की जांच करें जो अनुमानों में अहम सांख्यिकीय पूर्वाग्रह दिखाते हैं. यहां जाएं: क्लासिफ़िकेशन: अनुमान पूर्वाग्रह.

  • अपने मॉडल के लिए रीयल-वर्ल्ड मेट्रिक ट्रैक करें. उदाहरण के लिए, अगर आपको करने के लिए, अपने अनुमानों की तुलना उपयोगकर्ता की ओर से रिपोर्ट किए गए स्पैम से करें.

  • ट्रेनिंग और डेटा देने के बीच के संभावित उतार-चढ़ाव को कम करने के लिए आपकी क्वेरी के कुछ हिस्से पर एक नया मॉडल वर्शन उपलब्ध करा रहा है. जैसा कि आपने विकल्प चुनने के लिए, सभी क्वेरी को धीरे-धीरे नए वर्शन पर स्विच करें.

इन जांचों का इस्तेमाल करके, परफ़ॉर्मेंस में अचानक होने वाली और धीमी गिरावट, दोनों पर नज़र रखें सुझाव की क्वालिटी.

रैंडमाइज़ेशन

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

  • अपने रैंडम नंबर जनरेटर सी देखें (RNG). सीडिंग से यह पक्का होता है कि आरएनजी इसे चलाने पर, हर बार एक ही क्रम में वैल्यू मिलती हैं. इसके बाद, डेटासेट है.
  • इनवैरिएंट हैश कुंजियों का इस्तेमाल करें. हैशिंग, दो हिस्सों में बांटने का एक आम तरीका है या सैंपल डेटा. हर उदाहरण को हैश किया जा सकता है और नतीजे के तौर पर मिलने वाले पूर्णांक का इस्तेमाल किया जा सकता है तय करें कि उदाहरण को किस स्प्लिट में रखना है. आपके हैश फ़ंक्शन के इनपुट हर बार डेटा जेनरेशन प्रोग्राम चलाने पर उसे नहीं बदलना चाहिए. इस्तेमाल न करें वर्तमान समय या आपके हैश में कोई रैंडम नंबर, उदाहरण के लिए, यदि आप जब चाहें, अपने हैश फिर से बनाएं.

ऊपर बताए गए तरीके, आपके डेटा का सैंपल लेने और उसे बांटने, दोनों पर लागू होते हैं.

हैशिंग के लिए ध्यान रखने लायक बातें

मान लें कि आपको खोज क्वेरी इकट्ठा करनी थी और हैशिंग का इस्तेमाल करना था क्वेरी को शामिल करने या बाहर रखने के लिए. अगर हैश कुंजी ने सिर्फ़ क्वेरी का इस्तेमाल किया है, तो कई दिनों के डेटा में, आपको या तो हमेशा शामिल करना होगा उस क्वेरी को या हमेशा शामिल न करें. हमेशा शामिल करता है या हमेशा बहिष्कृत करता है क्वेरी खराब है, क्योंकि:

  • आपके ट्रेनिंग सेट को कम अलग-अलग तरह की क्वेरी दिखेंगी.
  • आपके इवैलुएशन सेट बनावटी तरीके से मुश्किल होंगे, क्योंकि वे ऐसा नहीं करेंगे ओवरलैप कर सकता है. हकीकत में, सर्व करने के समय, आप आपको अपने ट्रेनिंग डेटा में कुछ लाइव ट्रैफ़िक दिख रहा है, इसलिए आकलन में इसी हिसाब से जानकारी होनी चाहिए.

इसके बजाय, आप क्वेरी + तारीख पर हैश कर सकते हैं, जिससे अलग-अलग हैशिंग होगी मदद मिल सकती है.

 

सातवीं इमेज. ऐनिमेटेड विज़ुअलाइज़ेशन में यह दिखाया गया है कि कैसे सिर्फ़
            क्वेरी से हर दिन डेटा एक ही बकेट में जाता है, लेकिन हैशिंग
            और क्वेरी के समय की वजह से डेटा अलग-अलग
            बाल्टी आ जाती है. ये तीन बकेट हैं ट्रेनिंग, इवैलुएशन, और
            अनदेखा किया गया.
सातवीं इमेज. क्वेरी के लिए हैशिंग बनाम क्वेरी + क्वेरी समय पर हैशिंग.