Slide 1

Slide 1 text

Henk Boelman & Amy Boyd Cloud Advocates @ Microsoft Build and deploy PyTorch models with Azure Machine Learning @AmyKateNicho @hboelman Workshop:

Slide 2

Slide 2 text

Agenda Part 1 – Prepare your environment Part 2 – Train your model Part 3 – Deploy your model Build and deploy a PyTorch classification model using Azure Machine Learning.

Slide 3

Slide 3 text

Sophisticated pretrained models To simplify solution development Azure Databricks Machine Learning VMs Popular frameworks To build advanced deep learning solutions TensorFlow Keras Pytorch Onnx Azure Machine Learning Language Speech … Azure Search Vision On-premises Cloud Edge Productive services To empower data science and development teams Powerful infrastructure To accelerate deep learning Flexible deployment To deploy and manage models on intelligent cloud and edge Machine Learning on Azure Cognitive Services

Slide 4

Slide 4 text

Vision Speech Language Knowledge Cognitive Services: Pre-Trained models in the cloud and on the edge

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Azure Machine Learning A fully-managed cloud service that enables you to easily build, deploy, and share predictive analytics solutions.

Slide 7

Slide 7 text

Is it Marge or Homer or .. or ..?

Slide 8

Slide 8 text

Simpson Lego dataset https://github.com/hnky/dataset-lego-figures

Slide 9

Slide 9 text

Sophisticated pretrained models To simplify solution development Azure Databricks Machine Learning VMs Popular frameworks To build advanced deep learning solutions TensorFlow Keras Pytorch Onnx Azure Machine Learning Language Speech … Azure Search Vision On-premises Cloud Edge Productive services To empower data science and development teams Powerful infrastructure To accelerate deep learning Flexible deployment To deploy and manage models on intelligent cloud and edge Machine Learning on Azure Cognitive Services

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

What is Azure Machine Learning Service? Set of Azure Cloud Services Python SDK Prepare Data Build Models Train Models Manage Models Track Experiments Deploy Models That enables you to:

Slide 12

Slide 12 text

Prepare your environment Experiment with your model & data Deploy Your model into production

Slide 13

Slide 13 text

Step 1: Prepare your environment

Slide 14

Slide 14 text

Setup your environment VS Code Python SDK Azure Portal

Slide 15

Slide 15 text

Create a workspace using the Azure CLI Create a workspace

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Datasets – registered, known data sets Experiments – Training runs Models – Registered, versioned models Endpoints: Real-time Endpoints – Deployed model endpoints Pipeline Endpoints – Training workflows Compute – Managed compute Datastores – Connections to data Azure Machine Learning Service

Slide 18

Slide 18 text

Create Compute Create a workspace Create compute

Slide 19

Slide 19 text

Demo: Setup your workspace Create a workspace Create compute Setup storage

Slide 20

Slide 20 text

Step 1 Hands-on lab 1 Get an Azure Pass https://aka.ms/ep/azure Go to the Labs https://aka.ms/ep/workshop One on tech support https://aka.ms/ep/support

Slide 21

Slide 21 text

Step 2: Experiment with your model & data

Slide 22

Slide 22 text

