Dockerizing an MLflow-based ML App with SQLite and Streamlit Interface (Optionally, a Three-layer App), and Uploading to Docker Hub
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.
Choose a previous project that involves a machine learning component and perform the following tasks:
Train a machine learning model using the data from your previous project. Select an appropriate machine learning model based on your data and problem.
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.
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.
Dockerize your ML app, ensuring that the SQLite database, MLflow, and the Streamlit or custom interface are all functioning correctly within the Docker image.
Upload your dockerized app to Docker Hub and provide instructions for running the app from the Docker Hub repository.
Choose one of your previous projects that includes a machine learning component.