Amazon SageMaker PlatoBlockchain ڈیٹا انٹیلی جنس کا استعمال کرتے ہوئے Terraform کے ساتھ مشین لرننگ پائپ لائنوں کو تعینات اور ان کا نظم کریں۔ عمودی تلاش۔ عی

Amazon SageMaker کا استعمال کرتے ہوئے Terraform کے ساتھ مشین لرننگ پائپ لائنوں کو تعینات اور ان کا نظم کریں۔

AWS صارفین اپنے کلاؤڈ انفراسٹرکچر کو ڈیزائن کرنے، تیار کرنے اور ان کا نظم کرنے کے لیے بنیادی ڈھانچے کو بطور کوڈ (IaC) پر انحصار کر رہے ہیں۔ IaC اس بات کو یقینی بناتا ہے کہ کسٹمر کا بنیادی ڈھانچہ اور خدمات مستقل، توسیع پذیر، اور دوبارہ پیدا کرنے کے قابل ہیں، جبکہ ترقیاتی کاموں (DevOps) کے شعبے میں بہترین طریقوں پر عمل کرنے کے قابل ہیں۔

IaC کے ساتھ AWS انفراسٹرکچر اور خدمات کا انتظام کرنے کا ایک ممکنہ طریقہ ہے۔ ٹرافیفار، جو ڈویلپرز کو دوبارہ قابل استعمال کوڈ ماڈیولز میں اپنے بنیادی ڈھانچے کو منظم کرنے کی اجازت دیتا ہے۔ مشین لرننگ (ML) کے شعبے میں یہ پہلو تیزی سے اہمیت حاصل کر رہا ہے۔ ML پائپ لائنوں کو تیار کرنا اور ان کا انتظام کرنا، بشمول IaC کے طور پر Terraform کے ساتھ تربیت اور اندازہ، آپ کو بنیادی ڈھانچے کو شروع سے تیار کیے بغیر ایک سے زیادہ ML استعمال کے معاملات یا خطوں کے لیے آسانی سے پیمائش کرنے دیتا ہے۔ مزید برآں، یہ بنیادی ڈھانچے (مثال کے طور پر، مثال کی قسم اور سائز) کے لیے ML پائپ لائن کے مختلف نفاذ میں تربیت اور اندازہ کے لیے مستقل مزاجی فراہم کرتا ہے۔ یہ آپ کو درخواستوں اور آنے والی ٹریفک کو مختلف جگہوں پر روٹ کرنے دیتا ہے۔ ایمیزون سیج میکر نقطہ

اس پوسٹ میں، ہم آپ کو دکھاتے ہیں کہ Terraform اور Amazon SageMaker کا استعمال کرتے ہوئے ML پائپ لائنوں کو کیسے تعینات اور ان کا نظم کریں۔

حل جائزہ

یہ پوسٹ کوڈ فراہم کرتی ہے اور Amazon SageMaker کا استعمال کرتے ہوئے ماڈل ٹریننگ اور اندازہ لگانے کے لیے Terraform کے ساتھ ML پائپ لائنز کے لیے AWS انفراسٹرکچر کو تعینات کرنے کے لیے ضروری اقدامات کے بارے میں بتاتی ہے۔ ایم ایل پائپ لائن کا انتظام بذریعہ کیا جاتا ہے۔ AWS اسٹیپ فنکشنز ML پائپ لائن میں لاگو کیے گئے مختلف مراحل کو ترتیب دینے کے لیے، جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے۔

سٹیپ فنکشن سٹیپس

سٹیپ فنکشنز شروع ہوتا ہے۔ او ڈبلیو ایس لامبڈا۔ فنکشن، ایک منفرد جاب آئی ڈی تیار کرتا ہے، جو سیج میکر ٹریننگ جاب شروع کرتے وقت استعمال ہوتا ہے۔ اسٹیپ فنکشنز ایک ماڈل، اینڈ پوائنٹ کنفیگریشن، اور اینڈ پوائنٹ بھی بناتا ہے جو اندازہ لگانے کے لیے استعمال ہوتا ہے۔ اضافی وسائل میں درج ذیل شامل ہیں:

