যখন আপনি একটি মেশিন লার্নিং মডেল তৈরি করেন এবং সেটিকে প্রডাকশনে ব্যবহার করতে চান, তখন মডেল ডেপ্লয়মেন্ট একটি গুরুত্বপূর্ণ ধাপ। এটি মডেলকে একটি ওয়েব অ্যাপ্লিকেশন হিসেবে এক্সপোজ করে, যাতে অন্যান্য অ্যাপ্লিকেশন বা ইউজাররা মডেলটি ব্যবহার করতে পারে। Flask এবং Django দুটি জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক যা দিয়ে সহজে মডেল ডেপ্লয় করা যায়।
এখানে Flask এবং Django দিয়ে মডেল ডেপ্লয় করার প্রক্রিয়া এবং তাদের ব্যবহারের ধরন আলোচনা করা হবে।
১. Flask দিয়ে মডেল ডেপ্লয় করা
Flask হল একটি মাইক্রো ফ্রেমওয়ার্ক, যা সহজে ব্যবহারযোগ্য এবং দ্রুত ডেভেলপমেন্টের জন্য উপযুক্ত। Flask দিয়ে মডেল ডেপ্লয় করার সময় একটি REST API তৈরি করা হয়, যা ব্যবহারকারীদের ইনপুট পাঠাতে এবং মডেল থেকে আউটপুট পেতে সাহায্য করে।
Flask দিয়ে মডেল ডেপ্লয়মেন্টের ধাপসমূহ
Flask ইন্সটল করা: প্রথমে Flask ইন্সটল করতে হবে:
pip install Flaskমডেল ট্রেনিং ও সংরক্ষণ: আপনার মডেলকে
.pklবা.joblibফরম্যাটে সংরক্ষণ করুন, যাতে আপনি এটি Flask অ্যাপ্লিকেশনে ব্যবহার করতে পারেন।import pickle # মডেল সংরক্ষণ with open('model.pkl', 'wb') as file: pickle.dump(model, file)Flask অ্যাপ তৈরি করা: Flask অ্যাপ তৈরি করুন এবং মডেলটি লোড করুন।
from flask import Flask, request, jsonify import pickle import numpy as np app = Flask(__name__) # মডেল লোড করা with open('model.pkl', 'rb') as file: model = pickle.load(file) @app.route('/predict', methods=['POST']) def predict(): # JSON থেকে ইনপুট নেয়া data = request.get_json() input_data = np.array(data['input']).reshape(1, -1) # মডেল থেকে পূর্বানুমান করা prediction = model.predict(input_data) # পূর্বানুমান ফলাফল পাঠানো return jsonify({'prediction': prediction.tolist()}) if __name__ == '__main__': app.run(debug=True)অ্যাপ রান করা: Flask অ্যাপটি রান করতে নিচের কমান্ডটি ব্যবহার করুন:
python app.pyAPI এ রিকোয়েস্ট পাঠানো: আপনার API এখন
/predictরুটে POST রিকোয়েস্ট গ্রহণ করবে, যেখানে ইনপুট ডেটা পাঠানো যাবে।উদাহরণস্বরূপ,
Postmanবাrequestsলাইব্রেরি ব্যবহার করে রিকোয়েস্ট পাঠানো যাবে:import requests url = 'http://127.0.0.1:5000/predict' data = {'input': [feature1, feature2, feature3]} # ইনপুট ফিচার response = requests.post(url, json=data) print(response.json())
২. Django দিয়ে মডেল ডেপ্লয় করা
Django একটি পূর্ণাঙ্গ ওয়েব ফ্রেমওয়ার্ক যা বড় অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। এটি REST API তৈরি করার জন্য Django Rest Framework (DRF) ব্যবহার করতে পারে। Django দিয়ে মডেল ডেপ্লয় করার প্রক্রিয়া Flask থেকে কিছুটা ভিন্ন, কারণ Django একটি বৃহত্তর কাঠামো প্রদান করে, যেখানে ফিচার সমৃদ্ধ অ্যাপ তৈরি করা যায়।
Django দিয়ে মডেল ডেপ্লয়মেন্টের ধাপসমূহ
Django ও Django Rest Framework ইন্সটল করা: Django এবং Django Rest Framework ইন্সটল করুন:
pip install django djangorestframeworkনতুন Django প্রজেক্ট তৈরি করা: একটি নতুন Django প্রজেক্ট এবং অ্যাপ তৈরি করুন:
django-admin startproject myproject cd myproject python manage.py startapp myappমডেল সংরক্ষণ করা: আপনার মডেলটি
pickleবাjoblibদিয়ে সংরক্ষণ করুন:import pickle # মডেল সংরক্ষণ with open('model.pkl', 'wb') as file: pickle.dump(model, file)View তৈরি করা: Django অ্যাপে একটি view তৈরি করুন, যা মডেল লোড করবে এবং ইনপুট গ্রহণ করে পূর্বানুমান প্রদান করবে।
from django.http import JsonResponse from rest_framework.decorators import api_view import pickle import numpy as np # মডেল লোড করা with open('model.pkl', 'rb') as file: model = pickle.load(file) @api_view(['POST']) def predict(request): data = request.data input_data = np.array(data['input']).reshape(1, -1) # মডেল থেকে পূর্বানুমান করা prediction = model.predict(input_data) return JsonResponse({'prediction': prediction.tolist()})URL কনফিগারেশন:
urls.pyফাইলে রুট কনফিগার করুন:from django.urls import path from . import views urlpatterns = [ path('predict/', views.predict, name='predict'), ]API টেস্ট করা: Django অ্যাপ রান করার জন্য নিচের কমান্ডটি ব্যবহার করুন:
python manage.py runserverএরপর,
Postmanবাrequestsলাইব্রেরি ব্যবহার করে API কল করুন:import requests url = 'http://127.0.0.1:8000/predict/' data = {'input': [feature1, feature2, feature3]} # ইনপুট ফিচার response = requests.post(url, json=data) print(response.json())
সারাংশ
- Flask এবং Django উভয়েই মডেল ডেপ্লয় করার জন্য জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক। Flask সাধারণত ছোট ও দ্রুত প্রোজেক্টের জন্য উপযুক্ত, যেখানে Django বড় এবং পূর্ণাঙ্গ অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়।
- Flask দিয়ে মডেল ডেপ্লয় করতে Flask API তৈরি করা হয়, যেখানে HTTP রিকোয়েস্টের মাধ্যমে মডেলের পূর্বানুমান পাওয়া যায়।
- Django দিয়ে Django Rest Framework (DRF) ব্যবহার করে একটি RESTful API তৈরি করা হয়, যা মডেল ডেপ্লয়মেন্টের জন্য কার্যকর।
এভাবে, আপনি Flask বা Django দিয়ে আপনার মেশিন লার্নিং মডেলটিকে সহজেই প্রডাকশনে নিয়ে যেতে পারেন।
Read more