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

Model Deployment এবং API Integration - পাইথন দিয়ে মেশিন লার্নিং (Machine Learning with Python) - Machine Learning

253

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

এখানে Flask এবং Django দিয়ে মডেল ডেপ্লয় করার প্রক্রিয়া এবং তাদের ব্যবহারের ধরন আলোচনা করা হবে।


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

Flask হল একটি মাইক্রো ফ্রেমওয়ার্ক, যা সহজে ব্যবহারযোগ্য এবং দ্রুত ডেভেলপমেন্টের জন্য উপযুক্ত। Flask দিয়ে মডেল ডেপ্লয় করার সময় একটি REST API তৈরি করা হয়, যা ব্যবহারকারীদের ইনপুট পাঠাতে এবং মডেল থেকে আউটপুট পেতে সাহায্য করে।

Flask দিয়ে মডেল ডেপ্লয়মেন্টের ধাপসমূহ

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

    pip install Flask
    
  2. মডেল ট্রেনিং ও সংরক্ষণ: আপনার মডেলকে .pkl বা .joblib ফরম্যাটে সংরক্ষণ করুন, যাতে আপনি এটি Flask অ্যাপ্লিকেশনে ব্যবহার করতে পারেন।

    import pickle
    
    # মডেল সংরক্ষণ
    with open('model.pkl', 'wb') as file:
        pickle.dump(model, file)
    
  3. 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)
    
  4. অ্যাপ রান করা: Flask অ্যাপটি রান করতে নিচের কমান্ডটি ব্যবহার করুন:

    python app.py
    
  5. API এ রিকোয়েস্ট পাঠানো: আপনার 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 দিয়ে মডেল ডেপ্লয়মেন্টের ধাপসমূহ

  1. Django ও Django Rest Framework ইন্সটল করা: Django এবং Django Rest Framework ইন্সটল করুন:

    pip install django djangorestframework
    
  2. নতুন Django প্রজেক্ট তৈরি করা: একটি নতুন Django প্রজেক্ট এবং অ্যাপ তৈরি করুন:

    django-admin startproject myproject
    cd myproject
    python manage.py startapp myapp
    
  3. মডেল সংরক্ষণ করা: আপনার মডেলটি pickle বা joblib দিয়ে সংরক্ষণ করুন:

    import pickle
    
    # মডেল সংরক্ষণ
    with open('model.pkl', 'wb') as file:
        pickle.dump(model, file)
    
  4. 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()})
    
  5. URL কনফিগারেশন: urls.py ফাইলে রুট কনফিগার করুন:

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('predict/', views.predict, name='predict'),
    ]
    
  6. 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 দিয়ে আপনার মেশিন লার্নিং মডেলটিকে সহজেই প্রডাকশনে নিয়ে যেতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...