अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस का उपयोग करके टेराफॉर्म के साथ मशीन लर्निंग पाइपलाइनों को तैनात और प्रबंधित करें। लंबवत खोज। ऐ.

Amazon SageMaker का उपयोग करके टेराफॉर्म के साथ मशीन लर्निंग पाइपलाइनों को तैनात और प्रबंधित करें

AWS ग्राहक अपने क्लाउड इन्फ्रास्ट्रक्चर को डिजाइन, विकसित और प्रबंधित करने के लिए इन्फ्रास्ट्रक्चर कोड (IaC) के रूप में भरोसा कर रहे हैं। IaC यह सुनिश्चित करता है कि विकास कार्यों (DevOps) के क्षेत्र में सर्वोत्तम प्रथाओं का पालन करने में सक्षम होने के साथ-साथ ग्राहक अवसंरचना और सेवाएँ सुसंगत, मापनीय और प्रतिलिपि प्रस्तुत करने योग्य हों।

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

इस पोस्ट में, हम आपको दिखाते हैं कि टेराफॉर्म और अमेज़ॅन सेजमेकर का उपयोग करके एमएल पाइपलाइनों को कैसे तैनात और प्रबंधित किया जाए।

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

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

चरण समारोह चरण

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

डॉकर छवि के साथ प्रशिक्षण और अनुमान के लिए एमएल-संबंधित कोड मुख्य रूप से निम्नलिखित में मौजूदा कार्य पर निर्भर करता है गिटहब भंडार.

निम्नलिखित आरेख समाधान वास्तुकला को दर्शाता है:

वास्तुकला आरेख

हम आपको निम्न उच्च-स्तरीय चरणों के बारे में बताते हैं:

  1. टेराफॉर्म के साथ अपने एडब्ल्यूएस बुनियादी ढांचे को तैनात करें।
  2. अपनी डॉकर छवि को Amazon ECR पर पुश करें।
  3. एमएल पाइपलाइन चलाएँ।
  4. अपने समापन बिंदु को आमंत्रित करें।

भंडार संरचना

आप निम्नलिखित में इस पोस्ट के लिए उपयोग किए गए कोड और डेटा युक्त भंडार पा सकते हैं गिटहब भंडार.

रिपॉजिटरी में निम्नलिखित निर्देशिकाएँ शामिल हैं:

  • /terraform - निम्नलिखित सबफ़ोल्डर से मिलकर बनता है:
    • ./infrastructure - परिवर्तनीय घोषणाओं के अलावा, जो हम बुनियादी ढांचे को तैनात करने के लिए उपयोग करते हैं, एमएल पाइपलाइन मॉड्यूल को कॉल करने वाली main.tf फ़ाइल शामिल है
    • ./ml-pipeline-module - टेराफॉर्म एमएल पाइपलाइन मॉड्यूल शामिल है, जिसे हम पुन: उपयोग कर सकते हैं
  • /src - निम्नलिखित सबफ़ोल्डर से मिलकर बनता है:
    • ./container - डॉकर छवि की परिभाषाओं के साथ प्रशिक्षण और अनुमान के लिए उदाहरण कोड शामिल है
    • ./lambda_function - लैम्ब्डा फ़ंक्शन जनरेटिंग कॉन्फ़िगरेशन के लिए पायथन कोड शामिल है, जैसे कि सेजमेकर प्रशिक्षण कार्य के लिए एक अद्वितीय जॉब आईडी
  • /data - निम्न फ़ाइल शामिल है:
    • ./iris.csv - एमएल मॉडल के प्रशिक्षण के लिए डेटा शामिल है

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

इस पूर्वाभ्यास के लिए, आपके पास निम्नलिखित शर्तें होनी चाहिए:

टेराफॉर्म के साथ अपने एडब्ल्यूएस बुनियादी ढांचे को तैनात करें

एमएल पाइपलाइन को परिनियोजित करने के लिए, आपको अपनी आवश्यकताओं के अनुसार कुछ चर और नामों को समायोजित करने की आवश्यकता है। इस चरण के लिए कोड में है /terraform निर्देशिका.

पहली बार प्रारंभ करते समय, फ़ाइल खोलें terraform/infrastructure/terraform.tfvars और चर समायोजित करें परियोजना का नाम आपके प्रोजेक्ट के नाम पर, वेरिएबल के अलावा क्षेत्र यदि आप किसी अन्य क्षेत्र में तैनाती करना चाहते हैं। आप अतिरिक्त चर भी बदल सकते हैं जैसे प्रशिक्षण और अनुमान के लिए उदाहरण प्रकार।

