Данг Куинь Ньы (Нина), tg: @quynhu_d
Dataset taken from kaggle.
Objective: predict student grade based (regression).
Check branch hw1_checkpoint
.
Create virtual environment, install required packages:
python -m venv fastml_env
source fastml_env/bin/activate
pip install -r requirements.txt
cd src
uvicorn app:app --reload --host 0.0.0.0 --port 8008
or
cd src
python app.py
Check branch hw2_checkpoint
.
Added minio functionality, tried dvc.
App docker image: quynhud/grade-prediction-app:latest
.
To run application:
docker-compose up -d
Minio s3 at http://localhost:9001/.
Unit tests in src/test_app.py
pytest src/test_app.py
Loading and saving functions for s3 are mocked.
CI with Github Actions: .github/workflows/ci.yml
:
- Builds and pushes Docker images to Docker Hub only upon merge requests
- Flake8 linter (allows lines up to 100 characters)
API with Swagger Documentation can be accessed via http://localhost:8008/docs#/.
list_models
List available models.list_saved_models
: List saved trained models.list_saved_datasets
: List saved datasets.save_data
: Save datasets.train
: train regression model (see documentation via swagger)predict
: predict using fitted model (see documentation via swagger)retrain
: retrain previously fitted model (see documentation via swagger)delete_model
: delete existing model checkpointdelete_data
: delete existing data
Pass data/train_data.json
as data
and examples/model_configs/svr_config.json
as params
to train
upon query.
All parameters must be filled in, see LinearRegressionConfig/RandomForestRegressorConfig/DecisionTreeRegressorConfig/SVRConfig specification in Schemas and/or example values in examples/model_configs
.