Create an experiment exp = Experiment(workspace=ws, name=“”) Create an Experiment

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Create a workspace Create compute Setup storage Register a dataset ds.upload(src_dir=data_path, target_path='simpsonslego’, overwrite=True, show_progress=True) datastore_paths = [(ds, 'simpsonslego/**')] simpsons_ds = Dataset.File.from_files(path=datastore_paths) simpsons_ds.register(workspace=ws, name='LegoSimpsons', description='Simpsons dataset with Lego Figures', create_new_version = True)

Slide 25

Slide 25 text

Create a training file Create an Experiment Create a training file

Slide 26

Slide 26 text

Create an Environment Curated enviroment curated_env_name = 'AzureML-PyTorch-1.6-GPU' pytorch_env = Environment.get(workspace=ws, name=curated_env_name) pytorch_env = pytorch_env.clone(new_name='pytorch-1.6-gpu’) Custom environment env = Environment('pytorch-1.6-gpu') cd = CondaDependencies.create( pip_packages=['azureml-dataprep[pandas,fuse]', 'azureml-defaults'], conda_packages=['pytorch','torchvision']) env.python.conda_dependencies = cd env.docker.enabled = True Create an Experiment Create a training file Create an ScriptRunConfig

Slide 27

Slide 27 text

Create an ScriptRunConfig args = ['--data-folder', simpsons_ds.as_named_input('simpsons').as_mount(), '--num-epochs', 10] project_folder = "./trainingscripts“ config = ScriptRunConfig( source_directory = project_folder, script = 'train.py', compute_target=compute_target, environment = pytorch_env, arguments=args, ) Create an Experiment Create a training file Create an ScriptRunConfig

Slide 28

Slide 28 text

Submit the experiment to the cluster run = exp.submit(estimator) RunDetails(run).show() Create an Experiment Create a training file Submit to the AI cluster Create an ScriptRunConfig

Slide 29

Slide 29 text

Create an Experiment Create a training file Submit to the AI cluster Create an ScriptRunConfig Demo: Creating and run an experiment

Slide 30

Slide 30 text

Azure Notebook Compute Target Experiment Docker Image Data store 1. Snapshot folder and send to experiment 2. create docker image 3. Deploy docker and snapshot to compute 4. Mount datastore to compute 6. Stream stdout, logs, metrics 5. Launch the script 7. Copy over outputs

Slide 31

Slide 31 text

Register the model model = run.register_model( model_name='SimpsonsAI', model_path='outputs') Create an Experiment Create a training file Submit to the AI cluster Create an ScriptRunConfig Register the model

Slide 32

Slide 32 text

Create an Experiment Create a training file Submit to the AI cluster Create an ScriptRunConfig Register the model Demo: Register and test the model

Slide 33

Slide 33 text

Step 1 Hands-on lab 2 Get an Azure Pass https://aka.ms/ep/azure Go to the Labs https://aka.ms/ep/workshop One on tech support https://aka.ms/ep/support

Slide 34

Slide 34 text

Step 3: Deploy your model into production

Slide 35

Slide 35 text

AMLS to deploy The Model Score.py Environment file Docker Image

Slide 36

Slide 36 text

Score.py %%writefile score.py from azureml.core.model import Model def init(): model_root = Model.get_model_path('MyModel’) loaded_model = model_from_json(loaded_model_json) loaded_model.load_weights(model_file_h5) def run(raw_data): url = json.loads(raw_data)['url’] image_data = cv2.resize(image_data,(96,96)) predicted_labels = loaded_model.predict(data1) return json.dumps(predicted_labels)

Slide 37

Slide 37 text

Environment File from azureml.core.runconfig import CondaDependencies cd = CondaDependencies.create() cd.add_conda_package('keras==2.2.2') cd.add_conda_package('opencv') cd.add_tensorflow_conda_package() cd.save_to_file(base_directory='./', conda_file_path='myenv.yml')

Slide 38

Slide 38 text

Inference config inference_config = InferenceConfig( runtime= "python", entry_script="score.py", conda_file="myenv.yml" )

Slide 39

Slide 39 text

Deployment using AMLS

Slide 40

Slide 40 text

Deploy to ACI aciconfig = AciWebservice.deploy_configuration( cpu_cores = 1, memory_gb = 2) service = Model.deploy(workspace=ws, name='simpsons-aci', models=[model], inference_config=inference_config, deployment_config=aciconfig)

Slide 41

Slide 41 text

Deploy to AKS aks_target = AksCompute(ws,"AI-AKS-DEMO") deployment_config = AksWebservice.deploy_configuration( cpu_cores = 1, memory_gb = 1) service = Model.deploy(workspace=ws, name="simpsons-ailive", models=[model], inference_config=inference_config, deployment_config=deployment_config, deployment_target=aks_target) service.wait_for_deployment(show_output = True)

Slide 42

Slide 42 text

Demo: Deploy to ACI

Slide 43

Slide 43 text

Step 1 Hands-on lab 3 Get an Azure Pass https://aka.ms/ep/azure Go to the Labs https://aka.ms/ep/workshop One on tech support https://aka.ms/ep/support

Slide 44

Slide 44 text

Q&A

Slide 45

Slide 45 text

Create an Experiment Trained the model Register the model Setup a workspace Setup Compute Setup storage Recap Prepare your environment Experiment with your model & data Deploy your model Create a deployment Deployed the model

Slide 46

Slide 46 text

https://aka.ms/ep/pytorch PyTorch Fundamentals Learn the fundamentals of deep learning with PyTorch! This beginner friendly learning path will introduce key concepts to building machine learning models in multiple domains include speech, vision, and natural language processing. Learn more

Slide 47

Slide 47 text

@hboelman github.com/hnky henkboelman.com Thank you! Read more on: aka.ms/amls-pytorch