AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.

AWS परिनियोजन पर एक-क्लिक Kubeflow के साथ Amazon EKS और Amazon SageMaker पर हाइब्रिड ML वर्कफ़्लोज़ को सक्षम करना

आज, कई AWS ग्राहक एंटरप्राइज़-रेडी मशीन लर्निंग (ML) प्लेटफ़ॉर्म बना रहे हैं अमेज़ॅन इलास्टिक कुबेरनेट्स सेवा (अमेज़ॅन ईकेएस) का उपयोग कर रहा हूँ एडब्ल्यूएस पर क्यूबफ्लो (AWS-विशिष्ट Kubeflow का वितरण) कंप्यूटर दृष्टि, प्राकृतिक भाषा समझ, भाषण अनुवाद और वित्तीय मॉडलिंग सहित कई उपयोग मामलों में।

उसके साथ ओपन-सोर्स क्यूबफ्लो v1.6.1 की नवीनतम रिलीजKubeflow समुदाय उद्यम उपयोग के मामलों के लिए Kubeflow के इस बड़े पैमाने पर अपनाने का समर्थन करना जारी रखता है। नवीनतम रिलीज़ में कुबेरनेट्स v1.22 के लिए समर्थन, PyTorch के लिए संयुक्त Python SDK, MXNet, MPI, Kubeflow के वितरित प्रशिक्षण ऑपरेटर में XGBoost, मॉडल सेवा के लिए नए ClusterServingRuntime और ServingRuntime CRDs, और कई अन्य जैसी कई नई रोमांचक सुविधाएँ शामिल हैं।

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

इस पोस्ट में, हम AWS v1.6.1 सुविधाओं पर नए Kubeflow पर चर्चा करते हैं और तीन महत्वपूर्ण एकीकरणों पर प्रकाश डालते हैं जिन्हें आपको पेश करने के लिए एक मंच पर बंडल किया गया है ::

  • इंफ्रास्ट्रक्चर एज़ कोड (IaaC) एक-क्लिक समाधान जो EKS क्लस्टर निर्माण सहित Kubeflow की एंड-टू-एंड स्थापना को स्वचालित करता है
  • वितरित प्रशिक्षण के लिए समर्थन अमेज़न SageMaker का उपयोग कुबेरनेट्स के लिए अमेज़न सैजमेकर ऑपरेटर्स (एसीके) और Kubeflow पाइपलाइनों के लिए SageMaker घटक और स्थानीय रूप से कुबेरनेट्स पर उपयोग कर रहे हैं क्यूबफ्लो ट्रेनिंग ऑपरेटर्स. कई ग्राहक हाइब्रिड मशीन लर्निंग आर्किटेक्चर बनाने के लिए इस क्षमता का उपयोग कर रहे हैं, जहां वे प्रयोग चरण के लिए कुबेरनेट्स कंप्यूट और प्रोडक्शन स्केल वर्कलोड चलाने के लिए सेजमेकर दोनों का लाभ उठा रहे हैं।
  • Amazon EKS, Kubeflow मेट्रिक्स, और Prometheus, Grafana, और का उपयोग करके एप्लिकेशन लॉग सहित ML वर्कलोड के लिए बढ़ी हुई निगरानी और अवलोकनीयता अमेज़ॅन क्लाउडवॉच एकीकरण

इस ब्लॉग में उपयोग मामला विशेष रूप से AWS पर Kubeflow के साथ SageMaker एकीकरण पर ध्यान केंद्रित करेगा जो आपके मौजूदा Kubernetes वर्कफ़्लोज़ में जोड़ा जा सकता है जिससे आप हाइब्रिड मशीन लर्निंग आर्किटेक्चर का निर्माण कर सकें।

एडब्ल्यूएस पर क्यूबफ्लो

AWS 1.6.1 पर Kubeflow Kubeflow का उपयोग करने के लिए एक स्पष्ट मार्ग प्रदान करता है, मौजूदा क्षमताओं के शीर्ष पर निम्नलिखित AWS सेवाओं को जोड़ने के साथ:

  • Kubernetes (ACK) के लिए SageMaker ऑपरेटरों और Kubeflow पाइपलाइनों के लिए SageMaker घटकों का उपयोग करके हाइब्रिड ML वर्कफ़्लो चलाने के लिए Kubeflow के साथ SageMaker एकीकरण।
  • कस्‍टमाइज़ स्‍क्रिप्‍ट और हेल्म चार्ट का उपयोग करके स्‍वचालित परिनियोजन विकल्‍पों में सुधार और सरलीकरण किया गया है।
  • सभी उपलब्ध के लिए Terraform का उपयोग करके AWS पर Kubeflow के लिए कोड (IaC) के रूप में इन्फ्रास्ट्रक्चर के लिए एक-क्लिक परिनियोजन के लिए समर्थन जोड़ा गया तैनाती के विकल्प. यह स्क्रिप्ट निम्नलिखित AWS संसाधनों के निर्माण को स्वचालित करती है:
  • के लिए सहायता एडब्ल्यूएस प्राइवेटलिंक Amazon S3 के लिए गैर-वाणिज्यिक क्षेत्र के उपयोगकर्ताओं को उनके संबंधित S3 एंडपॉइंट से कनेक्ट करने में सक्षम बनाता है।
  • के साथ एकीकरण जोड़ा गया प्रोमेथियस के लिए अमेज़न प्रबंधित सेवा (एएमपी) और अमेज़न प्रबंधित ग्राफाना AWS पर Kubeflow के साथ मेट्रिक्स की निगरानी करने के लिए।
  • TensorFlow 2.10.0 और PyTorch 1.12.1 पर आधारित नवीनतम डीप लर्निंग कंटेनर छवियों के साथ अद्यतन Kubeflow नोटबुक सर्वर कंटेनर।
  • वितरित चलाने के लिए एडब्ल्यूएस डीएलसी के साथ एकीकरण ट्रेनिंग और अनुमान वर्कलोड।

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

