/azureml-examples

Official community-driven Azure Machine Learning examples, tested with GitHub Actions

Primary LanguagePythonMIT LicenseMIT

page_type languages products description
sample
python
azurecli
azure-machine-learning
Top-level directory for official Azure Machine Learning sample code and notebooks.

Azure Machine Learning Examples

smoke cleanup code style: black license: MIT

Welcome to the Azure Machine Learning examples repository!

Prerequisites

  1. An Azure subscription. If you don't have an Azure subscription, create a free account before you begin.
  2. A terminal and Python >=3.6,<3.9.

Setup

Clone this repository and install required packages:

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples
pip install --upgrade -r requirements.txt

To create or setup a workspace with the assets used in these examples, run the setup script.

If you do not have an Azure ML workspace, run python setup-workspace.py --subscription-id $ID, where $ID is your Azure subscription id. A resource group, Azure ML workspace, and other necessary resources will be created in the subscription.

If you have an Azure ML Workspace, install the Azure ML CLI and run az ml folder attach -w $WS -g $RG, where $WS and $RG are the workspace and resource group names.

Run python setup-workspace.py -h to see other arguments.

Getting Started

To get started, see the introductory tutorial which uses Azure ML to:

  • run a "hello world" job on cloud compute, demonstrating the basics
  • run a series of PyTorch training jobs on cloud compute, demonstrating mlflow tracking & using cloud data

These concepts are sufficient to understand all examples in this repository, which are listed below.

Examples

Tutorials (tutorials)

path status notebooks description
an-introduction an-introduction 1.hello-world.ipynb
2.pytorch-model.ipynb
3.pytorch-model-cloud-data.ipynb
Run 'hello world' and train a simple model on Azure Machine Learning.
automl-with-pycaret automl-with-pycaret 1.classification.ipynb Learn how to use PyCaret for automated machine learning, with tracking and scaling in Azure ML.
deploy-edge deploy-edge ase-gpu.ipynb Learn how to deploy models to Edge devices using Azure ML.
deploy-triton deploy-triton 1.densenet-local.ipynb
2.bidaf-aks-v100.ipynb
Learn how to efficiently deploy to GPUs with the Triton inference server and Azure ML.
using-dask using-dask 1.intro-to-dask.ipynb Learn how to read from cloud data and scale PyData tools (Numpy, Pandas, Scikit-Learn, etc.) with Dask and Azure ML.
using-pytorch-lightning using-pytorch-lightning 1.train-single-node.ipynb
2.log-with-tensorboard.ipynb
3.log-with-mlflow.ipynb
4.train-multi-node-ddp.ipynb
Learn how to train and log metrics with PyTorch Lightning and Azure ML.
using-rapids using-rapids 1.train-and-hpo.ipynb
2.train-multi-gpu.ipynb
Learn how to accelerate PyData tools (Numpy, Pandas, Scikit-Learn, etc.) on NVIDIA GPUs with RAPIDS and Azure ML.
using-xgboost using-xgboost 1.local-eda.ipynb
2.distributed-cpu.ipynb
Learn how to use XGBoost with Azure ML.

Notebooks (notebooks)

path status description
train-lightgbm-local.ipynb train-lightgbm-local use mlflow for tracking local notebook experimentation in the cloud

Train (workflows/train)

path status description
deepspeed/cifar/job.py train-deepspeed-cifar-job train CIFAR-10 using DeepSpeed and PyTorch
deepspeed/transformers/job.py train-deepspeed-transformers-job train Huggingface transformer using DeepSpeed
fastai/mnist-mlproject/job.py train-fastai-mnist-mlproject-job train fastai resnet18 model on mnist data via mlflow mlproject
fastai/mnist/job.py train-fastai-mnist-job train fastai resnet18 model on mnist data
fastai/pets/job.py train-fastai-pets-job train fastai resnet34 model on pets data
lightgbm/iris/job.py train-lightgbm-iris-job train a lightgbm model on iris data
pytorch/cifar-distributed/job.py train-pytorch-cifar-distributed-job train CNN model on CIFAR-10 dataset with distributed PyTorch
pytorch/mnist-mlproject/job.py train-pytorch-mnist-mlproject-job train a pytorch CNN model on mnist data via mlflow mlproject
pytorch/mnist/job.py train-pytorch-mnist-job train a pytorch CNN model on mnist data
scikit-learn/diabetes-mlproject/job.py train-scikit-learn-diabetes-mlproject-job train sklearn ridge model on diabetes data via mlflow mlproject
scikit-learn/diabetes/job.py train-scikit-learn-diabetes-job train sklearn ridge model on diabetes data
tensorflow/mnist-distributed-horovod/job.py train-tensorflow-mnist-distributed-horovod-job train tensorflow CNN model on mnist data distributed via horovod
tensorflow/mnist-distributed/job.py train-tensorflow-mnist-distributed-job train tensorflow CNN model on mnist data distributed via tensorflow
tensorflow/mnist/job.py train-tensorflow-mnist-job train tensorflow NN model on mnist data
transformers/glue/1-aml-finetune-job.py train-transformers-glue-1-aml-finetune-job Submit GLUE finetuning with Huggingface transformers library on Azure ML
transformers/glue/2-aml-comparison-of-sku-job.py train-transformers-glue-2-aml-comparison-of-sku-job Experiment comparing training performance of GLUE finetuning task with differing hardware.
transformers/glue/3-aml-hyperdrive-job.py train-transformers-glue-3-aml-hyperdrive-job Automatic hyperparameter optimization with Azure ML HyperDrive library.
xgboost/iris/job.py train-xgboost-iris-job train xgboost model on iris data

Deploy (workflows/deploy)

path status description
pytorch/mnist/job.py deploy-pytorch-mnist-job deploy pytorch cnn model trained on mnist data to aks
scikit-learn/diabetes/job.py deploy-scikit-learn-diabetes-job deploy sklearn ridge model trained on diabetes data to AKS

Contents

A lightweight template repository for automating the ML lifecycle can be found here. The contents of this repository are described below.

Note: It is not recommended to fork this repository and use it as a template directly. This repository is structured to host a large number of examples and CI for automation and testing.

directory description
.cloud cloud templates (coming soon!)
.github GitHub specific files like Actions workflow yaml definitions and issue templates
notebooks interactive Jupyter notebooks for iterative ML development
tutorials self-contained directories of tutorials
workflows self-contained directories of job to be run, organized by scenario then tool then project

Contributing

We welcome contributions and suggestions! Please see the contributing guidelines for details.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. Please see the code of conduct for details.

Reference