/CustSatMLOps

Customer satisfaction prediction using Machine Learning algorithms and deploying and implementing MLOps with ZenML and MLflow

Primary LanguagePython

Customer Satisfaction prediction with MLOps

For Demo Please visit: https://youtu.be/WYPCLE6CHS8

Overview

CustSatMLOps is a project aimed at predicting customer satisfaction using machine learning algorithms. It integrates MLOps practices using ZenML and MLflow for streamlined deployment and management.

Features

  • Data Processing: Includes scripts for data cleaning and preprocessing.
  • Model Training: Implements various ML algorithms for training models.
  • MLOps Integration: Utilizes ZenML for pipeline orchestration and MLflow for experiment tracking and model management.
  • Deployment: Provides tools for deploying models into production.

Pipeline structure

image

Installation

  1. Clone the repository:
    git clone https://github.com/mirsaidl/CustSatMLOps.git
  2. Navigate to the project directory:
    cd CustSatMLOps
  3. Install the required packages:
    pip install -r requirements.txt
  4. Starting with ZenML 0.20.0, ZenML comes bundled with a React-based dashboard. This dashboard allows you to observe your stacks, stack components and pipeline DAGs in a dashboard interface. To access this, you need to launch the ZenML Server and Dashboard locally, but first you must install the optional dependencies for the ZenML server:
pip install zenml["server"]
zenml up

If you are running the run_deployment.py script, you will also need to install some integrations using ZenML:

zenml integration install mlflow -y

The project can only be executed with a ZenML stack that has an MLflow experiment tracker and model deployer as a component. Configuring a new stack with the two components are as follows:

zenml integration install mlflow -y
zenml experiment-tracker register mlflow_tracker --flavor=mlflow
zenml model-deployer register mlflow --flavor=mlflow
zenml stack register mlflow_stack -a default -o default -d mlflow -e mlflow_tracker --set

Usage

  1. Run the pipeline:
    python run_pipeline.py
  2. Deploy the model:
    python run_deployment.py --config deploy
    python run_deployment.py --config predict
  3. Run Streamlit on local:
    streamlit run app.py

Repository Structure

  • data/: Contains the dataset.
  • pipelines/: Defines the ML pipelines.
  • steps/: Contains steps for data processing, training, and evaluation.
  • src/: Source code for the project.
  • requirements.txt: List of dependencies.

Acknowledgements

This project utilizes ZenML and MLflow for implementing MLOps.