जेफिरनेट लोगो

अमेज़ॅन सैजमेकर पाइपलाइनों के साथ मल्टी-अकाउंट मॉडल की तैनाती

दिनांक:

अमेज़न SageMaker पाइपलाइन पहला उद्देश्य-निर्मित है CI/CD मशीन लर्निंग (एमएल) के लिए सेवा। यह आपको एमएल वर्क-टू-एंड, एंड-टू-एंड एमएल वर्कफ्लोज़ बनाने और बनाने में मदद करता है, देव / सीडी के सर्वोत्तम प्रथाओं को एमएल में लागू करता है (एमएलओपीएस के रूप में भी जाना जाता है)।

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

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

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

पर्यावरण की तैयारी

इस अनुभाग में, आप तीन अलग-अलग AWS खातों को कॉन्फ़िगर करते हैं और उपयोग करते हैं सेजमेकर स्टूडियो एक प्रोजेक्ट तैयार करना जो डेटा साइंटिस्ट द्वारा बनाई गई ML पाइपलाइन के साथ CI / CD पाइपलाइन को एकीकृत करता है। निम्नलिखित आरेख पर्यावरण के संदर्भ वास्तुकला को दर्शाता है जो SageMaker कस्टम प्रोजेक्ट और कैसे बनाया जाता है AWS संगठन विभिन्न खातों को एकीकृत करता है।

निम्न आरेख पर्यावरण के संदर्भ वास्तुकला को दर्शाता है जो SageMaker कस्टम प्रोजेक्ट द्वारा बनाया गया है और AWS संगठन विभिन्न खातों को कैसे एकीकृत करता है।

आरेख में संगठन द्वारा प्रबंधित तीन अलग-अलग खाते हैं। साथ ही, तीन अलग-अलग उपयोगकर्ता भूमिकाएँ (जो एक ही व्यक्ति हो सकती हैं) इस वातावरण को संचालित करती हैं:

  • एमएल इंजीनियर - CI / CD पाइपलाइन, मॉडल रजिस्ट्री, और अन्य संसाधनों को बनाने वाली SageMaker Studio परियोजना के प्रावधान के लिए जिम्मेदार
  • आँकड़े वाला वैज्ञानिक - एमएल पाइपलाइन बनाने के लिए जिम्मेदार है जो मॉडल समूह के लिए पंजीकृत एक प्रशिक्षित मॉडल के साथ समाप्त होता है (जिसे भी संदर्भित किया जाता है मॉडल पैकेज समूह)
  • स्वीकृति प्रदान करने वाले - स्टेजिंग खाते में तैनात मॉडल का परीक्षण करने और उत्पादन तैनाती को मंजूरी देने के लिए जिम्मेदार

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

लेकिन इससे पहले कि आप आगे बढ़ें, आपको निम्नलिखित चरणों को पूरा करने की आवश्यकता है, जो अगले खंडों में विस्तृत हैं:

  1. डेटा वैज्ञानिकों (डेटा साइंस अकाउंट) द्वारा उपयोग किया जाने वाला एक एडब्ल्यूएस खाता बनाएँ।
  2. बनाएँ और कॉन्फ़िगर करें SageMaker स्टूडियो डोमेन डेटा विज्ञान खाते में।
  3. उत्पादन और मंचन के लिए दो अतिरिक्त खाते बनाएं।
  4. संगठनों का उपयोग करके एक संगठनात्मक संरचना बनाएं, फिर अतिरिक्त खातों को आमंत्रित और एकीकृत करें।
  5. पाइपलाइनों को चलाने और बाहरी खातों पर मॉडल तैनात करने के लिए आवश्यक अनुमतियों को कॉन्फ़िगर करें।
  6. कई खातों में मॉडल तैनात करने के लिए SageMaker प्रोजेक्ट टेम्पलेट आयात करें और इसे SageMaker Studio के लिए उपलब्ध करें।

अपने खाते में SageMaker Studio को कॉन्फ़िगर करना

