Are you sure you want to delete this access key?
Legend |
---|
DVC Managed File |
Git Managed File |
Metric |
Stage File |
External File |
Legend |
---|
DVC Managed File |
Git Managed File |
Metric |
Stage File |
External File |
If you need refresh yourself on ML algorithms, check out our ML Foundations repository (🔥 Among the top ML repositories on GitHub)
📦 Product | 🔢 Data | 📈 Modeling |
Objective | Annotation | Baselines |
Solution | Exploratory data analysis | Experiment tracking |
Evaluation | Splitting | Optimization |
Iteration | Preprocessing |
📝 Scripting | (cont.) | 📦 Application | ✅ Testing |
Organization | Styling | CLI | Code |
Packaging | Makefile | API | Data |
Documentation | Logging | Models |
⏰ Version control | 🚀 Production | (cont.) |
Git | Dashboard | Feature stores |
Precommit | Docker | Workflows |
Versioning | CI/CD | Active learning |
Monitoring |
📆 new lesson every week!
Subscribe for our monthly updates on new content.
app/
├── api.py - FastAPI app
└── cli.py - CLI app
├── schemas.py - API model schemas
tagifai/
├── config.py - configuration setup
├── data.py - data processing components
├── eval.py - evaluation components
├── main.py - training/optimization pipelines
├── models.py - model architectures
├── predict.py - inference components
├── train.py - training components
└── utils.py - supplementary utilities
Documentation for this application can be found here.
export venv_name="venv"
make venv name=${venv_name} env="prod"
source ${venv_name}/bin/activate
dvc pull experiments
tagifai fix-artifact-metadata
make app env="dev"
You can interact with the API directly or explore via the generated documentation at http://0.0.0.0:5000/docs.
Coming soon after CI/CD lesson where the entire application will be retrained and deployed when we push new data (or trigger manual reoptimization/training). The deployed model, with performance comparisons to previously deployed versions, will be ready on a PR to push to the main branch.
export venv_name="venv"
make venv name=${venv_name} env="dev"
source ${venv_name}/bin/activate
dvc pull data/tags.json
dvc pull data/projects.json
tagifai.main.objective
. This also writes the best model's params to config/params.jsontagifai optimize \
--params-fp config/params.json \
--study-name optimization \
--num-trials 100
We'll cover how to train using compute instances on the cloud from Amazon Web Services (AWS) or Google Cloud Platforms (GCP) in later lessons. But in the meantime, if you don't have access to GPUs, check out the optimize.ipynb notebook for how to train on Colab and transfer to local. We essentially run optimization, then train the best model to download and transfer it's artifacts.
experiments/{experiment_id}/{run_id}
or via the API (GET
/runs/{run_id}).tagifai train-model \
--params-fp config/params.json \
--experiment-name best \
--run-name model \
--publish-metrics # save to metrics/performance.json
train-model
but you can also specify a run-id
to choose a specific model.tagifai predict-tags --text "Transfer learning with BERT" # test with CLI app
make app env="dev" # run API and test if you want
tagifai diff --commit-a workspace --commit-b HEAD
git add .
git commit -m ""
<precommit (dvc, tests, style, clean, etc.) will execute>
git push origin main
make app # uvicorn app.api:app --host 0.0.0.0 --port 5000 --reload --reload-dir tagifai --reload-dir app
make app-prod # gunicorn -c config/gunicorn.py -k uvicorn.workers.UvicornWorker app.api:app
make streamlit # streamlit run streamlit/app.py
make mlflow # mlflow server -h 0.0.0.0 -p 5000 --backend-store-uri experiments/
make docs # python -m mkdocs serve
make great-expectations # great_expectations checkpoint run [projects, tags]
make test # pytest --cov tagifai --cov app --cov-report html
make test-non-training # pytest -m "not training"
python -m ipykernel install --user --name=tagifai
jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install @jupyterlab/toc
jupyter lab
You can also run all notebooks on Google Colab.
While this content is for everyone, it's especially targeted towards people who don't have as much opportunity to learn. I firmly believe that creativity and intelligence are randomly distributed but opportunity is siloed. I want to enable more people to create and contribute to innovation.
@article{madewithml,
title = "Applied ML - Made With ML",
author = "Goku Mohandas",
url = "https://madewithml.com/courses/applied-ml/"
year = "2021",
}
Press p or to see the previous file or, n or to see the next file
Learn how to combine machine learning with software engineering to design, develop, deploy and iterate on production-grade ML applications.
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?