Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে Terraform এর সাথে মেশিন লার্নিং পাইপলাইন স্থাপন এবং পরিচালনা করুন। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker ব্যবহার করে Terraform এর সাথে মেশিন লার্নিং পাইপলাইন স্থাপন এবং পরিচালনা করুন

AWS গ্রাহকরা তাদের ক্লাউড অবকাঠামো ডিজাইন, বিকাশ এবং পরিচালনা করতে কোড (IaC) হিসাবে অবকাঠামোর উপর নির্ভর করছে। IaC নিশ্চিত করে যে গ্রাহক পরিকাঠামো এবং পরিষেবাগুলি সামঞ্জস্যপূর্ণ, স্কেলযোগ্য এবং পুনরুত্পাদনযোগ্য, পাশাপাশি উন্নয়ন ক্রিয়াকলাপের ক্ষেত্রে (DevOps) সর্বোত্তম অনুশীলনগুলি অনুসরণ করতে সক্ষম।

IaC এর সাথে AWS পরিকাঠামো এবং পরিষেবাগুলি পরিচালনা করার একটি সম্ভাব্য পদ্ধতি হল Terraform, যা ডেভেলপারদের পুনরায় ব্যবহারযোগ্য কোড মডিউলে তাদের পরিকাঠামো সংগঠিত করতে দেয়। মেশিন লার্নিং (এমএল) এর ক্ষেত্রে এই দিকটি ক্রমশ গুরুত্ব পাচ্ছে। IaC হিসাবে Terraform-এর সাথে প্রশিক্ষণ এবং অনুমান সহ ML পাইপলাইনগুলির বিকাশ এবং পরিচালনা করা, আপনাকে স্ক্র্যাচ থেকে পরিকাঠামো বিকাশ না করেই একাধিক ML ব্যবহারের ক্ষেত্রে বা অঞ্চলগুলির জন্য সহজেই স্কেল করতে দেয়৷ তদ্ব্যতীত, এটি এমএল পাইপলাইনের বিভিন্ন বাস্তবায়ন জুড়ে প্রশিক্ষণ এবং অনুমানের জন্য অবকাঠামো (উদাহরণস্বরূপ, উদাহরণের ধরন এবং আকার) জন্য ধারাবাহিকতা প্রদান করে। এটি আপনাকে রুট অনুরোধ এবং আগত ট্র্যাফিককে ভিন্ন করতে দেয় আমাজন সেজমেকার শেষ পয়েন্ট

এই পোস্টে, আমরা আপনাকে দেখাব কিভাবে Terraform এবং Amazon SageMaker ব্যবহার করে ML পাইপলাইন স্থাপন ও পরিচালনা করতে হয়।

সমাধান ওভারভিউ

এই পোস্টটি কোড প্রদান করে এবং Amazon SageMaker ব্যবহার করে মডেল প্রশিক্ষণ এবং অনুমানের জন্য Terraform সহ ML পাইপলাইনগুলির জন্য AWS পরিকাঠামো স্থাপনের প্রয়োজনীয় পদক্ষেপগুলির মধ্য দিয়ে চলে। এমএল পাইপলাইন এর মাধ্যমে পরিচালিত হয় এডাব্লুএস স্টেপ ফাংশন ML পাইপলাইনে বাস্তবায়িত বিভিন্ন পদক্ষেপগুলি অর্কেস্ট্রেট করতে, যেমনটি নিম্নলিখিত চিত্রে চিত্রিত হয়েছে।

Step Function Steps

ধাপ ফাংশন একটি শুরু হয় এডাব্লুএস ল্যাম্বদা ফাংশন, একটি অনন্য কাজের আইডি তৈরি করে, যেটি সেজমেকার প্রশিক্ষণের কাজ শুরু করার সময় ব্যবহৃত হয়। স্টেপ ফাংশন একটি মডেল, এন্ডপয়েন্ট কনফিগারেশন এবং অনুমানের জন্য ব্যবহৃত এন্ডপয়েন্ট তৈরি করে। অতিরিক্ত সম্পদ নিম্নলিখিত অন্তর্ভুক্ত:

একটি ডকার ইমেজ সহ প্রশিক্ষণ এবং অনুমানের জন্য এমএল-সম্পর্কিত কোড প্রধানত নিম্নলিখিত বিদ্যমান কাজের উপর নির্ভর করে GitHub সংগ্রহস্থল.

নিম্নলিখিত চিত্রটি সমাধান আর্কিটেকচারকে চিত্রিত করে:

স্থাপত্য চিত্র

আমরা আপনাকে নিম্নোক্ত উচ্চ-স্তরের পদক্ষেপের মধ্য দিয়ে চলেছি:

  1. Terraform এর সাথে আপনার AWS পরিকাঠামো স্থাপন করুন।
  2. আপনার ডকার ইমেজ অ্যামাজন ইসিআর-এ পুশ করুন।
  3. এমএল পাইপলাইন চালান।
  4. আপনার শেষ বিন্দু আহ্বান করুন.

