MLOps Course
A free MLOps course to learn how to apply ML to build a production grade product to deliver value.
MLOps concepts are interweaved and cannot be run in isolation, so be sure to complement the code in this repository with the detailed MLOps lessons.
- Lessons: https://madewithml.com/#mlops
- Code: GokuMohandas/mlops-course
π¦ Purpose | π» Developing | β»οΈ Reproducibility |
Product | Packaging | Git |
Design | Organization | Pre-commit |
Project | Logging | Versioning |
π’ Data | Documentation | Docker |
Exploration | Styling | π Production |
Labeling | Makefile | Dashboard |
Preprocessing | π¦ Serving | CI/CD workflows |
Splitting | Command-line | Infrastructure |
Augmentation | RESTful API | Monitoring |
π Modeling | β Testing | Feature store |
Baselines | Code | Data stack (Aug 2022) |
Evaluation | Data | Orchestration |
Experiment tracking | Models | |
Optimization |
π More content coming soon!
Subscribe for our monthly updates on new content.
Instructions
We highly recommend going through the lessons one at a time and building the code base as we progress. For every concept, we focus on the fundamentals and then dive into the code, at which point we can refer to this repository as a guide.
Virtual environment
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install -e ".[dev]"
pre-commit install
pre-commit autoupdate
If the commands above do not work, please refer to the packaging lesson. We highly recommend using Python version
3.7.13
.
Directory
tagifai/
βββ data.py - data processing utilities
βββ evaluate.py - evaluation components
βββ main.py - training/optimization operations
βββ predict.py - inference utilities
βββ train.py - training utilities
βββ utils.py - supplementary utilities
Workflow
python tagifai/main.py etl-data
python tagifai/main.py label-data --args-fp="config/args.json"
python tagifai/main.py optimize --args-fp="config/args.json" --study-name="optimization" --num-trials=10
python tagifai/main.py train-model --args-fp="config/args.json" --experiment-name="baselines" --run-name="sgd"
python tagifai/main.py predict-tag --text="Transfer learning with transformers for text classification."
API
uvicorn app.api:app --host 0.0.0.0 --port 8000 --reload --reload-dir tagifai --reload-dir app # dev
gunicorn -c app/gunicorn.py -k uvicorn.workers.UvicornWorker app.api:app # prod