উদাহরণসহ Model Deployment এবং Integration
Model Deployment হল একটি মেশিন লার্নিং মডেলকে প্রযোজ্য করার প্রক্রিয়া, যাতে ব্যবহারকারীরা API এর মাধ্যমে মডেলটি ব্যবহার করতে পারেন। এখানে আমরা দেখাব কিভাবে একটি মডেল ডিপ্লয় করা যায় এবং AWS API Gateway ব্যবহার করে সেটিকে API-এর মাধ্যমে ইন্টিগ্রেট করা যায়।
১. পরিবেশ প্রস্তুতি
১.১. মডেল তৈরি করা
প্রথমে আমরা একটি সহজ মেশিন লার্নিং মডেল তৈরি করব। এখানে আমরা একটি Random Forest Classifier ব্যবহার করব।
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import joblib
# ডেটা লোড করুন
data = pd.read_csv('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 = RandomForestClassifier()
model.fit(X_train, y_train)
# মডেল সংরক্ষণ করুন
joblib.dump(model, 'model.pkl')
২. AWS S3 এ মডেল আপলোড করা
মডেলটি AWS S3 তে আপলোড করতে হবে যাতে Lambda ফাংশন এটি অ্যাক্সেস করতে পারে।
import boto3
# S3 ক্লায়েন্ট তৈরি
s3 = boto3.client('s3')
# মডেল আপলোড করুন
s3.upload_file('model.pkl', 'your-bucket-name', 'model.pkl')
৩. AWS Lambda ফাংশন তৈরি করা
৩.১. Lambda ফাংশন তৈরি করা
- AWS Management Console-এ যান।
- Lambda সার্ভিসে একটি নতুন ফাংশন তৈরি করুন (যেমন
ModelPredictionFunction)। - রানটাইম হিসেবে Python 3.x নির্বাচন করুন।
- একটি IAM রোল নির্বাচন করুন যা Lambda ফাংশনকে S3 অ্যাক্সেস করতে দেয়।
৩.২. Lambda ফাংশনের কোড লেখা
নিচের কোডটি Lambda ফাংশনে পেস্ট করুন:
import json
import joblib
import boto3
import numpy as np
# S3 থেকে মডেল লোড করুন
s3 = boto3.client('s3')
def load_model():
response = s3.get_object(Bucket='your-bucket-name', Key='model.pkl')
model = joblib.load(response['Body'])
return model
model = load_model()
def lambda_handler(event, context):
# ইনপুট ডেটা গ্রহণ করুন
data = json.loads(event['body'])
# ডেটাকে NumPy অ্যারেতে রূপান্তর করুন
input_data = np.array(data['input']).reshape(1, -1) # reshape করে 2D অ্যারেতে রূপান্তর করুন
# পূর্বাভাস করা
prediction = model.predict(input_data)
# ফলাফল ফিরিয়ে দিন
return {
'statusCode': 200,
'body': json.dumps({'prediction': prediction[0]})
}
৪. API Gateway তৈরি করা
৪.১. API Gateway সার্ভিসে যান
- AWS Management Console-এ API Gateway নির্বাচন করুন।
- একটি নতুন API তৈরি করুন (REST API নির্বাচন করুন)।
- API এর নাম এবং অন্যান্য সেটিংস পূরণ করুন এবং API তৈরি করুন।
৪.২. API Resource এবং Method তৈরি করা
- Resources ট্যাবে যান এবং একটি নতুন Resource তৈরি করুন (যেমন
/predict)। - নতুন Resource-এ একটি Method তৈরি করুন (যেমন POST)।
- Method Integration হিসেবে Lambda Function নির্বাচন করুন এবং আপনার Lambda ফাংশনের নাম দিন।
৫. API টেস্ট করা
৫.১. API ডিপ্লয় করা
- Actions থেকে Deploy API নির্বাচন করুন।
- একটি নতুন Deployment Stage তৈরি করুন (যেমন
dev)।
৫.২. API Endpoint ব্যবহার করা
- API ডিপ্লয় করার পর একটি URL পাবেন, যা API Endpoint হিসেবে কাজ করবে।
৫.৩. API কল করা
এখন আপনি Postman বা একটি Python স্ক্রিপ্ট ব্যবহার করে API কল করতে পারেন।
import requests
# API URL
url = 'https://your-api-id.execute-api.region.amazonaws.com/dev/predict'
# ইনপুট ডেটা
input_data = {
'input': [value1, value2, value3] # আপনার মডেলের ইনপুট অনুযায়ী
}
# POST অনুরোধ করুন
response = requests.post(url, json=input_data)
# ফলাফল দেখুন
print(response.json())
সারসংক্ষেপ
- Model Training: একটি মডেল তৈরি এবং প্রশিক্ষণ দেওয়া হয়।
- S3 Upload: মডেলটি S3 তে আপলোড করা হয়।
- Lambda Function: Lambda ফাংশনে মডেলটি লোড করা হয় এবং পূর্বাভাস তৈরির জন্য API তৈরি করা হয়।
- API Gateway: API Gateway ব্যবহার করে REST API তৈরি করা হয়।
- API Testing: API Endpoint ব্যবহার করে টেস্ট করা হয়।
এই প্রক্রিয়ার মাধ্যমে, আপনি একটি মডেল সফলভাবে ডিপ্লয় করতে পারবেন এবং API-এর মাধ্যমে ইন্টিগ্রেট করতে পারবেন, যা বিভিন্ন অ্যাপ্লিকেশন থেকে সহজেই অ্যাক্সেসযোগ্য।
Read more