Slide 1

Slide 1 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 2

Slide 2 text

aka.ms/AIML40 Henk Boelman (@hboelman) In this session

Slide 3

Slide 3 text

aka.ms/AIML40 Henk Boelman (@hboelman) The Story Existing pre-built models for text analytics Custom models trained on specific data

Slide 4

Slide 4 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 5

Slide 5 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 6

Slide 6 text

aka.ms/AIML40 Henk Boelman (@hboelman) /Docs alert aka.ms/TextCogSvc Get started with Azure Cognitive Services Text Analytics API

Slide 7

Slide 7 text

aka.ms/AIML40 Henk Boelman (@hboelman) From Cognitive Services to Azure Machine Learning

Slide 8

Slide 8 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 9

Slide 9 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 10

Slide 10 text

aka.ms/AIML40 Henk Boelman (@hboelman) What is Azure Machine Learning? Set of Azure Cloud Services Azure CLI Extension ✓Prepare Data ✓Build Models ✓Train Models ✓Manage Models ✓Track Experiments ✓Deploy Models That enables you to: Python SDK Web interface

Slide 11

Slide 11 text

aka.ms/AIML40 Henk Boelman (@hboelman) Advanced Azure ML Services

Slide 12

Slide 12 text

aka.ms/AIML40 Henk Boelman (@hboelman) NLP-Architect Aspect Based Sentiment Analysis

Slide 13

Slide 13 text

aka.ms/AIML40 Henk Boelman (@hboelman) Managing ML Challenges

Slide 14

Slide 14 text

aka.ms/AIML40 Henk Boelman (@hboelman) Challenges of distributed training  Dependencies and Containers Provision clusters of VMs Schedule jobs Distribute data Gather results Handle failures Scale resources Secure Access

Slide 15

Slide 15 text

aka.ms/AIML40 Henk Boelman (@hboelman) Azure Machine Learning Typical end to end ML process … Prepare Experiment Deploy Orchestrate

Slide 16

Slide 16 text

aka.ms/AIML40 Henk Boelman (@hboelman) Prepare your environment Experiment with your model & data Deploy your model

Slide 17

Slide 17 text

aka.ms/AIML40 Henk Boelman (@hboelman) Step 1: Prepare your environment

Slide 18

Slide 18 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create a workspace ws = Workspace.create( name='', subscription_id='', resource_group='', location='westeurope') ws.write_config() ws = Workspace.from_config() Create a workspace

Slide 19

Slide 19 text

aka.ms/AIML40 Henk Boelman (@hboelman)

Slide 20

Slide 20 text

aka.ms/AIML40 Henk Boelman (@hboelman) Pipelines – Training workflows Pipeline Endpoints – Training workflow endpoints Azure Machine Learning

Slide 21

Slide 21 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create Compute cfg = AmlCompute.provisioning_configuration( vm_size='STANDARD_NC6', min_nodes=0, max_nodes=6) cc = ComputeTarget.create(ws, '', cfg) Create a workspace Create compute

Slide 22

Slide 22 text

aka.ms/AIML40 Henk Boelman (@hboelman) Attach storage ds = ws.get_default_datastore() ds = Datastore.register_azure_blob_container( workspace = ws, datastore_name = ‘', container_name = ‘', account_name = ‘’, account_key = ‘', Create a workspace Create compute Setup storage

Slide 23

Slide 23 text

aka.ms/AIML40 Henk Boelman (@hboelman) Step 1 Prepare your environment Create a workspace Create compute Setup storage

Slide 24

Slide 24 text

aka.ms/AIML40 Henk Boelman (@hboelman) Step 2: Experiment with your model & data

Slide 25

Slide 25 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create an experiment exp = Experiment(workspace=ws, name=“”) Create an Experiment

Slide 26

Slide 26 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create a training file Create an Experiment Create a training file

Slide 27

Slide 27 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create an estimator params = {'--data-folder': ws.get_default_datastore().as_mount()} estimator = Estimator( source_directory = script_folder, script_params = params, compute_target = computeCluster, entry_script = 'train.py’, conda_packages = ['scikit-learn','keras','opencv’]) Create an Experiment Create a training file Create an estimator