ڈوکر امیج کے ساتھ تربیت اور اندازہ کے لیے ML سے متعلقہ کوڈ بنیادی طور پر درج ذیل میں موجودہ کام پر انحصار کرتا ہے۔ GitHub ذخیرہ.

درج ذیل خاکہ حل کے فن تعمیر کی وضاحت کرتا ہے:

فن تعمیر کا ڈایاگرام

ہم آپ کو درج ذیل اعلیٰ سطحی مراحل سے گزارتے ہیں:

  1. اپنے AWS انفراسٹرکچر کو Terraform کے ساتھ تعینات کریں۔
  2. اپنی ڈوکر امیج کو ایمیزون ای سی آر پر پش کریں۔
  3. ایم ایل پائپ لائن چلائیں۔
  4. اپنے اختتامی نقطہ کو طلب کریں۔

ذخیرہ کی ساخت

آپ مندرجہ ذیل میں اس پوسٹ کے لیے استعمال کردہ کوڈ اور ڈیٹا پر مشتمل ذخیرہ تلاش کر سکتے ہیں۔ GitHub ذخیرہ.

ذخیرہ میں درج ذیل ڈائریکٹریز شامل ہیں:

  • /terraform - درج ذیل ذیلی فولڈرز پر مشتمل ہے:
    • ./infrastructure - ML پائپ لائن ماڈیول کو کال کرنے والی main.tf فائل پر مشتمل ہے، متغیر اعلانات کے علاوہ جو ہم انفراسٹرکچر کو تعینات کرنے کے لیے استعمال کرتے ہیں۔
    • ./ml-pipeline-module - Terraform ML پائپ لائن ماڈیول پر مشتمل ہے، جسے ہم دوبارہ استعمال کر سکتے ہیں۔
  • /src - درج ذیل ذیلی فولڈرز پر مشتمل ہے:
    • ./container - ڈوکر امیج کی تعریفوں کے ساتھ تربیت اور اندازہ کے لیے مثالی کوڈ پر مشتمل ہے۔
    • ./lambda_function - لیمبڈا فنکشن جنریٹنگ کنفیگریشنز کے لیے ازگر کوڈ پر مشتمل ہے، جیسے سیج میکر ٹریننگ جاب کے لیے ایک منفرد جاب ID
  • /data - درج ذیل فائل پر مشتمل ہے:
    • ./iris.csv - ایم ایل ماڈل کی تربیت کے لیے ڈیٹا پر مشتمل ہے۔

شرائط

اس واک تھرو کے لیے، آپ کے پاس درج ذیل شرائط ہونی چاہئیں:

اپنے AWS انفراسٹرکچر کو Terraform کے ساتھ تعینات کریں۔

ایم ایل پائپ لائن کو تعینات کرنے کے لیے، آپ کو اپنی ضروریات کے مطابق چند متغیرات اور ناموں کو ایڈجسٹ کرنے کی ضرورت ہے۔ اس قدم کا کوڈ میں ہے۔ /terraform ڈائریکٹری.

پہلی بار شروع کرتے وقت، فائل کو کھولیں۔ terraform/infrastructure/terraform.tfvars اور متغیر کو ایڈجسٹ کریں۔ پراجیکٹ کا نام متغیر کے علاوہ آپ کے پروجیکٹ کے نام پر خطے اگر آپ کسی دوسرے علاقے میں تعینات کرنا چاہتے ہیں۔ آپ اضافی متغیرات کو بھی تبدیل کر سکتے ہیں جیسے کہ تربیت اور تخمینہ کے لیے مثال کی اقسام۔

پھر Terraform کے ساتھ انفراسٹرکچر کو تعینات کرنے کے لیے درج ذیل کمانڈز کا استعمال کریں:

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

آؤٹ پٹ کو چیک کریں اور اس بات کو یقینی بنائیں کہ منصوبہ بند وسائل صحیح طریقے سے ظاہر ہوں، اور اگر سب کچھ درست ہے تو درخواست کے مرحلے میں ہاں کے ساتھ تصدیق کریں۔ پھر Amazon ECR کنسول پر جائیں (یا ٹرمینل میں Terraform کا آؤٹ پٹ چیک کریں) اور اپنے ECR ریپوزٹری کا URL حاصل کریں جو آپ نے Terraform کے ذریعے بنایا ہے۔

