MLOps Tutorial with Examples.
MLOps tutorial for production ML engineering: experiment tracking, model registry, CI/CD for ML, monitoring and drift detection.
Architecture at a glance
Click any box to open the lesson that teaches it
MLOps architecture at a glance
data → train & register → serve ⟲ monitor, wrapped in CI/CD
How it fits together (6 steps)
- The lifecycle starts in Introduction to MLOps, then data is versioned with DVC — a small pointer file lives in Git, the data itself in a cache and a remote, restored with
dvc pullanddvc checkout. - A training run is tracked in MLflow 3: parameters and metrics are logged per run,
search_runscompares them, and the winner is registered under a movable alias such aschampion. - Model serving loads that aliased model once at startup, answers predictions through a validated FastAPI endpoint, and batch-scores a whole Parquet file the same way.
- The same trained model also deploys a framework's own way: PyTorch exported to ONNX Runtime, or a Keras SavedModel served by TF Serving — neither path changes how it was trained or registered.
- Monitoring watches live inputs for drift with a KS test and PSI, catching what accuracy alone can miss — the same reproducibility and rollback discipline is what makes a drift alert, not a calendar, the trigger to retrain.
- Every stage ships through CI/CD: GitHub Actions validates incoming data, gates promotion on a metric threshold, and only then deploys.
Beginner
Start here — no prior experience needed
MLOps Learning Roadmap
A structured path from experiment tracking basics to fully automated ML platforms — covering CI/CD, monitoring, data versioning, and serving.
Introduction to MLOps
Understand the ML lifecycle, set up experiment tracking with MLflow, and build your first reproducible ML pipeline.
MLOps Projects
Projects that build production ML infrastructure — from experiment tracking to automated retraining pipelines and monitoring systems.
Intermediate
For developers with core concepts down
MLOps Experiment Tracking
Track ML experiments with MLflow 3 locally: log params and metrics, compare runs with search_runs, per-epoch metrics, and a registry with aliases.
Model Serving and Deployment
Serve a model with FastAPI and pydantic, load it once from an MLflow alias, batch-score Parquet in chunks, and gate promotion and rollback on a holdout.
MLOps Model Monitoring
Detect data drift with KS tests and PSI, avoid the large-sample p-value trap, see concept drift that inputs can't show, and turn checks into alerts.
MLOps CI/CD for Machine Learning
Automate ML workflows with GitHub Actions — test data quality, validate models, and deploy only when performance thresholds are met.
MLOps Data Versioning with DVC
Version datasets and models next to Git with DVC: a local remote, dvc push and pull, a cached pipeline that skips unchanged stages, and params diffs.
Also part of MLOps
Taught in other topics. Each link opens the lesson in its home topic.
LLM Evaluation
Why overlap metrics mislead, assertion-based graders, judge calibration with kappa, retrieval recall and MRR, and a regression gate, all run in Python.
PyTorch Deployment with ONNX
Export PyTorch models to ONNX, verify them against PyTorch, serve with ONNX Runtime, measure latency, and replace TorchScript with torch.export.
TensorFlow Model Deployment
Deploy a Keras model for real: export a SavedModel, serve it with TF Serving in Docker, wrap it in FastAPI, and convert it to int8 TFLite run with LiteRT.
MLOps and Production Questions
Drift detected with PSI, reproducibility that actually holds, rollback that works, and the retraining trigger that is not a calendar.