पाइपलाइन के लिए अंतर्निहित समर्थन प्रदान करता है MLOps टेम्पलेट अपनी ML परियोजनाओं के लिए CI / CD का उपयोग करना आपके लिए आसान बनाना। ये MLOps टेम्पलेट के रूप में परिभाषित किए गए हैं अमेज़ॅन क्लाउडफ़ॉर्मेशन टेम्पलेट्स और के माध्यम से प्रकाशित किया AWS सेवा सूची। इन्हें SageMaker Studio, ML के लिए IDE के माध्यम से डेटा वैज्ञानिकों के लिए उपलब्ध कराया जाता है। अपने खाते में स्टूडियो को कॉन्फ़िगर करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. अपना SageMaker Studio डोमेन तैयार करें.
  2. इस खाते और स्टूडियो उपयोगकर्ताओं के लिए SageMaker प्रोजेक्ट टेम्प्लेट और SageMaker जम्पस्टार्ट सक्षम करें.

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

  • AmazonSageMakerServiceCatalogProductsLaunchRole - SageMaker द्वारा परियोजना टेम्पलेट्स को चलाने और आवश्यक अवसंरचना संसाधन बनाने के लिए उपयोग किया जाता है
  • AmazonSageMakerServiceCatalogProductsUseRole - सीआई / सीडी पाइपलाइन द्वारा नौकरी चलाने के लिए और लक्ष्य खातों पर मॉडल तैनात करने के लिए उपयोग किया जाता है

यदि आपने अपना SageMaker Studio डोमेन फिर से बनाया है: Invent 2020, यह अनुशंसा की जाती है कि आप अपने काम को प्रगति में सहेज कर अपने पर्यावरण को ताज़ा करें। पर पट्टिका मेनू, चुनें शटडाउन, और अपनी पसंद की पुष्टि करें।

  1. यदि आपने उन्हें अभी तक नहीं बनाया है, तो मचान और उत्पादन के लिए दो अन्य AWS खाते बनाएं और तैयार करें।

संगठनों को कॉन्फ़िगर करना

आपको संगठन में एक संरचना में डेटा विज्ञान खाते और दो अतिरिक्त खातों को जोड़ने की आवश्यकता है। जब आप बड़े होते हैं और अपने AWS संसाधनों को बढ़ाते हैं, तो संगठन आपको अपने वातावरण को केंद्र में रखने और नियंत्रित करने में मदद करता है। यह मुफ़्त है और आपकी शासन की रणनीति का लाभ उठाता है।

प्रत्येक खाते को एक अलग में जोड़ा जाना चाहिए संगठनात्मक इकाई (OU).

  1. संगठन कंसोल पर, निम्न की तरह OUs की संरचना बनाएँ:
  • जड़
    • multi-account-deploymenटी (OU)
      • 111111111111 (डेटा विज्ञान खाता- सेजमेकर स्टूडियो)
      • production (ओयू)
        • 222222222222 (AWS खाता)
      • staging (ओयू)
        • 333333333333 (AWS खाता)

संगठन को कॉन्फ़िगर करने के बाद, प्रत्येक खाता स्वामी को एक आमंत्रण मिलता है। मालिकों को निमंत्रण स्वीकार करने की आवश्यकता होती है, अन्यथा संगठन में खातों को शामिल नहीं किया जाता है।

  1. अब आपको जरूरत है AWS संगठनों के साथ विश्वसनीय पहुँच सक्षम करें ("सभी सुविधाएँ सक्षम करें" और "StackSets में विश्वसनीय पहुँच सक्षम करें").

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

  1. अगला, ऑर्गनाइजेशन कंसोल पर, चुनें खाते व्यवस्थित करें.
  2. चुनें मचान.
  3. OU ID को नोट करें।
  4. के लिए इस प्रक्रिया को दोहराएं production OU।

उत्पादन OU के लिए इस प्रक्रिया को दोहराएं।

अनुमतियों को कॉन्फ़िगर करना

आपको प्रत्येक अतिरिक्त खाते में एक SageMaker निष्पादन भूमिका बनाने की आवश्यकता है। इन भूमिकाओं द्वारा ग्रहण किया जाता है AmazonSageMakerServiceCatalogProductsUseRole डेटा विज्ञान खाते में लक्ष्य खातों में अंतिम बिंदुओं को तैनात करने और उनका परीक्षण करने के लिए।

  1. में साइन इन करें एडब्ल्यूएस प्रबंधन कंसोल मंचन खाते के साथ।
  2. निम्न को चलाएँ CloudFormation टेम्पलेट.