आइए अधिक विस्तार से चर्चा करें कि AWS 1.6.1 की प्रमुख विशेषताओं पर Kubeflow आपके संगठन के लिए कैसे सहायक हो सकता है।

एडब्ल्यूएस सुविधा विवरण पर क्यूबफ्लो

Kubeflow 1.6.1 रिलीज़ के साथ, हमने विभिन्न प्रकार के ग्राहकों के लिए बेहतर टूल प्रदान करने का प्रयास किया है, जिससे Kubeflow के साथ आरंभ करना आसान हो जाता है, चाहे आप कोई भी विकल्प चुनें। ये उपकरण एक अच्छा प्रारंभिक बिंदु प्रदान करते हैं और आपकी सटीक आवश्यकताओं को पूरा करने के लिए संशोधित किए जा सकते हैं।

तैनाती के विकल्प

हम विभिन्न ग्राहक उपयोग मामलों के लिए अलग-अलग परिनियोजन विकल्प प्रदान करते हैं। यहां आपको यह चुनना है कि आप किन AWS सेवाओं के साथ अपने Kubeflow परिनियोजन को एकीकृत करना चाहते हैं। यदि आप बाद में परिनियोजन विकल्पों को बदलने का निर्णय लेते हैं, तो हम अनुशंसा करते हैं कि आप नए परिनियोजन के लिए एक नई स्थापना करें। निम्नलिखित परिनियोजन विकल्प उपलब्ध हैं:

यदि आप कम से कम परिवर्तनों के साथ Kubeflow को परिनियोजित करना चाहते हैं, तो इस पर विचार करें वैनिला परिनियोजन विकल्प। सभी उपलब्ध परिनियोजन विकल्पों को कस्टोमाइज़, हेल्म या टेराफ़ॉर्म का उपयोग करके स्थापित किया जा सकता है।

हमारे पास अलग-अलग ऐड-ऑन परिनियोजन भी हैं जिन्हें इनमें से किसी भी परिनियोजन विकल्प के शीर्ष पर स्थापित किया जा सकता है:

स्थापना विकल्प

आपके द्वारा यह तय करने के बाद कि कौन सा परिनियोजन विकल्प आपकी आवश्यकताओं के लिए सबसे उपयुक्त है, आप यह चुन सकते हैं कि आप इन परिनियोजनों को कैसे स्थापित करना चाहते हैं। विशेषज्ञों और नवागंतुकों को समान रूप से सेवा देने के प्रयास में, हमारे पास स्वचालन और विन्यास के विभिन्न स्तर हैं।

विकल्प 1: टेराफॉर्म (आईएसी)

यह एक EKS क्लस्टर और सभी संबंधित AWS अवसंरचना संसाधनों का निर्माण करता है, और फिर Terraform का उपयोग करके सभी Kubeflow को एक कमांड में तैनात करता है। आंतरिक रूप से, यह ईकेएस ब्लूप्रिंट और हेल्म चार्ट का उपयोग करता है।

इस विकल्प के निम्नलिखित फायदे हैं:

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

विकल्प 2: अनुकूलित करें या हेल्म चार्ट:

यह विकल्प आपको दो-चरणीय प्रक्रिया में Kubeflow को परिनियोजित करने की अनुमति देता है:

  1. Amazon EKS, Amazon RDS, Amazon S3, और Amazon Cognito जैसे AWS संसाधन बनाएँ, या तो AWS वितरण में शामिल स्वचालित स्क्रिप्ट के माध्यम से या मैन्युअल रूप से कदम-दर-चरण गाइड.
  2. Kubeflow परिनियोजन या तो हेल्म चार्ट या कस्टोमाइज़ का उपयोग करके स्थापित करें।

इस विकल्प के निम्नलिखित फायदे हैं:

  • इस स्थापना विकल्प का मुख्य लक्ष्य Kubeflow-संबंधित Kubernetes कॉन्फ़िगरेशन प्रदान करना है। इसलिए, आप मौजूदा EKS क्लस्टर या Amazon RDS, Amazon S3, और Amazon Cognito जैसे किसी भी संबंधित AWS संसाधनों को बनाने या लाने का विकल्प चुन सकते हैं और AWS पर Kubeflow के साथ काम करने के लिए इसे कॉन्फ़िगर और प्रबंधित कर सकते हैं।
  • एक ओपन-सोर्स Kustomize Kubeflow मेनिफ़ेस्ट से AWS Kubeflow वितरण में जाना आसान है।

निम्नलिखित आरेख दोनों विकल्पों के आर्किटेक्चर को दिखाता है।

AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.

सेजमेकर के साथ एकीकरण

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

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

