MLOps/MLOps-এর ভিত্তি/Lesson 01
ML lifecycle
Notebook-এ model বানানো কাজের সামান্য অংশ। Data থেকে deployment আর monitoring পর্যন্ত পুরো চক্র, কেন বেশিরভাগ ML project production-এ পৌঁছায় না, আর একটা deploy gate বানানো।
- সময়
- 20 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
Machine Learning path-এ তুমি একটা model train করে accuracy দেখেছ। তোমার কাজ কি শেষ? বাস্তবে এটা শুধু শুরু।
┌──► 1. Data সংগ্রহ ──► 2. Data যাচাই ও প্রস্তুতি ──► 3. Training ও experiment
│ │
│ ▼
│ 6. Monitoring ◄── 5. Deploy (serving) ◄── 4. মূল্যায়ন ও versioning
│ │
└─────────┘ drift ধরা পড়লে → নতুন data → retrain
MLOps হলো এই পুরো চক্রকে নির্ভরযোগ্য, পুনরাবৃত্তিযোগ্য আর স্বয়ংক্রিয় করার কৌশল।
কেন দরকার?
বিভিন্ন জরিপ আর শিল্প-অভিজ্ঞতা বলে, অনেক ML project, সম্ভবত বেশিরভাগই, prototype থেকে production-এ পৌঁছায় না। কারণগুলো সাধারণত algorithm-এ থাকে না। থাকে এই প্রশ্নগুলোতে:
- "গত মাসে যে model-টা ভালো ছিল, সেটা কোন data আর কোন setting দিয়ে বানিয়েছিলাম?"
- "আমার laptop-এ চলে, server-এ চলে না"
- "Model ৬ মাস ধরে production-এ। এখনো ঠিক আছে কি?"
২০১৫-র বিখ্যাত Google paper Hidden Technical Debt in Machine Learning Systems দেখিয়েছিল যে বাস্তব ML system-এ model-এর code পুরো system-এর একটা ছোট অংশ মাত্র। বাকিটা data সংগ্রহ, যাচাই, infrastructure, serving আর monitoring।
ML software কেন আলাদা
| সাধারণ software | ML system | |
|---|---|---|
| আচরণ ঠিক করে | Code | Code + data + model |
| Version রাখতে হয় | Code | Code, data, model, parameter |
| Test | Output ঠিক কিনা | Metric যথেষ্ট ভালো কিনা (probabilistic) |
| সময়ের সাথে | Code না বদলালে একই | Data বদলালে খারাপ হয় (drift) |
Drift: কেন model "পচে"
ধরো model শিখেছিল "১২ ঘণ্টার কম পড়লে fail-এর ঝুঁকি"। তারপর নতুন syllabus এলো, আর সবাই কম ঘণ্টা পড়েও ভালো করছে। Model তবুও পুরনো নিয়মে চলবে। Code-এ কোনো bug নেই, কিন্তু prediction ভুল। একে বলে drift। এটা ধরতে monitoring লাগে (পরের module)।
MLOps-এর মূল নীতি
- সবকিছু version করো: code, data, model, config
- সবকিছু পুনরাবৃত্তিযোগ্য রাখো: একই input দিলে একই model আসবে
- স্বয়ংক্রিয় করো: training, testing আর deploy একটা pipeline-এ
- Production-এ নজর রাখো: metric, drift আর latency monitor করো
এই module-এর বাকি lesson-গুলো প্রথম দুটো নীতি নিয়ে।
Exercise
Exercise
একটা ছোট pipeline
ML pipeline মানে কিছু ধাপ ক্রমানুসারে চলা, যেখানে প্রতিটা ধাপ আগের ধাপের output নেয়।
run_pipeline(steps, data) লেখো:
- steps হলো (নাম, function) tuple-এর list
- প্রথম function-কে data দাও, তার output পরেরটাকে, এভাবে চলবে
- প্রতিটা ধাপের পরে "✓ নাম" print করবে
- শেষ output return করবে
Quiz
Challenge
Challenge
Deploy gate
নতুন model (candidate) কি production-এর পুরনো model-কে প্রতিস্থাপন করবে? এই সিদ্ধান্ত একটা স্বয়ংক্রিয় gate নেয়।
should_deploy(candidate, production, min_gain=0.01, max_latency_ms=200) লেখো। দুটো input-ই dict: {"accuracy": float, "latency_ms": float}। Return করবে (সিদ্ধান্ত, কারণের list):
- candidate-এর accuracy যদি production-এর চেয়ে অন্তত
min_gainবেশি না হয় → কারণ যোগ করো - candidate-এর latency যদি
max_latency_ms-এর বেশি হয় → কারণ যোগ করো productionযদিNoneহয় (প্রথম model), accuracy-র তুলনা বাদ যাবে, শুধু latency দেখা হবে- কোনো কারণ না থাকলে সিদ্ধান্ত
True
float-এর ছোট ভুল এড়াতে তুলনা করবে gain >= min_gain - 1e-12 দিয়ে।
বাস্তবে কোথায় ব্যবহার হয়?
বাস্তব MLOps stack-এ প্রতিটা ধাপের জন্য tool আছে। নাম চিনে রাখো:
| ধাপ | জনপ্রিয় tool |
|---|---|
| Experiment tracking | MLflow, Weights & Biases |
| Data/model versioning | DVC, MLflow Model Registry |
| Pipeline | Airflow, Kubeflow, Prefect |
| Serving | FastAPI, BentoML, cloud endpoint |
| Monitoring | Evidently, Prometheus + Grafana |
তবে tool বদলায়, নীতি বদলায় না। এই module-এ tool ছাড়াই, শুধু Python দিয়ে নীতিগুলো নিজে বানাবে। তাতে যেকোনো tool-এর ভেতরে কী হয়, সেটা বুঝবে।
Interview প্রশ্ন
- Beginner: MLOps কী? DevOps থেকে কীভাবে আলাদা?
- Intermediate: Data drift আর concept drift-এর পার্থক্য কী?
- Advanced: একটা model-কে production-এ নেওয়ার পুরো pipeline ডিজাইন করো। কোথায় কোথায় স্বয়ংক্রিয় যাচাই রাখবে?
এরপর কী?
চক্রের প্রথম সমস্যা: তুমি ২০ বার training চালিয়েছ, আলাদা আলাদা setting দিয়ে। কোনটা সবচেয়ে ভালো ছিল আর কোন setting-এ? পরের lesson: Experiment tracking।