यह टेम्पलेट आपके लिए एक नई SageMaker भूमिका बनाता है।

  1. निम्नलिखित पैरामीटर प्रदान करें:
    1. SageMakerभूमिका प्रत्यय - एक छोटी स्ट्रिंग (बिना रिक्त स्थान या अल्फा-न्यूमेरिक वर्णों के साथ अधिकतम 10 लोअरकेस) जो निम्न उपसर्ग के बाद भूमिका नाम में जोड़ा जाता है: sagemaker-role-। अंतिम भूमिका नाम है sagemaker-role-<<sagemaker_role_suffix>>.
    2. पाइपलाइन - डेटा साइंस खाते से भूमिका का एआरएन जो आपके द्वारा बनाए जा रहे सेजमेकर भूमिका को मानता है। ARN को खोजने के लिए, डेटा साइंस खाते के साथ कंसोल में साइन इन करें। IAM कंसोल पर, चुनें भूमिकाओं और के लिए खोज AmazonSageMakerServiceCatalogProductsUseRole। इस भूमिका को चुनें और ARN की प्रतिलिपि बनाएँ (arn:aws:iam::<<data_science_acccount_id>>:role/service-role/AmazonSageMakerServiceCatalogProductsUseRole).
  2. स्टेजिंग खाते में इस भूमिका को बनाने के बाद, उत्पादन खाते के लिए इस प्रक्रिया को दोहराएं।

डेटा विज्ञान खाते में, अब आप की नीति कॉन्फ़िगर करते हैं अमेज़न सरल भंडारण सेवा (Amazon S3) बाल्टी प्रशिक्षित मॉडल को संग्रहीत करने के लिए उपयोग किया जाता है। इस पोस्ट के लिए, हम वर्तमान क्षेत्र के डिफ़ॉल्ट SageMaker बाल्टी का उपयोग करते हैं। इसका निम्नलिखित नाम प्रारूप है: sagemaker-<<region>>-<<aws_account_id>>.

  1. अमेज़ॅन S3 कंसोल पर, इस बाल्टी को खोजें, जो आपके द्वारा उपयोग किए जा रहे क्षेत्र और डेटा विज्ञान खाते की आईडी प्रदान करता है।

यदि आपको यह नहीं मिलता है, तो इस नाम प्रारूप के बाद एक नई बाल्टी बनाएं।

  1. पर अनुमतियाँ टैब, निम्नलिखित नीति जोड़ें:
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<<staging_account_id>>:root", "arn:aws:iam::<<production_account_id>>:root" ] }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>", "arn:aws:s3:::sagemaker-<<region>>-<<aws_account_id>>/*" ] } ]
    }

  1. अपनी सेटिंग्स सहेजें।

लक्ष्य खातों में अब तैनाती के दौरान प्रशिक्षित मॉडल को पढ़ने की अनुमति है।

