karadalex / dnn-full-stack-prod-recommend-system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DNN Full Stack Production(ish) Recommendation System

Description

  • Deep Neural Network for a simple movie recommendation system, using MLOps and FullStack web practices
  • Technologies & Libraries: tensorflow, keras, fastapi, huggingface, mlflow, lakefs, minio, nextjs, streamlit, click, pandas, scikitlearn, jupyter

Requirements

  • yarn/npm
  • python3.8
  • pipenv
  • docker, docker-compose

Instructions

The first time

pipenv shell
pipenv install
  • To run docker services docker-compose up -d
  • To run data gui cd explore && streamlit run data_gui.py

Services & Ports

Service Port
NextJS Web Frontend 3000
MLFlow Server 5000
FastAPI 8000
LakeFS 8001
Minio 9002,9003

TODOs

  • nextjs, show simple grid of movies
  • movie dataset from kaggle https://www.kaggle.com/datasets/rounakbanik/the-movies-dataset
  • mlflow to log experiments: (hyperparameter tuning)
  • tensorflow for dnn
  • scikitlearn for metrics (accuracy, etc)
  • celery to periodically run dnn experiments
  • fastapi for model serving
  • lakefs for dataset and model versioning
  • minio for object storage
  • version datasets, models and API deployment of models
  • StreamLit app https://docs.streamlit.io/library/get-started/create-an-app
  • jupyter notebooks for exploration
  • click cli to clean/prepare data, make a huggingface dataset and other project scripts click
  • Github CI/CD pipelines

Dataset links

Other resources

About

License:MIT License


Languages

Language:Jupyter Notebook 67.2%Language:PureBasic 16.6%Language:CSS 7.2%Language:Python 6.5%Language:JavaScript 1.6%Language:TypeScript 0.7%Language:Shell 0.2%