The third project ML DevOps Engineer Nanodegree by Udacity.
This project is part of the Udacity course, "Machine Learning DevOps Engineer". Instructions are available in udacity's repository. The project is to build a machine learning application that predicts whether a person's annual income is more than $50K using the census income dataset from UCI. The application is deployed using FastAPI, with CI/CD using Github Actions and Heroku.
Python and Jupyter Notebook
AWS account with S3 bucket
Github account to use Github Actions for CI
Heroku account for CD
Linux environment may be needed within windows through WSL
In addition to the following CLI tools
AWS CLI
Heroku CLI
Dependencies
This project dependencies are available in the requirements.txt file.
Use the package manager pip to install the dependencies from the requirements.txt. It's recommended to install it in a separate virtual environment.
pip install -r requirements.txt
The config file contains MODEL variable of RandomForestClassifier. Each model with a set of parameters for the grid search PARAM_GRID. You can use your own model with the parameters needed. The SLICE_COLUMNS variable holds the columns for slice evaluation.
cd src
python training_job.py
This saves a seralized model, generates evaluation results and slice evaluation results.
cd src
uvicorn app.api:app --reload
cd src
pytest -vv
dvc dag
git push
https://deploy-ml-model-with-github.herokuapp.com/
python request_heroku.py