آؤٹ پٹ درج ذیل ڈسپلے آؤٹ پٹ کی طرح نظر آنا چاہیے، بشمول ECR ریپوزٹری یو آر ایل:

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

اپنی ڈوکر امیج کو ایمیزون ای سی آر پر پش کریں۔

ML پائپ لائن اور SageMaker کو تربیت دینے اور اندازہ کے لیے SageMaker اینڈ پوائنٹ فراہم کرنے کے لیے، آپ کو ایک Docker امیج فراہم کرنے اور اسے Amazon ECR میں اسٹور کرنے کی ضرورت ہے۔ آپ کو ڈائریکٹری میں ایک مثال مل سکتی ہے۔ src/container. اگر آپ پہلے سے ہی AWS انفراسٹرکچر کو پہلے سے ہی لاگو کر چکے ہیں، تو آپ ڈوکر امیج کو آگے بڑھا سکتے ہیں جیسا کہ بیان کیا گیا ہے۔ آپ کی ڈوکر امیج تیار ہونے کے بعد، آپ مندرجہ ذیل اقدامات کر سکتے ہیں اور اسے ایمیزون ای سی آر پر دھکیل سکتے ہیں (اپنی ضروریات کے مطابق ایمیزون ای سی آر یو آر ایل کو ایڈجسٹ کریں):

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>

اگر آپ نے پہلے ہی Terraform کے ساتھ AWS انفراسٹرکچر کا اطلاق کر دیا ہے، تو آپ Terraform کے ذریعے دوبارہ تعینات کیے بغیر اپنے کوڈ اور ڈوکر امیج کی تبدیلیوں کو براہ راست Amazon ECR پر بھیج سکتے ہیں۔

ایم ایل پائپ لائن چلائیں۔

ایم ایل پائپ لائن کو تربیت دینے اور چلانے کے لیے، سٹیپ فنکشنز کنسول پر جائیں اور عمل درآمد شروع کریں۔ آپ ریاستی مشین کے تصور میں ہر قدم کی پیشرفت کو چیک کر سکتے ہیں۔ آپ سیج میکر کی تربیتی ملازمت کی پیشرفت اور اپنے سیج میکر کے اختتامی نقطہ کی حیثیت بھی دیکھ سکتے ہیں۔

سٹیپ فنکشن شروع کریں۔

اسٹیپ فنکشنز میں سٹیٹ مشین کو کامیابی سے چلانے کے بعد، آپ دیکھ سکتے ہیں کہ سیج میکر اینڈ پوائنٹ بن گیا ہے۔ سیج میکر کنسول پر، منتخب کریں۔ ارادہ نیویگیشن پین میں، پھر اختتامی نکات. InService میں اسٹیٹس کے تبدیل ہونے کا انتظار کرنا یقینی بنائیں۔

سیج میکر اینڈ پوائنٹ کی حیثیت

اپنے اختتامی نقطہ کو طلب کریں۔

اپنے اختتامی نقطہ کو طلب کرنے کے لیے (اس مثال میں، iris ڈیٹاسیٹ کے لیے)، آپ مندرجہ ذیل Python اسکرپٹ کے ساتھ استعمال کر سکتے ہیں AWS SDK برائے Python (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)

صاف کرو