फिर टेराफॉर्म के साथ बुनियादी ढांचे को तैनात करने के लिए निम्नलिखित कमांड का उपयोग करें:

export AWS_PROFILE=<your_aws_cli_profile_name>
cd terraform/infrastructure
terraform init
terraform plan
terraform apply

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

आउटपुट निम्न प्रदर्शित आउटपुट के समान दिखना चाहिए, जिसमें ECR रिपॉजिटरी URL भी शामिल है:

Apply complete! Resources: 19 added, 0 changed, 0 destroyed. Outputs: ecr_repository_url = <account_number>.dkr.ecr.eu-west-1.amazonaws.com/ml-pipeline-terraform-demo

अपनी डॉकर छवि को अमेज़ॅन ईसीआर पर पुश करें

एमएल पाइपलाइन और सेजमेकर को अनुमान के लिए सेजमेकर एंडपॉइंट को प्रशिक्षित करने और प्रावधान करने के लिए, आपको एक डॉकर छवि प्रदान करने और इसे अमेज़ॅन ईसीआर में संग्रहीत करने की आवश्यकता है। आप निर्देशिका में एक उदाहरण पा सकते हैं src/container. यदि आपने पहले चरण से AWS अवसंरचना को पहले ही लागू कर लिया है, तो आप वर्णित अनुसार डॉकर छवि को आगे बढ़ा सकते हैं। आपकी डॉकर छवि विकसित होने के बाद, आप निम्नलिखित क्रियाएं कर सकते हैं और इसे Amazon ECR पर धकेल सकते हैं (अपनी आवश्यकताओं के अनुसार Amazon ECR URL को समायोजित करें):

cd src/container
export AWS_PROFILE=<your_aws_cli_profile_name>
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin <account_number>.dkr.ecr.eu-west-1.amazonaws.com
docker build -t ml-training .
docker tag ml-training:latest <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>:latest
docker push <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>

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

एमएल पाइपलाइन चलाएं

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

स्टार्ट स्टेप फंक्शन

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

सेजमेकर समापन बिंदु स्थिति

अपने समापन बिंदु को आमंत्रित करें

अपने एंडपॉइंट को लागू करने के लिए (इस उदाहरण में, आईरिस डेटासेट के लिए), आप निम्न पायथन स्क्रिप्ट का उपयोग कर सकते हैं: अजगर के लिए AWS SDK (Boto3). आप इसे सेजमेकर नोटबुक से कर सकते हैं, या लैम्ब्डा फ़ंक्शन में निम्नलिखित कोड स्निपेट एम्बेड कर सकते हैं:

import boto3
from io import StringIO
import pandas as pd client = boto3.client('sagemaker-runtime') endpoint_name = 'Your endpoint name' # Your endpoint name.
content_type = "text/csv"   # The MIME type of the input data in the request body. payload = pd.DataFrame([[1.5,0.2,4.4,2.6]])
csv_file = StringIO()
payload.to_csv(csv_file, sep=",", header=False, index=False)
payload_as_csv = csv_file.getvalue() response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=payload_as_csv
) label = response['Body'].read().decode('utf-8')
print(label)

क्लीन अप

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

  1. Amazon S3 कंसोल पर, S3 प्रशिक्षण बकेट में डेटासेट हटाएं।
  2. S3 मॉडल बकेट में ML पाइपलाइन के माध्यम से आपके द्वारा प्रशिक्षित सभी मॉडल हटाएं, या तो Amazon S3 कंसोल या AWS CLI के माध्यम से।
  3. टेराफॉर्म के माध्यम से बनाए गए बुनियादी ढांचे को नष्ट करें:
    cd terraform/infrastructure
    terraform destroy

  4. सेजमेकर एंडपॉइंट, एंडपॉइंट कॉन्फ़िगरेशन, और स्टेप फ़ंक्शंस के माध्यम से बनाए गए मॉडल को या तो सेजमेकर कंसोल पर या एडब्ल्यूएस सीएलआई के माध्यम से हटा दें।

निष्कर्ष

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

मैं आपको अपनी आवश्यकताओं और संभावित कंपनी मानकों के अनुसार सुरक्षा सुविधाओं को जोड़ने और सुरक्षा सर्वोत्तम प्रथाओं को अपनाने का पता लगाने के लिए प्रोत्साहित करता हूं। इसके अतिरिक्त, इस समाधान को अपनी CI/CD पाइपलाइनों में एम्बेड करने से आपको अपनी आवश्यकताओं के अनुसार DevOps की सर्वोत्तम प्रथाओं और मानकों को अपनाने और स्थापित करने में और अधिक क्षमताएँ मिलेंगी।


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

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

समय टिकट:

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