Flask/Django দিয়ে মডেল ডেপ্লয় করা

মেশিন লার্নিং মডেল ডেপ্লয়মেন্ট - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Machine Learning

387

Flask এবং Django হল দুটি জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক যা Python-এ মডেল ডেপ্লয়মেন্টের জন্য ব্যবহৃত হয়। এখানে, আমরা দেখবো কীভাবে একটি মেশিন লার্নিং বা ডিপ লার্নিং মডেলকে ওয়েব অ্যাপ্লিকেশনে ডেপ্লয় করা যায়, যাতে ব্যবহারকারীরা ব্রাউজার থেকে ইনপুট দিতে পারে এবং মডেলটি তার ভিত্তিতে পূর্বাভাস প্রদান করতে পারে।


Flask দিয়ে মডেল ডেপ্লয় করা

Flask একটি মাইক্রো-ফ্রেমওয়ার্ক, যা খুবই হালকা ও দ্রুত এবং সহজে ছোট এবং মাঝারি আকারের ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Flask দিয়ে মডেল ডেপ্লয়মেন্ট সাধারণত সহজ এবং দ্রুত করা যায়।

ধাপ ১: Flask ইনস্টল করা

প্রথমে Flask ইনস্টল করতে হবে:

pip install flask

ধাপ ২: মডেল ট্রেনিং এবং সেভ করা

ধরা যাক, আপনার একটি ট্রেনিং করা মেশিন লার্নিং মডেল আছে যা Pickle বা Joblib দিয়ে সেভ করা হয়েছে।

import pickle
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

# Iris ডেটাসেট লোড করা
iris = load_iris()
X = iris.data
y = iris.target

# মডেল তৈরি এবং প্রশিক্ষণ
model = RandomForestClassifier()
model.fit(X, y)

# মডেল সেভ করা
with open('model.pkl', 'wb') as model_file:
    pickle.dump(model, model_file)

ধাপ ৩: Flask অ্যাপ তৈরি করা

এখন, Flask অ্যাপ তৈরি করা যাবে যা মডেলকে লোড করবে এবং ব্যবহারকারীর ইনপুট অনুযায়ী পূর্বাভাস প্রদান করবে।

from flask import Flask, request, jsonify
import pickle

# Flask অ্যাপ তৈরি করা
app = Flask(__name__)

# সেভ করা মডেল লোড করা
with open('model.pkl', 'rb') as model_file:
    model = pickle.load(model_file)

@app.route('/')
def home():
    return "Welcome to the Machine Learning Model API!"

@app.route('/predict', methods=['POST'])
def predict():
    # ইনপুট ডেটা গ্রহণ করা
    data = request.get_json(force=True)
    
    # মডেলের পূর্বাভাস বের করা
    prediction = model.predict([data['features']])
    
    # পূর্বাভাসের ফলাফল ফেরত পাঠানো
    return jsonify({'prediction': prediction.tolist()})

if __name__ == '__main__':
    app.run(debug=True)

ধাপ ৪: API কল করা

এখন আপনি Flask অ্যাপ চালু করলে, আপনার মডেলটি /predict এন্ডপয়েন্টের মাধ্যমে ইনপুট গ্রহণ করবে এবং পূর্বাভাস প্রদান করবে।

API কল করতে Postman বা curl ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:

curl -X POST -H "Content-Type: application/json" -d '{"features": [5.1, 3.5, 1.4, 0.2]}' http://127.0.0.1:5000/predict

এটি একটি JSON রেসপন্স প্রদান করবে, যেমন:

{
    "prediction": [0]
}

Django দিয়ে মডেল ডেপ্লয় করা

Django একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা বড় ও জটিল অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Django দিয়ে মডেল ডেপ্লয় করা Flask থেকে কিছুটা জটিল হতে পারে, কারণ Django একটি MVC (Model-View-Controller) স্ট্রাকচার অনুসরণ করে, তবে এটি ব্যাপক ফিচার এবং শক্তিশালী কাঠামো সরবরাহ করে।

ধাপ ১: Django ইনস্টল করা

প্রথমে Django ইনস্টল করতে হবে:

pip install django

ধাপ ২: Django প্রোজেক্ট তৈরি করা

নতুন Django প্রোজেক্ট তৈরি করতে:

django-admin startproject myproject
cd myproject

ধাপ ৩: Django অ্যাপ তৈরি করা

একটি Django অ্যাপ তৈরি করতে:

python manage.py startapp mlapp

ধাপ ৪: মডেল ট্রেনিং এবং সেভ করা

Flask এর মতো, Django অ্যাপেও মডেল সেভ করতে হবে। এখানে আমরা একই মডেল ব্যবহার করবো, যা Pickle দিয়ে সেভ করা হয়েছে।

# mlapp/ml_model.py
import pickle
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

def train_and_save_model():
    iris = load_iris()
    X = iris.data
    y = iris.target

    model = RandomForestClassifier()
    model.fit(X, y)

    with open('mlapp/model.pkl', 'wb') as model_file:
        pickle.dump(model, model_file)

ধাপ ৫: Django Views তৈরি করা

Django-তে views.py ফাইলের মাধ্যমে API এন্ডপয়েন্ট তৈরি করতে হবে, যেখানে মডেল লোড হবে এবং ইনপুট পেয়ে পূর্বাভাস প্রদান করবে।

# mlapp/views.py
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import pickle
import json

# মডেল লোড করা
with open('mlapp/model.pkl', 'rb') as model_file:
    model = pickle.load(model_file)

@csrf_exempt
def predict(request):
    if request.method == "POST":
        data = json.loads(request.body)
        features = data['features']
        
        # পূর্বাভাস করা
        prediction = model.predict([features])
        
        # পূর্বাভাসের ফলাফল পাঠানো
        return JsonResponse({'prediction': prediction.tolist()})

ধাপ ৬: URL মেপিং

urls.py ফাইলে এন্ডপয়েন্ট মেপিং করতে হবে।

# mlapp/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('predict/', views.predict, name='predict'),
]

ধাপ ৭: Django প্রোজেক্টে URL ইনক্লুড করা

প্রোজেক্টের urls.py ফাইলে অ্যাপের URL যুক্ত করতে হবে।

# myproject/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('mlapp.urls')),  # mlapp অ্যাপের URL যুক্ত করা
]

ধাপ ৮: Django অ্যাপ রান করা

এখন Django সার্ভার চালু করতে হবে:

python manage.py runserver

ধাপ ৯: API কল করা

এখন API এন্ডপয়েন্টের মাধ্যমে মডেল ব্যবহার করা যাবে। যেমন:

curl -X POST -H "Content-Type: application/json" -d '{"features": [5.1, 3.5, 1.4, 0.2]}' http://127.0.0.1:8000/api/predict/

এটি JSON রেসপন্স প্রদান করবে:

{
    "prediction": [0]
}

সারাংশ

  • Flask: ছোট এবং সহজ ওয়েব অ্যাপ্লিকেশনের জন্য, যেখানে দ্রুত মডেল ডেপ্লয় করা সম্ভব।
  • Django: বড় এবং জটিল অ্যাপ্লিকেশন তৈরি করার জন্য, যেখানে পূর্ণাঙ্গ কাঠামো এবং শক্তিশালী ফিচার প্রয়োজন।

এতে করে মডেল ডেপ্লয়মেন্ট ওয়েব অ্যাপ্লিকেশন বা API আকারে করা যায়, যা ব্যবহারকারীদের জন্য সহজে অ্যাক্সেসযোগ্য হয়।

Content added By
Promotion

Are you sure to start over?

Loading...