इस आवश्यकता को पूरा करने के लिए, AWS आपको निम्नलिखित दो विकल्पों का उपयोग करके Amazon EKS से SageMaker में मॉडल को प्रशिक्षित, ट्यून और परिनियोजित करने की अनुमति देता है:

  • Kubernetes के लिए Amazon SageMaker ACK ऑपरेटर्स, जो पर आधारित हैं कुबेरनेट्स के लिए एडब्ल्यूएस नियंत्रक (एसीके) ढांचा। ACK AWS रणनीति है जो Kubernetes कस्टम नियंत्रकों के निर्माण के लिए मानकीकरण लाती है जो Kubernetes उपयोगकर्ताओं को Kubernetes API का उपयोग करके AWS संसाधनों जैसे डेटाबेस या संदेश कतारों को व्यवस्थित करने की अनुमति देती है। SageMaker ACK ऑपरेटर एमएल डेवलपर्स और डेटा वैज्ञानिकों के लिए इसे आसान बनाते हैं जो SageMaker कंसोल में साइन इन किए बिना SageMaker में एमएल मॉडल को प्रशिक्षित करने, ट्यून करने और तैनात करने के लिए अपने नियंत्रण विमान के रूप में Kubernetes का उपयोग करते हैं।
  • RSI Kubeflow पाइपलाइनों के लिए SageMaker अवयव, जो आपको क्यूबफ्लो पाइपलाइनों की पोर्टेबिलिटी और ऑर्केस्ट्रेशन के साथ सेजमेकर को एकीकृत करने की अनुमति देता है। SageMaker घटकों के साथ, पाइपलाइन वर्कफ़्लो में प्रत्येक कार्य स्थानीय Kubernetes क्लस्टर के बजाय SageMaker पर चलता है। यह आपको अपने Kubeflow पाइपलाइनों से देशी SageMaker प्रशिक्षण, ट्यूनिंग, एंडपॉइंट परिनियोजन, और बैच ट्रांसफ़ॉर्म जॉब बनाने और मॉनिटर करने की अनुमति देता है, जिससे आप Kubernetes क्लस्टर से SageMaker की मशीन लर्निंग-अनुकूलित प्रबंधित सेवा में डेटा प्रोसेसिंग और प्रशिक्षण नौकरियों सहित पूरी गणना को स्थानांतरित कर सकते हैं।

AWS v1.6.1 पर Kubeflow से शुरू होकर, उपलब्ध Kubeflow परिनियोजन विकल्पों में से सभी Amazon SageMaker एकीकरण विकल्पों को एक मंच पर डिफ़ॉल्ट रूप से एक साथ लाते हैं। इसका मतलब है, अब आप कस्टम सैजमेकर संसाधन सबमिट करके या सैजमेकर घटकों का उपयोग करके कुबेफ्लो पाइपलाइन चरण से स्वयं क्यूबफ्लो नोटबुक सर्वर से सेजमेकर एसीके ऑपरेटरों का उपयोग करके सेजमेकर जॉब सबमिट कर सकते हैं।

SageMaker कंपोनेंट्स के दो संस्करण हैं - बोटो3 (AWS SDK for AWS SDK for Python) आधारित संस्करण 1 घटक और K8s (ACK) आधारित संस्करण 2 घटकों के लिए SageMaker ऑपरेटर। नया सैजमेकर घटक संस्करण 2 नवीनतम सैजमेकर प्रशिक्षण एपिस का समर्थन करता है और हम घटक के इस संस्करण में अधिक सैजमेकर सुविधाओं को जोड़ना जारी रखेंगे। हालाँकि, आपके पास प्रशिक्षण के लिए सैजमेकर घटक संस्करण 2 और अन्य सैजमेकर सुविधाओं जैसे हाइपरपरमीटर ट्यूनिंग, प्रोसेसिंग जॉब, होस्टिंग और कई अन्य के लिए संस्करण 1 को संयोजित करने का लचीलापन है।

प्रोमेथियस और ग्राफाना के साथ एकीकरण

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

Kubeflow पाइपलाइन (KFP) और नोटबुक जैसे Kubeflow घटक, चल रहे प्रयोगों या नोटबुक की संख्या जैसे घटक संसाधनों की निगरानी करने के लिए Prometheus मेट्रिक्स का उत्सर्जन करते हैं।

इन मेट्रिक्स को कुबेरनेट्स क्लस्टर में चल रहे प्रोमेथियस सर्वर द्वारा एकत्र किया जा सकता है और प्रोमेथियस क्वेरी लैंग्वेज (प्रोमक्यूएल) का उपयोग करके क्वेरी की जा सकती है। प्रोमेथियस द्वारा समर्थित सुविधाओं के बारे में अधिक जानकारी के लिए, देखें प्रोमेथियस प्रलेखन.

AWS वितरण पर Kubeflow निम्नलिखित AWS प्रबंधित सेवाओं के साथ एकीकरण के लिए सहायता प्रदान करता है:

  1. अमेज़ॅन प्रबंधित प्रोमेथियस (एएमपी) जो एक है प्रोमिथेउसकंटेनर इंफ्रास्ट्रक्चर और कंटेनर के लिए एप्लिकेशन मेट्रिक्स के लिए संगत निगरानी सेवा जो ग्राहकों के लिए बड़े पैमाने पर कंटेनर वातावरण की सुरक्षित रूप से निगरानी करना आसान बनाती है। AMP का उपयोग करके, आप अपने मेट्रिक्स, लॉग और अपने अवलोकन प्रणाली में कई डेटा स्रोतों से एकत्र किए गए निशानों की कल्पना, विश्लेषण और अलार्म कर सकते हैं, जिसमें AWS, तृतीय-पक्ष ISV और आपके IT पोर्टफोलियो के अन्य संसाधन शामिल हैं।
  2. Amazon प्रबंधित Grafana, ओपन सोर्स पर आधारित पूरी तरह से प्रबंधित और सुरक्षित डेटा विज़ुअलाइज़ेशन सेवा है ग्राफाना प्रोजेक्ट, जो ग्राहकों को कई डेटा स्रोतों से उनके अनुप्रयोगों के लिए परिचालन मेट्रिक्स, लॉग और निशान को तुरंत क्वेरी, सहसंबंधित और कल्पना करने में सक्षम बनाता है। जैसे-जैसे उपयोग की मांग बढ़ती है, स्वचालित संस्करण अपडेट और सुरक्षा पैचिंग के साथ Amazon प्रबंधित Grafana, Grafana के परिचालन प्रबंधन को स्वचालित रूप से कंप्यूट और डेटाबेस अवसंरचना को स्केल करके लोड करता है।

