Group assignment 4

Title

Dockerizing an MLflow-based ML App with SQLite and Streamlit Interface (Optionally, a Three-layer App), and Uploading to Docker Hub

Introduction

In this assignment, you will be utilizing one of your previous machine learning projects and enhancing it by incorporating MLflow for experiment tracking and management. Additionally, you will integrate SQLite for storing structured and unstructured information related to your trained model. You will also develop a user-friendly interface for your ML app using Streamlit, with the option to create a custom three-layer app. Lastly, you will dockerize your application and upload your dockerized app to Docker Hub.

Task

Choose a previous project that involves a machine learning component and perform the following tasks:

  1. Train a machine learning model using the data from your previous project. Select an appropriate machine learning model based on your data and problem.

  2. Integrate MLflow for tracking and managing your machine learning experiments. Log hyperparameters, metrics, and artifacts of your experiments in MLflow. Save structured and unstructured information related to your trained model in SQLite within MLflow.

  3. Develop a user-friendly interface for your ML app using Streamlit. Optionally, you can create a three-layer ML app (data, business, presentation) for a user-friendly interface to interact with the machine learning model.

  4. Dockerize your ML app, ensuring that the SQLite database, MLflow, and the Streamlit or custom interface are all functioning correctly within the Docker image.

  5. Upload your dockerized app to Docker Hub and provide instructions for running the app from the Docker Hub repository.

Data

Choose one of your previous projects that includes a machine learning component.

Delivery

  • Create a github repository (or use the existing one and adapt it)
  • Save the Colab notebook or the project folder to GitHub
  • Provide a README.md file with a brief description of your project and instructions for running the app from Docker Hub.
  • Submission can be in groups up to 3.
  • Submit by sending an email with link to repo to Hamid (hamidb@business.aau.dk) with Daniel & Roman in cc. (dsh@…, roman@…)