সংগ্রহস্থল কাঠামো

আপনি নিম্নলিখিত কোড এবং এই পোস্টের জন্য ব্যবহৃত ডেটা ধারণকারী সংগ্রহস্থল খুঁজে পেতে পারেন GitHub সংগ্রহস্থল.

সংগ্রহস্থল নিম্নলিখিত ডিরেক্টরি অন্তর্ভুক্ত:

  • /terraform - নিম্নলিখিত সাবফোল্ডার নিয়ে গঠিত:
    • ./infrastructure - ML পাইপলাইন মডিউল কল করার main.tf ফাইল রয়েছে, পরিবর্তনশীল ঘোষণাগুলি ছাড়াও যা আমরা পরিকাঠামো স্থাপন করতে ব্যবহার করি
    • ./ml-pipeline-module - Terraform ML পাইপলাইন মডিউল রয়েছে, যা আমরা পুনরায় ব্যবহার করতে পারি
  • /src - নিম্নলিখিত সাবফোল্ডার নিয়ে গঠিত:
    • ./container - ডকার চিত্রের সংজ্ঞা সহ প্রশিক্ষণ এবং অনুমানের জন্য উদাহরণ কোড রয়েছে
    • ./lambda_function - ল্যাম্বডা ফাংশন তৈরির কনফিগারেশনের জন্য পাইথন কোড রয়েছে, যেমন সেজমেকার প্রশিক্ষণ কাজের জন্য একটি অনন্য কাজের আইডি
  • /data - নিম্নলিখিত ফাইল ধারণ করে:
    • ./iris.csv - এমএল মডেল প্রশিক্ষণের জন্য ডেটা রয়েছে

পূর্বশর্ত

এই ওয়াকথ্রুটির জন্য, আপনার নিম্নলিখিত পূর্বশর্তগুলি থাকা উচিত:

Terraform এর সাথে আপনার AWS পরিকাঠামো স্থাপন করুন

এমএল পাইপলাইন স্থাপন করতে, আপনাকে আপনার প্রয়োজন অনুযায়ী কয়েকটি ভেরিয়েবল এবং নাম সামঞ্জস্য করতে হবে। এই ধাপের জন্য কোড আছে /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 সংগ্রহস্থলের 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 পরিকাঠামো প্রয়োগ করে থাকেন, তাহলে বর্ণনা অনুযায়ী আপনি ডকার ইমেজটি পুশ করতে পারেন। আপনার ডকার ইমেজ বিকশিত হওয়ার পরে, আপনি নিম্নলিখিত পদক্ষেপগুলি নিতে পারেন এবং এটিকে অ্যামাজন ইসিআর-এ ঠেলে দিতে পারেন (আপনার প্রয়োজন অনুসারে অ্যামাজন ইসিআর 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>

আপনি যদি ইতিমধ্যেই টেরাফর্মের সাথে AWS পরিকাঠামো প্রয়োগ করে থাকেন, তাহলে আপনি আবার Terraform এর মাধ্যমে স্থাপন না করেই আপনার কোড এবং ডকার ইমেজের পরিবর্তন সরাসরি Amazon ECR-তে পুশ করতে পারেন।

এমএল পাইপলাইন চালান

ML পাইপলাইন প্রশিক্ষণ ও চালানোর জন্য, স্টেপ ফাংশন কনসোলে যান এবং বাস্তবায়ন শুরু করুন। আপনি স্টেট মেশিনের ভিজ্যুয়ালাইজেশনের প্রতিটি ধাপের অগ্রগতি পরীক্ষা করতে পারেন। আপনি সেজমেকার প্রশিক্ষণ কাজের অগ্রগতি এবং আপনার সেজমেকার শেষ পয়েন্টের অবস্থাও পরীক্ষা করতে পারেন।

স্টেপ ফাংশন শুরু করুন

স্টেপ ফাংশনে স্টেট মেশিন সফলভাবে চালানোর পর, আপনি দেখতে পাবেন যে সেজমেকার এন্ডপয়েন্ট তৈরি করা হয়েছে। সেজমেকার কনসোলে, নির্বাচন করুন অনুমিতি নেভিগেশন ফলকে, তারপর সমাপ্তি. InService-এ স্থিতি পরিবর্তন করার জন্য অপেক্ষা করা নিশ্চিত করুন।

সেজমেকার এন্ডপয়েন্ট স্ট্যাটাস

আপনার শেষ বিন্দু আহ্বান করুন

আপনার এন্ডপয়েন্ট চালু করতে (এই উদাহরণে, আইরিস ডেটাসেটের জন্য), আপনি নিম্নলিখিত পাইথন স্ক্রিপ্টটি ব্যবহার করতে পারেন Python (Boto3) এর জন্য AWS SDK. আপনি একটি SageMaker নোটবুক থেকে এটি করতে পারেন, বা একটি Lambda ফাংশনে নিম্নলিখিত কোড স্নিপেট এম্বেড করতে পারেন:

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)

