Flask বা FastAPI ব্যবহার করে মডেল সার্ভিং

Model Deployment এবং Inference - ডিপ স্পিড (DeepSpeed) - Latest Technologies

328

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

১. Flask ব্যবহার করে মডেল সার্ভিং

Flask হল একটি মাইক্রো ওয়েব ফ্রেমওয়ার্ক যা দ্রুত এবং সহজে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

১.১: প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন

pip install Flask torch torchvision

১.২: Flask সার্ভার তৈরি করা

নিচে একটি উদাহরণ দেখানো হয়েছে যেখানে একটি সিম্পল PyTorch মডেল সার্ভ করা হয়েছে।

from flask import Flask, request, jsonify
import torch
import torch.nn as nn
import numpy as np

# সিম্পল মডেল তৈরি
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc = nn.Linear(10, 1)

    def forward(self, x):
        return self.fc(x)

# মডেল ইনিশিয়ালাইজেশন
model = SimpleModel()
model.eval()  # মডেলকে evaluation মোডে সেট করা

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

@app.route('/predict', methods=['POST'])
def predict():
    # ইনপুট ডেটা গ্রহণ করা
    data = request.get_json(force=True)
    input_data = np.array(data['input'])
    
    # ইনপুট ডেটা PyTorch টেনসরে রূপান্তর করা
    input_tensor = torch.tensor(input_data, dtype=torch.float32)
    
    # মডেলের পূর্বাভাস করা
    with torch.no_grad():
        output = model(input_tensor)
    
    # পূর্বাভাস ফলাফল ফেরত দেওয়া
    return jsonify({'output': output.numpy().tolist()})

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

১.৩: সার্ভার চালানো

python your_flask_app.py

১.৪: মডেল পূর্বাভাসের জন্য অনুরোধ পাঠানো

curl -X POST http://127.0.0.1:5000/predict -H "Content-Type: application/json" -d '{"input": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}'

২. FastAPI ব্যবহার করে মডেল সার্ভিং

FastAPI হল একটি আধুনিক, দ্রুত (high-performance) ওয়েব ফ্রেমওয়ার্ক যা Python এ API তৈরি করতে ব্যবহৃত হয়। এটি স্বয়ংক্রিয়ভাবে OpenAPI documentation তৈরি করে।

২.১: প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন

pip install fastapi uvicorn torch torchvision

২.২: FastAPI সার্ভার তৈরি করা

নিচে FastAPI ব্যবহার করে একটি সিম্পল PyTorch মডেল সার্ভ করার উদাহরণ দেওয়া হলো।

from fastapi import FastAPI
from pydantic import BaseModel
import torch
import torch.nn as nn
import numpy as np

# সিম্পল মডেল তৈরি
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc = nn.Linear(10, 1)

    def forward(self, x):
        return self.fc(x)

# মডেল ইনিশিয়ালাইজেশন
model = SimpleModel()
model.eval()  # মডেলকে evaluation মোডে সেট করা

# FastAPI অ্যাপ্লিকেশন তৈরি করা
app = FastAPI()

class InputData(BaseModel):
    input: list

@app.post('/predict')
def predict(data: InputData):
    # ইনপুট ডেটা গ্রহণ করা
    input_data = np.array(data.input)
    
    # ইনপুট ডেটা PyTorch টেনসরে রূপান্তর করা
    input_tensor = torch.tensor(input_data, dtype=torch.float32)
    
    # মডেলের পূর্বাভাস করা
    with torch.no_grad():
        output = model(input_tensor)
    
    # পূর্বাভাস ফলাফল ফেরত দেওয়া
    return {'output': output.numpy().tolist()}

if __name__ == '__main__':
    import uvicorn
    uvicorn.run(app, host='127.0.0.1', port=8000)

২.৩: সার্ভার চালানো

python your_fastapi_app.py

২.৪: মডেল পূর্বাভাসের জন্য অনুরোধ পাঠানো

curl -X POST http://127.0.0.1:8000/predict -H "Content-Type: application/json" -d '{"input": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}'

উপসংহার

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

Content added By
Promotion

Are you sure to start over?

Loading...