Slide 28

Slide 28 text

aka.ms/AIML40 Henk Boelman (@hboelman) 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 estimator

Slide 29

Slide 29 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create an Experiment Create a training file Submit to the AI cluster Create an estimator Demo: Creating and run an experiment

Slide 30

Slide 30 text

aka.ms/AIML40 Henk Boelman (@hboelman) Notebook VM 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

aka.ms/AIML40 Henk Boelman (@hboelman) Register the model model = run.register_model( model_name='MyAwesomeModel', model_path='outputs') Create an Experiment Create a training file Submit to the AI cluster Create an estimator Register the model

Slide 32

Slide 32 text

aka.ms/AIML40 Henk Boelman (@hboelman) Create an Experiment Create a training file Submit to the AI cluster Create an estimator Register the model Demo: Register and test the model

Slide 33

Slide 33 text

aka.ms/AIML40 Henk Boelman (@hboelman) Step 3: Deploy your model

Slide 34

Slide 34 text

aka.ms/AIML40 Henk Boelman (@hboelman) AMLS to deploy The Model Score.py Environment file Docker Image

Slide 35

Slide 35 text

aka.ms/AIML40 Henk Boelman (@hboelman) Score.py

Slide 36

Slide 36 text

aka.ms/AIML40 Henk Boelman (@hboelman) Environment File

Slide 37

Slide 37 text

aka.ms/AIML40 Henk Boelman (@hboelman) Inference config python score.py myenv.yml

Slide 38

Slide 38 text

aka.ms/AIML40 Henk Boelman (@hboelman) Deployment using AML

Slide 39

Slide 39 text

aka.ms/AIML40 Henk Boelman (@hboelman) Deploy to ACI ignitett-aci model inference_config aci_deployment_config

Slide 40

Slide 40 text

aka.ms/AIML40 Henk Boelman (@hboelman) Deploy to AKS ignitett-aks model inference_config deployment_config aks_target

Slide 41

Slide 41 text

aka.ms/AIML40 Henk Boelman (@hboelman) Demo: Deploy to ACI & AKS

Slide 42

Slide 42 text

aka.ms/AIML40 Henk Boelman (@hboelman) Distributed Hyperparameter Tuning

Slide 43

Slide 43 text

aka.ms/AIML40 Henk Boelman (@hboelman) What are Hyperparameters? { “learning_rate”: uniform(0, 1), “num_layers”: choice(2, 4, 8) … } Config1= {“learning_rate”: 0.2, “num_layers”: 2, …} Config2= {“learning_rate”: 0.5, “num_layers”: 4, …} Config3= {“learning_rate”: 0.9, “num_layers”: 8, …} …

Slide 44

Slide 44 text

aka.ms/AIML40 Henk Boelman (@hboelman) Typical ‘manual’ approach to hyperparameter tuning Dataset Training Algorithm 1 Hyperparameter Values – config 1 Model 1 Hyperparameter Values – config 2 Model 2 Hyperparameter Values – config 3 Model 3 Model Training Infrastructure Training Algorithm 2 Hyperparameter Values – config 4 Model 4 Complex Tedious Repetitive Time consuming Expensive

Slide 45

Slide 45 text

aka.ms/AIML40 Henk Boelman (@hboelman) Automated Hyperparameter Tuning Manage Active Jobs Evaluate training runs for specified primary metric Early terminate poor performing training runs. Early termination policies include: Early terminate poorly performing runs

Slide 46

Slide 46 text

aka.ms/AIML40 Henk Boelman (@hboelman) Demo: hyperparameter with Azure Machine Learning

Slide 47

Slide 47 text

aka.ms/AIML40 Henk Boelman (@hboelman) Resources aka.ms/AIML40repo aka.ms/AIML40 aka.ms/mymsignitethetour aka.ms/9TipsProdML

Slide 48

Slide 48 text

No content