एडब्ल्यूएस वितरण पर क्यूबफ्लो प्रोमेथियस और अमेज़ॅन प्रबंधित ग्राफाना के लिए अमेज़ॅन प्रबंधित सेवा के एकीकरण के लिए समर्थन प्रदान करता है ताकि प्रोमेथियस मेट्रिक्स के सुरक्षित रूप से अंतर्ग्रहण और विज़ुअलाइज़ेशन की सुविधा मिल सके।

निम्नलिखित मेट्रिक्स अंतर्ग्रहीत हैं और देखे जा सकते हैं:

अपने Kubeflow क्लस्टर के लिए Prometheus और Amazon प्रबंधित Grafana के लिए Amazon प्रबंधित सेवा को कॉन्फ़िगर करने के लिए देखें AWS पर Kubeflow के साथ मेट्रिक्स की निगरानी के लिए Prometheus, Prometheus के लिए Amazon प्रबंधित सेवा और Amazon प्रबंधित Grafana का उपयोग करें.

समाधान अवलोकन

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

.. पूर्वापेक्षाएँ

सुनिश्चित करें कि आप निम्नलिखित पूर्वापेक्षाओं को पूरा करते हैं:

  • आपके पास है AWS खाता.
  • सुनिश्चित करें कि आप अंदर हैं us-west-2 इस उदाहरण को चलाने के लिए क्षेत्र।
  • के साथ बातचीत करने के लिए Google Chrome का उपयोग करें एडब्ल्यूएस प्रबंधन कंसोल और क्यूबफ्लो।
  • सुनिश्चित करें कि आपके खाते में सेवा कोटा कंसोल का उपयोग करके ml.p3.2xlarge के लिए SageMaker प्रशिक्षण संसाधन प्रकार की सीमा बढ़ाकर 2 कर दी गई है।
  • वैकल्पिक रूप से, आप उपयोग कर सकते हैं AWS क्लाउड 9, एक क्लाउड-आधारित एकीकृत विकास वातावरण (IDE) जो आपके वेब ब्राउज़र से सभी कार्य को पूरा करने में सक्षम बनाता है। सेटअप निर्देशों के लिए, देखें Cloud9 IDE सेटअप करें. AWS Cloud18.04 सेटिंग्स में एक प्लेटफॉर्म के रूप में Ubuntu सर्वर 9 का चयन करें।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.फिर अपने AWS Cloud9 परिवेश से, धन चिह्न चुनें और नया टर्मिनल खोलें।

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

aws configure --profile=kubeflow

AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: us-west-2
Default output format [None]: json

# (In Cloud9, select “Cancel” and “Permanently disable” when the AWS managed temporary credentials dialog pops up)

export AWS_PROFILE=kubeflow

उन अनुमतियों को सत्यापित करें जिनका उपयोग क्लाउड9 एडब्ल्यूएस संसाधनों को कॉल करने के लिए करेगा।

aws sts get-caller-identity

नीचे दिए गए आउटपुट से सत्यापित करें कि आप AWS CLI प्रोफ़ाइल में कॉन्फ़िगर किए गए व्यवस्थापक उपयोगकर्ता के arn को देखते हैं। इस उदाहरण में यह "क्यूबफ्लो-यूजर" है

{
    "UserId": "*******",
    "Account": "********",
    "Arn": "arn:aws:iam::*******:user/kubeflow-user"
}

AWS पर Amazon EKS और Kubeflow इंस्टॉल करें

AWS पर Amazon EKS और Kubeflow इंस्टॉल करने के लिए, निम्न चरणों को पूरा करें:

  1. AWS पर Kubeflow परिनियोजित करने के लिए अपना वातावरण सेट करें:
    #Clone the awslabs/kubeflow-manifests and the kubeflow/manifests repositories and check out the release branches of your choosing
    export KUBEFLOW_RELEASE_VERSION=v1.6.1
    export AWS_RELEASE_VERSION=v1.6.1-aws-b1.0.0
    git clone https://github.com/awslabs/kubeflow-manifests.git && cd kubeflow-manifests
    git checkout ${AWS_RELEASE_VERSION}
    git clone --branch ${KUBEFLOW_RELEASE_VERSION} https://github.com/kubeflow/manifests.git upstream
    
    export MANIFEST_DIR=$PWD

    #Install the necessary tools with the following command:
    make install-tools
    source ~/.bash_profile

  2. टेराफॉर्म का उपयोग करके एडब्ल्यूएस और संबंधित एडब्ल्यूएस संसाधनों जैसे ईकेएस पर क्यूबफ्लो के वैनिला संस्करण को तैनात करें। कृपया ध्यान दें कि ईकेएस नोडग्रुप में उपयोग किए जाने वाले ईबीएस वॉल्यूम डिफ़ॉल्ट रूप से एन्क्रिप्ट नहीं किए गए हैं:
    #Define the following environment variables
    
    #Region to create the cluster in
    export CLUSTER_REGION=us-west-2
    #Name of the cluster to create
    export CLUSTER_NAME=

    cd deployments/vanilla/terraform
    
    #Save the variables to a .tfvars file
    cat < sample.auto.tfvars
    cluster_name="${CLUSTER_NAME}"
    cluster_region="${CLUSTER_REGION}"
    EOF
    
    #Run the following one-click command to deploy terraform to install EKS infrastructure and Kubeflow
    make deploy

