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

Model Deployment এবং API Integration - পাইথনে লজিস্টিক রিগ্রেশন (Logistic Regression in Python) - Machine Learning

335

Flask এবং Django হল দুটি জনপ্রিয় Python ওয়েব ফ্রেমওয়ার্ক যা মেশিন লার্নিং মডেল ডেপ্লয় করতে ব্যবহৃত হয়। এগুলি সাহায্য করে মডেলকে ওয়েব অ্যাপ্লিকেশনে রূপান্তরিত করতে এবং ব্যবহারকারীদের জন্য সেবাসমূহ প্রদান করতে। নিচে Flask এবং Django দিয়ে কিভাবে মডেল ডেপ্লয় করা যায়, তা ধাপে ধাপে ব্যাখ্যা করা হয়েছে।


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

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

1. Flask ইনস্টলেশন

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

pip install flask

2. মডেল লোড এবং API তৈরি করা

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

মডেল (যেমন, model.pkl) আগে থেকেই ট্রেন করা এবং সেভ করা থাকতে হবে।

from flask import Flask, request, jsonify
import joblib
import numpy as np

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

# মডেল লোড করা
model = joblib.load('model.pkl')

@app.route('/predict', methods=['POST'])
def predict():
    # ইনপুট ডেটা গ্রহণ
    data = request.get_json()  # JSON ফরম্যাটে ডেটা আনা
    features = np.array(data['features']).reshape(1, -1)  # ইনপুট ফিচার

    # প্রেডিকশন করা
    prediction = model.predict(features)

    # আউটপুট ফেরত দেওয়া
    return jsonify({'prediction': prediction[0]})

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

3. এটি কীভাবে কাজ করে?

  • /predict রুটে একটি POST রিকোয়েস্ট পাঠানো হলে, features JSON ফরম্যাটে গৃহীত হয়।
  • মডেলটি joblib দিয়ে লোড করা হয় এবং ইনপুট ফিচারের উপর predict করা হয়।
  • প্রেডিকশন ফলাফলটি JSON আউটপুট হিসেবে ফেরত দেওয়া হয়।

4. Flask অ্যাপ চালানো

এখন Flask অ্যাপ চালানোর জন্য:

python app.py

এটি একটি লোকাল সার্ভারে চলে যাবে (ডিফল্ট: http://127.0.0.1:5000/), যেখানে আপনি POST রিকোয়েস্ট পাঠাতে পারবেন।

5. HTTP POST রিকোয়েস্ট পাঠানো

এখন আপনি যে কোনো HTTP ক্লায়েন্ট (যেমন Postman, curl, অথবা Python requests লাইব্রেরি) দিয়ে মডেলটি পরীক্ষা করতে পারেন।

উদাহরণ:

import requests
import json

# URL এবং ইনপুট ডেটা
url = 'http://127.0.0.1:5000/predict'
data = {'features': [5.1, 3.5, 1.4, 0.2]}  # উদাহরণস্বরূপ, Iris dataset এর একটি পয়েন্ট

# POST রিকোয়েস্ট পাঠানো
response = requests.post(url, json=data)

# আউটপুট দেখানো
print(response.json())

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

Django একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা আরও জটিল অ্যাপ্লিকেশন তৈরির জন্য উপযুক্ত। Django দিয়ে মডেল ডেপ্লয় করার জন্য প্রথমে একটি API তৈরি করতে হবে যেখানে মডেলটি লোড করা হবে এবং প্রেডিকশন দেওয়া হবে।

1. Django ইনস্টলেশন

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

pip install django

2. Django অ্যাপ তৈরি করা

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

django-admin startproject myproject
cd myproject
python manage.py startapp predict

3. মডেল লোড এবং API তৈরি করা

এখন predict অ্যাপে একটি view তৈরি করে মডেল লোড এবং প্রেডিকশন করতে হবে।

views.py:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import joblib
import numpy as np
import json

# মডেল লোড করা
model = joblib.load('model.pkl')

@csrf_exempt
def predict(request):
    if request.method == 'POST':
        data = json.loads(request.body)  # ইনপুট ডেটা গ্রহণ
        features = np.array(data['features']).reshape(1, -1)

        # প্রেডিকশন করা
        prediction = model.predict(features)

        # আউটপুট ফেরত দেওয়া
        return JsonResponse({'prediction': prediction[0]})

4. URL কনফিগারেশন

এখন urls.py ফাইল আপডেট করে নতুন রুট তৈরি করতে হবে।

urls.py:

from django.urls import path
from . import views

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

5. Django অ্যাপ চালানো

এখন Django অ্যাপ চালানোর জন্য:

python manage.py runserver

এটি একটি লোকাল সার্ভারে চলবে (ডিফল্ট: http://127.0.0.1:8000/), যেখানে আপনি POST রিকোয়েস্ট পাঠাতে পারবেন।

6. HTTP POST রিকোয়েস্ট পাঠানো

Django অ্যাপের জন্য POST রিকোয়েস্ট পাঠানোর পদ্ধতি Flask এর মতোই। আপনি Postman, curl, অথবা requests ব্যবহার করে মডেলটির প্রেডিকশন পরীক্ষা করতে পারেন।


Flask vs Django:

  • Flask একটি মাইক্রো ফ্রেমওয়ার্ক এবং ছোট, সিম্পল অ্যাপ্লিকেশন তৈরির জন্য উপযুক্ত। দ্রুত প্রোটোটাইপ তৈরি করার জন্য ভালো।
  • Django একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক, যা বড় এবং স্কেলেবল অ্যাপ্লিকেশন তৈরির জন্য উপযুক্ত। এতে অনেক built-in ফিচার রয়েছে (যেমন: ORM, Admin Interface, Security), যা বড় প্রকল্পে উপকারী।

সারাংশ:

  • Flask এবং Django উভয়ই মেশিন লার্নিং মডেল ডেপ্লয় করার জন্য শক্তিশালী ফ্রেমওয়ার্ক। Flask ছোট, সিম্পল প্রোজেক্টের জন্য উপযুক্ত, যেখানে Django বড়, স্কেলেবল অ্যাপ্লিকেশন তৈরি করার জন্য ভালো।
  • Flask এবং Django উভয়েই API তৈরির মাধ্যমে মডেল ডেপ্লয় করতে সহায়তা করে, যাতে ব্যবহারকারীরা HTTP রিকোয়েস্টের মাধ্যমে মডেল থেকে প্রেডিকশন নিতে পারে।
Content added By
Promotion

Are you sure to start over?

Loading...