Amazon SageMaker ব্যবহারকারীদের জন্য বিভিন্ন বিল্ট-ইন অ্যালগরিদম এবং কাস্টম মডেল তৈরির সুযোগ প্রদান করে। এটি ব্যবহারকারীদের মেশিন লার্নিং মডেল তৈরি ও প্রশিক্ষণ করার প্রক্রিয়াটি সহজ করে তোলে। নিচে SageMaker-এর বিল্ট-ইন অ্যালগরিদম এবং কাস্টম মডেল তৈরির প্রক্রিয়া সম্পর্কে আলোচনা করা হলো।
SageMaker বিভিন্ন বিল্ট-ইন মেশিন লার্নিং অ্যালগরিদম সরবরাহ করে, যা বিভিন্ন সমস্যা সমাধানে ব্যবহার করা যায়। কিছু জনপ্রিয় বিল্ট-ইন অ্যালগরিদম হলো:
Linear Learner
XGBoost
K-Means
Image Classification
DeepAR
SageMaker ব্যবহারকারীদের তাদের নিজস্ব কাস্টম মডেল তৈরি করারও সুযোগ দেয়। কাস্টম মডেল তৈরি করার প্রক্রিয়া হল:
Amazon SageMaker বিল্ট-ইন অ্যালগরিদম এবং কাস্টম মডেল তৈরির মাধ্যমে মেশিন লার্নিং প্রকল্পের জন্য একটি শক্তিশালী প্ল্যাটফর্ম প্রদান করে। SageMaker-এর বিল্ট-ইন অ্যালগরিদমগুলি ব্যবহার করে ব্যবহারকারীরা দ্রুত এবং সহজে বিভিন্ন সমস্যার সমাধান করতে পারেন, যখন কাস্টম মডেল তৈরির মাধ্যমে তারা বিশেষায়িত প্রয়োজনীয়তার জন্য উন্নত সমাধান তৈরি করতে পারেন।
Amazon SageMaker বিভিন্ন বিল্ট-ইন অ্যালগরিদম প্রদান করে, যা ব্যবহারকারীদের বিভিন্ন মেশিন লার্নিং কাজ, যেমন ক্লাসিফিকেশন, রিগ্রেশন, ক্লাস্টারিং, এবং অ্যানোমালি ডিটেকশন, সম্পন্ন করতে সাহায্য করে। এই অ্যালগরিদমগুলো অত্যন্ত কার্যকর এবং ব্যবহারকারী বান্ধব, যা মডেল প্রশিক্ষণের প্রক্রিয়াকে সহজ করে তোলে। নিচে SageMaker এর কিছু মূল বিল্ট-ইন অ্যালগরিদমের তালিকা এবং তাদের ব্যবহারের ক্ষেত্রগুলি উল্লেখ করা হলো।
Amazon SageMaker এর বিভিন্ন বিল্ট-ইন অ্যালগরিদমগুলি ব্যবহারকারীদের জন্য দ্রুত এবং কার্যকরভাবে মেশিন লার্নিং মডেল তৈরি করার সুযোগ দেয়। এই অ্যালগরিদমগুলোর মাধ্যমে ব্যবহারকারীরা বিভিন্ন ডেটা বিশ্লেষণ এবং ভবিষ্যদ্বাণী করার কাজগুলো সম্পন্ন করতে সক্ষম হন, যা তাদের মেশিন লার্নিং প্রকল্পগুলির সফলতা নিশ্চিত করে। SageMaker এর এই অ্যালগরিদমগুলি উচ্চমানের এবং কার্যকর ফলাফল প্রদান করে, যা মেশিন লার্নিং গবেষণা এবং বাস্তবায়নের জন্য অপরিহার্য।
Amazon SageMaker-এ Custom Model Training এবং Docker ব্যবহার করে Container তৈরি করা একটি কার্যকরী পদ্ধতি, যা ব্যবহারকারীদের নিজস্ব মডেল তৈরি ও প্রশিক্ষণ করার সুযোগ দেয়। এখানে এই প্রক্রিয়াটি ধাপে ধাপে বর্ণনা করা হলো:
Custom Model Training প্রক্রিয়ার মাধ্যমে আপনি আপনার নিজস্ব ML মডেল তৈরি করতে পারেন।
train.py
নামে সংরক্ষণ করুন।# train.py
import argparse
import os
import joblib
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
def model_fn(model_dir):
model = joblib.load(os.path.join(model_dir, "model.joblib"))
return model
def train(args):
# Load data
data = pd.read_csv(args.data_dir + "/data.csv")
X = data.drop("target", axis=1)
y = data["target"]
# Train model
model = RandomForestClassifier()
model.fit(X, y)
# Save model
joblib.dump(model, os.path.join(args.model_dir, "model.joblib"))
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--data-dir', type=str, default='/opt/ml/input/data')
parser.add_argument('--model-dir', type=str, default='/opt/ml/model')
args = parser.parse_args()
train(args)
Dockerfile
তৈরি করুন যা আপনার মডেল প্রশিক্ষণের পরিবেশ এবং নির্ভরতাগুলি নির্ধারণ করে।# Dockerfile
FROM continuumio/anaconda3
# Set the working directory
WORKDIR /opt/ml
# Copy the training script
COPY train.py /opt/ml/train.py
# Install dependencies
RUN pip install scikit-learn pandas joblib
# Command to run the training script
ENTRYPOINT ["python", "train.py"]
Dockerfile
এবং train.py
ফাইলগুলি যেখানে আছে সেখানে টার্মিনাল বা কমান্ড প্রম্পট খুলুন এবং নিচের কমান্ডটি চালান:docker build -t custom-ml-model .
docker run custom-ml-model
aws ecr get-login-password --region <your-region> | docker login --username AWS --password-stdin <your-account-id>.dkr.ecr.<your-region>.amazonaws.com
docker tag custom-ml-model:latest <your-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:latest
docker push <your-account-id>.dkr.ecr.<your-region>.amazonaws.com/<your-repo-name>:latest
Amazon SageMaker ব্যবহার করে Custom Model Training এবং Docker ব্যবহার করে Container তৈরি করা একটি শক্তিশালী পদ্ধতি যা আপনাকে আপনার নিজস্ব মডেল প্রশিক্ষণ এবং পরিচালনা করতে সহায়তা করে। এটি আপনার মডেলগুলিকে সহজে পুন:ব্যবহারযোগ্য এবং বিতরণযোগ্য করে তোলে।
TensorFlow, PyTorch, এবং MXNet হল তিনটি জনপ্রিয় মেশিন লার্নিং ফ্রেমওয়ার্ক যা ব্যবহারকারীদের মডেল তৈরি এবং প্রশিক্ষণের জন্য শক্তিশালী টুল সরবরাহ করে। নিচে প্রতিটি ফ্রেমওয়ার্ক ব্যবহার করে মডেল প্রশিক্ষণের প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।
pip install tensorflow
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
# ডেটা লোড করুন (যেমন MNIST)
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0 # ডেটা স্কেল করুন
model = keras.Sequential([
layers.Flatten(input_shape=(28, 28)),
layers.Dense(128, activation='relu'),
layers.Dropout(0.2),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
bash
Copy code
pip install torch torchvision
import torch
import torchvision
import torchvision.transforms as transforms
# ডেটা লোড করুন (যেমন MNIST)
transform = transforms.Compose([transforms.ToTensor()])
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = torch.nn.Linear(28 * 28, 128)
self.fc2 = torch.nn.Linear(128, 10)
def forward(self, x):
x = x.view(-1, 28 * 28)
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
model = Net()
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters())
for epoch in range(5):
for data in trainloader:
inputs, labels = data
optimizer.zero_grad() # গ্রেডিয়েন্ট শূন্য করুন
outputs = model(inputs) # মডেলের আউটপুট পেতে
loss = criterion(outputs, labels) # লস হিসাব করা
loss.backward() # ব্যাকওয়ার্ড পাস
optimizer.step() # অপটিমাইজার স্টেপ
pip install mxnet
import mxnet as mx
from mxnet import gluon
# ডেটা লোড করুন (যেমন MNIST)
mnist = gluon.data.vision.MNIST(train=True)
train_data = gluon.data.DataLoader(mnist.transform_first(gluon.data.vision.transforms.ToTensor()), batch_size=64, shuffle=True)
from mxnet.gluon import nn
model = nn.Sequential()
model.add(nn.Flatten())
model.add(nn.Dense(128, activation='relu'))
model.add(nn.Dense(10))
model.initialize()
loss_fn = gluon.loss.SoftmaxCrossEntropyLoss()
trainer = gluon.Trainer(model.collect_params(), 'adam')
for epoch in range(5):
for data in train_data:
inputs, labels = data
with mx.autograd.record():
outputs = model(inputs)
loss = loss_fn(outputs, labels)
loss.backward()
trainer.step(batch_size=64)
TensorFlow, PyTorch, এবং MXNet এর মাধ্যমে মডেল প্রশিক্ষণ একটি কার্যকরী প্রক্রিয়া। প্রতিটি ফ্রেমওয়ার্কের নিজস্ব সুবিধা এবং বৈশিষ্ট্য রয়েছে, যা ব্যবহারকারীদের তাদের প্রয়োজন অনুসারে নির্বাচনের সুযোগ দেয়। এই উদাহরণগুলি ব্যবহার করে, আপনি সহজেই আপনার মডেল তৈরি এবং প্রশিক্ষণ শুরু করতে পারেন।
Amazon SageMaker-এ কাস্টম মডেল ট্রেনিং প্রক্রিয়া পরিচালনা করার জন্য আপনাকে কিছু পদক্ষেপ অনুসরণ করতে হবে। এখানে একটি উদাহরণ সহ ধাপে ধাপে নির্দেশিকা দেওয়া হলো, যেখানে আমরা একটি কাস্টম TensorFlow মডেল তৈরি এবং ট্রেন করবো।
প্রথমে, প্রয়োজনীয় লাইব্রেরিগুলি ইমপোর্ট করুন।
import boto3
import sagemaker
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow
# SageMaker সেশন তৈরি করুন
sagemaker_session = sagemaker.Session()
# IAM রোল
role = get_execution_role()
S3 থেকে ডেটা লোড করার জন্য, প্রথমে আপনাকে ডেটা আপলোড করতে হবে।
my-custom-model-data
নামে)।train_data.csv
) তৈরি করে সেই বালতিতে আপলোড করুন।একটি train.py
ফাইল তৈরি করুন, যেখানে আপনার কাস্টম মডেল ট্রেনিং কোড থাকবে।
# train.py
import pandas as pd
import tensorflow as tf
from sklearn.model_selection import train_test_split
def model_fn():
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(input_shape,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mean_squared_error')
return model
if __name__ == "__main__":
# ডেটা লোড করা
data = pd.read_csv('train_data.csv')
X = data.drop('target', axis=1) # বৈশিষ্ট্য
y = data['target'] # লক্ষ্য পরিবর্তনশীল
# ট্রেন এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# মডেল তৈরি
model = model_fn()
# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=10, batch_size=32)
# মডেল সংরক্ষণ
model.save('/opt/ml/model/model.h5')
SageMaker-এ TensorFlow Estimator ব্যবহার করে কাস্টম মডেল ট্রেনিং শুরু করুন।
# TensorFlow Estimator তৈরি করুন
tensorflow_estimator = TensorFlow(
entry_point='train.py',
role=role,
instance_count=1,
instance_type='ml.m5.large',
framework_version='2.3.0',
py_version='py37',
script_mode=True,
sagemaker_session=sagemaker_session
)
# ট্রেনিং শুরু করুন
tensorflow_estimator.fit({'train': 's3://my-custom-model-data/train_data.csv'})
মডেল ট্রেনিং সম্পন্ন হলে, এটি ডেপ্লয় করুন।
# মডেল ডেপ্লয় করুন
predictor = tensorflow_estimator.deploy(initial_instance_count=1, instance_type='ml.m5.large')
ডেপ্লয় করা মডেল থেকে পূর্বাভাস নিতে পারেন।
python
Copy code
# পূর্বাভাসের জন্য ডেটা প্রস্তুত করুন
test_data = pd.read_csv('s3://my-custom-model-data/test_data.csv')
predictions = predictor.predict(test_data)
print(predictions)
মডেলটির কার্যকারিতা মূল্যায়ন করতে পারেন।
from sklearn.metrics import mean_squared_error
# সত্য এবং পূর্বাভাসের ফলাফল তুলনা করুন
true_values = test_data['target']
mse = mean_squared_error(true_values, predictions)
print("Mean Squared Error:", mse)
এখন আপনি Amazon SageMaker ব্যবহার করে কাস্টম মডেল ট্রেনিং প্রক্রিয়া সম্পর্কে জানেন। এই পদক্ষেপগুলি অনুসরণ করে, আপনি একটি কাস্টম TensorFlow মডেল তৈরি এবং ট্রেন করতে পারবেন।
Read more