अगला कदम भूमिकाओं में नई अनुमतियों को जोड़ना है AmazonSageMakerServiceCatalogProductsUseRole और AmazonSageMakerServiceCatalogProductsLaunchRole.

  1. डेटा विज्ञान खाते में, IAM कंसोल पर, चुनें भूमिकाओं.
  2. खोज AmazonSageMakerServiceCatalogProductsUseRole भूमिका और इसे चुनें।
  3. एक नई नीति जोड़ें और निम्नलिखित दर्ज करें JSON कोड.
  4. अपने परिवर्तन सहेजें।
  5. अब, खोजो AmazonSageMakerServiceCatalogProductsLaunchRole भूमिका, इसे चुनें और निम्नलिखित सामग्री के साथ एक नई नीति जोड़ें:
    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::aws-ml-blog/artifacts/sagemaker-pipeline-blog-resources/*" } ]
    }

  1. अपने परिवर्तन सहेजें।

बस! आपका वातावरण लगभग तैयार है। आपको केवल एक और कदम की आवश्यकता है और आप विभिन्न खातों में मॉडल का प्रशिक्षण और तैनाती शुरू कर सकते हैं।

कस्टम SageMaker स्टूडियो प्रोजेक्ट टेम्पलेट आयात करना

इस चरण में, आप अपने कस्टम प्रोजेक्ट टेम्पलेट को आयात करते हैं।

  1. डेटा विज्ञान खाते के साथ कंसोल में साइन इन करें।
  2. AWS सेवा कैटलॉग कंसोल पर, के तहत प्रशासन, चुनें पोर्टफोलियो.
  3. चुनें एक नया पोर्टफोलियो बनाएं.
  4. पोर्टफोलियो का नाम बताइए SageMaker Organization Templates.
  5. निम्नलिखित डाउनलोड करें टेम्पलेट आपके कंप्यूटर के लिए.
  6. नया पोर्टफोलियो चुनें।
  7. चुनें एक नया उत्पाद अपलोड करें.
  8. के लिए उत्पाद का नामदर्ज Multi Account Deployment.
  9. के लिए Description, दर्ज Multi account deployment project.
  10. के लिए मालिक, अपना नाम दर्ज करें।
  11. के अंतर्गत संस्करण विवरणके लिए, विधि, चुनें टेम्पलेट फ़ाइल का उपयोग करें.
  12. चुनें एक टेम्प्लेट अपलोड करें.
  13. आपके द्वारा डाउनलोड किए गए टेम्पलेट को अपलोड करें।
  14. के लिए संस्करण शीर्षक, चुनें 1.0.

शेष पैरामीटर वैकल्पिक हैं।

  1. चुनें समीक्षा.
  2. अपनी सेटिंग्स की समीक्षा करें और चुनें उत्पाद बनाएँ.
  3. चुनें ताज़ा करना नए उत्पाद को सूचीबद्ध करने के लिए।
  4. आपके द्वारा बनाया गया उत्पाद चुनें।
  5. पर टैग टैब, उत्पाद में निम्नलिखित टैग जोड़ें:
    1. कुंजी - sagemaker:studio-visibility
    2. वैल्यू - True

वापस पोर्टफोलियो विवरण में, आप निम्न स्क्रीनशॉट (विभिन्न आईडी के साथ) के समान कुछ देखते हैं।

वापस पोर्टफोलियो विवरण में, आप निम्न स्क्रीनशॉट (विभिन्न आईडी के साथ) के समान कुछ देखते हैं।

  1. पर की कमी टैब चुनें अड़चन पैदा करो.
  2. के लिए एस्ट्रो मॉल, चुनें मल्टी अकाउंट परिनियोजन (आपके द्वारा अभी बनाया गया उत्पाद)।
  3. के लिए बाधा प्रकार, चुनें लांच.
  4. के अंतर्गत बाधा लॉन्च करेंके लिए, विधि, चुनें IAM भूमिका का चयन करें.
  5. चुनें AmazonSageMakerServiceCatalogProductsLaunchRole.
  6. चुनें बनाएं.
  7. पर समूह, भूमिकाएँ, और उपयोगकर्ता टैब चुनें उपयोगकर्ता, समूह, भूमिकाएँ जोड़ें.
  8. पर भूमिकाओं टैब, अपने SageMaker Studio डोमेन को कॉन्फ़िगर करते समय आपके द्वारा उपयोग की जाने वाली भूमिका का चयन करें।
  9. चुनें पहुँच जोड़ें.

यदि आपको याद नहीं है कि आपने अपने डेटा साइंस खाते में किस भूमिका को चुना है, तो SageMaker कंसोल पर जाएं और चुनें अमेज़ॅन सैजमेकर स्टूडियो। स्टूडियो में सारांश अनुभाग, विशेषता का पता लगाएं निष्पादन भूमिका। पिछले चरण में इस भूमिका के नाम के लिए खोजें।

हो गया! अब इस टेम्पलेट का उपयोग करके एक प्रोजेक्ट बनाने का समय आ गया है।

अपना प्रोजेक्ट बनाना

पिछले अनुभागों में, आपने बहु-खाता वातावरण तैयार किया था। अगला कदम अपने नए टेम्पलेट का उपयोग करके एक प्रोजेक्ट बनाना है।

  1. डेटा विज्ञान खाते के साथ कंसोल में साइन इन करें।
  2. SageMaker कंसोल पर, अपने उपयोगकर्ता के साथ SageMaker स्टूडियो खोलें।
  3. चुनना घटक और रजिस्ट्रियां
  4. ड्रॉप-डाउन मेनू पर, चुनें परियोजनाओं.
  5. चुनें प्रोजेक्ट बनाएं.

प्रोजेक्ट बनाएं चुनें।

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

  1. चुनें संगठन के खाके.
  2. चुनें मल्टी अकाउंट परिनियोजन.
  3. चुनें प्रोजेक्ट टेम्पलेट का चयन करें.

यदि आप टेम्पलेट नहीं देख सकते हैं, तो सुनिश्चित करें कि आपने पिछले अनुभाग में सभी चरणों को सही ढंग से पूरा किया है।

यदि आप टेम्पलेट नहीं देख सकते हैं, तो सुनिश्चित करें कि आपने पिछले अनुभाग में सभी चरणों को सही ढंग से पूरा किया है।

  1. में परियोजना विवरण अनुभाग, के लिए नाम, आईरिस-मल्टी -01 दर्ज करें।

प्रोजेक्ट का नाम 15 वर्ण या उससे कम होना चाहिए।

  1. में प्रोजेक्ट टेम्पलेट पैरामीटरप्रत्येक लक्ष्य खाते में बनाई गई भूमिकाओं के नाम का उपयोग करें (मंचन और उत्पादन) और निम्नलिखित गुण प्रदान करें:
    1. SageMakerExecutionRoleStagingName
    2. SageMakerExecutionRoleProdName
  2. मंचन और उत्पादन OUs के लिए आपके द्वारा पहले बनाई गई OU ID को पुनः प्राप्त करें और निम्नलिखित गुण प्रदान करें:
    1. OrganizationalUnitStagingId
    2. OrganizationalUnitProdId
  3. चुनें प्रोजेक्ट बनाएं.

प्रोजेक्ट बनाएं चुनें।

सभी संसाधनों का प्रावधान करने में कुछ मिनट लगते हैं, जिसके बाद परियोजना को सूचीबद्ध किया जाता है परियोजनाओं अनुभाग। जब आप प्रोजेक्ट चुनते हैं, तो प्रोजेक्ट के मेटाडेटा के साथ एक टैब खुलता है। मॉडल समूह टैब आपकी परियोजना के समान नाम के साथ एक मॉडल समूह को चुनता है। यह परियोजना के प्रावधान के दौरान भी बनाया गया था।

सभी संसाधनों का प्रावधान करने में कुछ मिनट लगते हैं, जिसके बाद परियोजना को परियोजना अनुभाग में सूचीबद्ध किया जाता है।

मॉडल का प्रशिक्षण शुरू करने के लिए पर्यावरण अब डेटा वैज्ञानिक के लिए तैयार है।

एक मॉडल को प्रशिक्षित करना

अब जब आपका प्रोजेक्ट तैयार हो गया है, यह एक मॉडल को प्रशिक्षित करने का समय है।

  1. डाउनलोड उदाहरण नोटबुक इस walkthrough के लिए उपयोग करने के लिए।
  2. चुनना फ़ोल्डर फ़ाइल क्षेत्र को फ़ाइल प्रबंधन में बदलने के लिए आइकन।
  3. चुनना फ़ोल्डर बनाएँ
  4. फ़ोल्डर के लिए एक नाम दर्ज करें।
  5. फ़ोल्डर का नाम चुनें।
  6. चुनना फाइल अपलोड
  7. आपके द्वारा डाउनलोड की गई Jupyter नोटबुक चुनें और इसे नई निर्देशिका में अपलोड करें।
  8. नया टैब खोलने के लिए नोटबुक चुनें।

नया टैब खोलने के लिए नोटबुक चुनें।

आपको कर्नेल चुनने के लिए प्रेरित किया जाता है।

  1. चुनें पायथन 3 (डेटा साइंस).
  2. चुनें चुनते हैं.

चुनें चुनें।

  1. नोटबुक के दूसरे सेल में, की जगह project_name आपके नाम के साथ वैरिएबल आपने अपना प्रोजेक्ट दिया (इस पोस्ट के लिए, iris-multi-01).

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

  1. पूरी नोटबुक चलाएं।

निम्न कोड वाले सेल को चलाने के बाद प्रक्रिया में कुछ समय लगता है:

start_response = pipeline.start(parameters={ "TrainingInstanceCount": "1"
})

यह प्रशिक्षण कार्य शुरू करता है, जिसे पूरा करने में लगभग 3 मिनट लगते हैं। प्रशिक्षण समाप्त होने के बाद, ज्यूपिटर नोटबुक के अगले सेल को मॉडल रजिस्ट्री में मॉडल का नवीनतम संस्करण मिलता है और इसे चिह्नित करता है। Approved। वैकल्पिक रूप से, आप SageMaker Studio UI से एक मॉडल को अनुमोदित कर सकते हैं। पर मॉडल समूह टैब, मॉडल समूह और वांछित संस्करण चुनें। चुनें नवीनतम स्थिति और अनुमोदन करना बचत करने से पहले।

अद्यतन स्थिति चुनें और सहेजने से पहले अनुमोदन करें

यह डेटा वैज्ञानिक की नौकरी का अंत है लेकिन सीआई / सीडी पाइपलाइन चलाने की शुरुआत है।

अमेज़न EventBridge मॉडल रजिस्ट्री की निगरानी करता है। श्रोता प्रावधान के साथ एक नई तैनाती की नौकरी शुरू करता है AWS कोडपिपलीन वर्कफ़्लो (आपके साथ SageMaker Studio प्रोजेक्ट लॉन्च किया गया)।

  1. कोडपिपलाइन कंसोल पर, उपसर्ग के साथ शुरू होने वाली पाइपलाइन चुनें sagemaker-, आपके प्रोजेक्ट के नाम के बाद।

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

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

  1. चुनें समीक्षा.
  2. पाठ बॉक्स में एक अनुमोदन कारण दर्ज करें।
  3. चुनें अनुमोदन करना.

मॉडल अब उत्पादन खाते में तैनात किया गया है।

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

सफाई करना

इस उदाहरण में आपके द्वारा चुने गए सभी संसाधनों को साफ करने के लिए, निम्नलिखित चरणों को पूरा करें:

  1. अपने मुख्य खाते के साथ कंसोल में साइन इन करें।
  2. AWS CloudFormation कंसोल पर क्लिक करें StackSets और हटाएं निम्नलिखित आइटम (समापन बिंदु):
    1. ठेस - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-prod
    2. मचान - sagemaker-<<sagemaker-project-name>>-<<project-id>>-deploy-staging
  3. अपने लैपटॉप या वर्कस्टेशन टर्मिनल में, का उपयोग करें AWS कमांड लाइन इंटरफ़ेस (AWS CLI) और अपनी परियोजना को हटाने के लिए निम्नलिखित कोड दर्ज करें:
    aws sagemaker delete-project --project-name iris-multi-01

सुनिश्चित करें कि आप उपयोग कर रहे हैं AWS सीएलआई का नवीनतम संस्करण.

अपने SageMaker प्रोजेक्ट के लिए टेम्पलेट बनाना और कस्टमाइज़ करना

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

एक उत्पाद AWS सेवा कैटलॉग द्वारा प्रबंधित CloudFormation टेम्पलेट है। टेम्प्लेट और उनकी आवश्यकताओं के बारे में अधिक जानकारी के लिए, देखें AWS CloudFormation टेम्पलेट प्रारूप.

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

निम्न आरेख आपके कस्टम SageMaker प्रोजेक्ट टेम्पलेट बनाने और प्रकाशित करने के लिए आपके द्वारा आवश्यक मुख्य चरणों को दिखाता है।

निम्न आरेख आपके कस्टम SageMaker प्रोजेक्ट टेम्पलेट बनाने और प्रकाशित करने के लिए आपके द्वारा आवश्यक मुख्य चरणों को दिखाता है।

हमने अनुभागों में इन चरणों का अधिक विस्तार से वर्णन किया है कस्टम SageMaker स्टूडियो प्रोजेक्ट टेम्पलेट आयात करना और अपना प्रोजेक्ट बनाना.

एक एमएल इंजीनियर के रूप में, आप डिजाइन और कर सकते हैं एक नया CloudFormation टेम्पलेट बनाएं परियोजना के लिए, AWS सेवा कैटलॉग पोर्टफोलियो तैयार करें, और इसमें एक नया उत्पाद जोड़ें।

दोनों डेटा वैज्ञानिक और एमएल इंजीनियर कस्टम टेम्पलेट के साथ एक नई परियोजना बनाने के लिए SageMaker Studio का उपयोग कर सकते हैं। SageMaker AWS सेवा कैटलॉग को आमंत्रित करता है और CloudFormation टेम्पलेट में वर्णित बुनियादी ढांचे को प्रावधान करना शुरू करता है।

एक डेटा वैज्ञानिक के रूप में, आप अब मॉडल का प्रशिक्षण शुरू कर सकते हैं। आपके द्वारा इसे मॉडल रजिस्ट्री में पंजीकृत करने के बाद, CI / CD पाइपलाइन स्वचालित रूप से चलती है और मॉडल को लक्ष्य खातों पर तैनात करती है।

यदि आप एक पाठ संपादक में इस पोस्ट से CloudFormation टेम्पलेट को देखते हैं, तो आप देख सकते हैं कि यह इस पोस्ट में हमारे द्वारा डिज़ाइन किए गए आर्किटेक्चर को लागू करता है।

निम्नलिखित कोड टेम्पलेट का एक स्निपेट है:

Description: Toolchain template which provides the resources needed to represent infrastructure as code. This template specifically creates a CI/CD pipeline to deploy a given inference image and pretrained Model to two stages in CD -- staging and production.
Parameters: SageMakerProjectName: Type: String SageMakerProjectId: Type: String
…
<<other parameters>>
…
Resources: MlOpsArtifactsBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain Properties: BucketName: …
… ModelDeployCodeCommitRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: … RepositoryDescription: … Code: S3: Bucket: … Key: …
… ModelDeployBuildProject: Type: AWS::CodeBuild::Project
… ModelDeployPipeline: Type: AWS::CodePipeline::Pipeline
…

टेम्प्लेट के दो मुख्य भाग हैं: Parameters (टेम्पलेट के इनपुट पैरामीटर्स) और Resources। SageMaker प्रोजेक्ट टेम्प्लेट की आवश्यकता है कि आप अपने टेम्पलेट में दो इनपुट पैरामीटर जोड़ते हैं: SageMakerProjectName और SageMakerProjectId। इन मापदंडों का उपयोग SageMaker Studio द्वारा आंतरिक रूप से किया जाता है। यदि आवश्यक हो तो आप अन्य मापदंडों को जोड़ सकते हैं।

स्निपेट के संसाधन अनुभाग में, आप देख सकते हैं कि यह निम्नलिखित बनाता है:

  • एक नई S3 बाल्टी, जिसका उपयोग CI / CD पाइपलाइन द्वारा मध्यस्थ कलाकृतियों को संग्रहीत करने के लिए एक चरण से दूसरे चरण में किया जाता है।
  • An AWS कोडकॉमिट तैनाती और परीक्षण चरणों के दौरान उपयोग की जाने वाली कलाकृतियों को संग्रहीत करने के लिए भंडार।
  • An एडब्ल्यूएस कोडबिल्ड कलाकृतियों को प्राप्त करने के लिए परियोजना, और परियोजना के लिए उन्हें मान्य और कॉन्फ़िगर करें। मल्टी-अकाउंट टेम्प्लेट में, यह परियोजना एक नया मॉडल रजिस्ट्री भी बनाती है, जिसका उपयोग CI / CD पाइपलाइन द्वारा नए मॉडल को तैनात करने के लिए किया जाता है।
  • एक CodePipeline वर्कफ़्लो जो CI / CD पाइपलाइनों के सभी चरणों को ऑर्केस्ट्रेट करता है।

हर बार जब आप मॉडल रजिस्ट्री के लिए एक नया मॉडल पंजीकृत करते हैं या CodeCommit रेपो में एक नया विरूपण साक्ष्य धक्का देते हैं, तो यह CodePipeline वर्कफ़्लो शुरू होता है। इन घटनाओं को एक द्वारा कब्जा कर लिया जाता है EventBridge नियम, उसी टेम्पलेट द्वारा प्रावधानित। CI / CD पाइपलाइन में निम्नलिखित चरण हैं:

  • स्रोत - CodeCommit भंडार से कलाकृतियों को पढ़ता है और अन्य चरणों के साथ साझा करता है।
  • बनाएँ - निम्नलिखित करने के लिए CodeBuild प्रोजेक्ट चलाता है:
    • सत्यापित करें कि क्या एक मॉडल रजिस्ट्री पहले से ही बनाई गई है, और यदि आवश्यक हो तो एक बनाएं।
    • एक नया CloudFormation टेम्पलेट तैयार करें जो अगले दो परिनियोजन चरणों द्वारा उपयोग किया जाता है।
  • नियुक्त करना - निम्नलिखित घटक शामिल हैं:
    • DeployResourceStaging - में तैयार CloudFormation टेम्प्लेट हो जाता है Build कदम और एक नया ढेर तैनात करता है। यह स्टैक लक्ष्य खाते में एक नया SageMaker समापन बिंदु दिखाता है।
    • टेस्टस्टेजिंग - एक दूसरा कोडबुइल्ड प्रोजेक्ट को आमंत्रित करता है जो एक कस्टम पायथन स्क्रिप्ट चलाता है जो तैनात किए गए समापन बिंदु का परीक्षण करता है।
    • अनुमोदन - एक मैनुअल अनुमोदन कदम। यदि अनुमोदित है, तो यह उत्पादन में एक समापन बिंदु को तैनात करने के लिए अगले चरण पर जाता है, या यदि अनुमोदित नहीं है तो वर्कफ़्लो को समाप्त करता है।
  • उत्पाद तैनात करें - के समान DeployStaging, यह एक ही CloudFormation टेम्पलेट का उपयोग करता है, लेकिन विभिन्न इनपुट मापदंडों के साथ। यह उत्पादन खाते में एक नए SageMaker समापन बिंदु को दर्शाता है। 

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

निष्कर्ष और अगले कदम

इस पोस्ट में, आपने देखा कि SageMaker पाइपलाइनों का उपयोग करके कई AWS खातों में ML मॉडल को प्रशिक्षित और तैनात करने के लिए अपने स्वयं के वातावरण को कैसे तैयार किया जाए।

SageMaker प्रोजेक्ट्स के साथ, यदि आप SageMaker प्रोजेक्ट टेम्प्लेट की लाइब्रेरी के रूप में अपने ML प्रोजेक्ट्स को प्रबंधित करना शुरू करते हैं, तो आपके पर्यावरण के शासन और सुरक्षा में काफी सुधार हो सकता है।

अगले चरण के रूप में, SageMaker प्रोजेक्ट टेम्पलेट को संशोधित करने का प्रयास करें और इसे अपने संगठन की आवश्यकताओं को पूरा करने के लिए अनुकूलित करें। जितने चाहें उतने चरण जोड़ें और ध्यान रखें कि आप CI / CD ईवेंट को कैप्चर कर सकते हैं और उपयोगकर्ताओं को सूचित कर सकते हैं या व्यापक समाधान बनाने के लिए अन्य सेवाओं को कॉल कर सकते हैं।


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

समीर अरुजो AWS / ML Solutions Architect in AWS है। वह एआईएस / एमएल समाधान बनाने वाले ग्राहकों को एडब्ल्यूएस प्लेटफॉर्म का उपयोग करके अपनी व्यावसायिक चुनौतियों को हल करने में मदद करता है। वह कंप्यूटर दृष्टि, प्राकृतिक भाषा प्रसंस्करण, पूर्वानुमान, किनारे पर एमएल, आदि से संबंधित कई एआई / एमएल परियोजनाओं पर काम कर रहे हैं। वह अपने खाली समय में हार्डवेयर और स्वचालन परियोजनाओं के साथ खेलना पसंद करते हैं, और रोबोटिक्स के लिए उनकी विशेष रुचि है।

स्रोत: https://aws.amazon.com/blogs/machine-learning/multi-account-model-deployment-with-amazon-sagemaker-pipelines/

स्पॉट_आईएमजी

नवीनतम खुफिया

स्पॉट_आईएमजी