آپ Terraform کی طرف سے بنائے گئے انفراسٹرکچر کو Terraform Destroy کمانڈ سے تباہ کر سکتے ہیں، لیکن آپ کو پہلے S3 بالٹی میں موجود ڈیٹا اور فائلوں کو حذف کرنے کی ضرورت ہے۔ مزید برآں، سیج میکر اینڈ پوائنٹ (یا ایک سے زیادہ سیج میکر اینڈ پوائنٹس اگر ایک سے زیادہ بار چلائے جائیں) اسٹیپ فنکشنز کے ذریعے بنائے جاتے ہیں اور ٹیرافارم کے ذریعے منظم نہیں ہوتے ہیں۔ اس کا مطلب ہے کہ تعیناتی اس وقت ہوتی ہے جب اسٹیپ فنکشنز کے ساتھ ایم ایل پائپ لائن چلا رہے ہوں۔ لہذا، اس بات کو یقینی بنائیں کہ آپ SageMaker اینڈ پوائنٹ یا اسٹیپ فنکشنز ML پائپ لائن کے ذریعے بنائے گئے اینڈ پوائنٹس کو بھی حذف کر دیں تاکہ غیر ضروری اخراجات سے بچا جا سکے۔ درج ذیل مراحل کو مکمل کریں:

  1. Amazon S3 کنسول پر، S3 ٹریننگ بالٹی میں ڈیٹا سیٹ کو حذف کریں۔
  2. S3 ماڈلز بالٹی میں ML پائپ لائن کے ذریعے تربیت یافتہ تمام ماڈلز کو حذف کریں، یا تو Amazon S3 کنسول یا AWS CLI کے ذریعے۔
  3. Terraform کے ذریعے بنائے گئے انفراسٹرکچر کو تباہ کریں:
    cd terraform/infrastructure
    terraform destroy

  4. SageMaker کنسول پر یا AWS CLI کے ذریعے SageMaker اینڈ پوائنٹس، اینڈ پوائنٹ کنفیگریشن، اور سٹیپ فنکشنز کے ذریعے بنائے گئے ماڈلز کو حذف کریں۔

نتیجہ

مبارک ہو! آپ نے Terraform کے ساتھ SageMaker کا استعمال کرتے ہوئے ایک ML پائپ لائن لگائی ہے۔ یہ مثال حل دکھاتا ہے کہ آپ کس طرح آسانی سے AWS انفراسٹرکچر اور خدمات کو دوبارہ قابل استعمال انداز میں ML پائپ لائنوں کے لیے تعینات کر سکتے ہیں۔ یہ آپ کو ایک سے زیادہ استعمال کے کیسز یا ریجنز کی پیمائش کرنے کی اجازت دیتا ہے، اور ML ماڈلز کو ایک کلک کے ساتھ تربیت اور تعینات کرنے کے قابل بناتا ہے۔ مزید برآں، آپ ML پائپ لائن کو کئی بار چلا سکتے ہیں، مثال کے طور پر، جب نیا ڈیٹا دستیاب ہو یا آپ الگورتھم کوڈ کو تبدیل کرنا چاہتے ہوں۔ آپ مختلف سیج میکر اینڈ پوائنٹس پر درخواستوں یا ٹریفک کو روٹ کرنے کا بھی انتخاب کر سکتے ہیں۔

میں آپ کی حوصلہ افزائی کرتا ہوں کہ آپ اپنی ضروریات اور ممکنہ کمپنی کے معیارات کے مطابق سیکیورٹی کی خصوصیات کو شامل کرنے اور سیکیورٹی کے بہترین طریقوں کو اپنانے کی تلاش کریں۔ مزید برآں، اس حل کو اپنی CI/CD پائپ لائنوں میں شامل کرنے سے آپ کو اپنی ضروریات کے مطابق DevOps کے بہترین طریقوں اور معیارات کو اپنانے اور قائم کرنے میں مزید صلاحیتیں ملیں گی۔


مصنف کے بارے میں

Amazon SageMaker PlatoBlockchain ڈیٹا انٹیلی جنس کا استعمال کرتے ہوئے Terraform کے ساتھ مشین لرننگ پائپ لائنوں کو تعینات اور ان کا نظم کریں۔ عمودی تلاش۔ عیاولیور زولیکوفر ایمیزون ویب سروسز میں ڈیٹا سائنٹسٹ ہے۔ وہ عالمی انٹرپرائز صارفین کو مشین لرننگ ماڈلز بنانے، تربیت دینے اور تعینات کرنے کے ساتھ ساتھ MLOps کے ساتھ ML ماڈل لائف سائیکل کا انتظام کرنے کے قابل بناتا ہے۔ مزید یہ کہ وہ کلاؤڈ سے متعلقہ حل تیار کرتا ہے اور آرکیٹیکٹس کرتا ہے۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