হোম/Roadmap/Chapter 0.01
Phase 0 · Chapter 0.01

MLOps কি এবং কেন দরকার

একটি AI model train করা সহজ, কিন্তু সেটাকে production-এ এনে millions of users কে serve করা — সেটাই আসল engineering। এই chapter সেই গল্প দিয়ে শুরু।

Hook · গল্প

যে গল্প দিয়ে শুরু

ধরুন, একটি startup-এর Data Scientist টানা ৩ মাস কাজ করে একটি দারুণ recommendation model তৈরি করলেন। Jupyter Notebook-এ accuracy ৯৪%। পুরো team উচ্ছ্বসিত। কিন্তু launch-এর দিন user-রা যখন product browse করল — কিছুই recommend হলো না। API timeout, server crash, এবং সবচেয়ে খারাপ — কেউ জানে না মডেলটা কোন version-এ আছে।

এটাই হলো একটি ML team-এর সবচেয়ে কমন গল্প। মডেল আছে, কিন্তু system নেই। আর এই “system” তৈরির engineering discipline-কেই বলা হয় MLOps

Concept

MLOps আসলে কি?

MLOps = Machine Learning + DevOps + Data Engineering। সহজভাবে বললে — যে practices, tools এবং culture ML model কে notebook থেকে production-এ নিয়ে যায় এবং সেখানে নির্ভরযোগ্যভাবে চালু রাখে, তাকেই MLOps বলে।

একটি MLOps system সাধারণত নিচের কাজগুলো automate করে:

  • Data collection ও versioning
  • Model training ও experiment tracking
  • Model packaging ও deployment
  • Real-time monitoring ও drift detection
  • Continuous retraining ও rollback
Intuition

System Intuition — DevOps-এর সাথে পার্থক্য

DevOps-এ আমরা code deploy করি — code deterministic, একই input এ একই output। কিন্তু ML system-এ আমাদের তিনটি জিনিস একসাথে manage করতে হয়:

Code
Training script, API code
Data
প্রতিদিন বদলায়, version দরকার
Model
Retrained হলে behavior বদলায়

এই তিনটি একসাথে version, test এবং deploy করার complexity — এটাই MLOps-কে DevOps থেকে আলাদা করে তোলে।

Real-world

Real-world Usage

  • Netflix — recommendation মডেল প্রতি কয়েক ঘণ্টায় retrain ও redeploy হয়।
  • Uber Michelangelo — internal MLOps platform, hundreds of model serve করে।
  • Spotify — playlist generation মডেল A/B test করে continuous improve হয়।
Step-by-step

AI Lifecycle (একটি model-এর জীবনচক্র)

  1. Problem Framing — business সমস্যাকে ML সমস্যায় রূপ দেওয়া।
  2. Data Collection & Versioning — DVC বা LakeFS দিয়ে data track করা।
  3. Training & Experiment Tracking — MLflow / Weights & Biases।
  4. Packaging — Pickle / Joblib / ONNX হিসেবে save।
  5. Serving — FastAPI / TorchServe / Triton দিয়ে API।
  6. Deployment — Docker + Kubernetes / Serverless।
  7. Monitoring — latency, drift, accuracy track করা।
  8. Retraining — performance কমলে নতুন data দিয়ে আবার train।
Code · Bangla ব্যাখ্যাসহ

একটি minimal end-to-end উদাহরণ

নিচে একটি ছোট workflow — train করে save করে FastAPI দিয়ে serve করা।

pythonproduction
# train.py
import joblib
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

X, y = load_iris(return_X_y=True)
model = LogisticRegression(max_iter=500).fit(X, y)

joblib.dump(model, "model.joblib")
print("Model saved: model.joblib")

ব্যাখ্যা: এখানে আমরা scikit-learn দিয়ে একটি simple classifier train করছি এবং joblib দিয়ে disk-এ save করছি। MLOps-এর প্রথম ধাপ হলো model কে এমনভাবে save করা যেন অন্য কোনো process সেটি load করে ব্যবহার করতে পারে।

pythonproduction
# app.py — FastAPI service
from fastapi import FastAPI
from pydantic import BaseModel
import joblib

model = joblib.load("model.joblib")
app = FastAPI(title="Iris Classifier")

class Features(BaseModel):
    sepal_length: float
    sepal_width: float
    petal_length: float
    petal_width: float

@app.post("/predict")
def predict(f: Features):
    pred = model.predict([[f.sepal_length, f.sepal_width,
                           f.petal_length, f.petal_width]])
    return {"class": int(pred[0])}

ব্যাখ্যা: এই API টি একটি POST endpoint open করে যেখানে user 4টি feature পাঠাবে এবং model prediction return করবে। এটাই হলো একটি real production AI service-এর সবচেয়ে ছোট রূপ।

dockerproduction
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

ব্যাখ্যা: Docker-এ wrap করার পর এই service যেকোনো server, যেকোনো cloud-এ একইভাবে চলবে। এই reproducibility-ই MLOps-এর core philosophy।

Common Mistakes

যেসব ভুল নতুনরা করে

  • Model train করেই “কাজ শেষ” মনে করা — production-এ data বদলালে accuracy পড়ে যায়।
  • Notebook-এ মডেল রেখে দেওয়া, কোনো API বা container ছাড়া।
  • Data ও model-এর version track না করা — পরে reproduce করা যায় না।
  • Monitoring ছাড়া deploy — drift হলেও কেউ জানে না।
  • Local এ চলে, production-এ চলে না — environment mismatch।
Practice Tasks

হাতে-কলমে অনুশীলন

  1. উপরের train.py এবং app.py নিজের মেশিনে চালান।
  2. uvicorn app:app --reload দিয়ে server চালু করে Postman/cURL দিয়ে test করুন।
  3. মডেল file model.joblib-কে অন্য folder-এ রেখে path পরিবর্তন করে দেখুন কী হয়।
  4. Dockerfile build করে container চালান: docker build -t iris . && docker run -p 8000:8000 iris
Mini Project

Mini Project — “Hello MLOps”

একটি simple iris classifier তৈরি করুন, FastAPI দিয়ে wrap করুন, Docker image বানান, এবং GitHub-এ একটি repo বানিয়ে README-এ documentation লিখুন। README-এ অবশ্যই থাকবে: কীভাবে run করতে হবে, কী endpoint আছে, এবং sample request।

Summary

এই chapter থেকে যা শিখলাম

  • MLOps হলো ML model কে production-এ নেওয়ার engineering discipline।
  • এটি DevOps-এর চেয়ে জটিল কারণ Code + Data + Model — তিনটিই manage করতে হয়।
  • AI lifecycle-এর ৮টি ধাপ আছে — সবগুলোই automation-এর যোগ্য।
  • সবচেয়ে ছোট MLOps system = save model → serve API → containerize → deploy।
← Roadmap-এ ফিরুন
পরবর্তী: Chapter 0-02 — AI Lifecycle Overviewশীঘ্রই