পরিষ্কার কর

আপনি টেরাফর্ম ধ্বংস কমান্ড দিয়ে টেরাফর্ম দ্বারা তৈরি অবকাঠামো ধ্বংস করতে পারেন, তবে আপনাকে প্রথমে S3 বাকেটের ডেটা এবং ফাইলগুলি মুছতে হবে। উপরন্তু, সেজমেকার এন্ডপয়েন্ট (অথবা একাধিক সেজমেকার এন্ডপয়েন্ট একাধিকবার চালানো হলে) স্টেপ ফাংশনের মাধ্যমে তৈরি করা হয় এবং টেরাফর্মের মাধ্যমে পরিচালিত হয় না। এর মানে হল যে ডিপ্লয়মেন্ট ঘটে যখন স্টেপ ফাংশন সহ ML পাইপলাইন চালানো হয়। অতএব, নিশ্চিত করুন যে আপনি অপ্রয়োজনীয় খরচ এড়াতে স্টেপ ফাংশন ML পাইপলাইনের মাধ্যমে তৈরি সেজমেকার এন্ডপয়েন্ট বা এন্ডপয়েন্ট মুছে ফেলেছেন। নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Amazon S3 কনসোলে, S3 ট্রেনিং বাকেটের ডেটাসেট মুছুন।
  2. S3 মডেলের বালতিতে ML পাইপলাইনের মাধ্যমে প্রশিক্ষিত সমস্ত মডেল মুছুন, হয় Amazon S3 কনসোল বা AWS CLI এর মাধ্যমে।
  3. Terraform এর মাধ্যমে তৈরি অবকাঠামো ধ্বংস করুন:
    cd terraform/infrastructure
    terraform destroy

  4. SageMaker এন্ডপয়েন্ট, এন্ডপয়েন্ট কনফিগারেশন এবং স্টেপ ফাংশনের মাধ্যমে তৈরি মডেলগুলি মুছুন, সেজমেকার কনসোলে বা AWS CLI-এর মাধ্যমে।

উপসংহার

অভিনন্দন! আপনি Terraform এর সাথে SageMaker ব্যবহার করে একটি ML পাইপলাইন স্থাপন করেছেন। এই উদাহরণ সমাধানটি দেখায় কিভাবে আপনি সহজেই পুনরায় ব্যবহারযোগ্য ফ্যাশনে ML পাইপলাইনের জন্য AWS পরিকাঠামো এবং পরিষেবা স্থাপন করতে পারেন। এটি আপনাকে একাধিক ব্যবহারের ক্ষেত্রে বা অঞ্চলগুলির জন্য স্কেল করার অনুমতি দেয় এবং সামঞ্জস্যপূর্ণ উপায়ে এক ক্লিকে প্রশিক্ষণ এবং এমএল মডেলগুলি স্থাপন করতে সক্ষম করে৷ উপরন্তু, আপনি একাধিকবার ML পাইপলাইন চালাতে পারেন, উদাহরণস্বরূপ, যখন নতুন ডেটা পাওয়া যায় বা আপনি অ্যালগরিদম কোড পরিবর্তন করতে চান। আপনি বিভিন্ন সেজমেকার এন্ডপয়েন্টে রুট অনুরোধ বা ট্র্যাফিক বেছে নিতে পারেন।

আমি আপনাকে নিরাপত্তা বৈশিষ্ট্য যোগ করার জন্য এবং আপনার চাহিদা এবং সম্ভাব্য কোম্পানির মান অনুযায়ী নিরাপত্তার সর্বোত্তম অনুশীলনগুলি অন্বেষণ করতে উত্সাহিত করি৷ উপরন্তু, আপনার CI/CD পাইপলাইনগুলিতে এই সমাধানটি এম্বেড করা আপনাকে আপনার প্রয়োজনীয়তা অনুসারে DevOps সেরা অনুশীলন এবং মানগুলি গ্রহণ এবং প্রতিষ্ঠা করার আরও ক্ষমতা দেবে।


লেখক সম্পর্কে

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে Terraform এর সাথে মেশিন লার্নিং পাইপলাইন স্থাপন এবং পরিচালনা করুন। উল্লম্ব অনুসন্ধান. আ.অলিভার জোলিকোফার আমাজন ওয়েব সার্ভিসের একজন ডেটা সায়েন্টিস্ট। তিনি গ্লোবাল এন্টারপ্রাইজ গ্রাহকদের মেশিন লার্নিং মডেল তৈরি, প্রশিক্ষণ এবং স্থাপন করতে সক্ষম করে, সেইসাথে MLOps-এর সাথে ML মডেল জীবনচক্র পরিচালনা করতে। আরও, তিনি ক্লাউড সলিউশন তৈরি এবং স্থপতি করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং