- 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
- yarn/npm
- python3.8
- pipenv
- docker, docker-compose
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
Service | Port |
---|---|
NextJS Web Frontend | 3000 |
MLFlow Server | 5000 |
FastAPI | 8000 |
LakeFS | 8001 |
Minio | 9002,9003 |
- 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