End-to-end MLOps pipeline for image classification (Dandelion vs Grass) with automated training, deployment on Kubernetes, and CI/CD integration using Apache Airflow, MLflow, and Docker.
This project implements a production-grade MLOps pipeline for binary image classification (dandelions vs grass) using modern cloud-native technologies. The pipeline covers the entire ML lifecycle: data preprocessing, model training with experiment tracking, containerized deployment, automated retraining, and continuous integration/deployment.
Modern MLOps stack combining orchestration, ML frameworks, storage, and deployment tools.
Automated pipeline for downloading, cleaning, and storing image features with data augmentation.
Figure 1 - Automated data extraction and preprocessing pipeline
PyTorch-based training with MLflow tracking and S3 model storage.
Figure 2 - Model training with MLflow experiment tracking
Production deployment with FastAPI backend and Streamlit frontend on Kubernetes.
Figure 3 - FastAPI serving and Streamlit web application
Automated DAGs for periodic retraining and model updates.
Figure 4 - Airflow DAG for automated training pipeline
Figure 5 - Airflow task monitoring and execution history
GitHub Actions for automated testing, Docker builds, and Kubernetes deployment.
Figure 6 - GitHub Actions CI/CD pipeline with automated tests
This project demonstrates a complete MLOps pipeline following industry best practices. The modular architecture enables rapid iteration, while containerization and orchestration ensure reproducibility and scalability. The integration of MLflow, Airflow, and Kubernetes provides enterprise-grade ML operations capabilities.
Future enhancements include cloud deployment (AWS/GCP), model monitoring with Prometheus/Grafana, A/B testing infrastructure, and multi-model serving capabilities.
Status: Production-ready, fully deployable locally and on cloud
Deployment: Docker Compose (local) + Kubernetes (Docker Desktop)
Contact: For repository access or technical inquiries, contact Martin LE CORRE
Documentation: 📄 View detailed README