Amazon SageMaker ব্যবহার করে মেশিন লার্নিং মডেল ট্রেনিং এবং ডিপ্লয়মেন্ট প্রক্রিয়া সাধারণত তিনটি প্রধান ধাপে বিভক্ত:
- ডেটা প্রস্তুতি ও প্রিপ্রসেসিং
- মডেল ট্রেনিং
- মডেল ডিপ্লয়মেন্ট এবং ইনফারেন্স
নিচে একটি সাধারণ উদাহরণ হিসেবে SageMaker ব্যবহার করে মডেল ট্রেনিং এবং ডিপ্লয়মেন্ট প্রক্রিয়াটি ব্যাখ্যা করা হলো। উদাহরণ হিসেবে আমরা একটি বেসিক ক্লাসিফিকেশন মডেল তৈরি করব যা ইমেইল স্প্যাম ডিটেক্ট করতে সহায়ক।
Step 1: ডেটা প্রস্তুতি এবং প্রিপ্রসেসিং
প্রথমে, আমরা Amazon S3-এ আমাদের ডেটাসেট আপলোড করব এবং SageMaker Notebooks-এ এটি প্রিপ্রসেস করব।
উদাহরণ:
import boto3
import sagemaker
from sagemaker import get_execution_role
# SageMaker এর জন্য সেশন এবং রোল সেটআপ
session = sagemaker.Session()
role = get_execution_role()
# ডেটাসেট Amazon S3 এ আপলোড
data_location = session.upload_data("spam_dataset.csv", bucket="your-s3-bucket", key_prefix="spam-data")
print(f"Data uploaded to {data_location}")
এই ধাপে, আমরা আমাদের ডেটাসেট প্রিপ্রসেস করব (যেমন, ফিচার স্কেলিং, লেবেল এনকোডিং), যাতে এটি ট্রেনিংয়ের জন্য প্রস্তুত হয়।
Step 2: মডেল ট্রেনিং
SageMaker অনেক প্রি-বিল্ট অ্যালগরিদম সমর্থন করে, তবে এখানে আমরা XGBoost ব্যবহার করে একটি ক্লাসিফিকেশন মডেল ট্রেনিং করব।
উদাহরণ:
from sagemaker.inputs import TrainingInput
from sagemaker.xgboost.estimator import XGBoost
# XGBoost মডেল সেটআপ
xgboost_estimator = XGBoost(
entry_point="train.py", # আপনার ট্রেনিং স্ক্রিপ্ট
framework_version="1.2-1",
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://your-s3-bucket/spam-model-output",
)
# ডেটা ইনপুট সেটআপ
train_input = TrainingInput(data_location, content_type="csv")
# মডেল ট্রেনিং শুরু করা
xgboost_estimator.fit({"train": train_input})
এখানে:
- entry_point : ট্রেনিং কোড ফাইলের নাম, যেখানে মডেলটি ট্রেনিংয়ের জন্য লিখিত আছে।
- instance_type : যে ধরণের EC2 instance ব্যবহৃত হবে।
- fit() : SageMaker মডেল ট্রেনিং শুরু করে।
Step 3: মডেল ডিপ্লয়মেন্ট এবং ইনফারেন্স
মডেল ট্রেনিং সম্পন্ন হলে, আমরা SageMaker এর মাধ্যমে মডেলটি ডিপ্লয় করব এবং API এন্ডপয়েন্ট তৈরি করব।
উদাহরণ:
# মডেল ডিপ্লয়মেন্ট
predictor = xgboost_estimator.deploy(
initial_instance_count=1,
instance_type="ml.m5.xlarge"
)
এই প্রক্রিয়ায় SageMaker একটি API Endpoint তৈরি করে, যা ব্যবহার করে আপনি মডেলটিতে ইনফারেন্স করতে পারবেন।
ইনফারেন্স
এখন আমরা এই এন্ডপয়েন্ট ব্যবহার করে নতুন ডেটা ইনপুট দিয়ে মডেল থেকে পূর্বাভাস নিতে পারি।
উদাহরণ:
import numpy as np
# ইনফারেন্সের জন্য ডেটা প্রস্তুতি
test_data = np.array([1.2, 3.4, 5.6]) # উদাহরণস্বরূপ
# পূর্বাভাস নেওয়া
prediction = predictor.predict(test_data)
print("Prediction:", prediction)
এখানে, predict() মেথডের মাধ্যমে মডেলটি ইনফারেন্স করে এবং ইনপুট ডেটার উপর ভিত্তি করে স্প্যাম বা নন-স্প্যাম বলে পূর্বাভাস প্রদান করে।
মডেল ডিপ্লয়মেন্টের পরবর্তী কার্যক্রম
- মডেল মনিটরিং: SageMaker Model Monitor ব্যবহার করে মডেলের কার্যকারিতা এবং ডেটার ড্রিফট পর্যবেক্ষণ করতে পারবেন।
- এন্ডপয়েন্ট মেইনটেন্যান্স: API Endpoint থেকে ইনফারেন্স কার্যক্রম পর্যবেক্ষণ এবং অপ্টিমাইজ করতে SageMaker বিভিন্ন টুলস প্রদান করে।
- স্কেলিং: মডেলের ব্যবহার বৃদ্ধির সাথে সাথে SageMaker মডেল এন্ডপয়েন্ট স্কেল করতে সাহায্য করে।
উপসংহার
এই প্রক্রিয়াটি Amazon SageMaker-এর মাধ্যমে একটি মডেল ট্রেনিং এবং ডিপ্লয়মেন্টের জন্য প্রয়োজনীয় মূল স্টেপগুলো বর্ণনা করে। SageMaker এর বিভিন্ন সুবিধা এবং ফিচার ব্যবহার করে এই ধরনের মডেল ট্রেনিং এবং ডিপ্লয়মেন্ট প্রক্রিয়া খুবই সহজ এবং কার্যকরভাবে সম্পন্ন করা সম্ভব।
Read more