Kubeflow अनुमतियाँ सेट करें

  1. SageMaker, S3 और IAM API कॉल का उपयोग करने के लिए नोटबुक पॉड और पाइपलाइन घटक पॉड में अनुमतियाँ जोड़ें kubeflow_iam_permissions.sh लिपियों.
    export NAMESPACE=kubeflow-user-example-com
    
    wget https://raw.githubusercontent.com/aws-samples/eks-kubeflow-cloudformation-quick-start/9e46662d97e1be7edb0be7fc31166e545655636a/utils/kubeflow_iam_permissions.sh
    chmod +x kubeflow_iam_permissions.sh
    ./kubeflow_iam_permissions.sh $NAMESPACE $CLUSTER_NAME $CLUSTER_REGION

  2. S3 सेवा का उपयोग करके प्रशिक्षण डेटासेट तक पहुँचने के लिए SageMaker प्रशिक्षण कार्य को सक्षम करने के लिए SageMaker निष्पादन भूमिका बनाएँ sagemaker_role.sh लिपियों.
    wget https://raw.githubusercontent.com/aws-samples/eks-kubeflow-cloudformation-quick-start/9e46662d97e1be7edb0be7fc31166e545655636a/utils/sagemaker_role.sh
    chmod +x sagemaker_role.sh
    ./sagemaker_role.sh

क्यूबफ्लो डैशबोर्ड तक पहुंचें

Kubeflow डैशबोर्ड तक पहुँचने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. आप नीचे दिए गए आदेशों को चलाकर अपने URL को सार्वजनिक इंटरनेट पर प्रदर्शित किए बिना Cloud9 वातावरण में स्थानीय रूप से Kubeflow डैशबोर्ड चला सकते हैं।
    # Configure Kubecontext
    $(terraform output -raw configure_kubectl)
    
    cd ${MANIFEST_DIR}
    make port-forward

  2. चुनें चल रहे एप्लिकेशन का पूर्वावलोकन करें.AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  3. क्रोम में एक अलग टैब के रूप में खोलने के लिए क्यूबफ्लो डैशबोर्ड के कोने में आइकन चुनें।
  4. डिफ़ॉल्ट क्रेडेंशियल दर्ज करें (user@example.com/12341234) Kubeflow डैशबोर्ड में लॉग इन करने के लिए।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.

AWS वातावरण पर Kubeflow सेट करें

Kubeflow डैशबोर्ड में लॉग इन करने के बाद, सुनिश्चित करें कि आपके पास सही नाम स्थान है (kubeflow-user-example-com) चुना। AWS परिवेश पर अपना Kubeflow सेट अप करने के लिए निम्न चरणों को पूरा करें:

  1. Kubeflow डैशबोर्ड पर, चुनें नोटबुक नेविगेशन फलक में
  2. चुनें नई नोटबुक.
  3. के लिए नाम, दर्ज aws-nb.
  4. के लिए जुपिटर डॉकेट छवि, छवि चुनें jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20 (नवीनतम उपलब्ध jupyter-pytorch डीएलसी छवि)।
  5. के लिए सी पी यू, दर्ज 1.
  6. के लिए याद, दर्ज 5.
  7. के लिए GPUs, के रूप में छोड़ दो कोई नहीं.
  8. में कोई बदलाव न करें कार्यस्थान और डेटा वॉल्यूम वर्गों.AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  9. चुनते हैं Kubeflow पाइपलाइनों तक पहुँच की अनुमति दें में विन्यास अनुभाग और लॉन्च चुनें।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  10. सत्यापित करें कि आपकी नोटबुक सफलतापूर्वक बनाई गई है (इसमें कुछ मिनट लग सकते हैं)।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  11. चुनें जुडिये ज्यूपिटरलैब में लॉग इन करने के लिए।
  12. प्रवेश करके रेपो को क्लोन करें https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git में एक रेपो क्लोन करें खेत।
  13. चुनें क्लोन.AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.

एक वितरित प्रशिक्षण उदाहरण चलाएँ

जुपिटर नोटबुक सेट करने के बाद, आप फ़ोल्डर से निम्न उच्च-स्तरीय चरणों का उपयोग करके संपूर्ण डेमो चला सकते हैं eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training क्लोन रिपॉजिटरी में:

  1. PyTorch वितरित डेटा समानांतर (DDP) प्रशिक्षण स्क्रिप्ट चलाएँ - PyTorch DDP प्रशिक्षण स्क्रिप्ट का संदर्भ लें cifar10-distributed-gpu-final.py, जिसमें एक बहु-नोड सीपीयू और जीपीयू क्लस्टर पर प्रशिक्षण वितरित करने के लिए एक नमूना दृढ़ तंत्रिका नेटवर्क और तर्क शामिल है।
  2. क्यूबफ्लो पाइपलाइन बनाएं - नोटबुक चलाएं STEP1.0_create_pipeline_k8s_sagemaker.ipynb SageMaker पर मॉडलों को चलाने और परिनियोजित करने वाली पाइपलाइन बनाने के लिए। सुनिश्चित करें कि आपने SageMaker लाइब्रेरी को पहले नोटबुक सेल के हिस्से के रूप में स्थापित किया है और बाकी नोटबुक सेल को चलाने से पहले कर्नेल को पुनरारंभ करें।
  3. एक SageMaker समापन बिंदु का आह्वान करें - नोटबुक चलाएं STEP1.1_invoke_sagemaker_endpoint.ipynb पिछले नोटबुक में बनाए गए SageMaker मॉडल इंट्रेंस एंडपॉइंट का आह्वान और परीक्षण करने के लिए।

बाद के खंडों में, हम इनमें से प्रत्येक चरण पर विस्तार से चर्चा करेंगे।

PyTorch DDP प्रशिक्षण स्क्रिप्ट चलाएँ

वितरित प्रशिक्षण के हिस्से के रूप में, हम एक साधारण दृढ़ तंत्रिका नेटवर्क द्वारा बनाए गए वर्गीकरण मॉडल को प्रशिक्षित करते हैं जो CIFAR10 डेटासेट पर संचालित होता है। प्रशिक्षण स्क्रिप्ट cifar10-distributed-gpu-final.py इसमें केवल ओपन-सोर्स लाइब्रेरी है और यह GPU डिवाइस या CPU इंस्टेंस पर Kubernetes और SageMaker प्रशिक्षण क्लस्टर दोनों पर चलने के लिए अनुकूल है। हमारे नोटबुक उदाहरण चलाने से पहले आइए प्रशिक्षण स्क्रिप्ट के कुछ महत्वपूर्ण पहलुओं को देखें।

हम उपयोग torch.distributed मॉड्यूल, जिसमें क्लस्टर में नोड्स में बहु-प्रक्रिया समांतरता के लिए PyTorch समर्थन और संचार आदिम शामिल हैं:

...
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.utils.data
import torch.utils.data.distributed
import torchvision
from torchvision import datasets, transforms
...

हम दृढ़, अधिकतम पूलिंग और रैखिक परतों के संयोजन का उपयोग करके एक साधारण छवि वर्गीकरण मॉडल बनाते हैं, जिसमें a relu मॉडल प्रशिक्षण के फॉरवर्ड पास में सक्रियण फ़ंक्शन लागू होता है:

# Define models
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)

def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x

यदि प्रशिक्षण क्लस्टर में GPU है, तो स्क्रिप्ट CUDA उपकरणों पर प्रशिक्षण चलाती है और डिवाइस चर डिफ़ॉल्ट CUDA डिवाइस रखता है:

device = "cuda" if torch.cuda.is_available() else "cpu"
...

PyTorch का उपयोग करके वितरित प्रशिक्षण चलाने से पहले DistributedDataParallel कई नोड्स पर वितरित प्रसंस्करण को चलाने के लिए, आपको कॉल करके वितरित वातावरण को प्रारंभ करना होगा init_process_group. यह प्रशिक्षण क्लस्टर की प्रत्येक मशीन पर आरंभ किया जाता है।

dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size)
...

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

model = Net().to(device)

if is_distributed:
model = torch.nn.parallel.DistributedDataParallel(model)

...

क्यूबफ्लो पाइपलाइन बनाएं

नोटबुक का उपयोग करता है Kubeflow पाइपलाइनों SDK और एमएल वर्कफ़्लो पाइपलाइनों को निर्दिष्ट करने और चलाने के लिए पायथन पैकेज का सेट प्रदान किया। इस SDK के भाग के रूप में, हम डोमेन-विशिष्ट भाषा (DSL) पैकेज डेकोरेटर का उपयोग करते हैं dsl.pipeline, जो पाइपलाइन को वापस करने के लिए पायथन कार्यों को सजाता है।

Kubeflow पाइपलाइन SageMaker ACK ऑपरेटरों का उपयोग करके SageMaker को प्रशिक्षण देने के लिए SageMaker घटक V2 का उपयोग करती है। SageMaker मॉडल निर्माण और मॉडल परिनियोजन SageMaker घटक V1 का उपयोग करता है, जो Boto3-आधारित SageMaker घटक हैं। हम इस उदाहरण में दोनों घटकों के संयोजन का उपयोग आपके द्वारा पसंद किए जाने वाले लचीलेपन को प्रदर्शित करने के लिए करते हैं।

  1. निम्नलिखित कोड का उपयोग करके SageMaker घटकों को लोड करें:
    # Loads SageMaker training components v2 for Kubeflow pipeline from the URL
    sagemaker_train_ack_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/d4aaa03035f221351ebe72fbd74fcfccaf25bb66/components/aws/sagemaker/TrainingJob/component.yaml')
    
    # Loads SageMaker components v1 for Kubeflow pipeline from the URL
    sagemaker_model_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/cb36f87b727df0578f4c1e3fe9c24a30bb59e5a2/components/aws/sagemaker/model/component.yaml')
    sagemaker_deploy_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/cb36f87b727df0578f4c1e3fe9c24a30bb59e5a2/components/aws/sagemaker/deploy/component.yaml')

    निम्नलिखित कोड में, हम Kubeflow पाइपलाइन बनाते हैं जहाँ हम दो का उपयोग करके SageMaker वितरित प्रशिक्षण चलाते हैं ml.p3.2xlarge उदाहरण:

    # Create Kubeflow Pipeline using Amazon SageMaker Service
    @dsl.pipeline(name="PyTorch Training pipeline", description="Sample training job test")
    def pytorch_cnn_pipeline(region=target_region,
    train_image=aws_dlc_sagemaker_train_image,
    serving_image=aws_dlc_sagemaker_serving_image,
    learning_rate='0.01',
    pytorch_backend='gloo',
    training_job_name=pytorch_distributed_jobname,
    instance_type='ml.p3.2xlarge',
    instance_count='2',
    network_isolation='False',
    traffic_encryption='False',
    ):
    
    # Step to run training on SageMaker using SageMaker Components V2 for Pipeline.
    training = sagemaker_train_ack_op(
    region=region,
    algorithm_specification=(f'{{ '
    f'"trainingImage": "{train_image}",'
    '"trainingInputMode": "File"'
    f'}}'),
    training_job_name=training_job_name,
    hyper_parameters=(f'{{ '
    f'"backend": "{pytorch_backend}",'
    '"batch-size": "64",'
    '"epochs": "10",'
    f'"lr": "{learning_rate}",'
    '"model-type": "custom",'
    '"sagemaker_container_log_level": "20",'
    '"sagemaker_program": "cifar10-distributed-gpu-final.py",'
    f'"sagemaker_region": "{region}",'
    f'"sagemaker_submit_directory": "{source_s3}"'
    f'}}'),
    resource_config=(f'{{ '
    f'"instanceType": "{instance_type}",'
    f'"instanceCount": {instance_count},'
    '"volumeSizeInGB": 50'
    f'}}'),
    input_data_config=training_input(datasets),
    output_data_config=training_output(bucket_name),
    enable_network_isolation=network_isolation,
    enable_inter_container_traffic_encryption=traffic_encryption,
    role_arn=role,
    stopping_condition={"maxRuntimeInSeconds": 3600}
    )
    
    model_artifact_url = get_s3_model_artifact_op(
    training.outputs["model_artifacts"]
    ).output
    
    # This step creates SageMaker Model which refers to model artifacts and inference script to deserialize the input image
    create_model = sagemaker_model_op(
    region=region,
    model_name=training_job_name,
    image=serving_image,
    model_artifact_url=model_artifact_url,
    network_isolation=network_isolation,
    environment=(f'{{ '
    '"SAGEMAKER_CONTAINER_LOG_LEVEL": "20",'
    '"SAGEMAKER_PROGRAM": "inference.py",'
    f'"SAGEMAKER_REGION": "{region}",'
    f'"SAGEMAKER_SUBMIT_DIRECTORY": "{model_artifact_url}"'
    f'}}'),
    role=role
    )
    
    # This step creates SageMaker Endpoint which will be called to run inference
    prediction = sagemaker_deploy_op(
    region=region,
    model_name_1=create_model.output,
    instance_type_1='ml.c5.xlarge'
    )
    
    #Disable pipeline cache
    training.execution_options.caching_strategy.max_cache_staleness = "P0D"

    पाइपलाइन परिभाषित होने के बाद, आप Kubeflow पाइपलाइन SDK's का उपयोग करके पाइपलाइन को Argo YAML विनिर्देश में संकलित कर सकते हैं kfp.compiler पैकेट। आप क्यूबफ्लो पाइपलाइन एसडीके क्लाइंट का उपयोग करके इस पाइपलाइन को चला सकते हैं, जो पाइपलाइन सेवा समापन बिंदु को कॉल करता है और सीधे नोटबुक से उपयुक्त प्रमाणीकरण हेडर में पास करता है। निम्नलिखित कोड देखें:

    # DSL Compiler that compiles pipeline functions into workflow yaml.
    kfp.compiler.Compiler().compile(pytorch_cnn_pipeline, "pytorch_cnn_pipeline.yaml")
    
    # Connect to Kubeflow Pipelines using the Kubeflow Pipelines SDK client
    client = kfp.Client()
    
    experiment = client.create_experiment(name="ml_workflow")
    
    # Run a specified pipeline
    my_run = client.run_pipeline(experiment.id, "pytorch_cnn_pipeline", "pytorch_cnn_pipeline.yaml")
    
    # Please click “Run details” link generated below this cell to view your pipeline. You can click every pipeline step to see logs.

  2. चुनना विवरण चलाएँ Kubeflow पाइपलाइन देखने के लिए अंतिम सेल के अंतर्गत लिंक। निम्न स्क्रीनशॉट SageMaker प्रशिक्षण और परिनियोजन घटक के लिए हमारे पाइपलाइन विवरण दिखाता है।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  3. प्रशिक्षण कार्य चरण चुनें और Logs टैब में, SageMaker लॉग्स तक पहुँचने के लिए CloudWatch लॉग्स लिंक चुनें।
    निम्न स्क्रीनशॉट दो ml.p3.2xबड़े उदाहरणों में से प्रत्येक के लिए CloudWatch लॉग दिखाता है।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  4. लॉग देखने के लिए कोई भी समूह चुनें।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.
  5. SageMaker एंडपॉइंट को चुनकर कैप्चर करें सेजमेकर - डिप्लॉय मॉडल चरण और प्रतिलिपि बनाना endpoint_name आउटपुट विरूपण साक्ष्य मूल्य।AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.

एक SageMaker समापन बिंदु का आह्वान करें

नोटबुक STEP1.1_invoke_sagemaker_endpoint.ipynb पिछले चरण में बनाए गए SageMaker अनुमान समापन बिंदु को आमंत्रित करता है। सुनिश्चित करें कि आपने एंडपॉइंट नाम अपडेट किया है:

# Invoke SageMaker Endpoint. * Ensure you update the endpoint
# You can grab the SageMaker Endpoint name by either 1) going to the pipeline visualization of Kubeflow console and click the component for deployment, or 2) Go to SageMaker console and go to the list of endpoints, and then substitute the name to the EndpointName='...' in this cell.

endpointName=''

response = client.invoke_endpoint(EndpointName=endpointName,
ContentType='application/x-image',
Body=payload)

pred = json.loads(response['Body'].read().decode())

output_vector_list=pred['score']

# Get outout vector of 10 classes
output_vector = output_vector_list[0]

# Find the class with highest probability
max=output_vector[0]
index = 0
for i in range(1,len(output_vector)):
if output_vector[i] > max:
max = output_vector[i]
index = i

print(f'Index of the maximum value is : {index}')

labels = ['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']

print(labels[index])

क्लीन अप

अपने संसाधनों को साफ करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. AWS संसाधनों को हटाने के लिए AWS Cloud9 में निम्न कमांड चलाएँ:
    cd ${MANIFEST_DIR}/deployments/vanilla/terraform
    make delete

  2. IAM भूमिका हटाएं "sagemakerrole"निम्नलिखित एडब्ल्यूएस सीएलआई कमांड का उपयोग करना:
    aws iam detach-role-policy --role-name sagemakerrole --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
    aws iam detach-role-policy --role-name sagemakerrole --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
    aws iam delete-role --role-name sagemakerrole

  3. निम्न AWS CLI कमांड का उपयोग करके SageMaker समापन बिंदु हटाएं:
    aws sagemaker delete-endpoint --endpoint-name  --region us-west-2

सारांश

इस पोस्ट में, हमने AWS 1.6.1 पर Kubeflow द्वारा प्रदान किए जाने वाले मूल AWS-प्रबंधित सेवा एकीकरण के माध्यम से एंटरप्राइज-स्तरीय AI और ML उपयोग मामलों की आवश्यकता को पूरा करने के लिए मूल्य पर प्रकाश डाला। आप Terraform, Kustomize, या Helm का उपयोग करके विभिन्न सेवा एकीकरण के साथ AWS पर Kubeflow स्थापित करने के लिए कई परिनियोजन विकल्पों में से चुन सकते हैं। इस पोस्ट में उपयोग के मामले ने SageMaker के साथ एक Kubeflow एकीकरण का प्रदर्शन किया जो एक छवि वर्गीकरण मॉडल के लिए वितरित प्रशिक्षण चलाने के लिए एक SageMaker प्रबंधित प्रशिक्षण क्लस्टर और मॉडल परिनियोजन के लिए SageMaker समापन बिंदु का उपयोग करता है।

हमने एक भी उपलब्ध कराया है नमूना पाइपलाइन उदाहरण जो नवीनतम सैजमेकर घटकों का उपयोग करता है; आप इसे सीधे Kubeflow डैशबोर्ड से चला सकते हैं। इस पाइपलाइन की आवश्यकता है अमेज़न S3 डेटा और सेजमेकर निष्पादन IAM भूमिका आवश्यक इनपुट के रूप में।

AWS पर Kubeflow के साथ आरंभ करने के लिए, उपलब्ध AWS-एकीकृत परिनियोजन विकल्पों का संदर्भ लें एडब्ल्यूएस पर क्यूबफ्लो. आप अनुसरण कर सकते हैं एडब्ल्यूएस लैब्स रिपॉजिटरी Kubeflow में सभी AWS योगदानों को ट्रैक करने के लिए। आप हमें पर भी ढूंढ सकते हैं Kubeflow #AWS स्लैक चैनल; आपकी प्रतिक्रिया हमें Kubeflow परियोजना में योगदान करने के लिए अगली सुविधाओं को प्राथमिकता देने में मदद करेगी।


लेखक के बारे में

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

AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.कार्तिक कलामडी Amazon AI में एक सॉफ्टवेयर डेवलपमेंट इंजीनियर है। वर्तमान में K8s के लिए Kubeflow और AWS SageMaker कंट्रोलर जैसे मशीन लर्निंग कुबेरनेट्स ओपन-सोर्स प्रोजेक्ट्स पर केंद्रित है। अपने खाली समय में मुझे पीसी गेम्स खेलना और यूनिटी इंजन का उपयोग करके वीआर के साथ खेलना पसंद है।

AWS परिनियोजन प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर एक-क्लिक क्यूबफ्लो के साथ अमेज़ॅन ईकेएस और अमेज़ॅन सेजमेकर पर हाइब्रिड एमएल वर्कफ़्लो को सक्षम करना। लंबवत खोज. ऐ.राहुल खर्से Amazon Web Services में एक सॉफ्टवेयर डेवलपमेंट इंजीनियर है। उनका काम उनकी मापनीयता, विश्वसनीयता और सुरक्षा में सुधार के लिए ओपन सोर्स कंटेनरीकृत एमएल ऑप्स प्लेटफार्मों के साथ एडब्ल्यूएस सेवाओं को एकीकृत करने पर केंद्रित है। सुविधाओं के लिए ग्राहकों के अनुरोधों पर ध्यान केंद्रित करने के अलावा, राहुल को क्षेत्र में नवीनतम तकनीकी विकास के साथ प्रयोग करने में भी मजा आता है।

समय टिकट:

से अधिक AWS मशीन लर्निंग