From 956baea111584643755dce73830c60df17a91ffc Mon Sep 17 00:00:00 2001 From: louisli Date: Sun, 15 Jan 2023 18:00:51 -0500 Subject: [PATCH] updated for workshop lab --- .gitignore | 141 -- .pre-commit-config.yaml | 14 - ci-cd/.amlignore | 6 + ci-cd/.amlignore.amltmp | 6 + ci-cd/README.md | 33 + ci-cd/azure-pipelines/cli/train.yml | 30 + ci-cd/azure-pipelines/dev-requirements.txt | 10 + ci-cd/azure-pipelines/sdk/train.yml | 31 + ci-cd/azure-pipelines/setup-cli.sh | 48 + ci-cd/azure-pipelines/setup-sdk.sh | 23 + ci-cd/images/.amlignore | 6 + ci-cd/images/.amlignore.amltmp | 6 + ci-cd/images/Create_Release_Pipeline.jpg | Bin 0 -> 49094 bytes ci-cd/images/Install_ML_Extension.jpg | Bin 0 -> 146274 bytes ci-cd/images/continous_deployment.jpg | Bin 0 -> 82259 bytes ci-cd/images/deploy_pipeline.jpg | Bin 0 -> 260867 bytes ci-cd/images/install_ML_cli.jpg | Bin 0 -> 258723 bytes ci-cd/images/predeploy_approval.jpg | Bin 0 -> 264885 bytes components/evaluate.yml | 24 + .../src => components}/evaluate/evaluate.py | 30 +- components/prep.yml | 30 + {data-science/src => components}/prep/prep.py | 26 +- components/register.yml | 24 + .../src => components}/register/register.py | 2 +- .../register/register_automl.py | 0 components/train.yml | 18 + .../src => components}/train/train.py | 25 +- config-infra-dev.yml | 38 - config-infra-prod.yml | 39 - data-science/experiment/evaluate.ipynb | 368 ------ data-science/experiment/prep.ipynb | 252 ---- data-science/experiment/requirements.txt | 5 - data-science/experiment/train.ipynb | 330 ----- data-science/src/evaluate/test_evaluate.py | 149 --- data-science/src/prep/test_prep.py | 102 -- data-science/src/train/test_train.py | 93 -- .../train-conda.yml | 0 .../train-requirements.txt | 0 infrastructure/aml_deploy.tf | 134 -- infrastructure/jumphost.tf | 37 - infrastructure/locals.tf | 9 - infrastructure/main.tf | 18 - infrastructure/modules/aml-workspace/main.tf | 97 -- .../modules/aml-workspace/outputs.tf | 3 - .../modules/aml-workspace/variables.tf | 79 -- .../modules/application-insights/main.tf | 8 - .../modules/application-insights/outputs.tf | 3 - .../modules/application-insights/variables.tf | 30 - infrastructure/modules/bastion-host/main.tf | 31 - .../modules/bastion-host/outputs.tf | 0 .../modules/bastion-host/variables.tf | 39 - .../modules/container-registry/main.tf | 59 - .../modules/container-registry/outputs.tf | 3 - .../modules/container-registry/variables.tf | 44 - infrastructure/modules/data-explorer/main.tf | 59 - .../modules/data-explorer/outputs.tf | 0 .../modules/data-explorer/variables.tf | 45 - infrastructure/modules/key-vault/main.tf | 74 -- infrastructure/modules/key-vault/outputs.tf | 3 - infrastructure/modules/key-vault/variables.tf | 44 - infrastructure/modules/resource-group/main.tf | 5 - .../modules/resource-group/outputs.tf | 7 - .../modules/resource-group/variables.tf | 26 - .../modules/storage-account/main.tf | 118 -- .../modules/storage-account/outputs.tf | 7 - .../modules/storage-account/variables.tf | 58 - .../modules/virtual-machine/main.tf | 104 -- .../modules/virtual-machine/outputs.tf | 0 .../modules/virtual-machine/variables.tf | 49 - infrastructure/network.tf | 131 -- .../pipelines/tf-ado-deploy-infra.yml | 68 - infrastructure/variables.tf | 47 - ml-pipelines/cli/azureml-cliv2.ipynb | 1145 +++++++++++++++++ ml-pipelines/cli/deploy-batch-endpint.sh | 11 + ml-pipelines/cli/deploy-online-endpint.sh | 12 + .../cli}/deploy/batch/batch-deployment.yml | 0 .../cli}/deploy/batch/batch-endpoint.yml | 0 .../cli}/deploy/online/online-deployment.yml | 0 .../cli}/deploy/online/online-endpoint.yml | 0 ml-pipelines/cli/train.sh | 12 + .../cli}/train/compute.yml | 0 .../cli}/train/data.yml | 0 .../cli}/train/environment.yml | 2 +- .../cli}/train/pipeline.yml | 8 +- .../cli}/train/pipeline_automl.yml | 4 +- .../sdk/deploy-batch-endpoint-sdkv2.ipynb | 390 ++++++ .../sdk/deploy-online-endpoint-sdkv2.ipynb | 356 +++++ ml-pipelines/sdk/train-sdkv2.ipynb | 605 +++++++++ mlops/azureml/azureml-cliv2.ipynb | 605 --------- mlops/azureml/azureml-sdkv2.ipynb | 1018 --------------- .../deploy-batch-endpoint-pipeline.yml | 66 - .../deploy-model-training-pipeline.yml | 59 - .../deploy-online-endpoint-pipeline.yml | 61 - requirements.txt | 4 - 94 files changed, 2897 insertions(+), 4809 deletions(-) delete mode 100644 .gitignore delete mode 100644 .pre-commit-config.yaml create mode 100644 ci-cd/.amlignore create mode 100644 ci-cd/.amlignore.amltmp create mode 100644 ci-cd/README.md create mode 100644 ci-cd/azure-pipelines/cli/train.yml create mode 100644 ci-cd/azure-pipelines/dev-requirements.txt create mode 100644 ci-cd/azure-pipelines/sdk/train.yml create mode 100644 ci-cd/azure-pipelines/setup-cli.sh create mode 100644 ci-cd/azure-pipelines/setup-sdk.sh create mode 100644 ci-cd/images/.amlignore create mode 100644 ci-cd/images/.amlignore.amltmp create mode 100644 ci-cd/images/Create_Release_Pipeline.jpg create mode 100644 ci-cd/images/Install_ML_Extension.jpg create mode 100644 ci-cd/images/continous_deployment.jpg create mode 100644 ci-cd/images/deploy_pipeline.jpg create mode 100644 ci-cd/images/install_ML_cli.jpg create mode 100644 ci-cd/images/predeploy_approval.jpg create mode 100644 components/evaluate.yml rename {data-science/src => components}/evaluate/evaluate.py (88%) create mode 100644 components/prep.yml rename {data-science/src => components}/prep/prep.py (89%) create mode 100644 components/register.yml rename {data-science/src => components}/register/register.py (99%) rename {data-science/src => components}/register/register_automl.py (100%) create mode 100644 components/train.yml rename {data-science/src => components}/train/train.py (92%) delete mode 100644 config-infra-dev.yml delete mode 100644 config-infra-prod.yml delete mode 100644 data-science/experiment/evaluate.ipynb delete mode 100644 data-science/experiment/prep.ipynb delete mode 100644 data-science/experiment/requirements.txt delete mode 100644 data-science/experiment/train.ipynb delete mode 100644 data-science/src/evaluate/test_evaluate.py delete mode 100644 data-science/src/prep/test_prep.py delete mode 100644 data-science/src/train/test_train.py rename {data-science/environment => environment}/train-conda.yml (100%) rename {data-science/environment => environment}/train-requirements.txt (100%) delete mode 100644 infrastructure/aml_deploy.tf delete mode 100644 infrastructure/jumphost.tf delete mode 100644 infrastructure/locals.tf delete mode 100644 infrastructure/main.tf delete mode 100644 infrastructure/modules/aml-workspace/main.tf delete mode 100644 infrastructure/modules/aml-workspace/outputs.tf delete mode 100644 infrastructure/modules/aml-workspace/variables.tf delete mode 100644 infrastructure/modules/application-insights/main.tf delete mode 100644 infrastructure/modules/application-insights/outputs.tf delete mode 100644 infrastructure/modules/application-insights/variables.tf delete mode 100644 infrastructure/modules/bastion-host/main.tf delete mode 100644 infrastructure/modules/bastion-host/outputs.tf delete mode 100644 infrastructure/modules/bastion-host/variables.tf delete mode 100644 infrastructure/modules/container-registry/main.tf delete mode 100644 infrastructure/modules/container-registry/outputs.tf delete mode 100644 infrastructure/modules/container-registry/variables.tf delete mode 100644 infrastructure/modules/data-explorer/main.tf delete mode 100644 infrastructure/modules/data-explorer/outputs.tf delete mode 100644 infrastructure/modules/data-explorer/variables.tf delete mode 100644 infrastructure/modules/key-vault/main.tf delete mode 100644 infrastructure/modules/key-vault/outputs.tf delete mode 100644 infrastructure/modules/key-vault/variables.tf delete mode 100644 infrastructure/modules/resource-group/main.tf delete mode 100644 infrastructure/modules/resource-group/outputs.tf delete mode 100644 infrastructure/modules/resource-group/variables.tf delete mode 100644 infrastructure/modules/storage-account/main.tf delete mode 100644 infrastructure/modules/storage-account/outputs.tf delete mode 100644 infrastructure/modules/storage-account/variables.tf delete mode 100644 infrastructure/modules/virtual-machine/main.tf delete mode 100644 infrastructure/modules/virtual-machine/outputs.tf delete mode 100644 infrastructure/modules/virtual-machine/variables.tf delete mode 100644 infrastructure/network.tf delete mode 100644 infrastructure/pipelines/tf-ado-deploy-infra.yml delete mode 100644 infrastructure/variables.tf create mode 100644 ml-pipelines/cli/azureml-cliv2.ipynb create mode 100644 ml-pipelines/cli/deploy-batch-endpint.sh create mode 100644 ml-pipelines/cli/deploy-online-endpint.sh rename {mlops/azureml => ml-pipelines/cli}/deploy/batch/batch-deployment.yml (100%) rename {mlops/azureml => ml-pipelines/cli}/deploy/batch/batch-endpoint.yml (100%) rename {mlops/azureml => ml-pipelines/cli}/deploy/online/online-deployment.yml (100%) rename {mlops/azureml => ml-pipelines/cli}/deploy/online/online-endpoint.yml (100%) create mode 100644 ml-pipelines/cli/train.sh rename {mlops/azureml => ml-pipelines/cli}/train/compute.yml (100%) rename {mlops/azureml => ml-pipelines/cli}/train/data.yml (100%) rename {mlops/azureml => ml-pipelines/cli}/train/environment.yml (70%) rename {mlops/azureml => ml-pipelines/cli}/train/pipeline.yml (94%) rename {mlops/azureml => ml-pipelines/cli}/train/pipeline_automl.yml (96%) create mode 100644 ml-pipelines/sdk/deploy-batch-endpoint-sdkv2.ipynb create mode 100644 ml-pipelines/sdk/deploy-online-endpoint-sdkv2.ipynb create mode 100644 ml-pipelines/sdk/train-sdkv2.ipynb delete mode 100644 mlops/azureml/azureml-cliv2.ipynb delete mode 100644 mlops/azureml/azureml-sdkv2.ipynb delete mode 100644 mlops/devops-pipelines/deploy-batch-endpoint-pipeline.yml delete mode 100644 mlops/devops-pipelines/deploy-model-training-pipeline.yml delete mode 100644 mlops/devops-pipelines/deploy-online-endpoint-pipeline.yml delete mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore deleted file mode 100644 index f9a2658..0000000 --- a/.gitignore +++ /dev/null @@ -1,141 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# Mac stuff -.DS_Store - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -parts/ -sdist/ -var/ -wheels/ -pip-wheel-metadata/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -.python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# Terraform -.terraform.lock.hcl -terraform.tfstate -terraform.tfstate.backup -.terraform.tfstate.lock.info -.terraform -terraform.tfvars - -/infrastructure/bicep/main.json -! /infrastructure/bicep/bicepconfig.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index d9b7c7a..0000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,14 +0,0 @@ -repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.2.0 - hooks: - - id: check-yaml - - id: end-of-file-fixer - - id: trailing-whitespace - - # Opinionated code formatter to forget about formatting -- repo: https://github.com/psf/black - rev: 21.12b0 - hooks: - - id: black - additional_dependencies: ['click==8.0.4'] diff --git a/ci-cd/.amlignore b/ci-cd/.amlignore new file mode 100644 index 0000000..0621f9f --- /dev/null +++ b/ci-cd/.amlignore @@ -0,0 +1,6 @@ +## This file was auto generated by the Azure Machine Learning Studio. Please do not remove. +## Read more about the .amlignore file here: https://docs.microsoft.com/azure/machine-learning/how-to-save-write-experiment-files#storage-limits-of-experiment-snapshots + +.ipynb_aml_checkpoints/ +*.amltmp +*.amltemp \ No newline at end of file diff --git a/ci-cd/.amlignore.amltmp b/ci-cd/.amlignore.amltmp new file mode 100644 index 0000000..0621f9f --- /dev/null +++ b/ci-cd/.amlignore.amltmp @@ -0,0 +1,6 @@ +## This file was auto generated by the Azure Machine Learning Studio. Please do not remove. +## Read more about the .amlignore file here: https://docs.microsoft.com/azure/machine-learning/how-to-save-write-experiment-files#storage-limits-of-experiment-snapshots + +.ipynb_aml_checkpoints/ +*.amltmp +*.amltemp \ No newline at end of file diff --git a/ci-cd/README.md b/ci-cd/README.md new file mode 100644 index 0000000..e1f58e3 --- /dev/null +++ b/ci-cd/README.md @@ -0,0 +1,33 @@ +# Azure MLOps (v2) CI/CD Example + +This is sample repo to create automated CI/CD process using Azure Pipelines or Github Actions. + +## Creating CI/CD with Azure Pipelines + +### Create CI using Azure Pipeline Build Pipeline +Following instructions to create CI pipeline for training: + + +### Create CD using Azure Pipeline Release Pipeline +1. Install Machine Learning for Azure Pipelines +![Install Machine Learning Extension for Azure Pipelines](./images/Install_ML_Extension.jpg) +2. Create a Release pipeline triggered by Azure Machine Learning Model Registry
+ 2.1 Add following to your release pipeline:
+ - Azure Machine Learning Registry
+ - Inference Repo to Artifacts
+ - Add stages
+![Create Release Pipeline](./images/Create_Release_Pipeline.jpg) + 2.2 Add Azure CLI task for preparing environment
+![Install CLI](./images/install_ML_cli.jpg) + 2.3 Add Azure CLI task for model deployment + ![Deploy Pipeline](./images/deploy_pipeline.jpg) + 2.4 Enable trigger - Continuous Deployment + ![Configure Continuous Deployment](./images/continous_deployment.jpg) + 2.5 Predeployment Approal
+ ![Predeployment Approval](./images/predeploy_approval.jpg) + + + +## Createing CD + CD with Github Actions + + \ No newline at end of file diff --git a/ci-cd/azure-pipelines/cli/train.yml b/ci-cd/azure-pipelines/cli/train.yml new file mode 100644 index 0000000..4de0586 --- /dev/null +++ b/ci-cd/azure-pipelines/cli/train.yml @@ -0,0 +1,30 @@ +trigger: +- main + +pool: + vmImage: ubuntu-latest + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '3.8' +- script: pip install -r ci-cd/azure-pipelines/dev-requirements.txt + displayName: 'pip install notebook reqs' +- task: Bash@3 + inputs: + filePath: 'ci-cd/azure-pipelines/setup-sdk.sh' + displayName: 'set up sdk' + +- task: Bash@3 + inputs: + filePath: 'ci-cd/azure-pipelines/setup-cli.sh' + displayName: 'set up CLI' + +- task: AzureCLI@2 + inputs: + azureSubscription: 'azureml-mldemo' + scriptType: 'bash' + scriptLocation: 'inlineScript' + inlineScript: | + train.sh + workingDirectory: 'ml-pipelines/cli' \ No newline at end of file diff --git a/ci-cd/azure-pipelines/dev-requirements.txt b/ci-cd/azure-pipelines/dev-requirements.txt new file mode 100644 index 0000000..8f278e0 --- /dev/null +++ b/ci-cd/azure-pipelines/dev-requirements.txt @@ -0,0 +1,10 @@ +# required for notebook testing in workflow actions +# pinned to avoid surprises +ipython-genutils +ipykernel==5.5.5 +papermill==2.3.3 +pandas +matplotlib +tensorflow +tensorflow-hub +transformers diff --git a/ci-cd/azure-pipelines/sdk/train.yml b/ci-cd/azure-pipelines/sdk/train.yml new file mode 100644 index 0000000..2a85b88 --- /dev/null +++ b/ci-cd/azure-pipelines/sdk/train.yml @@ -0,0 +1,31 @@ +trigger: +- main + +pool: + vmImage: ubuntu-latest + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '3.8' +- script: pip install -r ci-cd/azure-pipelines/dev-requirements.txt + displayName: 'pip install notebook reqs' +- task: Bash@3 + inputs: + filePath: 'ci-cd/azure-pipelines/setup-sdk.sh' + displayName: 'set up sdk' + +- task: Bash@3 + inputs: + filePath: 'ci-cd/azure-pipelines/setup-cli.sh' + displayName: 'set up CLI' + +- task: AzureCLI@2 + inputs: + azureSubscription: 'azureml-mldemo' #name of the AzureML service connection defined in Azure Pipelines + scriptType: 'bash' + scriptLocation: 'inlineScript' + inlineScript: | + sed -i -e "s/DefaultAzureCredential/AzureCliCredential/g" train-sdkv2.ipynb + papermill -k python train-sdkv2.ipynb train-sdkv2.output.ipynb + workingDirectory: 'ml-pipelines/sdk' \ No newline at end of file diff --git a/ci-cd/azure-pipelines/setup-cli.sh b/ci-cd/azure-pipelines/setup-cli.sh new file mode 100644 index 0000000..33ac7c4 --- /dev/null +++ b/ci-cd/azure-pipelines/setup-cli.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# rc install - uncomment and adjust below to run all tests on a CLI release candidate +# az extension remove -n ml + +# +az extension add -n ml -y +# + +# Use a daily build +# az extension add --source https://azuremlsdktestpypi.blob.core.windows.net/wheels/sdk-cli-v2-public/ml-2.9.0-py3-none-any.whl --yes +# remove ml extension if it is installed +# if az extension show -n ml &>/dev/null; then +# echo -n 'Removing ml extension...' +# if ! az extension remove -n ml -o none --only-show-errors &>/dev/null; then +# echo 'Error failed to remove ml extension' >&2 +# fi +# echo -n 'Re-installing ml...' +# fi + +# if ! az extension add --yes --source "https://azuremlsdktestpypi.blob.core.windows.net/wheels/sdk-cli-v2-public/ml-2.10.0-py3-none-any.whl" -o none --only-show-errors &>/dev/null; then +# echo 'Error failed to install ml azure-cli extension' >&2 +# exit 1 +# fi + +# az version + +## For backward compatibility - running on old subscription +# +GROUP="azureml-examples" +LOCATION="eastus" +WORKSPACE="main" +# + +# If RESOURCE_GROUP_NAME is empty, the az configure is pending. +RESOURCE_GROUP_NAME=${RESOURCE_GROUP_NAME:-} +if [[ -z "$RESOURCE_GROUP_NAME" ]] +then + echo "No resource group name [RESOURCE_GROUP_NAME] specified, defaulting to ${GROUP}." + # Installing extension temporarily assuming the run is on old subscription + # without bootstrap script. + + # + az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION + # + echo "Default resource group set to $GROUP" +else + echo "Workflows are using the new subscription." +fi \ No newline at end of file diff --git a/ci-cd/azure-pipelines/setup-sdk.sh b/ci-cd/azure-pipelines/setup-sdk.sh new file mode 100644 index 0000000..71b1772 --- /dev/null +++ b/ci-cd/azure-pipelines/setup-sdk.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# +# pip install --pre azure-ai-ml +# + +# +pip install mldesigner +# + +# +pip install mltable +pip install pandas +# + + +# +# pip install azure-ai-ml==0.1.0.b8 +pip install azure-ai-ml +# https://docsupport.blob.core.windows.net/ml-sample-submissions/1905732/azure_ai_ml-1.0.0-py3-none-any.whl +# + +pip list \ No newline at end of file diff --git a/ci-cd/images/.amlignore b/ci-cd/images/.amlignore new file mode 100644 index 0000000..0621f9f --- /dev/null +++ b/ci-cd/images/.amlignore @@ -0,0 +1,6 @@ +## This file was auto generated by the Azure Machine Learning Studio. Please do not remove. +## Read more about the .amlignore file here: https://docs.microsoft.com/azure/machine-learning/how-to-save-write-experiment-files#storage-limits-of-experiment-snapshots + +.ipynb_aml_checkpoints/ +*.amltmp +*.amltemp \ No newline at end of file diff --git a/ci-cd/images/.amlignore.amltmp b/ci-cd/images/.amlignore.amltmp new file mode 100644 index 0000000..0621f9f --- /dev/null +++ b/ci-cd/images/.amlignore.amltmp @@ -0,0 +1,6 @@ +## This file was auto generated by the Azure Machine Learning Studio. Please do not remove. +## Read more about the .amlignore file here: https://docs.microsoft.com/azure/machine-learning/how-to-save-write-experiment-files#storage-limits-of-experiment-snapshots + +.ipynb_aml_checkpoints/ +*.amltmp +*.amltemp \ No newline at end of file diff --git a/ci-cd/images/Create_Release_Pipeline.jpg b/ci-cd/images/Create_Release_Pipeline.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1da3a7291698e15393ceb427e1975aa55e1594b0 GIT binary patch literal 49094 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

+iyulw{?;6MZL_lrr62x|>%*kpH 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 literal 0 HcmV?d00001 diff --git a/ci-cd/images/Install_ML_Extension.jpg b/ci-cd/images/Install_ML_Extension.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fa7412c724775601e8d348b824c01f0a9b2646a GIT binary patch literal 146274 zcmeFZcT|(l*Do3bL{Tg#QWd2N5m34mu>l4QNDC0!SCJAhL|W)z2dPpcU4a-{Kp+JY zASw#drAtDB^cqSip>ui5dhh-3yyu>??mFvtovbHMW=%5B&aBycf9A9I%>M8FKY&w4 z1|S0f#~}{DmxC8ze-FTaU;ox!OHt3g7=k;ov@UgqMf+-#Xws&ig<0)BkwN{&$W%0Dyy=J>-$_KCApZ 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�v!XzEN^S_gR7WQf~0I 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%0A)(mI#g7dq) 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%0DGLlpXU%8JA4s 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 U8HoHV3Hn>9{L_`n!Jnl63s_!i#Q*>R literal 0 HcmV?d00001 diff --git a/ci-cd/images/continous_deployment.jpg b/ci-cd/images/continous_deployment.jpg new file mode 100644 index 0000000000000000000000000000000000000000..18c7905c4a31d2f69a6659148c2b653cf692c23e GIT binary patch literal 82259 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 M;Y*b{`g81m0kTBcj{pDw literal 0 HcmV?d00001 diff --git a/ci-cd/images/deploy_pipeline.jpg b/ci-cd/images/deploy_pipeline.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e81d845200617cc037569e8ad7e0e3f91955aab GIT binary patch literal 260867 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 literal 0 HcmV?d00001 diff --git a/ci-cd/images/install_ML_cli.jpg b/ci-cd/images/install_ML_cli.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab4b238df6483ca0827ec986c41d18ca11df6bdd GIT binary patch literal 258723 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%0DWbtK!%5X>WQ&GJD6ppCu1tY6-+goOSeI`k2bOC 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ⅈ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

;vSnHbTQ?G> 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�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 literal 0 HcmV?d00001 diff --git a/components/evaluate.yml b/components/evaluate.yml new file mode 100644 index 0000000..929c732 --- /dev/null +++ b/components/evaluate.yml @@ -0,0 +1,24 @@ +# +$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json +name: evaluate_model +display_name: evaluate-model +type: command +inputs: + model_name: + type: string + model_input: + type: uri_folder + test_data: + type: uri_folder +outputs: + evaluation_output: + type: uri_folder +code: ./evaluate +environment: azureml:taxi-train-env@latest +command: >- + python evaluate.py + --model_name ${{inputs.model_name}} + --model_input ${{inputs.model_input}} + --test_data ${{inputs.test_data}} + --evaluation_output ${{outputs.evaluation_output}} +# \ No newline at end of file diff --git a/data-science/src/evaluate/evaluate.py b/components/evaluate/evaluate.py similarity index 88% rename from data-science/src/evaluate/evaluate.py rename to components/evaluate/evaluate.py index bc790b9..289a56b 100644 --- a/data-science/src/evaluate/evaluate.py +++ b/components/evaluate/evaluate.py @@ -22,20 +22,34 @@ from mlflow.tracking import MlflowClient TARGET_COL = "cost" NUMERIC_COLS = [ - "distance", "dropoff_latitude", "dropoff_longitude", "passengers", "pickup_latitude", - "pickup_longitude", "pickup_weekday", "pickup_month", "pickup_monthday", "pickup_hour", - "pickup_minute", "pickup_second", "dropoff_weekday", "dropoff_month", "dropoff_monthday", - "dropoff_hour", "dropoff_minute", "dropoff_second" + "distance", + "dropoff_latitude", + "dropoff_longitude", + "passengers", + "pickup_latitude", + "pickup_longitude", + "pickup_weekday", + "pickup_month", + "pickup_monthday", + "pickup_hour", + "pickup_minute", + "pickup_second", + "dropoff_weekday", + "dropoff_month", + "dropoff_monthday", + "dropoff_hour", + "dropoff_minute", + "dropoff_second", ] CAT_NOM_COLS = [ - "store_forward", "vendor" + "store_forward", + "vendor", ] CAT_ORD_COLS = [ ] - def parse_args(): '''Parse input arguments''' @@ -44,6 +58,7 @@ def parse_args(): parser.add_argument("--model_input", type=str, help="Path of input model") parser.add_argument("--test_data", type=str, help="Path to test dataset") parser.add_argument("--evaluation_output", type=str, help="Path of eval results") + parser.add_argument("--runner", type=str, help="Local or Cloud Runner", default="CloudRunner") args = parser.parse_args() @@ -66,7 +81,8 @@ def main(args): yhat_test, score = model_evaluation(X_test, y_test, model, args.evaluation_output) # ----------------- Model Promotion ---------------- # - predictions, deploy_flag = model_promotion(args.model_name, args.evaluation_output, X_test, y_test, yhat_test, score) + if args.runner == "CloudRunner": + predictions, deploy_flag = model_promotion(args.model_name, args.evaluation_output, X_test, y_test, yhat_test, score) diff --git a/components/prep.yml b/components/prep.yml new file mode 100644 index 0000000..0ef3995 --- /dev/null +++ b/components/prep.yml @@ -0,0 +1,30 @@ +# +$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json +name: prep_data +display_name: prep-data +type: command +inputs: + raw_data: + type: uri_file + enable_monitoring: + type: string + table_name: + type: string +outputs: + train_data: + type: uri_folder + val_data: + type: uri_folder + test_data: + type: uri_folder +code: ./prep +environment: azureml:taxi-train-env@latest +command: >- + python prep.py + --raw_data ${{inputs.raw_data}} + --train_data ${{outputs.train_data}} + --val_data ${{outputs.val_data}} + --test_data ${{outputs.test_data}} + --enable_monitoring ${{inputs.enable_monitoring}} + --table_name ${{inputs.table_name}} +# \ No newline at end of file diff --git a/data-science/src/prep/prep.py b/components/prep/prep.py similarity index 89% rename from data-science/src/prep/prep.py rename to components/prep/prep.py index 05f9707..ca73f90 100644 --- a/data-science/src/prep/prep.py +++ b/components/prep/prep.py @@ -16,20 +16,34 @@ import mlflow TARGET_COL = "cost" NUMERIC_COLS = [ - "distance", "dropoff_latitude", "dropoff_longitude", "passengers", "pickup_latitude", - "pickup_longitude", "pickup_weekday", "pickup_month", "pickup_monthday", "pickup_hour", - "pickup_minute", "pickup_second", "dropoff_weekday", "dropoff_month", "dropoff_monthday", - "dropoff_hour", "dropoff_minute", "dropoff_second" + "distance", + "dropoff_latitude", + "dropoff_longitude", + "passengers", + "pickup_latitude", + "pickup_longitude", + "pickup_weekday", + "pickup_month", + "pickup_monthday", + "pickup_hour", + "pickup_minute", + "pickup_second", + "dropoff_weekday", + "dropoff_month", + "dropoff_monthday", + "dropoff_hour", + "dropoff_minute", + "dropoff_second", ] CAT_NOM_COLS = [ - "store_forward", "vendor" + "store_forward", + "vendor", ] CAT_ORD_COLS = [ ] - def parse_args(): '''Parse input arguments''' diff --git a/components/register.yml b/components/register.yml new file mode 100644 index 0000000..501a217 --- /dev/null +++ b/components/register.yml @@ -0,0 +1,24 @@ +# +$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json +name: register_model +display_name: register-model +type: command +inputs: + model_name: + type: string + model_path: + type: uri_folder + evaluation_output: + type: uri_folder +outputs: + model_info_output_path: + type: uri_folder +code: ./register +environment: azureml:taxi-train-env@latest +command: >- + python register.py + --model_name ${{inputs.model_name}} + --model_path ${{inputs.model_path}} + --evaluation_output ${{inputs.evaluation_output}} + --model_info_output_path ${{outputs.model_info_output_path}} +# \ No newline at end of file diff --git a/data-science/src/register/register.py b/components/register/register.py similarity index 99% rename from data-science/src/register/register.py rename to components/register/register.py index 13a371d..3853a30 100644 --- a/data-science/src/register/register.py +++ b/components/register/register.py @@ -35,7 +35,7 @@ def main(args): deploy_flag = int(infile.read()) mlflow.log_metric("deploy flag", int(deploy_flag)) - + deploy_flag=1 if deploy_flag==1: print("Registering ", args.model_name) diff --git a/data-science/src/register/register_automl.py b/components/register/register_automl.py similarity index 100% rename from data-science/src/register/register_automl.py rename to components/register/register_automl.py diff --git a/components/train.yml b/components/train.yml new file mode 100644 index 0000000..fd77c78 --- /dev/null +++ b/components/train.yml @@ -0,0 +1,18 @@ +# +$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json +name: train_model +display_name: train-model +type: command +inputs: + train_data: + type: uri_folder +outputs: + model_output: + type: uri_folder +code: ./train +environment: azureml:taxi-train-env@latest +command: >- + python train.py + --train_data ${{inputs.train_data}} + --model_output ${{outputs.model_output}} +# \ No newline at end of file diff --git a/data-science/src/train/train.py b/components/train/train.py similarity index 92% rename from data-science/src/train/train.py rename to components/train/train.py index 6f510ab..abd61b3 100644 --- a/data-science/src/train/train.py +++ b/components/train/train.py @@ -21,14 +21,29 @@ import mlflow.sklearn TARGET_COL = "cost" NUMERIC_COLS = [ - "distance", "dropoff_latitude", "dropoff_longitude", "passengers", "pickup_latitude", - "pickup_longitude", "pickup_weekday", "pickup_month", "pickup_monthday", "pickup_hour", - "pickup_minute", "pickup_second", "dropoff_weekday", "dropoff_month", "dropoff_monthday", - "dropoff_hour", "dropoff_minute", "dropoff_second" + "distance", + "dropoff_latitude", + "dropoff_longitude", + "passengers", + "pickup_latitude", + "pickup_longitude", + "pickup_weekday", + "pickup_month", + "pickup_monthday", + "pickup_hour", + "pickup_minute", + "pickup_second", + "dropoff_weekday", + "dropoff_month", + "dropoff_monthday", + "dropoff_hour", + "dropoff_minute", + "dropoff_second", ] CAT_NOM_COLS = [ - "store_forward", "vendor" + "store_forward", + "vendor", ] CAT_ORD_COLS = [ diff --git a/config-infra-dev.yml b/config-infra-dev.yml deleted file mode 100644 index 5ea497e..0000000 --- a/config-infra-dev.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -variables: - - # Global - ap_vm_image: ubuntu-20.04 - - namespace: azure #Note: A namespace with many characters will cause storage account creation to fail due to storage account names having a limit of 24 characters. - postfix: mlopsv2 - location: westus - - environment: dev - enable_aml_computecluster: true - enable_aml_secure_workspace: true - enable_monitoring: true - - # Azure DevOps - ado_service_connection_rg: Azure-ARM-Dev - ado_service_connection_aml_ws: Azure-ARM-Dev - - # DO NOT TOUCH - - # For pipeline reference - resource_group: rg-$(namespace)-$(postfix)$(environment) - aml_workspace: mlw-$(namespace)-$(postfix)$(environment) - application_insights: mlw-$(namespace)-$(postfix)$(environment) - key_vault: kv-$(namespace)-$(postfix)$(environment) - container_registry: cr$(namespace)$(postfix)$(environment) - storage_account: st$(namespace)$(postfix)$(environment) - - # For terraform reference - terraform_version: 0.14.7 - terraform_workingdir: infrastructure/terraform - terraform_st_resource_group: rg-$(namespace)-$(postfix)$(environment)-tf - terraform_st_storage_account: st$(namespace)$(postfix)$(environment)tf - terraform_st_container_name: default - terraform_st_key: mlops-tab diff --git a/config-infra-prod.yml b/config-infra-prod.yml deleted file mode 100644 index 4cf334b..0000000 --- a/config-infra-prod.yml +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -# Prod environment -variables: - - # Global - ap_vm_image: ubuntu-20.04 - - namespace: azure #Note: A namespace with many characters will cause storage account creation to fail due to storage account names having a limit of 24 characters. - postfix: mlopsv2 - location: westeurope - environment: prod - enable_aml_computecluster: true - enable_aml_secure_workspace: false - enable_monitoring: true - - - # Azure DevOps - ado_service_connection_rg: Azure-ARM-Prod - ado_service_connection_aml_ws: Azure-ARM-Prod - - # DO NOT TOUCH - - # For pipeline reference - resource_group: rg-$(namespace)-$(postfix)$(environment) - aml_workspace: mlw-$(namespace)-$(postfix)$(environment) - application_insights: mlw-$(namespace)-$(postfix)$(environment) - key_vault: kv-$(namespace)-$(postfix)$(environment) - container_registry: cr$(namespace)$(postfix)$(environment) - storage_account: st$(namespace)$(postfix)$(environment) - - # For terraform reference - terraform_version: 0.14.7 - terraform_workingdir: infrastructure - terraform_st_resource_group: rg-$(namespace)-$(postfix)$(environment)-tf - terraform_st_storage_account: st$(namespace)$(postfix)$(environment)tf - terraform_st_container_name: default - terraform_st_key: mlops-tab diff --git a/data-science/experiment/evaluate.ipynb b/data-science/experiment/evaluate.ipynb deleted file mode 100644 index 21393f5..0000000 --- a/data-science/experiment/evaluate.ipynb +++ /dev/null @@ -1,368 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "source": [ - "import argparse\n", - "from pathlib import Path\n", - "\n", - "import numpy as np\n", - "import pandas as pd\n", - "from matplotlib import pyplot as plt\n", - "\n", - "from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error\n", - "\n", - "import mlflow\n", - "import mlflow.sklearn\n", - "import mlflow.pyfunc\n", - "from mlflow.tracking import MlflowClient" - ], - "outputs": [], - "execution_count": 1, - "metadata": { - "gather": { - "logged": 1671555116624 - } - } - }, - { - "cell_type": "code", - "source": [ - "TARGET_COL = \"cost\"\n", - "\n", - "NUMERIC_COLS = [\n", - " \"distance\", \"dropoff_latitude\", \"dropoff_longitude\", \"passengers\", \"pickup_latitude\",\n", - " \"pickup_longitude\", \"pickup_weekday\", \"pickup_month\", \"pickup_monthday\", \"pickup_hour\",\n", - " \"pickup_minute\", \"pickup_second\", \"dropoff_weekday\", \"dropoff_month\", \"dropoff_monthday\",\n", - " \"dropoff_hour\", \"dropoff_minute\", \"dropoff_second\"\n", - "]\n", - "\n", - "CAT_NOM_COLS = [\n", - " \"store_forward\", \"vendor\"\n", - "]\n", - "\n", - "CAT_ORD_COLS = [\n", - "]\n" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555116855 - } - } - }, - { - "cell_type": "code", - "source": [ - "# Define Arguments for this step\n", - "\n", - "class MyArgs:\n", - " def __init__(self, **kwargs):\n", - " self.__dict__.update(kwargs)\n", - "\n", - "args = MyArgs(\n", - " model_name = \"taxi-model\",\n", - " model_input = \"/tmp/train\",\n", - " test_data = \"/tmp/prep/test\",\n", - " evaluation_output = \"/tmp/evaluate\",\n", - " )\n", - "\n", - "os.makedirs(args.evaluation_output, exist_ok = True)" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555117074 - } - } - }, - { - "cell_type": "code", - "source": [ - "\n", - "def main(args):\n", - " '''Read trained model and test dataset, evaluate model and save result'''\n", - "\n", - " # Load the test data\n", - " test_data = pd.read_parquet(Path(args.test_data)/\"test.parquet\")\n", - "\n", - " # Split the data into inputs and outputs\n", - " y_test = test_data[TARGET_COL]\n", - " X_test = test_data[NUMERIC_COLS + CAT_NOM_COLS + CAT_ORD_COLS]\n", - "\n", - " # Load the model from input port\n", - " model = mlflow.sklearn.load_model(args.model_input) \n", - "\n", - " # ---------------- Model Evaluation ---------------- #\n", - " yhat_test, score = model_evaluation(X_test, y_test, model, args.evaluation_output)\n", - "\n", - " # ----------------- Model Promotion ---------------- #\n", - " predictions, deploy_flag = model_promotion(args.model_name, args.evaluation_output, X_test, y_test, yhat_test, score)\n", - "\n", - "\n", - "def model_evaluation(X_test, y_test, model, evaluation_output):\n", - "\n", - " # Get predictions to y_test (y_test)\n", - " yhat_test = model.predict(X_test)\n", - "\n", - " # Save the output data with feature columns, predicted cost, and actual cost in csv file\n", - " output_data = X_test.copy()\n", - " output_data[\"real_label\"] = y_test\n", - " output_data[\"predicted_label\"] = yhat_test\n", - " output_data.to_csv((Path(evaluation_output) / \"predictions.csv\"))\n", - "\n", - " # Evaluate Model performance with the test set\n", - " r2 = r2_score(y_test, yhat_test)\n", - " mse = mean_squared_error(y_test, yhat_test)\n", - " rmse = np.sqrt(mse)\n", - " mae = mean_absolute_error(y_test, yhat_test)\n", - "\n", - " # Print score report to a text file\n", - " (Path(evaluation_output) / \"score.txt\").write_text(\n", - " f\"Scored with the following model:\\n{format(model)}\"\n", - " )\n", - " with open((Path(evaluation_output) / \"score.txt\"), \"a\") as outfile:\n", - " outfile.write(\"Mean squared error: {mse.2f} \\n\")\n", - " outfile.write(\"Root mean squared error: {rmse.2f} \\n\")\n", - " outfile.write(\"Mean absolute error: {mae.2f} \\n\")\n", - " outfile.write(\"Coefficient of determination: {r2.2f} \\n\")\n", - "\n", - " mlflow.log_metric(\"test r2\", r2)\n", - " mlflow.log_metric(\"test mse\", mse)\n", - " mlflow.log_metric(\"test rmse\", rmse)\n", - " mlflow.log_metric(\"test mae\", mae)\n", - "\n", - " # Visualize results\n", - " plt.scatter(y_test, yhat_test, color='black')\n", - " plt.plot(y_test, y_test, color='blue', linewidth=3)\n", - " plt.xlabel(\"Real value\")\n", - " plt.ylabel(\"Predicted value\")\n", - " plt.title(\"Comparing Model Predictions to Real values - Test Data\")\n", - " plt.savefig(\"predictions.png\")\n", - " mlflow.log_artifact(\"predictions.png\")\n", - "\n", - " return yhat_test, r2\n", - "\n", - "def model_promotion(model_name, evaluation_output, X_test, y_test, yhat_test, score):\n", - " \n", - " scores = {}\n", - " predictions = {}\n", - "\n", - " client = MlflowClient()\n", - "\n", - " for model_run in client.search_model_versions(f\"name='{model_name}'\"):\n", - " model_version = model_run.version\n", - " mdl = mlflow.pyfunc.load_model(\n", - " model_uri=f\"models:/{model_name}/{model_version}\")\n", - " predictions[f\"{model_name}:{model_version}\"] = mdl.predict(X_test)\n", - " scores[f\"{model_name}:{model_version}\"] = r2_score(\n", - " y_test, predictions[f\"{model_name}:{model_version}\"])\n", - "\n", - " if scores:\n", - " if score >= max(list(scores.values())):\n", - " deploy_flag = 1\n", - " else:\n", - " deploy_flag = 0\n", - " else:\n", - " deploy_flag = 1\n", - " print(f\"Deploy flag: {deploy_flag}\")\n", - "\n", - " with open((Path(evaluation_output) / \"deploy_flag\"), 'w') as outfile:\n", - " outfile.write(f\"{int(deploy_flag)}\")\n", - "\n", - " # add current model score and predictions\n", - " scores[\"current model\"] = score\n", - " predictions[\"currrent model\"] = yhat_test\n", - "\n", - " perf_comparison_plot = pd.DataFrame(\n", - " scores, index=[\"r2 score\"]).plot(kind='bar', figsize=(15, 10))\n", - " perf_comparison_plot.figure.savefig(\"perf_comparison.png\")\n", - " perf_comparison_plot.figure.savefig(Path(evaluation_output) / \"perf_comparison.png\")\n", - "\n", - " mlflow.log_metric(\"deploy flag\", bool(deploy_flag))\n", - " mlflow.log_artifact(\"perf_comparison.png\")\n", - "\n", - " return predictions, deploy_flag" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555117274 - } - } - }, - { - "cell_type": "code", - "source": [ - "mlflow.end_run()" - ], - "outputs": [], - "execution_count": 5, - "metadata": { - "jupyter": { - "source_hidden": false, - "outputs_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555117625 - } - } - }, - { - "cell_type": "code", - "source": [ - "mlflow.start_run()\n", - "\n", - "lines = [\n", - " f\"Model name: {args.model_name}\",\n", - " f\"Model path: {args.model_input}\",\n", - " f\"Test data path: {args.test_data}\",\n", - " f\"Evaluation output path: {args.evaluation_output}\",\n", - "]\n", - "\n", - "for line in lines:\n", - " print(line)\n", - "\n", - "main(args)\n", - "\n", - "mlflow.end_run()" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Model name: taxi-model\nModel path: /tmp/train\nTest data path: /tmp/prep/test\nEvaluation output path: /tmp/evaluate\nDeploy flag: 0\n" - }, - { - "output_type": "display_data", - "data": { - "text/plain": "

", - "image/png": "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iYiIiMzJwYO6E50lS4Dr180z0QHYskNEREQ6jBwJrF4tXZ6YCPj7myycImGyQ0RERAVkZACOjtLldeoA588rFxI0d2ba4ERERESlZd8+3YnOqlXAhQtlI9EB2LJDREREzxkyBNiwQbr85k3A19d08RgDkx0iIiJCWhrg4iJd/uKLym0hykprzvPYjUVERFTO/fab7kTnf/8DTp0qm4kOwJYdIiKicq1vX2DbNuny27cBb2+ThVMimOwQERGVQw8eKPevktKmDXDoUNltzXkeu7GIiIjKmZ9/1p3obNgAHD5sGYkOwJYdIiKicqVzZ2DvXuny1FTA3d108ZgCkx0iIqJy4O5dwMNDurxTJ91JUFnGbiwiIiILt2mT7kRn61bLTXQAtuwQERFZLCGAtm2BI0ek69y/D7i6mi6m0sCWHSIiIguUnKzchVwq0endW5kMWXqiAzDZISIisjg//qh7bZydO3WvrWNp2I1FRERkIYQAmjdXrnYs5dEjwNnZZCGZBbbsEBERWYBbt5TdVlKJzqBBymSovCU6AJMdIiKiMu/bbwE/P+nyPXt072Ru6diNRUREVEYJAdSrByQkSNdJTwccHU0Xkzliyw4REVEZdO2asttKKtEJDVUmQ+U90QGY7BAREZU5S5cCAQHS5QcOAGvWmCwcs8duLCIiojIiLw/w9wdu3pSuk5kJVKpkspDKBLbsEBERlQGXLwNyuXSiM26cstuKiU5BTHaIiIjM3JdfArVrS5fHxyu7tkg7dmMRERGZKYUC8PIC7t2TrvP0KVCxouliKovYskNERGSGzp8HKlSQTnQmT1Z2WzHRKRyTHSIiIjPzySdA/frS5SdOKLu2SD/sxiIiIjITz54pt3N48kS6TnY2YGNjupgsAVt2iIiIzMDffwPW1tKJzocfKrutmOgYjskOERFRKZsxA2jSRLr89Gll1xYVDbuxiIiISklODmBrK11uaws8fqxs8aGiY8sOERFRKTh1SneiM2cOkJXFRMcY2LJDRERkYlOnAl98IV1+7pxyN3MyDiY7REREJpKVBdjZSZe7ugKpqcptIch42I1FRERkAseO6U50FiwA7t9nolMS2LJDRERUwt59F/j6a+nyhATghRdMF095w2SHiIiohDx5AtjbS5f7+gLXrwNW7GcpUby9REREJeDQId2JzqJFwM2bTHRMgS07RERERjZqFPD999LlV68CAQGmi6e8Y7JDRERkJBkZgKOjdHnt2sCFC2zNMTXebiIiIiPYv193orNyJXDxIhOd0sCWHSIiomIaOhRYv166/MYNwM/PdPGQJiY7RERERZSWBri4SJc3barcFkImM1VEpA0b04iIiIpg1y7dic6aNcBffzHRMQelmuwcPHgQvXr1go+PD2QyGX7++WeNciEEZs6cCW9vb9jZ2SEoKAiXLl3SqPPgwQOEhITAyckJLi4uGDVqFDIyMkz4LIiIqLx5/XWge3fp8qQkIDTUdPGQbqWa7GRmZqJJkyZYunSp1vIFCxZg8eLFWLFiBY4dOwZ7e3t07doVWVlZ6johISE4e/Ys9uzZgx07duDgwYMYM2aMqZ4CERGVIw8fKltq8n02V2vdGsjLA3x8TBoWFUImhBClHQQAyGQybN26FX379gWgbNXx8fHBe++9hylTpgAA0tLS4OnpiTVr1mDw4ME4f/486tevj+PHj6N58+YAgF27duG1117DrVu34KPnqy09PR3Ozs5IS0uDk5NTiTw/IiIq27ZtA/7/LUqr9euBwYNNFg5B//dvsx2zk5iYiOTkZAQFBamPOTs7o2XLloiPjwcAxMfHw8XFRZ3oAEBQUBCsrKxw7NgxyXNnZ2cjPT1d44uIiEhKt266E52UFCY65sxsk53k5GQAgKenp8ZxT09PdVlycjI8PDw0yitUqABXV1d1HW0iIyPh7Oys/vLjfEAiItLi7l1lt9Xu3drLO3YEhADyvRWRmTHbZKckTZ8+HWlpaeqvmzdvlnZIRERkZjZv1p3ExMQA+/aZLh4qOrNdZ8fLywsAkJKSAm9vb/XxlJQUNG3aVF0nNTVV43HPnj3DgwcP1I/XxtbWFra2tsYPmoiIyjwhgPbtlRt5Srl3D3BzM11MVDxm27ITEBAALy8v7HsubU5PT8exY8fQqlUrAECrVq3w6NEjnDx5Ul1n//79yMvLQ8uWLU0eMxERlW3JycrtHKQSnZ49lckQE52ypVRbdjIyMnD58mX194mJiTh9+jRcXV1RrVo1hIeHY968eahduzYCAgIwY8YM+Pj4qGds1atXD926dcPo0aOxYsUK5ObmYsKECRg8eLDeM7GIiIgA4KefgDfflC7fsQPo0cN08ZDxlGqyc+LECQQGBqq/nzx5MgAgNDQUa9aswfvvv4/MzEyMGTMGjx49wquvvopdu3ahYsWK6sesXbsWEyZMQKdOnWBlZYV+/fph8eLFJn8uRERUNgkBvPwy8FwnQQEPH+peLZnMm9mss1OauM4OEVH5lJQE+PpKlw8cCGzcaLp4yDBlfp0dIiKikvTdd7oTnd9/Z6JjKcx2NhYREVFJEAKoXx+4cEG6Tno64OhoupioZLFlh4iIyo3r15WzraQSndBQZTLERMeyMNkhIqJyYdkywN9fujwuDlizxkTBkEmxG4uIiCxaXh5Qo4ayVUdKRgZgb2+6mMi02LJDREQW68oVQC6XTnTeflvZbcVEx7Ix2SEiIov01VdArVrS5UeOAMuXmy4eKj3sxiIiIouiUAA+PkC+rRM1PHkC2NmZLiYqXWzZISIii3HhAlChgnSiM2mSstuKiU75wmSHiIgsQmQkUK+edPnx48quLSp/2I1FRERl2rNnyn2rMjOl62RlAba2JguJzAxbdoiIqMz65x/A2lo60Zk2TdltxUSnfGOyQ0REZVJEBNC4sXT56dPKri0idmMREVGZkpMDVKyobLHRxsZGuUigtbVp4yLzxZYdIiIqM/76S9klJZXozJ4NZGcz0SFNbNkhIqIy4f33gc8/ly7/91+gQQPTxUNlB5MdIiIya9nZym4rKS4uwN27yvV1iLRhNxYREZmtY8d0Jzrz5wMPHzLRId348iAiIrM0cSKwZIl0eUIC8MILpouHyi4mO0REZFaePgUqVZIu9/EBbt4ErNg3QXriS4WIiMzG4cO6E52oKCApiYkOGYYtO0REZBZGjwa+/Va6/MoVoEYN08VDloPJDhERlaqMDMDRUbq8Vi3l+By25lBR8aVDRESlJjZWd6KzYgVw6RITHSoetuwQEVGpeOMNYO1a6fLr14Fq1UwXD1kuJjtERGRS6emAs7N0eePGyk08ZTKThUQWjg2DRERkMrt26U50Vq8GzpxhokPGxZYdIiIyiX79gJgY6fKkJOUaOkTGxmSHiIhK1MOHgKurdPkrrwBHj7I1h0oOu7GIiKjEbN+uO9FZtw6Ij2eiQyWLLTtERFQiundXjtGRkpICeHiYLh4qv5jsEBGRUd27B7i7S5cHBgL795suHiJ2YxERkdFER+tOdKKjmeiQ6bFlh4iIik0IoEMH4OBB6Tr37gFubiYLiUiNLTtERFQsKSnK7RykEp0ePZTJEBMdKi1MdoiIqMjWrgW8vKTLt28HduwwXTxE2rAbi4iIDCYE0KIFcOKEdJ2HDwEXF5OFRCSJLTtERGSQpCRlt5VUotO/vzIZYqJD5oLJDhER6W31asDXV7p8925g82bTxUOkD3ZjERFRoYQAGjUCzp6VrpOWBjg5mS4mIn2xZYeIiHS6fl3ZbSWV6Lz5pjIZYqJD5orJDhERSVq+HPD3ly6PjQX+9z+ThUNUJOzGIiKiAvLygFq1gMRE6ToZGYC9veliIioqtuwQEZGGK1cAuVw60RkzRtltxUSHygomO0REpBYVpWzRkXL4MLBypcnCITIKdmMREREUCsDHB0hNla7z5AlgZ2e6mIiMxaxbdhQKBWbMmIGAgADY2dmhZs2amDt3LoQQ6jpCCMycORPe3t6ws7NDUFAQLl26VIpRExGVLQkJQIUK0olOWJiy24qJDpVVZp3szJ8/H8uXL8fXX3+N8+fPY/78+ViwYAGWLFmirrNgwQIsXrwYK1aswLFjx2Bvb4+uXbsiKyurFCMnIiobPvsMqFtXuvzPP5VdW0RlmUw830xiZnr27AlPT09899136mP9+vWDnZ0dfvrpJwgh4OPjg/feew9TpkwBAKSlpcHT0xNr1qzB4MGD9bpOeno6nJ2dkZaWBicuFEFE5cCzZ4CrK/D4sXSdrCzA1tZ0MREZSt/3b7Nu2WndujX27duHixcvAgDOnDmDw4cPo3v37gCAxMREJCcnIygoSP0YZ2dntGzZEvHx8ZLnzc7ORnp6usYXEVF58e+/gLW1dKIzbZqy24qJDlkKsx6gPG3aNKSnp6Nu3bqQy+VQKBT45JNPEBISAgBITk4GAHh6emo8ztPTU12mTWRkJGbPnl1ygRMRmalZswBdf/7++gto2tRU0RCZRrGSnaysLFSsWNFYsRSwadMmrF27FuvWrUODBg1w+vRphIeHw8fHB6GhoUU+7/Tp0zF58mT19+np6fDz8zNGyEREZik3VznAWKHQXl6hgnK2lbW1aeMiMgWDu7Hy8vIwd+5cVK1aFQ4ODrh69SoAYMaMGRpja4xh6tSpmDZtGgYPHoxGjRrhzTffxKRJkxAZGQkA8PLyAgCkpKRoPC4lJUVdpo2trS2cnJw0voiILNXp04CNjXSiM2uWMhliokOWyuBkZ968eVizZg0WLFgAGxsb9fGGDRvi22+/NWpwT548gZWVZohyuRx5eXkAgICAAHh5eWHfvn3q8vT0dBw7dgytWrUyaixERGXRtGnAiy9Kl//7LxARYbp4iEqDwd1Y//vf/7Bq1Sp06tQJb7/9tvp4kyZNcOHCBaMG16tXL3zyySeoVq0aGjRogL/++gtfffUVRo4cCQCQyWQIDw/HvHnzULt2bQQEBGDGjBnw8fFB3759jRoLEVFZkp0N6Bpl4OQE3L+v7L4isnQGv8yTkpJQS8ta4nl5ecjNzTVKUCpLlizBjBkzMG7cOKSmpsLHxwdjx47FzJkz1XXef/99ZGZmYsyYMXj06BFeffVV7Nq1q0THEhERmbM//wRatpQuj4xUtvgQlRcGr7PTrFkzTJo0CW+88QYcHR1x5swZ1KhRA3PmzMGePXtw6NChkoq1xHCdHSKyFOHhwKJF0uUXLgB16pgsHKISpe/7t8EtOzNnzkRoaCiSkpKQl5eHmJgYJCQk4H//+x927NhRrKCJiKhonj4FKlWSLvfyAm7dUu5mTlTeGDxAuU+fPti+fTv27t0Le3t7zJw5E+fPn8f27dvRuXPnkoiRiIh0OHJEd6KzcCFw5w4THSq/zHq7CFNhNxYRlVVjxwKrVkmXX7kC1KhhuniITKnEurGIiKj0ZWYCDg7S5TVqAJcuAVZmvSkQkWkY/GtgZWUFuVwu+UVERCUrNlZ3orNsmbJFh4kOkZLBLTtbt27V+D43Nxd//fUXfvjhB+43RURUwoYNA378Ubr8+nWgWjXTxUNUFhhtzM66deuwceNGbNu2zRinMymO2SEic5eeDjg7S5c3bAj8/Tcgk5kuJqLSpu/7t9EaOV955RWNbRuIiMg4du/Wneh89x3wzz9MdIikGGWA8tOnT7F48WJUrVrVGKcjIqL/178/sGWLdHlSEuDjY7p4iMoig5OdypUrQ/bcxwchBB4/foxKlSrhp59+MmpwRETl1cOHgKurdHmLFsAff7A1h0gfBic7Cxcu1Eh2rKys4O7ujpYtW6Jy5cpGDY6IqDzavh3o3Vu6fO1aYOhQ08VDVNYZnOwMHz68BMIgIiIA6NED+PVX6fLkZMDT03TxEFkCvZKdv//+W+8TNm7cuMjBEBGVV/fvA1WqSJd36KBcX4eIDKdXstO0aVPIZDIUNktdJpNBoVAYJTAiovJiyxblQGQpmzfrLici3fRKdhITE0s6DiKicikwEIiLky6/e1d3iw8RFU6vZKd69eolHQcRUbmSkgJ4eUmXd++ue+wOEemvyOvsnDt3Djdu3EBOTo7G8d66phAQERHWr9c9m2rbNt2zsYjIMAYnO1evXsXrr7+Of/75R2Mcj2o6OsfsEBFpJwTwyivAn39K13nwAOAqHkTGZfB2EWFhYQgICEBqaioqVaqEs2fP4uDBg2jevDnidHU8ExGVY7dvK3chl0p0goOVyRATHSLjMzjZiY+Px5w5c1ClShVYWVnBysoKr776KiIjIzFx4sSSiJGIqExbvRrQtZvOrl26t4QgouIxuBtLoVDA0dERAFClShXcvn0bderUQfXq1ZGQkGD0AImIyiohgMaNgX//la6Tlgbo2KyZiIzA4GSnYcOGOHPmDAICAtCyZUssWLAANjY2WLVqFWrUqFESMRIRlTk3bgC6JrK+8Qbw44+mi4eoPDO4G+vjjz9GXl4eAGDOnDlITExE27Zt8euvv2Lx4sVGD5CIqKxZuVJ3orN/PxMdIlOSicKWRdbDgwcPCuyGXpakp6fD2dkZaWlpcGJ7MhEVUV4eULs2cPWqdJ3HjwEHB9PFRGTJ9H3/Nrhl56effkJmZqbGMVdX1zKb6BARGcPVq4BcLp3ojB6tHMPDRIfI9AxOdiZNmgRPT08MHToUv/76K9fVIaJyb9EioGZN6fJDh4BVq0wXDxFpMjjZuXPnDjZs2ACZTIaBAwfC29sb48ePx9GjR0siPiIis6VQAN7eQHi4dJ0nT4BXXzVZSESkhcHJToUKFdCzZ0+sXbsWqampWLhwIa5du4bAwEDU1PXRhojIgly8CFSoACQnay9/911lt5WdnWnjIqKCirw3FgBUqlQJXbt2xcOHD3H9+nWcP3/eWHEREZmt+fOBadOky48dA1q0MF08RKRbkZKdJ0+eYOvWrVi7di327dsHPz8/DBkyBNHR0caOj4jIbDx7Bri5Aenp0nWysgBbW9PFRESFM7gba/DgwfDw8MCkSZNQo0YNxMXF4fLly5g7dy7q1q1bEjESEZW6s2cBa2vpROf995XdVkx0iMyPwS07crkcmzZtQteuXSGXy0siJiIiszJnDhARIV1+6hTw4oumi4eIDGNwsrN27dqSiIOIyOzk5gKVKim7r7SRy5WzrWxsTBsXERnG4G4sIqLy4PRpZRIjlehERCjLmOgQmb9izcYiIrJE06cDn30mXf7PP0DDhqaLh4iKh8kOEdH/y84GKlaULndwAB4+VK6vQ0RlB7uxiIgAHD+uO9H59FPlJp5MdIjKHr1+bdN1LSqRD3cNJ6KyZtIkICpKuvzCBaBOHZOFQ0RGpley4+Lioveu5twYlIjKiqdPlbOtpHh6AklJyllXRFR26ZXsxMbGqv9/7do1TJs2DcOHD0erVq0AAPHx8fjhhx8QGRlZMlESERnZ0aNAmzbS5V99pWzxIaKyTyaEEIY8oFOnTnjrrbcwZMgQjePr1q3DqlWrEBcXZ8z4TCI9PR3Ozs5IS0tjNxxROfD228DKldLlly8D3NeYyPzp+/5t8ADl+Ph4NG/evMDx5s2b488//zT0dEREJpOZCchk0olOQACgUDDRIbI0Bic7fn5++Oabbwoc//bbb+Hn52eUoIiIjC0uTjl1XMqyZcDVq4AV56gSWRyDJ1EuXLgQ/fr1w2+//YaWLVsCAP78809cunQJW7ZsMXqARETFFRoK/O9/0uXXrgHVq5ssHCIyMYM/w7z22mu4ePEievXqhQcPHuDBgwfo1asXLl68iNdee60kYiQiKpLHj5XdVlKJTv36QF4eEx0iS2fwAGVLxAHKRJZnzx6gSxfp8u++A0aONF08RGR8JTZAGQAOHTqEN954A61bt0ZSUhIA4Mcff8Thw4eLFq0OSUlJeOONN+Dm5gY7Ozs0atQIJ06cUJcLITBz5kx4e3vDzs4OQUFBuHTpktHjIKKyY+BA3YnOrVtMdIjKE4OTnS1btqBr166ws7PDqVOnkJ2dDQBIS0vDp59+atTgHj58iDZt2sDa2hq//fYbzp07hy+//BKVK1dW11mwYAEWL16MFStW4NixY7C3t0fXrl2RlZVl1FiIyPw9eqTsttq8WXt58+bKbquqVU0aFhGVMoO7sV588UVMmjQJw4YNg6OjI86cOYMaNWrgr7/+Qvfu3ZGcnGy04KZNm4YjR47g0KFDWsuFEPDx8cF7772HKVOmAFAmXZ6enlizZg0GDx6s13XYjUVU9u3cCfTsKV3+009ASIjp4iGikldi3VgJCQlo165dgePOzs549OiRoafT6ZdffkHz5s0xYMAAeHh44MUXX9SY9p6YmIjk5GQEBQVpxNGyZUvEx8dLnjc7Oxvp6ekaX0RUdvXsqTvRuXOHiQ5ReWZwsuPl5YXLly8XOH748GHUqFHDKEGpXL16FcuXL0ft2rWxe/duvPPOO5g4cSJ++OEHAFC3Inl6emo8ztPTU2cLU2RkJJydndVfXB+IqGy6f1/ZbbVzp/bydu2U3VZeXqaNi4jMi8HJzujRoxEWFoZjx45BJpPh9u3bWLt2LaZMmYJ33nnHqMHl5eXhpZdewqeffooXX3wRY8aMwejRo7FixYpinXf69OlIS0tTf928edNIERORqcTEAFWqSJdv3gwcOKBMhoiofDN4UcFp06YhLy8PnTp1wpMnT9CuXTvY2tpiypQpePfdd40anLe3N+rXr69xrF69eurFC73+/+NaSkoKvL291XVSUlLQtGlTyfPa2trC1tbWqLESkel06gTs3y9dfveu7kSIiMoXg1t2ZDIZPvroIzx48AD//vsv/vjjD9y9exdz5841enBt2rRBQkKCxrGLFy+i+v+vABYQEAAvLy/s27dPXZ6eno5jx46pd2QnIsuRmqpsqZFKdLp2BYRgokNEmgxOdkaOHInHjx/DxsYG9evXR4sWLeDg4IDMzEyMNPLCFZMmTcIff/yBTz/9FJcvX1bvrD5+/HgAysQrPDwc8+bNwy+//IJ//vkHw4YNg4+PD/r27WvUWIiodK1fD+Qbnqfh55+BXbtMFg4RlSEGTz2Xy+W4c+cOPDw8NI7fu3cPXl5eePbsmVED3LFjB6ZPn45Lly4hICAAkydPxujRo9XlQghERERg1apVePToEV599VUsW7YML7zwgt7X4NRzIvMlBNC6NfDHH9J1HjwAnlt+i4jKCX3fv/VOdtLT0yGEQOXKlXHp0iW4u7uryxQKBbZv345p06bh9u3bxY/exJjsEJmn27d1LwDYty+wdavJwiEiM6Pv+7feA5RdXFwgk8kgk8m0tprIZDLMnj27aNESEeXzww/A8OHS5b/9BnTrZrJwiKgM0zvZiY2NhRACHTt2xJYtW+Dq6qous7GxQfXq1eHj41MiQRJR+SEE0LQp8Pff0nXS0gA2whKRvvROdtq3bw9AuWpxtWrVIOPiFURkZDdvAtWqSZcPHQqsXWu6eIjIMhg8G2v//v2Ijo4ucHzz5s3qlY2JiAy1cqXuRGffPiY6RFQ0Bic7kZGRqKJlEQsPDw+j73pORJZPCKB2beDtt6XrPH4MdOxoupiIyLIYnOzcuHEDAQEBBY5Xr14dN27cMEpQRFQ+JCYCVlaAlu32AACjRimTIQcH08ZFRJbF4GTHw8MDf2sZOXjmzBm4ubkZJSgiKpsUCgXi4uKwfv16xMXFQaFQSNZdvBjQtXfwwYPAt9+WQJBEVO4YvDfWkCFDMHHiRDg6OqJdu3YAgAMHDiAsLAyDBw82eoBEVDbExMQgLCwMt27dUh/z9fXFokWLEBwcrD6Wlwf4+SnX0JHy5AlgZ1eS0RJReWLwCso5OTl48803sXnzZlSooMyV8vLyMGzYMKxYsQI2NjYlEmhJ4qKCRMUTExOD/v37I/+fE9WszejoaAQHB+PiRaBOHenzTJgALFlSkpEqKRQKHDp0CHfu3IG3tzfatm0LuVxe8hcmIqMy+grK+V28eBFnzpyBnZ0dGjVqpN6csyxiskNUdAqFAv7+/hotOvn5+flh/PhrmDZNuuf8jz+Ali1LIkJN+rZAEZH5K/Fkx5Iw2SEquri4OAQGBuqoYQXgHgDpzauePgUqVjR2ZAXp2wJFRGWDUbeLmDx5MubOnQt7e3tMnjxZZ92vvvrKsEiJqEy7fv26jtJ6AM5Jlk6dCixYYPSQtFIoFAgLCyuQ6ADKDYVlMhnCw8PRp08fdmkRWRi9kp2//voLubm56v9L4arKROXPli1bJEpmAJgj+biTJ4GXXiqRkLQ6dOiQzq42IQRu3ryJQ4cOoUOHDqYLjIhKnF7JTmxsrNb/ExElJSXlO1IBQAYAW631ZTIgKwsw9VyGO3fuGLUeEZUdBq+zQ0TlgyFr5vynMYBcSCU6M2Yop56XxqRNb29vveqlpKQY+JyJyNzp1bJjyIC9mJiYIgdDRObBkBlLHTt2xKlTpwB8AuBDyXOGhn6JOXPeK6GIC9e2bVv4+voiKSlJ67gdAJDL5Zg0aZL6e87SIrIMerXsODs7q7+cnJywb98+nDhxQl1+8uRJ7Nu3D87OziUWKBGZhmrGUv7xLUlJSejfv3+BDzQuLh4ABKQTnccAKqBevWclEa7e5HI5Fi1aBEB6fGH+lhyp50xEZYvBU88/+OADPHjwACtWrFDPWFAoFBg3bhycnJzw+eefl0igJYlTz4mUClszRyaTwdfXF4mJiZDL5ThxAnj5ZV1n/BBAJACgU6dO2Lt3r9FjNpS2Viu5XC7ZZZX/OROR+SixdXbc3d1x+PBh1Mm3DGpCQgJat26N+/fvFy3iUsRkh0ip8DVzlGJjY/HLLx2wcKGuWnUBJKi/e+GFF5CQkCBd3YSeX0E5JSVFo+tKSmxsLGdpEZkZo66z87xnz57hwoULBZKdCxcuIC8vz/BIichs6DcTyRaBgR10lKcC8Aag+ffA19e3qGEZnVwuVycu69ev1+sxnKVFVHYZnOyMGDECo0aNwpUrV9CiRQsAwLFjx/DZZ59hxIgRRg+QiIpG3/2f8rdy6PYKgHgd5ZMBaG/uCQoK0jd0k9J3lpa+9YjI/Bic7HzxxRfw8vLCl19+qf6k4+3tjalTp+K990pvpgUR/Uff2VSGjV9ZCmCcjqvWAnBFsjQ9PV3/J2BChc3SUo3Zadu2bSlER0TGUKy9sVR/vMr6OBeO2SFLou/+T1L1CrID8ESy1N7+HjIzVTOypL3xxhv48ccf9XgGpqe6FwA07gf3zCIyb/q+fxdpUcFnz55h7969WL9+vfqPwe3bt5GRkVG0aInIKArb/wkAwsPDkZOTI1lPRdnl1Q66Ep2vvwbCwhaisEQHAKpVq1ZondISHByM6OhoVK1aVeO4r68vEx0iC2BwN9b169fRrVs33LhxA9nZ2ejcuTMcHR0xf/58ZGdnY8WKFSURJxHpQd/9n5YtW6azHgAoFN8AkB6Hl5gI+PsDe/Z0wKefflpobOY+kyk4OBh9+vTRa5wTEZUtBic7YWFhaN68Oc6cOQM3Nzf18ddffx2jR482anBEZBh9ZwxduSI9tgZwgHIhQO3q1QPOnlXucQUAVlb6NRDrW680PT9Li4gsh8HJzqFDh3D06FHY5Nvcxt/fX8uGgERkSvrOGKpZs6ZESScA0gv/ffMN8NZbmsdSU1P1uqa+9YiIjM3gj1p5eXlaZ2rcunULjo6ORgmKiIpGNbNIajsEmUwGPz8/jBs3Tku9DdCV6Ny8WTDRATh1m4jMn8HJTpcuXRAVFaX+XiaTISMjAxEREXjttdeMGRsRGUjX/k+q76OiomBjY6OuBzhDOcB4kNZzNmum3Klcak3Atm3banRpa+Pm5sap20RUagxOdr744gscOXIE9evXR1ZWFoYOHaruwpo/f35JxEhEhVAoFIiLi8P69evh6uqKTZs2FTqzKDg4GNOnHwLwSPK8P/4InDjx3/gcIqKyyOAxO35+fjhz5gw2btyIM2fOICMjA6NGjUJISAjs7OxKIkYi0kFqAcGvvvoK7u7ukjOLevcGtm9vI3neO3cAL6/Cr3/o0KFC98S7f/8+Dh06xMG/RFQqDEp2cnNzUbduXezYsQMhISEICQkpqbiISA9SCwMmJSVh0KBBiI6OxpAhQzTKHjwAdPU6vfoqcPCg/q05+s4A495SRFRaDOrGsra2RlZWVknFQkQG0HcBwecnFGzdqjvR2bgROHTIsG4rDlAmInNn8Jid8ePHY/78+Xj27FlJxENEetJ3AcFDhw4BADp3BnQtBJyaCgwcaHgc+s4A4wBlIiotBo/ZOX78OPbt24fff/8djRo1gr29vUZ5TEyM0YIjImn6dgtduPAAgYHS5Z07A7//XvQ4VDPA+vfvD5lMpnVvqaioKK5ETESlxuBkx8XFBf369SuJWIjIAPp1Cw3EO+9IN+f8/DPQp0/xY1HtLaVtoHRUVBT3liKiUlWsXc8tBXc9p7JIoVCol33Q/mt8BEBrycffvw+4uho/Ju4tRUSmYvRdz/Py8jB//ny0adMGL7/8MqZNm4anT58aJVgiMpz0AoJeUC4SqD3R6dMHEML4iY4qpg4dOmDIkCHo0KEDEx0iMgt6JzuffPIJPvzwQzg4OKBq1apYtGgRxo8fX5KxEVEhVN1H/y0g+CYA6bE8v/6q7LoiIipP9O7Gql27NqZMmYKxY8cCAPbu3YsePXrg6dOnZWI3Y13YjUVl3bNnCtSt+xRXrjhI1nn0CHB2LnicXU9EVFYZvRvrxo0bGntfBQUFQSaT4fbt28WLlIiK5eZNwNpaLpnoDBmi7LbSlujExMTA398fgYGBGDp0KAIDA+Hv789ZlURkUfROdp49e4aKFStqHLO2tkZubq7RgyIi/XzzDVCtmnR5lSqD0b+/9sRFtfpy/rV6kpKS0L9/fyY8RGQx9O7GsrKyQvfu3WFra6s+tn37dnTs2FFjrZ2y+AeS3VhU1ggB1K0LXLyoq5YDgEwAwOzZs/HRRx+pu6dUM7mkFiWUyWTw9fVFYmIiu7SIyGwZvRsrNDQUHh4ecHZ2Vn+98cYb8PHx0ThGRCUrMRGwstKV6HwPQAZVogMAERERqF69uvrDiKGrLxMRlWV6Lyq4evXqkoyDiPTw9dfAu+/qqtEWwGGtJaruqejoaGRnZ+t1PW7eSUSWwOAVlImoaIoz6ykvD6heHdDRGAOgEoDC174KDw/X+8MLN+8kIktQpuaMf/bZZ5DJZAgPD1cfy8rKwvjx4+Hm5gYHBwf069cPKSkppRckkRbFmfV06RIgl+tKdJZC2W1VeKKj6p4CwM07iajcKDPJzvHjx7Fy5Uo0btxY4/ikSZOwfft2bN68GQcOHMDt27e5Dw+ZleLMevriC+CFF3SdvSWACQbHlJqaKrH6MjfvJCLLUyaSnYyMDISEhOCbb75B5cqV1cfT0tLw3Xff4auvvkLHjh3RrFkzrF69GkePHsUff/xRihETKSkUCoSFhWndu0p1LDw8HAqFIt/jlNs5TJ2q6+wVAfxZpLi8vb21rL6s5Ovri+joaH5oICKLUSaSnfHjx6NHjx4ICgrSOH7y5Enk5uZqHK9bty6qVauG+Ph4U4dJVEBRZj2dPw9UqAA8fKj9MT16nIey20q/Qcb5ubm5qbungoODce3aNcTGxmLdunWIjY1FYmIiEx0isihmP0B5w4YNOHXqFI4fP16gLDk5GTY2NnBxcdE47unpieTkZMlzZmdna8xGSU9PN1q8RM/btm2bXvVUs57mzQNmzJCud+IE8PhxCnbuNEZ0SqrNO4mILJVZt+zcvHkTYWFhWLt2bYHVm4sjMjJSY20gPz8/o52bSCUmJgZRUVF61XV394Gdne5EJzsbaNYMaNu2rc7BxYW5f/8+PvnkkyI9loioLDLrZOfkyZNITU3FSy+9hAoVKqBChQo4cOAAFi9ejAoVKsDT0xM5OTl49OiRxuNSUlLg5eUled7p06cjLS1N/aWanUKkjUKhQFxcHNavX4+4uLgC42ukHhMWFqbX+T09O6Nz5/bIytJe/tFHyhWTbWyU38vlcsnBxfqKiIgok6udExEVhd7bRZSGx48f4/r16xrHRowYgbp16+KDDz6An58f3N3dsX79evTr1w8AkJCQgLp16yI+Ph6vvPKKXtfhdhEkJSYmBmFhYRrjbnx9fbFo0SL06dNHct2cuLg4BAYG6nGFuQA+liw9cwbINwFRZ2yG8PPz43YQRFSm6fv+bdZjdhwdHdGwYUONY/b29nBzc1MfHzVqFCZPngxXV1c4OTnh3XffRatWrfROdIikqKaM5/88cOvWLfTr1w8ODg7IyMhQH/f19cXo0aNRu3ZtnDt3rpCzWwPIkSytVAlIS1MOVJYSHByskXBdunQJERERejwzJdXAaI7XISJLZ9bJjj4WLlwIKysr9OvXD9nZ2ejatSuWLVtW2mFRGadryrjK84kOoEyC9Es2XgJwUrJ07lzgY+nGHg35Bxc3bNgQY8aMwf379/V6PLeDIKLywKy7sUyF3ViUn/7dUIb6HMAUydJz54B69Yp3BYVCgdGjR+u1JURsbCxbdoiozDL6rudE5YnxB63bAhCQSnTc3IBnz4qf6ADK1p5vvvmmwGKBz+N2EERUnjDZIdLi2LFjRjxbSwASU60AvP32FaSkKKBrnLChM8LkcjkWL14MmUzG7SCIqNxjskOkhfF6d78GoGvrktpYsaKWzk1Bi7qJKLeDICJS4pgdcMwOFRQVFYVJkyYV4wx2AJ7oKL8OIADKri1la4sQAuHh4ejTp496GrvUjDBV64w+SYtCoZCcIk9EVJbp+/7NZAdMdqignJwcVKpUSa8FBAt6FcAhHeUTACzVeQZfX18sXLgQkyZNklxHRyaTwdfXl2vlEFG5xQHKRMVgY2ODyZMnF+GR30F3ouOPwhIdAEhKSsKAAQMM3kSUiIgKYrJDJGHBggV477339KxtD2WX1EitpXXqAGvXroey+6pwhjS4cq0cIiLdmOwQ6fDFF19g48aNhdTqBCBDsrRLl2hcuAD4+HgbNTYVb++SOS8RkaVgskNUiIEDB2LQoEESpesA7NXxaF/s2zcYOTk5xd6tPD+ulUNEpB8mO0SFiImJ0dK64wRlt9UQiUedAiADkASFQoFly5YVa7dyrpVDRFR0THbIouXk5CAqKgrvvvsuoqKikJMjvfmmNqo9sjR1A5Cm41FvAmimceTKlSsApNe+0UbVcrNp0yaulUNEVAyceg5OPbdU77//Pr766iuN6eNWVlYYMGAA+vTpo3XNmfxr0igUCgQFBT131q0A+uq4qjeA5AJHx48fj0WLFqmvpbrOtm3bEBUVVaB+/nV0uFYOEVFBer9/CxJpaWkCgEhLSyvtUMhIpk6dKqDsZ9L55erqKmbPni2ePXsmtmzZInx9fQuUK/9fWQBCx9ehQq/l6+srtmzZUiBWbdf18/PTWpeIiP6j7/s3W3bAlh1LU5QFAR0cHJCRITWjqg+An3U8ehCATYVeQ9eqx2Wl5aasxElE5YO+798VTBgTkUksW7bM4JWPpROd3QC66HikO4B7el1DCAGZTKbeEuL5JEEul6NDhw56Rls6YmJiEBYWprHQoa+vLxYtWsSxQ0Rk1jhAmSyOajBw8VSBskdJKtHZA+VsK/0SHRVRRlc9Vu3RlX9F56SkJPTv37/QTUmJiEoTkx2yODVr1izmGQYAuKujvC+ALsXqvilLqx6rZqRp6/FWHQsPDy/iPmJERCWPyQ5ZnHHjxhUjETkEXeNvtm07jHXrBiE2NhYbNmwo8gKBZWnV40OHDnGPLiIq0zhmhyyOahPPzz//3IBHeQGQbm2pWPF3ZGR0glz+qsbx6OjoAuNYdFHtVF6WVj3WtxWqLLVWEVH5wmSHLNKCBQsAoMA6O9q9AeBHHeWvoWtXG8jlBcfvBAcHo0+fPjh06BCSkpJw9+5dJCYmYvHixZDJZBpdP2V11WN9W6HKUmsVEZUvnHoOTj23ZDk5ORgzZgx++OEHiRonAbyk4wzOANIBAFOnTlUnUYXRNnPJz88PUVFRZW7mkkKhgL+/P5KSkrSO21G1ViUmJpapJI6Iyj5937+Z7IDJTlmjUCgQFxeHuLg4AECHDh3QoUMHrW+0qllEBV/mVQHo6nragPz7Xsnlcvz666+4f/++XmvMWNKaNKr7CEBraxW3riCi0sBkxwBMdsqOmJgYjBkzBvfv39c47ubmhlWrVqm7lO7cuQMPDw+EhoYiKSkp31lGAfhWx1WCAOwrNJbytsaMJbVWEZFlYLJjACY7ZUNMTAz69euns46rqysePHigo8Z5AHV1lDsCkFpgUFN5bNWwpNYqIir7mOwYgMmO+VMoFKhevbqWVhp9VQdwTUf5agAjDT4rx6sQEZUefd+/uc4OlQmq2U5FMw66E512KEqiA2hfY0Y1pmj9+vWIi4vjYntERKWMU8+pTCjaGi4yKJOcajrqVALwtCghaVDFx/2jiIjMD5MdMluq8SFJSUmIj4838NE1AVzWUb4UwIQCR21tbZGdnW3gtZRrzEjN/FLtH7Vx40a4u7tzvAsRkYkx2aFSp23Q67Zt2wxamVjTZABf6ih/BcAxjSOVK1fGw4cPDU50VGN2WrdujZo1a+rcP2rIkCEaXVps8SEiMg0OUAYHKJcmbd0+hc+okmIFIAXKHculVETTpvVw48YNjWvI5XKDx9Y8PxvL1dUVgYGBRX48Ex4iIsNxgDKZPVW3T/7Wm6IlOnUBKCCd6HwJ5RiebJw+fbrANYoyiNjX11edqBRlTBF3DCciMg0mO1QqFAoFwsLCtHb7GO5DKNfPkdIMwBQjXOc/ffv2RWJiorpFpqj7QnHHcCKikscxO2Qyz4/NSUlJKeJ4nOfJAaQBsNdRxwZAbjGvU1D79u01Bhe3bdsWvr6+kvtHFYY7hhMRlRwmO2QS2sbmFE9H6N7S4RMAHxvpWprkcjnGjRtX4NiiRYvQv3//Arud64M7hhMRlRx2Y1GJkxqbU3QHoTvRaYKSSnQAYPLkybCxsSlwPDg4GNHR0ahatarGcV3Ty2UyGfz8/NC2bVujx0lEREqcjQXOxipJCoUC/v7+Rkp0bAFk6SjPgnJvq2dGuJZ2PXv2xPbt23XWyT+V/t69exg4cCAA7hhORGRM+r5/sxuLStShQ4eMlOh0B/CrjvIZAOYZ4Tq6vffee4XWkcvl6NChg8ax6OhorSsrc8dwIqKSx2SHSpRxBt7+BaCpjvJ2AEp+NpO7u3uRu5uCg4PRp08f7hhORFQKmOxQiVEoFPj999+LcYZKADILqWONkuy2el5ISEixkhNtLT5ERFTyOECZSkRMTAw8PT2xZs2aIp7hdehOdLZCuUigaRIdAOjTp4/JrkVERMbDZIeMSqFQYM6cOejXrx/u379fxLNcBhCjo/wVAMYZ5yKTySCTyeDm5qYeMKwNZ0wREZVd7MYio4mJicHEiRORlJRUxDM4AkgvpI4cQF4Rz1+QapAwAK1r5KgSoKioKI6vISIqo5jskFGo1tIp+koGQwGs1VH+E4A3DTrj8OHDsXfv3gIzoEaPHo3atWsXGCTMGVNERJaJyQ4ViWotmaSkJCQnJ+PTTz8tRqKTDMBTR/mLAE4bfFYHBwdcu3ZN7xlQnDFFRGSZmOyQwYy39UNlAIXtcG4FoGhJVM2aNQ2eAcUZU0RElocDlMkgxtv6YSR0JzoroZxtVbRER9v+VUREVD6xZYf0olAoEBcXh9GjRxeju0rlCQA7HeUNAJwr1hWk9q8iIqLyx6xbdiIjI/Hyyy/D0dERHh4e6Nu3LxISEjTqZGVlYfz48XBzc4ODgwP69euHlJSUUorYMsXExMDf3x9BQUF48KCwbidd3KFsqdGV6MhQnERHJpNh6tSpWLBgQZHPQURElsWsk50DBw5g/Pjx+OOPP7Bnzx7k5uaiS5cuyMz8b7G5SZMmYfv27di8eTMOHDiA27dvc+aMERmv22o8gFQd5V9BmegUz48//shEh4iINJSpXc/v3r0LDw8PHDhwAO3atUNaWhrc3d2xbt069O/fHwBw4cIF1KtXD/Hx8XjllVf0Oq+l7Xqef9ftoswoUnVbDRw4sJitOUDh425eAHCpmNdQksvl2LBhg/r1QERElkvf92+zbtnJLy0tDQDg6uoKADh58iRyc3MRFBSkrlO3bl1Uq1YN8fHxkufJzs5Genq6xpelUHU5BQYGYujQoQgMDIS/vz9iYnStSKz9HMXvtvJG4YmODMZKdABlkjZgwACDni8REVm2MpPs5OXlITw8HG3atEHDhg0BAMnJybCxsYGLi4tGXU9PTyQnJ0ueKzIyEs7OzuovPz+/kgzdZKS6nJKSktC/f3+9EgDjdVtNBXBbR/k8GKPbSkpYWBgUCkWJnZ+IiMqOMpPsjB8/Hv/++y82bNhQ7HNNnz4daWlp6q+bN28aIcLSpVAoEBYWpnWmlOpYeHi4zgRA1zkMIwDoGjcTAGBGMa+h261bt/DJJ5+U6DWIiKhsKBPJzoQJE7Bjxw7ExsbC19dXfdzLyws5OTl49OiRRv2UlBR4eXlJns/W1hZOTk4aX2XdoUOHdLbGCCFw8+ZNHDp0qMjnKJwf9Ou2ulaMa+gvIiKC3VlERKVINf5z/fr1iIuLK7UWd7NOdoQQmDBhArZu3Yr9+/cjICBAo7xZs2awtrbGvn371McSEhJw48YNtGrVytThlqo7d+4Uu97WrVuLEcFMADd0lH+Ikuy2klJYaxYREZUMY4whNRazXlRw/PjxWLduHbZt2wZHR0f1OBxnZ2fY2dnB2dkZo0aNwuTJk+Hq6gonJye8++67aNWqld4zsSyFt7d3serFxMRg8eLFRbx6Ya05vgCKthO6TCZD1apVsWbNGqSmpsLb2xspKSkICQnRK4lRtWZxCwgiItOR2hxaNYY0OjrapMvEmHWys3z5cgAo8Ea1evVqDB8+HACwcOFCWFlZoV+/fsjOzkbXrl2xbNkyE0da+tq2bQtfX18kJSVpHXOjShoUCgXWrl2L5ORkPHjwAFZWVmjbti3CwsKKcNUaAK4UUqforTkymfKxixYtQqdOnTTK5HI5BgwYoNd59G31IiKi4itsDKlMJkN4eDj69Oljso2Wy9Q6OyXFUtbZUWXSADReZDKZDEIIuLm54f79+0a62mcAPtBRHg5gUbGu4ObmhlWrVklm/3PmzEFERESh54mNjWXLDhGRicTFxSEwMLDQesb422yR6+yQbsHBwYiOjkbVqlU1jqvWJTJeoiOgO9HxQnETHQCws7NDnz59JMs/+uijAs/1eTKZDH5+fmjbtm2xYyEiIv0YYwypsTHZsTDBwcG4du0aYmNjsW7dOuzduxcVK1Y00tnrQvf4HAWU3VbG2Zvs1q1bOmePyeVyLF68GDKZTN3lpaL6PioqymTNpEREVPwxpCWByY4Fksvl6NChA4YMGQK5XI6kpKINDta0BMB5HeVjURJDwArL/KVas3x9fU0+AI6IiP4bQ5r/Q6hKabS6m/UAZSq+4jcTygDkFVLHDUBx98/STp/MPzg4GH369Cn2fmBERFR8crkcixYtQv/+/dVjRlVKq9WdyY6F8/DwKMajGwM4o6P8EYDKxTi/NJlMBl9fX70zf1VrFhERlT5Vq3tYWJjGYrW+vr6Iiooyeas7kx0Ld/jw4SI+8nsAI3SUDwPwYxHPrRvH2xARlX3m1OrOZMeCbdy4EbNmzTLwUVZQDjTWxQVAWlFCAqBMZoYNG4bOnTvjypUr+OabbzQy/6pVq2L06NHIzs5GXFwcu6SIiMooc2l15zo7sJx1dp43ZcoUfPnllwY+qjmA4zrKbwKoVvSgnvP8+goKhUKd+V+6dAmrVq3SGFTt6+uLRYsWcbAxERFp4Do7Fij/hmo5OTlaN1ibOnVqERKdjdCd6AyEsRIdQHPgtCrzt7W1xaxZswrMHlMtL85NPYmIqCjYjVVGxMTEFBjoJZfLNfaH8vX1xSuvvILo6GgDziwH8KyQOo4AMgwJt1D5Z1mZ4/LiRERkGdiyUwaotoF4PtEBUGAjzFu3bhmY6LSB7kTnLJRTz42X6Eitr3Do0KECz+95Qgj1pp5ERESGYLJj5nS1eBTPTgC6Zmr1BtDQyNdU0jbLyhyXFyciIsvAbiwzV1iLh+GsAeQUUqcSgKdGvKaSu7s7VqxYoXWgsTkuL05ERJaByY6ZM25LRiCA/TrK/wTQ0ojX+4+7uztu3boFGxsbreWq5cWTkpK0tmIZusggERGRCruxzJzxWjIOQHei0wUllegAwIoVKyQTHeC/5cUBcFNPIiIyKiY7Zq6wDdUKZwvlTuXtCqmzp4jnL9zs2bP1WiOHm3oSEVFJYLJjxlSL7QUHBxdxgHI3AFk6yvdBOduqsDE8xVO7dm296wYHB+PatWuIjY3FunXrEBsbi8TERCY6RERUZByzY6a0ratjmJMAXtJR3h7AwSKe2zCGdsWZy/LiRERkGZjsmCHVujpFa82pBCCzkDrWKHwhweLjoGIiIjIH7MYqYfm3eMi/EKC2+kVfV+d16E50tkHZbWX8RIeDiomIyFwx2SlBMTEx8Pf3R2BgIIYOHYrAwED4+/vr3OOp6OvqXASga++oVgD6FuG8hYuIiOCgYiIiMlvsxiohUl1Rqk0tpRKB/JtgFs4RQHohdeQA8gw8r/7atm2LGTNmqHcu9/b2Rtu2bdmiQ0REZoHJTgko6qaWMTExGDt2rAFXGgxgvY7ydQBCDDhf0aSmpnJQMRERmS12Y5WAomxqGRMTg379+iEzs7DBxSp3oDvReQmmSHQAbuFARETmjS07JcCQTS1VA5gHDRqk59ldADwspI4VlAsJljxtO5gTERGZE7bslAB9WzouXbqE6tWrIygoCM+e6TNDagR0JzqroJxtZZpEB+BsKyIiMn9s2SkBd+/ehVwul5xmLpPJ4OrqioiICAPOmgnlGjpSGgI4a8D5ikcul2P9+vWcbUVERGaPyY6RxcTEYNCgQYWuk5Odna3nGasAuFtInaLum1V0GzZsQP/+/U1+XSIiIkOxG8uI9FkQUC6X4+OPP0ZGRoYeZxwH3YlOFEyd6Dg4OGDLli1MdIiIqMxgy44R6bMgoEKhwLZt2/Q421UAATrK60C5kKBpWFlZYcCAAVi7di3H6JAk1ea1XG+JiMwJkx0j0ncW1t9//62j1AWFz7YyTWvO+PHjIZPJULNmTYwbNw42NjYmuS6VTdo2r/X19cWiRYs4touIShWTHSMq/nozvQD8oqP8UwAfFesKw4cPx7Zt2/DwoXRCpdrAc9GiRfxUTnop6orhRESmwDE7RtS2bVv4+voW2BRTP79Cd6ITgOImOn5+fvj2229x9+5dzJ49W2sdbuBJhipsxXAACA8PL3QTXCKiksJkx4jkcjkWLVpk4KPcoFwXp7tE+X4ou62uFSMyJVUCI5fLMXPmTGzZsgW+vr4adbiBJxmqKCuGExGZEpMdIwsODsbGjRv1bBXpB+BeIeWdih2TlZUVNm3aVCCBCQ4OxrVr1xAbG4t169YhNjYWiYmJTHTIIIasGE5EVBo4ZqcEuLu769FkHwegvY5yNwAPjBLPxo0bJaeKcwNPKi59x6pxDzUiKi1MdkrA1q1bdZR6AEjRUb4DyoHKxSeXy81i8T9OR7ZsqrFqSUlJWsftqAa8cw81Iiot7MYyspiYGCxevFiidCh0Jzo9YaxEBwDWr19f6olOTEwM/P39ERgYiKFDhyIwMBD+/v6IiYkp1bjIeJ4fq5Z/cD4HvBOROWCyY0SqWSna/QlgrY5HuwDYaZQ43NzcsGXLFgwYMMAo5ysq1XTk/INXVdORmfBYjuDgYERHR6Nq1aoaxzngnYjMgUwUtolTOZCeng5nZ2ekpaXBycmpyOeJi4tDYGBgvqM+AJJ0PGozgIFFvubzXF1dERYWho8++qjUP0UrFAr4+/tLztJRdW0kJiaWeqxkPOyyJCJT0vf9m2N2jKjgbJMRAL7X8YguAPYU+XoymQxCCISHh6NPnz5m9cZiyHRkDpC2HBzwTkTmiMmOEWnONnkVuhMdJwCP9T63tbU1KlWqhLS0NPUxX19fREVFmWUXAacjExGRuWCyY0SqWSnKFo1PJGr9D0Co5DnkcjleeuklvPPOO0hLS4O7uzuqVq2qnslSVroIOB2ZiIjMBcfswHhjdoDn9wjaiYKrIncAcEDr41xcXDBp0iSzGG9jDKoxO4VNR+aYHSIiKip93785G8vIVLNSPD0/AxAP5eDkSwDsoS3RCQsLQ2xsLO7du4eZM2dazBs/pyMTEZG5YLJTAoKDg5GUtB+xsdlYvXovXn45BDY2zzTq+Pj4YMuWLYiKikKHDh0s8k2f05GJiMgcWEw31tKlS/H5558jOTkZTZo0wZIlS9CiRQu9HmvMbiwp5XlKbnl+7kREVHL0ff+2iGRn48aNGDZsGFasWIGWLVsiKioKmzdvRkJCAjw8PAp9vCmSHSIiIjKucjVm56uvvsLo0aMxYsQI1K9fHytWrEClSpXw/fe6pn4TERFReVDmk52cnBycPHkSQUFB6mNWVlYICgpCfHy81sdkZ2cjPT1d44uIiIgsU5lPdu7duweFQgFPT0+N456enkhOTtb6mMjISDg7O6u//Pz8TBEqERERlYIyn+wUxfTp05GWlqb+unnzZmmHRERERCWkzK+gXKVKFcjlcqSkpGgcT0lJgZeXl9bH2NrawtbW1hThERERUSkr8y07NjY2aNasGfbt26c+lpeXh3379qFVq1alGBkRERGZgzLfsgMAkydPRmhoKJo3b44WLVogKioKmZmZGDFiRGmHRkRERKXMIpKdQYMG4e7du5g5cyaSk5PRtGlT7Nq1q8CgZSIiIip/LGJRweLiooJERERlT7laVJCIiIhICpMdIiIismgWMWanuFQ9eVxJmYiIqOxQvW8XNiKHyQ6Ax48fAwBXUiYiIiqDHj9+DGdnZ8lyDlCGcl2e27dvw9HRETKZTK/HpKenw8/PDzdv3uSgZj3wfhmO98xwvGeG4z0zDO+X4Uryngkh8PjxY/j4+MDKSnpkDlt2oNw41NfXt0iPdXJy4gveALxfhuM9MxzvmeF4zwzD+2W4krpnulp0VDhAmYiIiCwakx0iIiKyaEx2isjW1hYRERHcUFRPvF+G4z0zHO+Z4XjPDMP7ZThzuGccoExEREQWjS07REREZNGY7BAREZFFY7JDREREFo3JDhEREVk0JjtFsHTpUvj7+6NixYpo2bIl/vzzz9IOyWxERkbi5ZdfhqOjIzw8PNC3b18kJCRo1MnKysL48ePh5uYGBwcH9OvXDykpKaUUsXn57LPPIJPJEB4erj7G+1VQUlIS3njjDbi5ucHOzg6NGjXCiRMn1OVCCMycORPe3t6ws7NDUFAQLl26VIoRly6FQoEZM2YgICAAdnZ2qFmzJubOnauxn1B5v2cHDx5Er1694OPjA5lMhp9//lmjXJ/78+DBA4SEhMDJyQkuLi4YNWoUMjIyTPgsTEfX/crNzcUHH3yARo0awd7eHj4+Phg2bBhu376tcQ5T3i8mOwbauHEjJk+ejIiICJw6dQpNmjRB165dkZqaWtqhmYUDBw5g/Pjx+OOPP7Bnzx7k5uaiS5cuyMzMVNeZNGkStm/fjs2bN+PAgQO4ffs2goODSzFq83D8+HGsXLkSjRs31jjO+6Xp4cOHaNOmDaytrfHbb7/h3Llz+PLLL1G5cmV1nQULFmDx4sVYsWIFjh07Bnt7e3Tt2hVZWVmlGHnpmT9/PpYvX46vv/4a58+fx/z587FgwQIsWbJEXae837PMzEw0adIES5cu1Vquz/0JCQnB2bNnsWfPHuzYsQMHDx7EmDFjTPUUTErX/Xry5AlOnTqFGTNm4NSpU4iJiUFCQgJ69+6tUc+k90uQQVq0aCHGjx+v/l6hUAgfHx8RGRlZilGZr9TUVAFAHDhwQAghxKNHj4S1tbXYvHmzus758+cFABEfH19aYZa6x48fi9q1a4s9e/aI9u3bi7CwMCEE75c2H3zwgXj11Vcly/Py8oSXl5f4/PPP1ccePXokbG1txfr1600Rotnp0aOHGDlypMax4OBgERISIoTgPcsPgNi6dav6e33uz7lz5wQAcfz4cXWd3377TchkMpGUlGSy2EtD/vulzZ9//ikAiOvXrwshTH+/2LJjgJycHJw8eRJBQUHqY1ZWVggKCkJ8fHwpRma+0tLSAACurq4AgJMnTyI3N1fjHtatWxfVqlUr1/dw/Pjx6NGjh8Z9AXi/tPnll1/QvHlzDBgwAB4eHnjxxRfxzTffqMsTExORnJyscc+cnZ3RsmXLcnvPWrdujX379uHixYsAgDNnzuDw4cPo3r07AN6zwuhzf+Lj4+Hi4oLmzZur6wQFBcHKygrHjh0zeczmJi0tDTKZDC4uLgBMf7+4EagB7t27B4VCAU9PT43jnp6euHDhQilFZb7y8vIQHh6ONm3aoGHDhgCA5ORk2NjYqF/wKp6enkhOTi6FKEvfhg0bcOrUKRw/frxAGe9XQVevXsXy5csxefJkfPjhhzh+/DgmTpwIGxsbhIaGqu+Ltt/T8nrPpk2bhvT0dNStWxdyuRwKhQKffPIJQkJCAID3rBD63J/k5GR4eHholFeoUAGurq7l/h5mZWXhgw8+wJAhQ9QbgZr6fjHZoRIzfvx4/Pvvvzh8+HBph2K2bt68ibCwMOzZswcVK1Ys7XDKhLy8PDRv3hyffvopAODFF1/Ev//+ixUrViA0NLSUozNPmzZtwtq1a7Fu3To0aNAAp0+fRnh4OHx8fHjPqETl5uZi4MCBEEJg+fLlpRYHu7EMUKVKFcjl8gIzYVJSUuDl5VVKUZmnCRMmYMeOHYiNjYWvr6/6uJeXF3JycvDo0SON+uX1Hp48eRKpqal46aWXUKFCBVSoUAEHDhzA4sWLUaFCBXh6evJ+5ePt7Y369etrHKtXrx5u3LgBAOr7wt/T/0ydOhXTpk3D4MGD0ahRI7z55puYNGkSIiMjAfCeFUaf++Pl5VVgosqzZ8/w4MGDcnsPVYnO9evXsWfPHnWrDmD6+8VkxwA2NjZo1qwZ9u3bpz6Wl5eHffv2oVWrVqUYmfkQQmDChAnYunUr9u/fj4CAAI3yZs2awdraWuMeJiQk4MaNG+XyHnbq1An//PMPTp8+rf5q3rw5QkJC1P/n/dLUpk2bAssZXLx4EdWrVwcABAQEwMvLS+Oepaen49ixY+X2nj158gRWVpp/7uVyOfLy8gDwnhVGn/vTqlUrPHr0CCdPnlTX2b9/P/Ly8tCyZUuTx1zaVInOpUuXsHfvXri5uWmUm/x+GX3Is4XbsGGDsLW1FWvWrBHnzp0TY8aMES4uLiI5Obm0QzML77zzjnB2dhZxcXHizp076q8nT56o67z99tuiWrVqYv/+/eLEiROiVatWolWrVqUYtXl5fjaWELxf+f3555+iQoUK4pNPPhGXLl0Sa9euFZUqVRI//fSTus5nn30mXFxcxLZt28Tff/8t+vTpIwICAsTTp09LMfLSExoaKqpWrSp27NghEhMTRUxMjKhSpYp4//331XXK+z17/Pix+Ouvv8Rff/0lAIivvvpK/PXXX+rZQ/rcn27duokXX3xRHDt2TBw+fFjUrl1bDBkypLSeUonSdb9ycnJE7969ha+vrzh9+rTGe0F2drb6HKa8X0x2imDJkiWiWrVqwsbGRrRo0UL88ccfpR2S2QCg9Wv16tXqOk+fPhXjxo0TlStXFpUqVRKvv/66uHPnTukFbWbyJzu8XwVt375dNGzYUNja2oq6deuKVatWaZTn5eWJGTNmCE9PT2Frays6deokEhISSina0peeni7CwsJEtWrVRMWKFUWNGjXERx99pPHGU97vWWxsrNa/XaGhoUII/e7P/fv3xZAhQ4SDg4NwcnISI0aMEI8fPy6FZ1PydN2vxMREyfeC2NhY9TlMeb9kQjy3hCYRERGRheGYHSIiIrJoTHaIiIjIojHZISIiIovGZIeIiIgsGpMdIiIismhMdoiIiMiiMdkhIiIii8Zkh4jKrOHDh6Nv374leo1Zs2ahadOmJXoNIipZTHaIyOiGDx8OmUwGmUwGa2trBAQE4P3330dWVlZph0ZE5VCF0g6AiCxTt27dsHr1auTm5uLkyZMIDQ2FTCbD/PnzSzs0Iipn2LJDRCXC1tYWXl5e8PPzQ9++fREUFIQ9e/aoy/Py8hAZGYmAgADY2dmhSZMmiI6OVpcrFAqMGjVKXV6nTh0sWrRI7+unp6fDzs4Ov/32m8bxrVu3wtHREU+ePAEAfPDBB3jhhRdQqVIl1KhRAzNmzEBubq7keTt06IDw8HCNY3379sXw4cPV32dnZ2PKlCmoWrUq7O3t0bJlS8TFxekdOxEZF1t2iKjE/fvvvzh69CiqV6+uPhYZGYmffvoJK1asQO3atXHw4EG88cYbcHd3R/v27ZGXlwdfX19s3rwZbm5uOHr0KMaMGQNvb28MHDiw0Gs6OTmhZ8+eWLduHbp3764+vnbtWvTt2xeVKlUCADg6OmLNmjXw8fHBP//8g9GjR8PR0RHvv/9+kZ/vhAkTcO7cOWzYsAE+Pj7YunUrunXrhn/++Qe1a9cu8nmJqGiY7BBRidixYwccHBzw7NkzZGdnw8rKCl9//TUAZcvHp59+ir1796JVq1YAgBo1auDw4cNYuXIl2rdvD2tra8yePVt9voCAAMTHx2PTpk16JTsAEBISgjfffBNPnjxBpUqVkJ6ejp07d2Lr1q3qOh9//LH6//7+/pgyZQo2bNhQ5GTnxo0bWL16NW7cuAEfHx8AwJQpU7Br1y6sXr0an376aZHOS0RFx2SHiEpEYGAgli9fjszMTCxcuBAVKlRAv379AACXL1/GkydP0LlzZ43H5OTk4MUXX1R/v3TpUnz//fe4ceMGnj59ipycHINmRr322muwtrbGL7/8gsGDB2PLli1wcnJCUFCQus7GjRuxePFiXLlyBRkZGXj27BmcnJyK/Lz/+ecfKBQKvPDCCxrHs7Oz4ebmVuTzElHRMdkhohJhb2+PWrVqAQC+//57NGnSBN999x1GjRqFjIwMAMDOnTtRtWpVjcfZ2toCADZs2IApU6bgyy+/RKtWreDo6IjPP/8cx44d0zsGGxsb9O/fH+vWrcPgwYOxbt06DBo0CBUqKP/0xcfHIyQkBLNnz0bXrl3h7OyMDRs24Msvv5Q8p5WVFYQQGseeH+OTkZEBuVyOkydPQi6Xa9RzcHDQO3YiMh4mO0RU4qysrPDhhx9i8uTJGDp0KOrXrw9bW1vcuHED7du31/qYI0eOoHXr1hg3bpz62JUrVwy+dkhICDp37oyzZ89i//79mDdvnrpMNY7oo48+Uh+7fv26zvO5u7vjzp076u8VCgX+/fdfBAYGAgBefPFFKBQKpKamom3btgbHS0TGx9lYRGQSAwYMgFwux9KlS+Ho6IgpU6Zg0qRJ+OGHH3DlyhWcOnUKS5YswQ8//AAAqF27Nk6cOIHdu3fj4sWLmDFjBo4fP27wddu1awcvLy+EhIQgICAALVu2VJfVrl0bN27cwIYNG3DlyhUsXrxYYzyPNh07dsTOnTuxc+dOXLhwAe+88w4ePXqkLn/hhRcQEhKCYcOGISYmBomJifjzzz8RGRmJnTt3Ghw/ERUfkx0iMokKFSpgwoQJWLBgATIzMzF37lzMmDEDkZGRqFevHrp164adO3ciICAAADB27FgEBwdj0KBBaNmyJe7fv6/RyqMvmUyGIUOG4MyZMwgJCdEo6927NyZNmoQJEyagadOmOHr0KGbMmKHzfCNHjkRoaCiGDRuG9u3bo0aNGupWHZXVq1dj2LBheO+991CnTh307dsXx48fR7Vq1QyOn4iKTybydz4TERERWRC27BAREZFFY7JDREREFo3JDhEREVk0JjtERERk0ZjsEBERkUVjskNEREQWjckOERERWTQmO0RERGTRmOwQERGRRWOyQ0RERBaNyQ4RERFZNCY7REREZNH+DymiTGQTn4ZkAAAAAElFTkSuQmCC\n" - }, - "metadata": {} - }, - { - "output_type": "display_data", - "data": { - "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAABL4AAANXCAYAAAA7DpbIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOxUlEQVR4nO3df5TXdZ33/8cAwoAiKOr4AwxMF8EfoJJcaKkZhlt5XWpdYqGCoGZqi6KmsAtmug7WwgUGirUSuKuXvzatS1I2f4BflIgwS0tAScRWEF0DFASE4ftHx6lZwHV0cIYXt9s5cw6f1+f94/mZM+fkufd+vz8VmzZt2hQAAAAAKEyzxh4AAAAAALYF4QsAAACAIglfAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJFaNPYAH0RNTU1effXVtG3bNhUVFY09DgAAAACNZNOmTXnrrbey7777plmz97+ma7sIX6+++mo6derU2GMAAAAA0ES88sor6dix4/tus12Er7Zt2yb58wfaddddG3kaAAAAABrLqlWr0qlTp9pe9H62i/D13u2Nu+66q/AFAAAAwAd6HJaH2wMAAABQJOELAAAAgCIJXwAAAAAUabt4xhcAAACw/aipqcn69esbewy2Yy1btkyzZh/9ei3hCwAAAGgw69evz0svvZSamprGHoXtWLNmzdKlS5e0bNnyIx1H+AIAAAAaxKZNm7J06dI0b948nTp1apArdtjx1NTU5NVXX83SpUuz//77f6Bvb9wa4QsAAABoEBs2bMiaNWuy7777pk2bNo09DtuxPffcM6+++mo2bNiQnXba6UMfR3oFAAAAGsTGjRuT5CPfngbv/Q299zf1YQlfAAAAQIP6KLemQdJwf0PCFwAAAABFEr4AAAAAKJKH2wMAAADbVOerp32s51s8+osf6/m2ZMqUKbn00kuzYsWKxh4lSTJo0KCsWLEiDzzwwAfafsaMGfnsZz+bP/3pT2nfvv02nW1bcsUXAAAAsEM74YQTcumllzboMfv375+FCxc26DGbstGjR6eioqLBf48flSu+AAAAABpY69at07p168Ye42Mxd+7c3HrrrTn88MMbe5TNuOILAAAA2GENGjQoM2fOzPjx41NRUZGKioosWrQoQ4YMSZcuXdK6det07do148ePr91n7dq1OeSQQ3LBBRfUri1atCht27bN5MmTk/z5Vsf/7hbBQYMG5dRTT80NN9yQqqqqtG/fPt/5zneyYcOGXHnlldl9993TsWPH/OhHP6qz37PPPpsTTzwxrVu3TocOHXLBBRfk7bffrn1/48aNGTZsWNq3b58OHTrkW9/6VjZt2lTnGDU1Namurq79jD169Mh9991X79/f22+/nQEDBuSHP/xhdtttt3rvv60JXwAAAMAOa/z48enTp0/OP//8LF26NEuXLk3Hjh3TsWPH3Hvvvfn973+fUaNGZcSIEbnnnnuSJJWVlbnjjjsyderU/OQnP8nGjRtz1lln5aSTTsrgwYPrdf7HHnssr776ap544omMHTs211xzTb70pS9lt912y5w5c3LhhRfm61//ev74xz8mSVavXp1+/fplt912y9y5c3PvvffmkUceySWXXFJ7zDFjxmTKlCmZPHlyZs2alTfffDP3339/nfNWV1fn9ttvz6RJk/K73/0ul112Wc4666zMnDlzq7NWVFRkypQpddYuvvjifPGLX0zfvn3r9bk/Lm51BAAAAHZY7dq1S8uWLdOmTZvsvffetevXXntt7b+7dOmS2bNn55577skZZ5yRJOnZs2euv/76nHfeeTnzzDPz8ssv58EHH6z3+XfffffcdNNNadasWbp27Zrvfve7WbNmTUaMGJEkGT58eEaPHp1Zs2blzDPPzJ133pm1a9fm9ttvz84775wkmTBhQk455ZTceOONqaqqyrhx4zJ8+PCcfvrpSZJJkyZl+vTptedct25dbrjhhjzyyCPp06dPkuSAAw7IrFmzcuutt+b444/f4qxdu3ZNu3btal/fddddefrppzN37tx6f+6Pi/AFAAAA8F9MnDgxkydPzpIlS/LOO+9k/fr16dmzZ51tLr/88jzwwAOZMGFCHnrooXTo0GGLx1qyZEm6d+9e+3rEiBG1YeuQQw5Js2Z/uSGvqqoqhx56aO3r5s2bp0OHDlm+fHmS5Pnnn0+PHj1qo1eSHHvssampqcmCBQtSWVmZpUuXpnfv3rXvt2jRIr169aq93fHFF1/MmjVrctJJJ9WZc/369TniiCO2+juZP39+7b9feeWVDB06ND//+c9TWVm51X0am/AFAAAA8FfuuuuuXHHFFRkzZkz69OmTtm3b5nvf+17mzJlTZ7vly5dn4cKFad68eV544YWcfPLJWzzevvvum2eeeab29e67717775122qnOthUVFVtcq6mp+Yif6i/eex7YtGnTst9++9V5r1WrVh/oGPPmzcvy5ctz5JFH1q5t3LgxTzzxRCZMmJB169alefPmDTbzhyV8AQAAADu0li1bZuPGjbWvn3zyyRxzzDG56KKLatcWLVq02X6DBw/OYYcdliFDhuT8889P3759061bt822a9GiRQ488MAGmbVbt26ZMmVKVq9eXXvV15NPPll7q2S7du2yzz77ZM6cOTnuuOOSJBs2bMi8efNqI1X37t3TqlWrLFmyZKu3Nf53Pve5z+XZZ5+ts3buuefm4IMPzlVXXdUkolcifAEAAAA7uM6dO2fOnDlZvHhxdtlllxx00EG5/fbbM3369HTp0iX/8i//krlz56ZLly61+0ycODGzZ8/Ob3/723Tq1CnTpk3LgAED8otf/CItW7bcZrMOGDAg11xzTQYOHJhvf/vbef311/PNb34zZ599dqqqqpIkQ4cOzejRo3PQQQfl4IMPztixY7NixYraY7Rt2zZXXHFFLrvsstTU1OTTn/50Vq5cmSeffDK77rprBg4cuMVzH3zwwamurs5pp52Wtm3b1rklM0l23nnndOjQYbP1xiR8AQAAANvU4tFfbOwR3tcVV1yRgQMHpnv37nnnnXcyf/78/PrXv07//v1TUVGRr371q7nooovy0EMPJfnzs66uvPLK3HbbbenUqVOS5Oabb87hhx+ekSNH5sYbb9xms7Zp0ybTp0/P0KFD86lPfSpt2rTJl7/85YwdO7Z2m8svvzxLly7NwIED06xZswwePDinnXZaVq5cWbvNddddlz333DPV1dX5wx/+kPbt2+fII4+sffbYlixYsKDOMbYHFZvee7JZE7Zq1aq0a9cuK1euzK677trY4wAAAABbsHbt2rz00kvp0qVLk37gOU3f+/0t1acTNXvfdwEAAABgOyV8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJGELwAAAIAGNmXKlLRv376xx6g1aNCgnHrqqR94+xkzZqSioiIrVqzYZjN9HFo09gAAAABA4b7d7mM+38p6bX7CCSekZ8+eGTduXION0L9//3zhC19osOM1RbfccktuueWWLF68OElyyCGHZNSoUfnbv/3bxh3sr7jiCwAAAKCBtW7dOnvttVdjj7FNdezYMaNHj868efPyq1/9KieeeGL+1//6X/nd737X2KPVcsUXAFCEw6Ye1tgj0ICeHfhsY48AwA5i0KBBmTlzZmbOnJnx48cnSV588cXccMMNeeyxx7Js2bLsv//+ueiiizJ06NAkydq1a3PUUUfl2GOPzQ9+8IMkyaJFi9KzZ8+MHz8+gwcPzpQpU3LppZe+762CgwYNyooVK3L00Udn/PjxWbduXYYNG5YRI0Zk+PDhue2229KmTZtcd911Offcc2v3e/bZZzN06NDMnj07bdq0yZe//OWMHTs2u+yyS5Jk48aNufLKKzN58uQ0b948Q4YMyaZNm+qcu6amJjfeeGN+8IMfZNmyZfmbv/mbjBw5Ml/5ylc+8O/ulFNOqfP6H//xH3PLLbfkF7/4RQ455JAPfJxtSfgC+IA6Xz2tsUeggS2u/Fpjj0BD6rJ/Y08AAGyHxo8fn4ULF+bQQw/Nd77znSTJbrvtlo4dO+bee+9Nhw4d8tRTT+WCCy7IPvvskzPOOCOVlZW544470rt373zxi1/Ml770pZx11lk56aSTMnjw4Hqd/7HHHkvHjh3zxBNP5Mknn8yQIUPy1FNP5bjjjsucOXNy99135+tf/3pOOumkdOzYMatXr06/fv3Sp0+fzJ07N8uXL895552XSy65JFOmTEmSjBkzJlOmTMnkyZPTrVu3jBkzJvfff39OPPHE2vNWV1fnX//1XzNp0qQcdNBBeeKJJ3LWWWdlzz33zPHHH7/FWSsqKvKjH/0ogwYN2uy9jRs35t57783q1avTp0+fev0OtiXhCwCAJuf5g7s19gg0oG7zn2/sEQC2ql27dmnZsmXatGmTvffeu3b92muvrf13ly5dMnv27Nxzzz0544wzkiQ9e/bM9ddfn/POOy9nnnlmXn755Tz44IP1Pv/uu++em266Kc2aNUvXrl3z3e9+N2vWrMmIESOSJMOHD8/o0aMza9asnHnmmbnzzjuzdu3a3H777dl5552TJBMmTMgpp5ySG2+8MVVVVRk3blyGDx+e008/PUkyadKkTJ8+vfac69atyw033JBHHnmkNlIdcMABmTVrVm699dathq+uXbumXbu6z2t79tln06dPn6xduza77LJL7r///nTv3r3ev4dtRfgCAAAA+C8mTpyYyZMnZ8mSJXnnnXeyfv369OzZs842l19+eR544IFMmDAhDz30UDp06LDFYy1ZsqRODBoxYkRt2DrkkEPSrNlfHsFeVVWVQw89tPZ18+bN06FDhyxfvjxJ8vzzz6dHjx610StJjj322NTU1GTBggWprKzM0qVL07t379r3W7RokV69etXe7vjiiy9mzZo1Oemkk+rMuX79+hxxxBFb/Z3Mnz9/s7WuXbvmmWeeycqVK3Pfffdl4MCBmTlzZpOJX8IXAAAAwF+56667csUVV2TMmDHp06dP2rZtm+9973uZM2dOne2WL1+ehQsXpnnz5nnhhRdy8sknb/F4++67b5555pna17vvvnvtv3faaac621ZUVGxxraam5iN+qr94++23kyTTpk3LfvvtV+e9Vq1a1etYLVu2zIEHHpgkOeqoozJ37tyMHz8+t956a8MM+xEJXwAAAMAOrWXLltm4cWPt6yeffDLHHHNMLrrootq1RYsWbbbf4MGDc9hhh2XIkCE5//zz07dv33Trtvnt+i1atKiNQx9Vt27dMmXKlKxevbr2qq8nn3yy9lbJdu3aZZ999smcOXNy3HHHJUk2bNiQefPm5cgjj0ySdO/ePa1atcqSJUu2elvjh1VTU5N169Y16DE/imb//SYAAAAA5ercuXPmzJmTxYsX54033shBBx2UX/3qV5k+fXoWLlyYkSNHZu7cuXX2mThxYmbPnp2pU6dmwIABOfXUUzNgwICsX79+m846YMCAVFZWZuDAgXnuuefy+OOP55vf/GbOPvvsVFVVJUmGDh2a0aNH54EHHsj8+fNz0UUX1fl2ybZt2+aKK67IZZddlqlTp2bRokV5+umn8/3vfz9Tp07d6rkPPvjg3H///bWvhw8fnieeeCKLFy/Os88+m+HDh2fGjBkZMGDANvv89SV8AQAAADu0K664Is2bN0/37t2z5557pl+/fjn99NPTv3//9O7dO//5n/9Z5+qv+fPn58orr8zNN9+cTp06JUluvvnmvPHGGxk5cuQ2nbVNmzaZPn163nzzzXzqU5/KV77ylXzuc5/LhAkTare5/PLLc/bZZ2fgwIG1t2qedtppdY5z3XXXZeTIkamurk63bt1y8sknZ9q0aenSpctWz71gwYKsXLmy9vXy5ctzzjnnpGvXrvnc5z6XuXPnZvr06Zs9O6wxVWx678lmTdiqVavSrl27rFy5MrvuumtjjwPsoDpfPa2xR6CBLa78WmOPQAM6rMv+jT0CDeie6g2NPQINyLc6wo5j7dq1eemll9KlS5dUVlY29jhsx97vb6k+ncgVXwAAAAAUSfgCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AAAAAiiR8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAABoYFOmTEn79u0be4xagwYNyqmnnvqBt58xY0YqKiqyYsWKbTbTx6FFYw8AAAAAlO2wqYd9rOd7duCz9dr+hBNOSM+ePTNu3LgGm6F///75whe+0GDHa4qqq6vz4x//OPPnz0/r1q1zzDHH5MYbb0zXrl0be7RarvgCAAAAaGCtW7fOXnvt1dhjbFMzZ87MxRdfnF/84hf5+c9/nnfffTef//zns3r16sYerZbwBQAAAOywBg0alJkzZ2b8+PGpqKhIRUVFFi1alCFDhqRLly5p3bp1unbtmvHjx9fus3bt2hxyyCG54IILatcWLVqUtm3bZvLkyUk+2K2O791+eMMNN6Sqqirt27fPd77znWzYsCFXXnlldt9993Ts2DE/+tGP6uz37LPP5sQTT0zr1q3ToUOHXHDBBXn77bdr39+4cWOGDRuW9u3bp0OHDvnWt76VTZs21TlGTU1Nqquraz9jjx49ct9999Xrd/fwww9n0KBBOeSQQ9KjR49MmTIlS5Ysybx58+p1nG1J+AIAAAB2WOPHj0+fPn1y/vnnZ+nSpVm6dGk6duyYjh075t57783vf//7jBo1KiNGjMg999yTJKmsrMwdd9yRqVOn5ic/+Uk2btyYs846KyeddFIGDx5cr/M/9thjefXVV/PEE09k7Nixueaaa/KlL30pu+22W+bMmZMLL7wwX//61/PHP/4xSbJ69er069cvu+22W+bOnZt77703jzzySC655JLaY44ZMyZTpkzJ5MmTM2vWrLz55pu5//7765y3uro6t99+eyZNmpTf/e53ueyyy3LWWWdl5syZW521oqIiU6ZM2er7K1euTJLsvvvu9fodbEue8QUAAADssNq1a5eWLVumTZs22XvvvWvXr7322tp/d+nSJbNnz84999yTM844I0nSs2fPXH/99TnvvPNy5pln5uWXX86DDz5Y7/Pvvvvuuemmm9KsWbN07do13/3ud7NmzZqMGDEiSTJ8+PCMHj06s2bNyplnnpk777wza9euze23356dd945STJhwoSccsopufHGG1NVVZVx48Zl+PDhOf3005MkkyZNyvTp02vPuW7dutxwww155JFH0qdPnyTJAQcckFmzZuXWW2/N8ccfv8VZu3btmnbt2m3xvZqamlx66aU59thjc+ihh9b797CtCF8AAAAA/8XEiRMzefLkLFmyJO+8807Wr1+fnj171tnm8ssvzwMPPJAJEybkoYceSocOHbZ4rCVLlqR79+61r0eMGFEbtg455JA0a/aXG/KqqqrqhKPmzZunQ4cOWb58eZLk+eefT48ePWqjV5Ice+yxqampyYIFC1JZWZmlS5emd+/ete+3aNEivXr1qr3d8cUXX8yaNWty0kkn1Zlz/fr1OeKII7b6O5k/f/5W37v44ovz3HPPZdasWVvdpjEIXwAAAAB/5a677soVV1yRMWPGpE+fPmnbtm2+973vZc6cOXW2W758eRYuXJjmzZvnhRdeyMknn7zF4+2777555plnal//9a2AO+20U51tKyoqtrhWU1PzET/VX7z3PLBp06Zlv/32q/Neq1at6n28Sy65JA8++GCeeOKJdOzYsUFmbCjCFwAAALBDa9myZTZu3Fj7+sknn8wxxxyTiy66qHZt0aJFm+03ePDgHHbYYRkyZEjOP//89O3bN926ddtsuxYtWuTAAw9skFm7deuWKVOmZPXq1bVXfT355JO1t0q2a9cu++yzT+bMmZPjjjsuSbJhw4bMmzcvRx55ZJKke/fuadWqVZYsWbLV2xo/iE2bNuWb3/xm7r///syYMSNdunT56B+wgXm4PQAAALBD69y5c+bMmZPFixfnjTfeyEEHHZRf/epXmT59ehYuXJiRI0dm7ty5dfaZOHFiZs+enalTp2bAgAE59dRTM2DAgKxfv36bzjpgwIBUVlZm4MCBee655/L444/nm9/8Zs4+++xUVVUlSYYOHZrRo0fngQceyPz583PRRRdlxYoVtcdo27Ztrrjiilx22WWZOnVqFi1alKeffjrf//73M3Xq1K2e++CDD67zkPyLL744//qv/5o777wzbdu2zbJly7Js2bK888472+zz15fwBQAAAOzQrrjiijRv3jzdu3fPnnvumX79+uX0009P//7907t37/znf/5nnau/5s+fnyuvvDI333xzOnXqlCS5+eab88Ybb2TkyJHbdNY2bdpk+vTpefPNN/OpT30qX/nKV/K5z30uEyZMqN3m8ssvz9lnn52BAwfW3qp52mmn1TnOddddl5EjR6a6ujrdunXLySefnGnTpr3vVVsLFiyo/ebGJLnllluycuXKnHDCCdlnn31qf+6+++6G/+AfUsWm955s1oStWrUq7dq1y8qVK7Prrrs29jjADqrz1dMaewQa2OLKrzX2CDSgw7rs39gj0IDuqd7Q2CPQgLrNf76xRwA+JmvXrs1LL72ULl26pLKysrHHYTv2fn9L9elErvgCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AAAAAiiR8AQAAAFAk4QsAAACAIglfAAAAABRJ+AIAAACgSC0aewAAAKBsEy98rLFHoIFdPOnExh4BmrwpU6bk0ksvzYoVKxp7lCTJoEGDsmLFijzwwAMfaPsZM2bks5/9bP70pz+lffv223S2bUn4AgAAALap5w/u9rGer9v85+u1/QknnJCePXtm3LhxDTZD//7984UvfKHBjtcUPfHEE/ne976XefPmZenSpbn//vtz6qmnNvZYdbjVEQAAAKCBtW7dOnvttVdjj7FNrV69Oj169MjEiRMbe5StEr4AAACAHdagQYMyc+bMjB8/PhUVFamoqMiiRYsyZMiQdOnSJa1bt07Xrl0zfvz42n3Wrl2bQw45JBdccEHt2qJFi9K2bdtMnjw5yZ9vdfzvbhEcNGhQTj311Nxwww2pqqpK+/bt853vfCcbNmzIlVdemd133z0dO3bMj370ozr7PfvssznxxBPTunXrdOjQIRdccEHefvvt2vc3btyYYcOGpX379unQoUO+9a1vZdOmTXWOUVNTk+rq6trP2KNHj9x33331+t397d/+ba6//vqcdtpp9drv4yR8AQAAADus8ePHp0+fPjn//POzdOnSLF26NB07dkzHjh1z77335ve//31GjRqVESNG5J577kmSVFZW5o477sjUqVPzk5/8JBs3bsxZZ52Vk046KYMHD67X+R977LG8+uqreeKJJzJ27Nhcc801+dKXvpTddtstc+bMyYUXXpivf/3r+eMf/5jkz1dZ9evXL7vttlvmzp2be++9N4888kguueSS2mOOGTMmU6ZMyeTJkzNr1qy8+eabuf/+++uct7q6OrfffnsmTZqU3/3ud7nsssty1llnZebMmVudtaKiIlOmTKnX52tsnvEFAAAA7LDatWuXli1bpk2bNtl7771r16+99traf3fp0iWzZ8/OPffckzPOOCNJ0rNnz1x//fU577zzcuaZZ+bll1/Ogw8+WO/z77777rnpppvSrFmzdO3aNd/97nezZs2ajBgxIkkyfPjwjB49OrNmzcqZZ56ZO++8M2vXrs3tt9+enXfeOUkyYcKEnHLKKbnxxhtTVVWVcePGZfjw4Tn99NOTJJMmTcr06dNrz7lu3brccMMNeeSRR9KnT58kyQEHHJBZs2bl1ltvzfHHH7/FWbt27Zp27drV+zM2JuELAAAA4L+YOHFiJk+enCVLluSdd97J+vXr07NnzzrbXH755XnggQcyYcKEPPTQQ+nQocMWj7VkyZJ079699vWIESNqw9YhhxySZs3+ckNeVVVVDj300NrXzZs3T4cOHbJ8+fIkyfPPP58ePXrURq8kOfbYY1NTU5MFCxaksrIyS5cuTe/evWvfb9GiRXr16lV7u+OLL76YNWvW5KSTTqoz5/r163PEEUds9Xcyf/78rb7XVAlfAAAAAH/lrrvuyhVXXJExY8akT58+adu2bb73ve9lzpw5dbZbvnx5Fi5cmObNm+eFF17IySefvMXj7bvvvnnmmWdqX+++++61/95pp53qbFtRUbHFtZqamo/4qf7iveeBTZs2Lfvtt1+d91q1atVg52kKhC8AAABgh9ayZcts3Lix9vWTTz6ZY445JhdddFHt2qJFizbbb/DgwTnssMMyZMiQnH/++enbt2+6deu22XYtWrTIgQce2CCzduvWLVOmTMnq1atrr/p68skna2+VbNeuXfbZZ5/MmTMnxx13XJJkw4YNmTdvXo488sgkSffu3dOqVassWbJkq7c1lsLD7QEAAIAdWufOnTNnzpwsXrw4b7zxRg466KD86le/yvTp07Nw4cKMHDkyc+fOrbPPxIkTM3v27EydOjUDBgzIqaeemgEDBmT9+vXbdNYBAwaksrIyAwcOzHPPPZfHH3883/zmN3P22WenqqoqSTJ06NCMHj06DzzwQObPn5+LLrooK1asqD1G27Ztc8UVV+Syyy7L1KlTs2jRojz99NP5/ve/n6lTp2713AcffHCdh+S//fbbeeaZZ2qvZnvppZfyzDPPZMmSJdvks38YrvgCAAAAtqlu859v7BHe1xVXXJGBAweme/fueeeddzJ//vz8+te/Tv/+/VNRUZGvfvWrueiii/LQQw8l+fOzrq688srcdttt6dSpU5Lk5ptvzuGHH56RI0fmxhtv3GaztmnTJtOnT8/QoUPzqU99Km3atMmXv/zljB07tnabyy+/PEuXLs3AgQPTrFmzDB48OKeddlpWrlxZu811112XPffcM9XV1fnDH/6Q9u3b58gjj6x99tiWLFiwoM4xfvWrX+Wzn/1s7ethw4YlSQYOHNhkvv2xYtN7TzZrwlatWpV27dpl5cqV2XXXXRt7HGAH1fnqaY09Ag1sceXXGnsEGtBhXfZv7BFoQPdUb2jsEWhAj50wsbFHoIFdPOnExh6BJmrt2rV56aWX0qVLl1RWVjb2OGzH3u9vqT6dyK2OAAAAABRJ+AIAAACgSMIXAAAAAEUSvgAAAAAokvAFAAAAQJGELwAAAACKJHwBAAAAUCThCwAAAIAiCV8AAAAAFEn4AgAAAOAjmTFjRioqKrJixYoPvE/nzp0zbty4bTZTkrTYpkcHAAAAdngTL3zsYz3fxZNO/FjP93FbvHhxunTpkl//+tfp2bNnY4/TpLniCwAAAKABbdy4MTU1NZutr1+/vhGm2bEJXwAAAMAOraamJt/97ndz4IEHplWrVtl///3zj//4j0m2fAvfM888k4qKiixevDhJMmXKlLRv3z4//elP071797Rq1SpLlixJ586dc9111+Wcc87JrrvumgsuuCBJMmvWrHzmM59J69at06lTp/zd3/1dVq9eXXv8zp0754YbbsjgwYPTtm3b7L///vnBD35Q+36XLl2SJEcccUQqKipywgknbPFzvTf79OnTc8QRR6R169Y58cQTs3z58jz00EPp1q1bdt1113zta1/LmjVravdbt25d/u7v/i577bVXKisr8+lPfzpz586tc+yf/exn+Zu/+Zu0bt06n/3sZ2t/F3/tv/ucHwfhCwAAANihDR8+PKNHj87IkSPz+9//PnfeeWeqqqrqdYw1a9bkxhtvzD//8z/nd7/7Xfbaa68kyT/90z+lR48e+fWvf52RI0dm0aJFOfnkk/PlL385v/3tb3P33Xdn1qxZueSSS+ocb8yYMenVq1d+/etf56KLLso3vvGNLFiwIEnyy1/+MknyyCOPZOnSpfnxj3/8vrN9+9vfzoQJE/LUU0/llVdeyRlnnJFx48blzjvvzLRp0/Lv//7v+f73v1+7/be+9a3827/9W6ZOnZqnn346Bx54YPr165c333wzSfLKK6/k9NNPzymnnJJnnnkm5513Xq6++uo65/ygn3Nb84wvAAAAYIf11ltvZfz48ZkwYUIGDhyYJPnkJz+ZT3/60/U6zrvvvpubb745PXr0qLN+4okn5vLLL699fd5552XAgAG59NJLkyQHHXRQbrrpphx//PG55ZZbUllZmST5whe+kIsuuihJctVVV+X//J//k8cffzxdu3bNnnvumSTp0KFD9t577/92tuuvvz7HHntskmTIkCEZPnx4Fi1alAMOOCBJ8pWvfCWPP/54rrrqqqxevTq33HJLpkyZkr/9279Nkvzwhz/Mz3/+89x222258sorc8stt+STn/xkxowZkyTp2rVrnn322dx4442156yurv5An3NbE74AAACAHdbzzz+fdevW5XOf+9xHOk7Lli1z+OGHb7beq1evOq9/85vf5Le//W3uuOOO2rVNmzalpqYmL730Urp165YkdY5VUVGRvffeO8uXL/9Qs/31saqqqtKmTZva6PXe2ntXkS1atCjvvvtubShLkp122ilHH310nn/++SR//p317t27zjn69OnzoT7ntiZ8AQAAADus1q1bv+/7zZr9+SlRmzZtql179913t3icioqKzdZ33nnnOq/ffvvtfP3rX8/f/d3fbbbt/vvvX/vvnXbaqc57FRUVW3xg/gfx18eqqKho0GNvzQf9nNua8AUAAADssA466KC0bt06jz76aM4777zN3n/vtsKlS5dmt912S/Lnh9t/WEceeWR+//vf58ADD/zQx2jZsmWSP397ZEP75Cc/mZYtW+bJJ5/MJz7xiSR/Dn1z586tvW2xW7du+elPf1pnv1/84hd1XjfE52wIHm4PAAAA7LAqKytz1VVX5Vvf+lZuv/32LFq0KL/4xS9y2223JUkOPPDAdOrUKd/+9rfzwgsvZNq0abXPtvowrrrqqjz11FO55JJL8swzz+SFF17IT37yk3o99H2vvfZK69at8/DDD+e1117LypUrP/Q8/9XOO++cb3zjG7nyyivz8MMP5/e//33OP//8rFmzJkOGDEmSXHjhhXnhhRdy5ZVXZsGCBbnzzjszZcqUBv+cDcEVXwAAAMA2dfGkExt7hPc1cuTItGjRIqNGjcqrr76affbZJxdeeGGSP98m+H//7//NN77xjRx++OH51Kc+leuvvz7/+3//7w91rsMPPzwzZ87M3//93+czn/lMNm3alE9+8pPp37//Bz5GixYtctNNN+U73/lORo0alc985jOZMWPGh5pnS0aPHp2ampqcffbZeeutt9KrV69Mnz699oq3/fffP//2b/+Wyy67LN///vdz9NFH54YbbsjgwYMb9HM2hIpNf32TahO1atWqtGvXLitXrsyuu+7a2OMAO6jOV09r7BFoYIsrv9bYI9CADuvy8T0rgm3vnuoNjT0CDeixEyY29gg0sKYeMWg8a9euzUsvvZQuXbp8bN/aR5ne72+pPp3IrY4AAAAAFEn4AgAAAKBIwhcAAAAARRK+AAAAACiS8AUAAAA0qO3ge/Ro4hrqb0j4AgAAABpE8+bNkyTr169v5EnY3r33N/Te39SH1eLD7DRx4sR873vfy7Jly9KjR498//vfz9FHH73V7ceNG5dbbrklS5YsyR577JGvfOUrqa6u9tWmAAAAUJAWLVqkTZs2ef3117PTTjulWTPX21B/NTU1ef3119OmTZu0aPGh0lWteu999913Z9iwYZk0aVJ69+6dcePGpV+/flmwYEH22muvzba/8847c/XVV2fy5Mk55phjsnDhwgwaNCgVFRUZO3bsRxoeAAAAaDoqKiqyzz775KWXXsrLL7/c2OOwHWvWrFn233//VFRUfKTj1Dt8jR07Nueff37OPffcJMmkSZMybdq0TJ48OVdfffVm2z/11FM59thj87WvfS1J0rlz53z1q1/NnDlzPtLgAAAAQNPTsmXLHHTQQW535CNp2bJlg1wxWK/wtX79+sybNy/Dhw+vXWvWrFn69u2b2bNnb3GfY445Jv/6r/+aX/7ylzn66KPzhz/8IT/72c9y9tlnb/U869aty7p162pfr1q1qj5jAgAAAI2oWbNmHm9Ek1Cv8PXGG29k48aNqaqqqrNeVVWV+fPnb3Gfr33ta3njjTfy6U9/Ops2bcqGDRty4YUXZsSIEVs9T3V1da699tr6jAYAAAAAdWzzp8zNmDEjN9xwQ26++eY8/fTT+fGPf5xp06bluuuu2+o+w4cPz8qVK2t/XnnllW09JgAAAACFqdcVX3vssUeaN2+e1157rc76a6+9lr333nuL+4wcOTJnn312zjvvvCTJYYcdltWrV+eCCy7I3//9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VVVVmT9//hb3WbZs2Ra3X7Zs2VbPM3z48DqxrKamJm+++WY6dOiQioqK+owMAFCM9/7fTVfBAwA7sk2bNuWtt97Kvvvu+99uW6/w9XFp1apVWrVqVWetffv2jTMMAEATs+uuuwpfAMAO7b+70us99Xq4/R577JHmzZvntddeq7P+2muvZe+9997iPnvvvXe9tgcAAACAhlCv8NWyZcscddRRefTRR2vXampq8uijj6ZPnz5b3KdPnz51tk+Sn//851vdHgAAAAAaQr1vdRw2bFgGDhyYXr165eijj864ceOyevXqnHvuuUmSc845J/vtt1+qq6uTJEOHDs3xxx+fMWPG5Itf/GLuuuuu/OpXv8oPfvCDhv0kAACFa9WqVa655prNHgkBAMCW1Tt89e/fP6+//npGjRqVZcuWpWfPnnn44YdrH2C/ZMmSNGv2lwvJjjnmmNx55535h3/4h4wYMSIHHXRQHnjggRx66KEN9ykAAHYArVq1yre//e3GHgMAYLtRsWnTpk2NPQQAAAAANLR6PeMLAAAAALYXwhcAAAAARRK+AAAAACiS8AUAAABAkYQvAIAmbMOGDXnkkUdy66235q233kqSvPrqq3n77bcbeTIAgKbPtzoCADRRL7/8ck4++eQsWbIk69aty8KFC3PAAQdk6NChWbduXSZNmtTYIwIANGmu+AIAaKKGDh2aXr165U9/+lNat25du37aaafl0UcfbcTJAAC2Dy0aewAAALbs//v//r889dRTadmyZZ31zp075z/+4z8aaSoAgO2HK74AAJqompqabNy4cbP1P/7xj2nbtm0jTAQAsH0RvgAAmqjPf/7zGTduXO3rioqKvP3227nmmmvyhS98ofEGAwDYTni4PQBAE/XKK6/k5JNPzqZNm/LCCy+kV69eeeGFF7LHHnvkiSeeyF577dXYIwIANGnCFwBAE7Zhw4bcfffd+c1vfpO33347Rx55ZAYMGFDnYfcAAGyZ8AUA0AS9++67Ofjgg/Pggw+mW7dujT0OAMB2yTO+AACaoJ122ilr165t7DEAALZrwhcAQBN18cUX58Ybb8yGDRsaexQAgO2SWx0BAJqo0047LY8++mh22WWXHHbYYdl5553rvP/jH/+4kSYDANg+tGjsAQAA2LL27dvny1/+cmOPAQCw3XLFFwAAAABFcsUXAEAT9/rrr2fBggVJkq5du2bPPfds5IkAALYPHm4PANBErV69OoMHD84+++yT4447Lscdd1z23XffDBkyJGvWrGns8QAAmjzhCwCgiRo2bFhmzpyZ//f//l9WrFiRFStW5Cc/+UlmzpyZyy+/vLHHAwBo8jzjCwCgidpjjz1y33335YQTTqiz/vjjj+eMM87I66+/3jiDAQBsJ1zxBQDQRK1ZsyZVVVWbre+1115udQQA+ABc8QUA0ER97nOfS4cOHXL77bensrIySfLOO+9k4MCBefPNN/PII4808oQAAE2b8AUA0EQ999xz6devX9atW5cePXokSX7zm9+ksrIy06dPzyGHHNLIEwIANG3CFwBAE7ZmzZrccccdmT9/fpKkW7duGTBgQFq3bt3IkwEANH3CFwAAAABF8nB7AIAmqrq6OpMnT95sffLkybnxxhsbYSIAgO2L8AUA0ETdeuutOfjggzdbP+SQQzJp0qRGmAgAYPsifAEANFHLli3LPvvss9n6nnvumaVLlzbCRAAA2xfhCwCgierUqVOefPLJzdaffPLJ7Lvvvo0wEQDA9qVFYw8AAMCWnX/++bn00kvz7rvv5sQTT0ySPProo/nWt76Vyy+/vJGnAwBo+nyrIwBAE7Vp06ZcffXVuemmm7J+/fokSWVlZa666qqMGjWqkacDAGj6hC8AgCbu7bffzvPPP5/WrVvnoIMOSqtWrRp7JACA7YLwBQCwnVi1alUee+yxdO3aNd26dWvscQAAmjwPtwcAaKLOOOOMTJgwIUnyzjvvpFevXjnjjDNy+OGH59/+7d8aeToAgKZP+AIAaKKeeOKJfOYzn0mS3H///dm0aVNWrFiRm266Kddff30jTwcA0PQJXwAATdTKlSuz++67J0kefvjhfPnLX06bNm3yxS9+MS+88EIjTwcA0PQJXwAATVSnTp0ye/bsrF69Og8//HA+//nPJ0n+9Kc/pbKyspGnAwBo+lo09gAAAGzZpZdemgEDBmSXXXbJJz7xiZxwwglJ/nwL5GGHHda4wwEAbAd8qyMAQBM2b968LFmyJCeddFJ22WWXJMm0adPSvn37HHvssY08HQBA0yZ8AQAAAFAkz/gCAAAAoEjCFwAAAABFEr4AAAAAKJLwBQAAAECRhC8AgCaqpqZmq+tLliz5mKcBANj+CF8AAE3MqlWrcsYZZ2TnnXdOVVVVRo0alY0bN9a+//rrr6dLly6NOCEAwPahRWMPAABAXSNHjsxvfvOb/Mu//EtWrFiR66+/Pk8//XR+/OMfp2XLlkmSTZs2NfKUAABNX8Um/9UEANCkfOITn8jUqVNzwgknJEneeOONfPGLX0z79u3z05/+NCtWrMi+++5b5yowAAA251ZHAIAm5vXXX88nPvGJ2td77LFHHnnkkbz11lv5whe+kDVr1jTidAAA2w/hCwCgidl///3z/PPP11lr27Zt/v3f/z3vvPNOTjvttEaaDABg+yJ8AQA0MZ///Ofzox/9aLP1XXbZJdOnT09lZWUjTAUAsP3xjC8AgCbmT3/6U1599dUccsghW3z/rbfeytNPP53jjz/+Y54MAGD7InwBADRB7777bk4++eRMmjQpBx10UGOPAwCwXXKrIwBAE7TTTjvlt7/9bWOPAQCwXRO+AACaqLPOOiu33XZbY48BALDdatHYAwAAsGUbNmzI5MmT88gjj+Soo47KzjvvXOf9sWPHNtJkAADbB+ELAKCJeu6553LkkUcmSRYuXFjnvYqKisYYCQBgu+Lh9gAAAAAUyTO+AAAAACiS8AUAAABAkYQvAAAAAIokfAEAAABQJOELAAAAgCIJXwAAAAAUSfgCAAAAoEjCFwAAAABF+v8Bd/YVQATSOx8AAAAASUVORK5CYII=\n" - }, - "metadata": {} - } - ], - "execution_count": 6, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555127797 - } - } - }, - { - "cell_type": "code", - "source": [ - "ls \"/tmp/evaluate\"" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "deploy_flag perf_comparison.png predictions.csv score.txt\r\n" - } - ], - "execution_count": 7, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "vscode": { - "languageId": "shellscript" - }, - "gather": { - "logged": 1671555128073 - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "sklearn" - }, - "kernelspec": { - "name": "sklearn", - "language": "python", - "display_name": "sklearn" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - }, - "vscode": { - "interpreter": { - "hash": "c87d6401964827bd736fe8e727109b953dd698457ca58fb5acabab22fd6dac41" - } - }, - "language_info": { - "name": "python", - "version": "3.7.5", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/data-science/experiment/prep.ipynb b/data-science/experiment/prep.ipynb deleted file mode 100644 index efd53ff..0000000 --- a/data-science/experiment/prep.ipynb +++ /dev/null @@ -1,252 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "source": [ - "import argparse\n", - "\n", - "from pathlib import Path\n", - "import os\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "import mlflow" - ], - "outputs": [], - "execution_count": 1, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671554100703 - } - } - }, - { - "cell_type": "code", - "source": [ - "TARGET_COL = \"cost\"\n", - "\n", - "NUMERIC_COLS = [\n", - " \"distance\", \"dropoff_latitude\", \"dropoff_longitude\", \"passengers\", \"pickup_latitude\",\n", - " \"pickup_longitude\", \"pickup_weekday\", \"pickup_month\", \"pickup_monthday\", \"pickup_hour\",\n", - " \"pickup_minute\", \"pickup_second\", \"dropoff_weekday\", \"dropoff_month\", \"dropoff_monthday\",\n", - " \"dropoff_hour\", \"dropoff_minute\", \"dropoff_second\"\n", - "]\n", - "\n", - "CAT_NOM_COLS = [\n", - " \"store_forward\", \"vendor\"\n", - "]\n", - "\n", - "CAT_ORD_COLS = [\n", - "]" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "gather": { - "logged": 1671554100969 - } - } - }, - { - "cell_type": "code", - "source": [ - "# Define Arguments for this step\n", - "\n", - "class MyArgs:\n", - " def __init__(self, **kwargs):\n", - " self.__dict__.update(kwargs)\n", - "\n", - "args = MyArgs(\n", - " raw_data = \"../../data/taxi-data.csv\", \n", - " train_data = \"/tmp/prep/train\",\n", - " val_data = \"/tmp/prep/val\",\n", - " test_data = \"/tmp/prep/test\",\n", - " )\n", - "\n", - "os.makedirs(args.train_data, exist_ok = True)\n", - "os.makedirs(args.val_data, exist_ok = True)\n", - "os.makedirs(args.test_data, exist_ok = True)\n" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671554101107 - } - } - }, - { - "cell_type": "code", - "source": [ - "\n", - "def main(args):\n", - " '''Read, split, and save datasets'''\n", - "\n", - " # ------------ Reading Data ------------ #\n", - " # -------------------------------------- #\n", - " data = pd.read_csv((Path(args.raw_data)))\n", - " data = data[NUMERIC_COLS + CAT_NOM_COLS + CAT_ORD_COLS + [TARGET_COL]]\n", - "\n", - " # ------------- Split Data ------------- #\n", - " # -------------------------------------- #\n", - "\n", - " # Split data into train, val and test datasets\n", - "\n", - " random_data = np.random.rand(len(data))\n", - "\n", - " msk_train = random_data < 0.7\n", - " msk_val = (random_data >= 0.7) & (random_data < 0.85)\n", - " msk_test = random_data >= 0.85\n", - "\n", - " train = data[msk_train]\n", - " val = data[msk_val]\n", - " test = data[msk_test]\n", - "\n", - " mlflow.log_metric('train size', train.shape[0])\n", - " mlflow.log_metric('val size', val.shape[0])\n", - " mlflow.log_metric('test size', test.shape[0])\n", - "\n", - " train.to_parquet((Path(args.train_data) / \"train.parquet\"))\n", - " val.to_parquet((Path(args.val_data) / \"val.parquet\"))\n", - " test.to_parquet((Path(args.test_data) / \"test.parquet\"))\n" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "gather": { - "logged": 1671554101242 - } - } - }, - { - "cell_type": "code", - "source": [ - "mlflow.start_run()\n", - "\n", - "lines = [\n", - " f\"Raw data path: {args.raw_data}\",\n", - " f\"Train dataset output path: {args.train_data}\",\n", - " f\"Val dataset output path: {args.val_data}\",\n", - " f\"Test dataset path: {args.test_data}\",\n", - "]\n", - "\n", - "for line in lines:\n", - " print(line)\n", - "\n", - "main(args)\n", - "\n", - "mlflow.end_run()" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Raw data path: ../../data/taxi-data.csv\nTrain dataset output path: /tmp/prep/train\nVal dataset output path: /tmp/prep/val\nTest dataset path: /tmp/prep/test\n" - } - ], - "execution_count": 6, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671554107510 - } - } - }, - { - "cell_type": "code", - "source": [ - "ls \"/tmp/prep/train\" " - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "train.parquet\r\n" - } - ], - "execution_count": 7, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "vscode": { - "languageId": "shellscript" - }, - "gather": { - "logged": 1671554107615 - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python310-sdkv2" - }, - "kernelspec": { - "name": "python310-sdkv2", - "language": "python", - "display_name": "Python 3.10 - SDK V2" - }, - "language_info": { - "name": "python", - "version": "3.10.6", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - }, - "vscode": { - "interpreter": { - "hash": "c87d6401964827bd736fe8e727109b953dd698457ca58fb5acabab22fd6dac41" - } - }, - "microsoft": { - "host": { - "AzureML": { - "notebookHasBeenCompleted": true - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/data-science/experiment/requirements.txt b/data-science/experiment/requirements.txt deleted file mode 100644 index c2105d0..0000000 --- a/data-science/experiment/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -azureml-mlflow==1.38.0 -scikit-learn==0.24.1 -pandas==1.2.1 -joblib==1.0.0 -matplotlib==3.3.3 \ No newline at end of file diff --git a/data-science/experiment/train.ipynb b/data-science/experiment/train.ipynb deleted file mode 100644 index e1ca364..0000000 --- a/data-science/experiment/train.ipynb +++ /dev/null @@ -1,330 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "source": [ - "import argparse\n", - "\n", - "from pathlib import Path\n", - "\n", - "import numpy as np\n", - "import pandas as pd\n", - "from matplotlib import pyplot as plt\n", - "\n", - "from sklearn.ensemble import RandomForestRegressor\n", - "from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error\n", - "\n", - "import mlflow\n", - "import mlflow.sklearn" - ], - "outputs": [], - "execution_count": 1, - "metadata": { - "gather": { - "logged": 1671555066649 - } - } - }, - { - "cell_type": "code", - "source": [ - "TARGET_COL = \"cost\"\n", - "\n", - "NUMERIC_COLS = [\n", - " \"distance\", \"dropoff_latitude\", \"dropoff_longitude\", \"passengers\", \"pickup_latitude\",\n", - " \"pickup_longitude\", \"pickup_weekday\", \"pickup_month\", \"pickup_monthday\", \"pickup_hour\",\n", - " \"pickup_minute\", \"pickup_second\", \"dropoff_weekday\", \"dropoff_month\", \"dropoff_monthday\",\n", - " \"dropoff_hour\", \"dropoff_minute\", \"dropoff_second\"\n", - "]\n", - "\n", - "CAT_NOM_COLS = [\n", - " \"store_forward\", \"vendor\"\n", - "]\n", - "\n", - "CAT_ORD_COLS = [\n", - "]" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555066941 - } - } - }, - { - "cell_type": "code", - "source": [ - "# Define Arguments for this step\n", - "\n", - "class MyArgs:\n", - " def __init__(self, **kwargs):\n", - " self.__dict__.update(kwargs)\n", - "\n", - "args = MyArgs(\n", - " train_data = \"/tmp/prep/train\",\n", - " model_output = \"/tmp/train\",\n", - " regressor__n_estimators = 500,\n", - " regressor__bootstrap = 1,\n", - " regressor__max_depth = 10,\n", - " regressor__max_features = \"auto\", \n", - " regressor__min_samples_leaf = 4,\n", - " regressor__min_samples_split = 5\n", - " )\n", - "\n", - "os.makedirs(args.model_output, exist_ok = True)" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555067138 - } - } - }, - { - "cell_type": "code", - "source": [ - "Path(args.train_data) / \"*.parquet\"" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 4, - "data": { - "text/plain": "PosixPath('/tmp/prep/train/*.parquet')" - }, - "metadata": {} - } - ], - "execution_count": 4, - "metadata": { - "jupyter": { - "source_hidden": false, - "outputs_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555067447 - } - } - }, - { - "cell_type": "code", - "source": [ - "\n", - "def main(args):\n", - " '''Read train dataset, train model, save trained model'''\n", - "\n", - " # Read train data\n", - " train_data = pd.read_parquet(Path(args.train_data) / \"train.parquet\" )\n", - "\n", - " # Split the data into input(X) and output(y)\n", - " y_train = train_data[TARGET_COL]\n", - " X_train = train_data[NUMERIC_COLS + CAT_NOM_COLS + CAT_ORD_COLS]\n", - "\n", - " # Train a Random Forest Regression Model with the training set\n", - " model = RandomForestRegressor(n_estimators = args.regressor__n_estimators,\n", - " bootstrap = args.regressor__bootstrap,\n", - " max_depth = args.regressor__max_depth,\n", - " max_features = args.regressor__max_features,\n", - " min_samples_leaf = args.regressor__min_samples_leaf,\n", - " min_samples_split = args.regressor__min_samples_split,\n", - " random_state=0)\n", - "\n", - " # log model hyperparameters\n", - " mlflow.log_param(\"model\", \"RandomForestRegressor\")\n", - " mlflow.log_param(\"n_estimators\", args.regressor__n_estimators)\n", - " mlflow.log_param(\"bootstrap\", args.regressor__bootstrap)\n", - " mlflow.log_param(\"max_depth\", args.regressor__max_depth)\n", - " mlflow.log_param(\"max_features\", args.regressor__max_features)\n", - " mlflow.log_param(\"min_samples_leaf\", args.regressor__min_samples_leaf)\n", - " mlflow.log_param(\"min_samples_split\", args.regressor__min_samples_split)\n", - "\n", - " # Train model with the train set\n", - " model.fit(X_train, y_train)\n", - "\n", - " # Predict using the Regression Model\n", - " yhat_train = model.predict(X_train)\n", - "\n", - " # Evaluate Regression performance with the train set\n", - " r2 = r2_score(y_train, yhat_train)\n", - " mse = mean_squared_error(y_train, yhat_train)\n", - " rmse = np.sqrt(mse)\n", - " mae = mean_absolute_error(y_train, yhat_train)\n", - " \n", - " # log model performance metrics\n", - " mlflow.log_metric(\"train r2\", r2)\n", - " mlflow.log_metric(\"train mse\", mse)\n", - " mlflow.log_metric(\"train rmse\", rmse)\n", - " mlflow.log_metric(\"train mae\", mae)\n", - "\n", - " # Visualize results\n", - " plt.scatter(y_train, yhat_train, color='black')\n", - " plt.plot(y_train, y_train, color='blue', linewidth=3)\n", - " plt.xlabel(\"Real value\")\n", - " plt.ylabel(\"Predicted value\")\n", - " plt.savefig(\"regression_results.png\")\n", - " mlflow.log_artifact(\"regression_results.png\")\n", - "\n", - " # Save the model\n", - " mlflow.sklearn.save_model(sk_model=model, path=args.model_output)\n" - ], - "outputs": [], - "execution_count": 5, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555067615 - } - } - }, - { - "cell_type": "code", - "source": [ - "mlflow.start_run()\n", - "\n", - "lines = [\n", - " f\"Train dataset input path: {args.train_data}\",\n", - " f\"Model output path: {args.model_output}\",\n", - " f\"n_estimators: {args.regressor__n_estimators}\",\n", - " f\"bootstrap: {args.regressor__bootstrap}\",\n", - " f\"max_depth: {args.regressor__max_depth}\",\n", - " f\"max_features: {args.regressor__max_features}\",\n", - " f\"min_samples_leaf: {args.regressor__min_samples_leaf}\",\n", - " f\"min_samples_split: {args.regressor__min_samples_split}\"\n", - "]\n", - "\n", - "for line in lines:\n", - " print(line)\n", - "\n", - "main(args)\n", - "\n", - "mlflow.end_run()" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Train dataset input path: /tmp/prep/train\nModel output path: /tmp/train\nn_estimators: 500\nbootstrap: 1\nmax_depth: 10\nmax_features: auto\nmin_samples_leaf: 4\nmin_samples_split: 5\n" - }, - { - "output_type": "stream", - "name": "stderr", - "text": "/anaconda/envs/sklearn/lib/python3.7/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils.\n warnings.warn(\"Setuptools is replacing distutils.\")\n" - }, - { - "output_type": "display_data", - "data": { - "text/plain": "
", - "image/png": "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bhgzZgwOHDgAIHRe44cffojevXtj+PDh6NSpE6666iq8+eabtvZQe9+pra3F4sWLcffdd0OSpJD5Ofbr1w9FRUXYvXs3AOD777/HV199hZtuuglA4P8cQ75opJxjx47BbDYjPj7e7nh8fDx27tzpp155T3l5OQA4fL3WtmBTX1+PrKws9O/fH5deeikAy+uMiIhAu3bt7M4Ntte5fft2pKam4ty5c2jTpg1WrlyJXr164bvvvguJ17ds2TJ8++232Lx5c5O2UPkZ9unTB4sWLUKPHj1QVlaG7OxsDBgwADt27AiZ1/jLL7/gjTfewNSpU/HYY49h8+bNeOihhxAREYGxY8eG3PvO+++/j8rKSowbNw5A6PxbnTlzJqqrq9GzZ0/odDqYzWY8++yzGDNmDIDA//xotoEMBb9JkyZhx44d+Oqrr/zdFc316NED3333HaqqqlBQUICxY8dizZo1/u6WJg4ePIjJkydj1apVaNmypb+74zXWv2YB4PLLL0efPn2QnJyM5cuXIyoqyo890059fT169+6N5557DgBw1VVXYceOHZg/fz7Gjh3r595p7+2338ZNN92ExMREf3dFU8uXL8eSJUuQn5+PSy65BN999x2ysrKQmJgYFD/HZju11LFjR+h0uiaryysqKpCQkOCnXnmP9TWFyut94IEH8PHHH8NkMkGv19uOJyQkoLa2FpWVlXbnB9vrjIiIwAUXXIBrrrkGOTk5uOKKK5CXlxcSr2/r1q04cuQIrr76arRo0QItWrTAmjVr8Oqrr6JFixaIj48P+tfoSLt27XDRRRdh7969IfFzBIDOnTujV69edscuvvhi2xRaKL3v/Prrr1i9ejX+8Y9/2I6Fys9x+vTpmDlzJkaOHInLLrsMf//73zFlyhTk5OQACPyfY7MNZCIiInDNNdegqKjIdqy+vh5FRUVITU31Y8+8o2vXrkhISLB7vdXV1di4cWNQvV4hBB544AGsXLkSX375Jbp27WrXfs011yA8PNzude7atQsHDhwIqtfZWH19PWpqakLi9Q0aNAjbt2/Hd999Z3v07t0bY8aMsf1/sL9GR06dOoV9+/ahc+fOIfFzBID+/fs3SX+we/duJCcnAwid9x0AWLhwITp16oRbbrnFdixUfo5nzpxBWJh9OKDT6VBfXw8gCH6O/l5t7E/Lli0TkZGRYtGiReKnn34SEyZMEO3atRPl5eX+7ppbTp48KbZt2ya2bdsmAIhXXnlFbNu2Tfz6669CCMv2uXbt2okPPvhA/PDDDyI9PT1gts+pdf/994uYmBhRXFxstyXyzJkztnPuu+8+0aVLF/Hll1+KLVu2iNTUVJGamurHXrtm5syZYs2aNaKkpET88MMPYubMmUKSJPHFF18IIYL/9TnScNeSEKHxGh9++GFRXFwsSkpKxNdffy0GDx4sOnbsKI4cOSKECI3XuGnTJtGiRQvx7LPPij179oglS5aIVq1aicWLF9vOCYX3HbPZLLp06SIeeeSRJm2h8HMcO3asSEpKsm2/NhqNomPHjmLGjBm2cwL559isAxkhhHjttddEly5dREREhLj22mvFN9984+8uuc1kMgkATR5jx44VQli20M2aNUvEx8eLyMhIMWjQILFr1y7/dtpFjl4fALFw4ULbOWfPnhUTJ04U7du3F61atRK33367KCsr81+nXXT33XeL5ORkERERIeLi4sSgQYNsQYwQwf/6HGkcyITCaxwxYoTo3LmziIiIEElJSWLEiBF2+VVC4TUKIcRHH30kLr30UhEZGSl69uwpFixYYNceCu87n3/+uQDgsN+h8HOsrq4WkydPFl26dBEtW7YU3bp1E48//rioqamxnRPIP0dJiAap+4iIiIiCSLNdI0NERETBj4EMERERBS0GMkRERBS0GMgQERFR0GIgQ0REREGLgQwREREFLQYyREREFLQYyBAREVHQYiBDRAFr3LhxGDp0qFfv8dRTT+HKK6/06j2IyHsYyBCRy8aNGwdJkiBJEsLDw9G1a1fMmDED586d83fXiKiZaeHvDhBRcLrxxhuxcOFCnD9/Hlu3bsXYsWMhSRLmzJnj764RUTPCERkicktkZCQSEhJgMBgwdOhQDB48GKtWrbK119fXIycnB127dkVUVBSuuOIKFBQU2NrNZjPuueceW3uPHj2Ql5en+v7V1dWIiorC//73P7vjK1euRNu2bXHmzBkAwCOPPIKLLroIrVq1Qrdu3TBr1iycP39e9roDBw5EVlaW3bGhQ4di3Lhxtq9ramowbdo0JCUloXXr1ujTpw+Ki4tV952ItMMRGSLy2I4dO7B+/XokJyfbjuXk5GDx4sWYP38+LrzwQqxduxZ33nkn4uLicP3116O+vh56vR4rVqxAbGws1q9fjwkTJqBz58644447nN4zOjoat956K/Lz83HTTTfZji9ZsgRDhw5Fq1atAABt27bFokWLkJiYiO3bt+Pee+9F27ZtMWPGDLdf7wMPPICffvoJy5YtQ2JiIlauXIkbb7wR27dvx4UXXuj2dYnIdQxkiMgtH3/8Mdq0aYO6ujrU1NQgLCwM//rXvwBYRiyee+45rF69GqmpqQCAbt264auvvsK///1vXH/99QgPD0d2drbtel27dsWGDRuwfPlyVYEMAIwZMwZ///vfcebMGbRq1QrV1dX45JNPsHLlSts5TzzxhO3/U1JSMG3aNCxbtsztQObAgQNYuHAhDhw4gMTERADAtGnT8Nlnn2HhwoV47rnn3LouEbmHgQwRuSUtLQ1vvPEGTp8+jblz56JFixYYNmwYAGDv3r04c+YM/vKXv9g9p7a2FldddZXt69dffx3/+c9/cODAAZw9exa1tbUu7SC6+eabER4ejg8//BAjR45EYWEhoqOjMXjwYNs57733Hl599VXs27cPp06dQl1dHaKjo91+3du3b4fZbMZFF11kd7ympgaxsbFuX5eI3MNAhojc0rp1a1xwwQUAgP/85z+44oor8Pbbb+Oee+7BqVOnAACffPIJkpKS7J4XGRkJAFi2bBmmTZuGl19+GampqWjbti1efPFFbNy4UXUfIiIikJmZifz8fIwcORL5+fkYMWIEWrSwvLVt2LABY8aMQXZ2NoYMGYKYmBgsW7YML7/8suw1w8LCIISwO9ZwTc2pU6eg0+mwdetW6HQ6u/PatGmjuu9EpA0GMkTksbCwMDz22GOYOnUqRo8ejV69eiEyMhIHDhzA9ddf7/A5X3/9Nfr164eJEyfaju3bt8/le48ZMwZ/+ctf8OOPP+LLL7/EM888Y2uzrtt5/PHHbcd+/fVXxevFxcWhrKzM9rXZbMaOHTuQlpYGALjqqqtgNptx5MgRDBgwwOX+EpG2uGuJiDQxfPhw6HQ6vP7662jbti2mTZuGKVOm4J133sG+ffvw7bff4rXXXsM777wDALjwwguxZcsWfP7559i9ezdmzZqFzZs3u3zf6667DgkJCRgzZgy6du2KPn362NouvPBCHDhwAMuWLcO+ffvw6quv2q2fceSGG27AJ598gk8++QQ7d+7E/fffj8rKSlv7RRddhDFjxuCuu+6C0WhESUkJNm3ahJycHHzyyScu95+IPMNAhog00aJFCzzwwAN44YUXcPr0aTz99NOYNWsWcnJycPHFF+PGG2/EJ598gq5duwIA/vnPfyIjIwMjRoxAnz59cPz4cbvRGbUkScKoUaPw/fffY8yYMXZtt912G6ZMmYIHHngAV155JdavX49Zs2YpXu/uu+/G2LFjcdddd+H6669Ht27dbKMxVgsXLsRdd92Fhx9+GD169MDQoUOxefNmdOnSxeX+E5FnJNF4MpiIiIgoSHBEhoiIiIIWAxkiIiIKWgxkiIiIKGgxkCEiIqKgxUCGiIiIghYDGSIiIgpaDGSIiIgoaDGQISIioqDFQIaIiIiCFgMZIiIiCloMZIiIiCho/T8OmkD/23gCmQAAAABJRU5ErkJggg==\n" - }, - "metadata": {} - } - ], - "execution_count": 6, - "metadata": { - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - }, - "gather": { - "logged": 1671555096180 - } - } - }, - { - "cell_type": "code", - "source": [ - "ls \"/tmp/train\" " - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "MLmodel conda.yaml model.pkl python_env.yaml requirements.txt\r\n" - } - ], - "execution_count": 7, - "metadata": { - "gather": { - "logged": 1671555096703 - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "sklearn" - }, - "kernelspec": { - "name": "sklearn", - "language": "python", - "display_name": "sklearn" - }, - "language_info": { - "name": "python", - "version": "3.7.5", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - }, - "vscode": { - "interpreter": { - "hash": "c87d6401964827bd736fe8e727109b953dd698457ca58fb5acabab22fd6dac41" - } - }, - "microsoft": { - "host": { - "AzureML": { - "notebookHasBeenCompleted": true - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/data-science/src/evaluate/test_evaluate.py b/data-science/src/evaluate/test_evaluate.py deleted file mode 100644 index ff2eade..0000000 --- a/data-science/src/evaluate/test_evaluate.py +++ /dev/null @@ -1,149 +0,0 @@ -import os -import subprocess -from pathlib import Path -import pandas as pd - -from sklearn.ensemble import RandomForestRegressor - -import mlflow - -TARGET_COL = "cost" - -NUMERIC_COLS = [ - "distance", - "dropoff_latitude", - "dropoff_longitude", - "passengers", - "pickup_latitude", - "pickup_longitude", - "pickup_weekday", - "pickup_month", - "pickup_monthday", - "pickup_hour", - "pickup_minute", - "pickup_second", - "dropoff_weekday", - "dropoff_month", - "dropoff_monthday", - "dropoff_hour", - "dropoff_minute", - "dropoff_second", -] - -CAT_NOM_COLS = [ - "store_forward", - "vendor", -] - -CAT_ORD_COLS = [ -] - -def test_evaluate_model(): - - test_data = "/tmp/test" - model_input = "/tmp/model" - evaluation_output = "/tmp/evaluate" - model_name = "taxi-model" - runner = "LocalRunner" - - os.makedirs(test_data, exist_ok = True) - os.makedirs(model_input, exist_ok = True) - os.makedirs(evaluation_output, exist_ok = True) - - - data = { - 'cost': [4.5, 6.0, 9.5, 4.0, 6.0, 11.5, 25.0, 3.5, 5.0, 11.0, 7.5, 24.5, 9.5, - 7.5, 6.0, 5.0, 9.0, 25.5, 17.5, 52.0], - 'distance': [0.83, 1.27, 1.8, 0.5, 0.9, 2.72, 6.83, 0.45, 0.77, 2.2, 1.5, 6.27, - 2.0, 1.54, 1.24, 0.75, 2.2, 7.0, 5.1, 18.51], - 'dropoff_hour': [21, 21, 9, 17, 10, 13, 17, 10, 2, 1, 16, 18, 20, 20, 1, 17, - 21, 16, 4, 10], - 'dropoff_latitude': [40.69454574584961, 40.81214904785156, 40.67874145507813, - 40.75471496582031, 40.66966247558594, 40.77496337890625, - 40.75603103637695, 40.67219161987305, 40.66605758666992, - 40.69973754882813, 40.61215972900391, 40.74581146240234, - 40.78779602050781, 40.76130676269531, 40.72980117797852, - 40.71107864379883, 40.747501373291016, 40.752384185791016, - 40.66606140136719, 40.64547729492188], - 'dropoff_longitude': [-73.97611236572266, -73.95975494384766, - -73.98030853271484, -73.92549896240234, - -73.91104125976562, -73.89237213134766, - -73.94535064697266, -74.01203918457031, - -73.97817993164062, -73.99366760253906, - -73.94902801513672, -73.98792266845703, - -73.95561218261719, -73.8807601928711, -73.9117202758789, - -73.96553039550781, -73.9442138671875, - -73.97544860839844, -73.87281036376953, - -73.77632141113281], - 'dropoff_minute': [5, 54, 57, 52, 34, 20, 5, 8, 37, 27, 21, 5, 26, 46, 25, 1, - 5, 20, 41, 46], - 'dropoff_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'dropoff_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'dropoff_second': [52, 37, 28, 20, 59, 20, 38, 52, 43, 24, 59, 29, 58, 11, 3, - 4, 34, 21, 6, 36], - 'dropoff_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, - 3], - 'passengers': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1], - 'pickup_hour': [21, 21, 9, 17, 10, 13, 16, 10, 2, 1, 16, 17, 20, 20, 1, 16, 20, - 15, 4, 10], - 'pickup_latitude': [40.6938362121582, 40.80146789550781, 40.6797981262207, - 40.76081848144531, 40.66493988037109, 40.74625396728516, - 40.80010223388672, 40.67601776123047, 40.67120361328125, - 40.68327331542969, 40.6324462890625, 40.71521377563477, - 40.80733871459961, 40.750484466552734, 40.7398796081543, - 40.71691131591797, 40.773414611816406, 40.79001235961914, - 40.660118103027344, 40.78546905517578], - 'pickup_longitude': [-73.98726654052734, -73.94845581054688, -73.9554443359375, - -73.92293548583984, -73.92304229736328, -73.8973159790039, - -73.9500503540039, -74.0144271850586, -73.98458099365234, - -73.96582794189453, -73.94767761230469, - -73.96052551269531, -73.96453094482422, - -73.88248443603516, -73.92410278320312, - -73.95661163330078, -73.92512512207031, - -73.94800567626953, -73.95987701416016, - -73.94915771484375], - 'pickup_minute': [2, 49, 46, 49, 28, 8, 32, 6, 34, 14, 14, 35, 17, 38, 20, 56, - 56, 49, 23, 18], - 'pickup_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'pickup_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'pickup_second': [35, 17, 18, 12, 21, 46, 18, 22, 5, 45, 12, 52, 20, 8, 28, 54, - 41, 53, 43, 2], - 'pickup_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, 3], - 'store_forward': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - 'vendor': [2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2] - } - - - # Save the data - df = pd.DataFrame(data) - df.to_parquet(os.path.join(test_data, "test.parquet")) - - # Split the data into inputs and outputs - y_test = df[TARGET_COL] - X_test = df[NUMERIC_COLS + CAT_NOM_COLS + CAT_ORD_COLS] - - # Train a Random Forest Regression Model with the training set - model = RandomForestRegressor(random_state=0) - model.fit(X_test, y_test) - - # Save the model - mlflow.sklearn.save_model(sk_model=model, path=model_input) - - - cmd = f"python data-science/src/evaluate/evaluate.py --model_name={model_name} --model_input={model_input} --test_data={test_data} --evaluation_output={evaluation_output} --runner={runner}" - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) - out, err = p.communicate() - result = str(out).split('\\n') - for lin in result: - if not lin.startswith('#'): - print(lin) - - assert os.path.exists(os.path.join(evaluation_output, "predictions.csv")) - assert os.path.exists(os.path.join(evaluation_output, "score.txt")) - - print("Train Model Unit Test Completed") - -if __name__ == "__main__": - test_evaluate_model() diff --git a/data-science/src/prep/test_prep.py b/data-science/src/prep/test_prep.py deleted file mode 100644 index c4a88a1..0000000 --- a/data-science/src/prep/test_prep.py +++ /dev/null @@ -1,102 +0,0 @@ -import os -import subprocess -import pandas as pd - -def test_prep_data(): - - raw_data = "/tmp/raw" - train_data = "/tmp/train" - val_data = "/tmp/val" - test_data = "/tmp/test" - - os.makedirs(raw_data, exist_ok = True) - os.makedirs(train_data, exist_ok = True) - os.makedirs(val_data, exist_ok = True) - os.makedirs(test_data, exist_ok = True) - - - data = { - 'cost': [4.5, 6.0, 9.5, 4.0, 6.0, 11.5, 25.0, 3.5, 5.0, 11.0, 7.5, 24.5, 9.5, - 7.5, 6.0, 5.0, 9.0, 25.5, 17.5, 52.0], - 'distance': [0.83, 1.27, 1.8, 0.5, 0.9, 2.72, 6.83, 0.45, 0.77, 2.2, 1.5, 6.27, - 2.0, 1.54, 1.24, 0.75, 2.2, 7.0, 5.1, 18.51], - 'dropoff_hour': [21, 21, 9, 17, 10, 13, 17, 10, 2, 1, 16, 18, 20, 20, 1, 17, - 21, 16, 4, 10], - 'dropoff_latitude': [40.69454574584961, 40.81214904785156, 40.67874145507813, - 40.75471496582031, 40.66966247558594, 40.77496337890625, - 40.75603103637695, 40.67219161987305, 40.66605758666992, - 40.69973754882813, 40.61215972900391, 40.74581146240234, - 40.78779602050781, 40.76130676269531, 40.72980117797852, - 40.71107864379883, 40.747501373291016, 40.752384185791016, - 40.66606140136719, 40.64547729492188], - 'dropoff_longitude': [-73.97611236572266, -73.95975494384766, - -73.98030853271484, -73.92549896240234, - -73.91104125976562, -73.89237213134766, - -73.94535064697266, -74.01203918457031, - -73.97817993164062, -73.99366760253906, - -73.94902801513672, -73.98792266845703, - -73.95561218261719, -73.8807601928711, -73.9117202758789, - -73.96553039550781, -73.9442138671875, - -73.97544860839844, -73.87281036376953, - -73.77632141113281], - 'dropoff_minute': [5, 54, 57, 52, 34, 20, 5, 8, 37, 27, 21, 5, 26, 46, 25, 1, - 5, 20, 41, 46], - 'dropoff_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'dropoff_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'dropoff_second': [52, 37, 28, 20, 59, 20, 38, 52, 43, 24, 59, 29, 58, 11, 3, - 4, 34, 21, 6, 36], - 'dropoff_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, - 3], - 'passengers': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1], - 'pickup_hour': [21, 21, 9, 17, 10, 13, 16, 10, 2, 1, 16, 17, 20, 20, 1, 16, 20, - 15, 4, 10], - 'pickup_latitude': [40.6938362121582, 40.80146789550781, 40.6797981262207, - 40.76081848144531, 40.66493988037109, 40.74625396728516, - 40.80010223388672, 40.67601776123047, 40.67120361328125, - 40.68327331542969, 40.6324462890625, 40.71521377563477, - 40.80733871459961, 40.750484466552734, 40.7398796081543, - 40.71691131591797, 40.773414611816406, 40.79001235961914, - 40.660118103027344, 40.78546905517578], - 'pickup_longitude': [-73.98726654052734, -73.94845581054688, -73.9554443359375, - -73.92293548583984, -73.92304229736328, -73.8973159790039, - -73.9500503540039, -74.0144271850586, -73.98458099365234, - -73.96582794189453, -73.94767761230469, - -73.96052551269531, -73.96453094482422, - -73.88248443603516, -73.92410278320312, - -73.95661163330078, -73.92512512207031, - -73.94800567626953, -73.95987701416016, - -73.94915771484375], - 'pickup_minute': [2, 49, 46, 49, 28, 8, 32, 6, 34, 14, 14, 35, 17, 38, 20, 56, - 56, 49, 23, 18], - 'pickup_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'pickup_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'pickup_second': [35, 17, 18, 12, 21, 46, 18, 22, 5, 45, 12, 52, 20, 8, 28, 54, - 41, 53, 43, 2], - 'pickup_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, 3], - 'store_forward': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - 'vendor': [2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2] - } - - df = pd.DataFrame(data) - df.to_csv(os.path.join(raw_data, "taxi-data.csv")) - - raw_data= os.path.join(raw_data, "taxi-data.csv") - cmd = f"python data-science/src/prep/prep.py --raw_data={raw_data} --train_data={train_data} --val_data={val_data} --test_data={test_data}" - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) - out, err = p.communicate() - result = str(out).split('\\n') - for lin in result: - if not lin.startswith('#'): - print(lin) - - assert os.path.exists(os.path.join(train_data, "train.parquet")) - assert os.path.exists(os.path.join(val_data, "val.parquet")) - assert os.path.exists(os.path.join(test_data, "test.parquet")) - - print("¨Prep Data Unit Test Completed") - -if __name__ == "__main__": - - test_prep_data() diff --git a/data-science/src/train/test_train.py b/data-science/src/train/test_train.py deleted file mode 100644 index 08f449b..0000000 --- a/data-science/src/train/test_train.py +++ /dev/null @@ -1,93 +0,0 @@ -import os -import subprocess -import pandas as pd - -def test_train_model(): - - train_data = "/tmp/train" - model_output = "/tmp/model" - - os.makedirs(train_data, exist_ok = True) - os.makedirs(model_output, exist_ok = True) - - data = { - 'cost': [4.5, 6.0, 9.5, 4.0, 6.0, 11.5, 25.0, 3.5, 5.0, 11.0, 7.5, 24.5, 9.5, - 7.5, 6.0, 5.0, 9.0, 25.5, 17.5, 52.0], - 'distance': [0.83, 1.27, 1.8, 0.5, 0.9, 2.72, 6.83, 0.45, 0.77, 2.2, 1.5, 6.27, - 2.0, 1.54, 1.24, 0.75, 2.2, 7.0, 5.1, 18.51], - 'dropoff_hour': [21, 21, 9, 17, 10, 13, 17, 10, 2, 1, 16, 18, 20, 20, 1, 17, - 21, 16, 4, 10], - 'dropoff_latitude': [40.69454574584961, 40.81214904785156, 40.67874145507813, - 40.75471496582031, 40.66966247558594, 40.77496337890625, - 40.75603103637695, 40.67219161987305, 40.66605758666992, - 40.69973754882813, 40.61215972900391, 40.74581146240234, - 40.78779602050781, 40.76130676269531, 40.72980117797852, - 40.71107864379883, 40.747501373291016, 40.752384185791016, - 40.66606140136719, 40.64547729492188], - 'dropoff_longitude': [-73.97611236572266, -73.95975494384766, - -73.98030853271484, -73.92549896240234, - -73.91104125976562, -73.89237213134766, - -73.94535064697266, -74.01203918457031, - -73.97817993164062, -73.99366760253906, - -73.94902801513672, -73.98792266845703, - -73.95561218261719, -73.8807601928711, -73.9117202758789, - -73.96553039550781, -73.9442138671875, - -73.97544860839844, -73.87281036376953, - -73.77632141113281], - 'dropoff_minute': [5, 54, 57, 52, 34, 20, 5, 8, 37, 27, 21, 5, 26, 46, 25, 1, - 5, 20, 41, 46], - 'dropoff_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'dropoff_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'dropoff_second': [52, 37, 28, 20, 59, 20, 38, 52, 43, 24, 59, 29, 58, 11, 3, - 4, 34, 21, 6, 36], - 'dropoff_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, - 3], - 'passengers': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1], - 'pickup_hour': [21, 21, 9, 17, 10, 13, 16, 10, 2, 1, 16, 17, 20, 20, 1, 16, 20, - 15, 4, 10], - 'pickup_latitude': [40.6938362121582, 40.80146789550781, 40.6797981262207, - 40.76081848144531, 40.66493988037109, 40.74625396728516, - 40.80010223388672, 40.67601776123047, 40.67120361328125, - 40.68327331542969, 40.6324462890625, 40.71521377563477, - 40.80733871459961, 40.750484466552734, 40.7398796081543, - 40.71691131591797, 40.773414611816406, 40.79001235961914, - 40.660118103027344, 40.78546905517578], - 'pickup_longitude': [-73.98726654052734, -73.94845581054688, -73.9554443359375, - -73.92293548583984, -73.92304229736328, -73.8973159790039, - -73.9500503540039, -74.0144271850586, -73.98458099365234, - -73.96582794189453, -73.94767761230469, - -73.96052551269531, -73.96453094482422, - -73.88248443603516, -73.92410278320312, - -73.95661163330078, -73.92512512207031, - -73.94800567626953, -73.95987701416016, - -73.94915771484375], - 'pickup_minute': [2, 49, 46, 49, 28, 8, 32, 6, 34, 14, 14, 35, 17, 38, 20, 56, - 56, 49, 23, 18], - 'pickup_month': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - 'pickup_monthday': [3, 19, 5, 8, 29, 30, 8, 4, 9, 14, 12, 9, 14, 17, 10, 9, 8, - 2, 15, 21], - 'pickup_second': [35, 17, 18, 12, 21, 46, 18, 22, 5, 45, 12, 52, 20, 8, 28, 54, - 41, 53, 43, 2], - 'pickup_weekday': [6, 1, 1, 4, 4, 5, 4, 0, 5, 3, 1, 5, 3, 6, 6, 5, 4, 5, 4, 3], - 'store_forward': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - 'vendor': [2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 2] - } - - df = pd.DataFrame(data) - df.to_parquet(os.path.join(train_data, "train.parquet")) - - cmd = f"python data-science/src/train/train.py --train_data={train_data} --model_output={model_output}" - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) - out, err = p.communicate() - result = str(out).split('\\n') - for lin in result: - if not lin.startswith('#'): - print(lin) - - assert os.path.exists(os.path.join(model_output, "model.pkl")) - - print("Train Model Unit Test Completed") - -if __name__ == "__main__": - test_train_model() diff --git a/data-science/environment/train-conda.yml b/environment/train-conda.yml similarity index 100% rename from data-science/environment/train-conda.yml rename to environment/train-conda.yml diff --git a/data-science/environment/train-requirements.txt b/environment/train-requirements.txt similarity index 100% rename from data-science/environment/train-requirements.txt rename to environment/train-requirements.txt diff --git a/infrastructure/aml_deploy.tf b/infrastructure/aml_deploy.tf deleted file mode 100644 index 4a16301..0000000 --- a/infrastructure/aml_deploy.tf +++ /dev/null @@ -1,134 +0,0 @@ -# Resource group - -module "resource_group" { - source = "./modules/resource-group" - - location = var.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - tags = local.tags -} - -# Azure Machine Learning workspace - -module "aml_workspace" { - source = "./modules/aml-workspace" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - storage_account_id = module.storage_account_aml.id - key_vault_id = module.key_vault.id - application_insights_id = module.application_insights.id - container_registry_id = module.container_registry.id - - enable_aml_computecluster = var.enable_aml_computecluster - storage_account_name = module.storage_account_aml.name - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - vnet_id = var.enable_aml_secure_workspace ? azurerm_virtual_network.vnet_default[0].id : "" - subnet_default_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_default[0].id : "" - subnet_training_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_training[0].id : "" - - tags = local.tags -} - -# Storage account - -module "storage_account_aml" { - source = "./modules/storage-account" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - hns_enabled = false - firewall_bypass = ["AzureServices"] - firewall_virtual_network_subnet_ids = [] - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - vnet_id = var.enable_aml_secure_workspace ? azurerm_virtual_network.vnet_default[0].id : "" - subnet_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_default[0].id : "" - - tags = local.tags -} - -# Key vault - -module "key_vault" { - source = "./modules/key-vault" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - vnet_id = var.enable_aml_secure_workspace ? azurerm_virtual_network.vnet_default[0].id : "" - subnet_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_default[0].id : "" - - tags = local.tags -} - -# Application insights - -module "application_insights" { - source = "./modules/application-insights" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - tags = local.tags -} - -# Container registry - -module "container_registry" { - source = "./modules/container-registry" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - vnet_id = var.enable_aml_secure_workspace ? azurerm_virtual_network.vnet_default[0].id : "" - subnet_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_default[0].id : "" - - tags = local.tags -} - -module "data_explorer" { - source = "./modules/data-explorer" - - rg_name = module.resource_group.name - location = module.resource_group.location - - prefix = var.prefix - postfix = var.postfix - env = var.environment - key_vault_id = module.key_vault.id - enable_monitoring = var.enable_monitoring - - client_secret = var.client_secret - - tags = local.tags -} diff --git a/infrastructure/jumphost.tf b/infrastructure/jumphost.tf deleted file mode 100644 index 7bc7071..0000000 --- a/infrastructure/jumphost.tf +++ /dev/null @@ -1,37 +0,0 @@ -# Bastion - -module "bastion" { - source = "./modules/bastion-host" - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - rg_name = module.resource_group.name - location = module.resource_group.location - subnet_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_bastion[0].id : "" - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - - tags = local.tags -} - -# Virtual machine - -module "virtual_machine_jumphost" { - source = "./modules/virtual-machine" - - prefix = var.prefix - postfix = var.postfix - env = var.environment - - rg_name = module.resource_group.name - location = module.resource_group.location - subnet_id = var.enable_aml_secure_workspace ? azurerm_subnet.snet_default[0].id : "" - jumphost_username = var.jumphost_username - jumphost_password = var.jumphost_password - - enable_aml_secure_workspace = var.enable_aml_secure_workspace - - tags = local.tags -} \ No newline at end of file diff --git a/infrastructure/locals.tf b/infrastructure/locals.tf deleted file mode 100644 index 22a9ac9..0000000 --- a/infrastructure/locals.tf +++ /dev/null @@ -1,9 +0,0 @@ -locals { - tags = { - Owner = "mlops-v2" - Project = "mlops-v2" - Environment = "${var.environment}" - Toolkit = "terraform" - Name = "${var.prefix}" - } -} \ No newline at end of file diff --git a/infrastructure/main.tf b/infrastructure/main.tf deleted file mode 100644 index 23a8bad..0000000 --- a/infrastructure/main.tf +++ /dev/null @@ -1,18 +0,0 @@ -terraform { - backend "azurerm" {} - required_providers { - azurerm = { - version = "= 2.99.0" - } - } -} - -provider "azurerm" { - features {} -} - -data "azurerm_client_config" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me" -} \ No newline at end of file diff --git a/infrastructure/modules/aml-workspace/main.tf b/infrastructure/modules/aml-workspace/main.tf deleted file mode 100644 index 4161667..0000000 --- a/infrastructure/modules/aml-workspace/main.tf +++ /dev/null @@ -1,97 +0,0 @@ -resource "azurerm_machine_learning_workspace" "mlw" { - name = "mlw-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - application_insights_id = var.application_insights_id - key_vault_id = var.key_vault_id - storage_account_id = var.storage_account_id - container_registry_id = var.container_registry_id - - sku_name = "Basic" - - identity { - type = "SystemAssigned" - } - - tags = var.tags -} - -# Compute cluster - -resource "azurerm_machine_learning_compute_cluster" "mlw_compute_cluster" { - name = "cpu-cluster" - location = var.location - vm_priority = "LowPriority" - vm_size = "Standard_DS3_v2" - machine_learning_workspace_id = azurerm_machine_learning_workspace.mlw.id - subnet_resource_id = var.enable_aml_secure_workspace ? var.subnet_training_id : "" - - count = var.enable_aml_computecluster ? 1 : 0 - - scale_settings { - min_node_count = 0 - max_node_count = 4 - scale_down_nodes_after_idle_duration = "PT120S" # 120 seconds - } -} - -# DNS Zones - -resource "azurerm_private_dns_zone" "mlw_zone_api" { - name = "privatelink.api.azureml.ms" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_private_dns_zone" "mlw_zone_notebooks" { - name = "privatelink.notebooks.azure.net" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Linking of DNS zones to Virtual Network - -resource "azurerm_private_dns_zone_virtual_network_link" "mlw_zone_api_link" { - name = "${var.prefix}${var.postfix}_link_api" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.mlw_zone_api[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_private_dns_zone_virtual_network_link" "mlw_zone_notebooks_link" { - name = "${var.prefix}${var.postfix}_link_notebooks" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.mlw_zone_notebooks[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Private Endpoint configuration - -resource "azurerm_private_endpoint" "mlw_pe" { - name = "pe-${azurerm_machine_learning_workspace.mlw.name}-amlw" - location = var.location - resource_group_name = var.rg_name - subnet_id = var.subnet_default_id - - private_service_connection { - name = "psc-aml-${var.prefix}-${var.postfix}${var.env}" - private_connection_resource_id = azurerm_machine_learning_workspace.mlw.id - subresource_names = ["amlworkspace"] - is_manual_connection = false - } - - private_dns_zone_group { - name = "private-dns-zone-group-ws" - private_dns_zone_ids = [azurerm_private_dns_zone.mlw_zone_api[0].id, azurerm_private_dns_zone.mlw_zone_notebooks[0].id] - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} diff --git a/infrastructure/modules/aml-workspace/outputs.tf b/infrastructure/modules/aml-workspace/outputs.tf deleted file mode 100644 index 4578af8..0000000 --- a/infrastructure/modules/aml-workspace/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "name" { - value = azurerm_machine_learning_workspace.mlw.name -} \ No newline at end of file diff --git a/infrastructure/modules/aml-workspace/variables.tf b/infrastructure/modules/aml-workspace/variables.tf deleted file mode 100644 index df57279..0000000 --- a/infrastructure/modules/aml-workspace/variables.tf +++ /dev/null @@ -1,79 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "storage_account_id" { - type = string - description = "The ID of the Storage Account linked to AML workspace" -} - -variable "key_vault_id" { - type = string - description = "The ID of the Key Vault linked to AML workspace" -} - -variable "application_insights_id" { - type = string - description = "The ID of the Application Insights linked to AML workspace" -} - -variable "container_registry_id" { - type = string - description = "The ID of the Container Registry linked to AML workspace" -} - -variable "enable_aml_computecluster" { - description = "Variable to enable or disable AML compute cluster" - default = false -} - -variable "storage_account_name" { - type = string - description = "The Name of the Storage Account linked to AML workspace" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} - -variable "vnet_id" { - type = string - description = "The ID of the vnet that should be linked to the DNS zone" -} - -variable "subnet_default_id" { - type = string - description = "The ID of the subnet from which private IP addresses will be allocated for this Private Endpoint" -} - -variable "subnet_training_id" { - type = string - description = "The ID of the subnet from which private IP addresses will be allocated for this Private Endpoint" -} diff --git a/infrastructure/modules/application-insights/main.tf b/infrastructure/modules/application-insights/main.tf deleted file mode 100644 index 656d679..0000000 --- a/infrastructure/modules/application-insights/main.tf +++ /dev/null @@ -1,8 +0,0 @@ -resource "azurerm_application_insights" "appi" { - name = "appi-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - application_type = "web" - - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/application-insights/outputs.tf b/infrastructure/modules/application-insights/outputs.tf deleted file mode 100644 index 649ca93..0000000 --- a/infrastructure/modules/application-insights/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "id" { - value = azurerm_application_insights.appi.id -} \ No newline at end of file diff --git a/infrastructure/modules/application-insights/variables.tf b/infrastructure/modules/application-insights/variables.tf deleted file mode 100644 index 2c1052e..0000000 --- a/infrastructure/modules/application-insights/variables.tf +++ /dev/null @@ -1,30 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} \ No newline at end of file diff --git a/infrastructure/modules/bastion-host/main.tf b/infrastructure/modules/bastion-host/main.tf deleted file mode 100644 index 6f7fa52..0000000 --- a/infrastructure/modules/bastion-host/main.tf +++ /dev/null @@ -1,31 +0,0 @@ -resource "azurerm_bastion_host" "bas" { - name = "bas-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - - sku = "Standard" - copy_paste_enabled = false - file_copy_enabled = false - - ip_configuration { - name = "configuration" - subnet_id = var.subnet_id - public_ip_address_id = azurerm_public_ip.pip[0].id - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} - -resource "azurerm_public_ip" "pip" { - name = "pip-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - allocation_method = "Static" - sku = "Standard" - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/bastion-host/outputs.tf b/infrastructure/modules/bastion-host/outputs.tf deleted file mode 100644 index e69de29..0000000 diff --git a/infrastructure/modules/bastion-host/variables.tf b/infrastructure/modules/bastion-host/variables.tf deleted file mode 100644 index 9effe72..0000000 --- a/infrastructure/modules/bastion-host/variables.tf +++ /dev/null @@ -1,39 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "subnet_id" { - type = string - description = "Subnet ID for the bastion" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} \ No newline at end of file diff --git a/infrastructure/modules/container-registry/main.tf b/infrastructure/modules/container-registry/main.tf deleted file mode 100644 index 2da65b0..0000000 --- a/infrastructure/modules/container-registry/main.tf +++ /dev/null @@ -1,59 +0,0 @@ -locals { - safe_prefix = replace(var.prefix, "-", "") - safe_postfix = replace(var.postfix, "-", "") -} - -resource "azurerm_container_registry" "cr" { - name = "cr${local.safe_prefix}${local.safe_postfix}${var.env}" - resource_group_name = var.rg_name - location = var.location - sku = var.enable_aml_secure_workspace ? "Premium" : "Standard" - admin_enabled = true - - tags = var.tags -} - -# DNS Zones - -resource "azurerm_private_dns_zone" "cr_zone" { - name = "privatelink.azurecr.io" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Linking of DNS zones to Virtual Network - -resource "azurerm_private_dns_zone_virtual_network_link" "cr_zone_link" { - name = "${var.prefix}${var.postfix}_link_acr" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.cr_zone[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Private Endpoint configuration - -resource "azurerm_private_endpoint" "cr_pe" { - name = "pe-${azurerm_container_registry.cr.name}-acr" - location = var.location - resource_group_name = var.rg_name - subnet_id = var.subnet_id - - private_service_connection { - name = "psc-acr-${var.prefix}-${var.postfix}${var.env}" - private_connection_resource_id = azurerm_container_registry.cr.id - subresource_names = ["registry"] - is_manual_connection = false - } - - private_dns_zone_group { - name = "private-dns-zone-group-acr" - private_dns_zone_ids = [azurerm_private_dns_zone.cr_zone[0].id] - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/container-registry/outputs.tf b/infrastructure/modules/container-registry/outputs.tf deleted file mode 100644 index 870b3e5..0000000 --- a/infrastructure/modules/container-registry/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "id" { - value = azurerm_container_registry.cr.id -} \ No newline at end of file diff --git a/infrastructure/modules/container-registry/variables.tf b/infrastructure/modules/container-registry/variables.tf deleted file mode 100644 index a3bde72..0000000 --- a/infrastructure/modules/container-registry/variables.tf +++ /dev/null @@ -1,44 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} - -variable "vnet_id" { - type = string - description = "The ID of the vnet that should be linked to the DNS zone" -} - -variable "subnet_id" { - type = string - description = "The ID of the subnet from which private IP addresses will be allocated for this Private Endpoint" -} \ No newline at end of file diff --git a/infrastructure/modules/data-explorer/main.tf b/infrastructure/modules/data-explorer/main.tf deleted file mode 100644 index 60948dd..0000000 --- a/infrastructure/modules/data-explorer/main.tf +++ /dev/null @@ -1,59 +0,0 @@ -data "azurerm_client_config" "current" {} - -resource "azurerm_kusto_cluster" "cluster" { - name = "adx${var.prefix}${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - streaming_ingestion_enabled = true - language_extensions = ["PYTHON"] - count = var.enable_monitoring ? 1 : 0 - - sku { - name = "Standard_D11_v2" - capacity = 2 - } - tags = var.tags -} - -resource "azurerm_kusto_database" "database" { - name = "mlmonitoring" - resource_group_name = var.rg_name - location = var.location - cluster_name = azurerm_kusto_cluster.cluster[0].name - count = var.enable_monitoring ? 1 : 0 -} - -resource "azurerm_key_vault_secret" "SP_ID" { - name = "kvmonitoringspid" - value = data.azurerm_client_config.current.client_id - key_vault_id = var.key_vault_id - count = var.enable_monitoring ? 1 : 0 -} - -resource "azurerm_key_vault_secret" "SP_KEY" { - name = "kvmonitoringspkey" - value = var.client_secret - key_vault_id = var.key_vault_id - count = var.enable_monitoring ? 1 : 0 -} - -resource "azurerm_key_vault_secret" "SP_TENANT_ID" { - name = "kvmonitoringadxtenantid" - value = data.azurerm_client_config.current.tenant_id - key_vault_id = var.key_vault_id - count = var.enable_monitoring ? 1 : 0 -} - -resource "azurerm_key_vault_secret" "ADX_URI" { - name = "kvmonitoringadxuri" - value = azurerm_kusto_cluster.cluster[0].uri - key_vault_id = var.key_vault_id - count = var.enable_monitoring ? 1 : 0 -} - -resource "azurerm_key_vault_secret" "ADX_DB" { - name = "kvmonitoringadxdb" - value = azurerm_kusto_database.database[0].name - key_vault_id = var.key_vault_id - count = var.enable_monitoring ? 1 : 0 -} diff --git a/infrastructure/modules/data-explorer/outputs.tf b/infrastructure/modules/data-explorer/outputs.tf deleted file mode 100644 index e69de29..0000000 diff --git a/infrastructure/modules/data-explorer/variables.tf b/infrastructure/modules/data-explorer/variables.tf deleted file mode 100644 index 2db5ff4..0000000 --- a/infrastructure/modules/data-explorer/variables.tf +++ /dev/null @@ -1,45 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "key_vault_id" { - type = string - description = "The ID of the Key Vault linked to AML workspace" -} - -variable "enable_monitoring" { - description = "Variable to enable or disable AML compute cluster" - default = false -} - -variable "client_secret" { - description = "client secret" - default = false -} diff --git a/infrastructure/modules/key-vault/main.tf b/infrastructure/modules/key-vault/main.tf deleted file mode 100644 index e7b24f2..0000000 --- a/infrastructure/modules/key-vault/main.tf +++ /dev/null @@ -1,74 +0,0 @@ -data "azurerm_client_config" "current" {} - -resource "azurerm_key_vault" "kv" { - name = "kv-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - tenant_id = data.azurerm_client_config.current.tenant_id - sku_name = "standard" - - tags = var.tags - - access_policy { - tenant_id = data.azurerm_client_config.current.tenant_id - object_id = data.azurerm_client_config.current.object_id - - key_permissions = [ - "Create", - "Get", - ] - - secret_permissions = [ - "Set", - "Get", - "Delete", - "Purge", - "Recover" - ] - } -} - -# DNS Zones - -resource "azurerm_private_dns_zone" "kv_zone" { - name = "privatelink.vaultcore.azure.net" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Linking of DNS zones to Virtual Network - -resource "azurerm_private_dns_zone_virtual_network_link" "kv_zone_link" { - name = "${var.prefix}${var.postfix}_link_kv" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.kv_zone[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Private Endpoint configuration - -resource "azurerm_private_endpoint" "kv_pe" { - name = "pe-${azurerm_key_vault.kv.name}-vault" - location = var.location - resource_group_name = var.rg_name - subnet_id = var.subnet_id - - private_service_connection { - name = "psc-kv-${var.prefix}-${var.postfix}${var.env}" - private_connection_resource_id = azurerm_key_vault.kv.id - subresource_names = ["vault"] - is_manual_connection = false - } - - private_dns_zone_group { - name = "private-dns-zone-group-kv" - private_dns_zone_ids = [azurerm_private_dns_zone.kv_zone[0].id] - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/key-vault/outputs.tf b/infrastructure/modules/key-vault/outputs.tf deleted file mode 100644 index a971630..0000000 --- a/infrastructure/modules/key-vault/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "id" { - value = azurerm_key_vault.kv.id -} \ No newline at end of file diff --git a/infrastructure/modules/key-vault/variables.tf b/infrastructure/modules/key-vault/variables.tf deleted file mode 100644 index a3bde72..0000000 --- a/infrastructure/modules/key-vault/variables.tf +++ /dev/null @@ -1,44 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} - -variable "vnet_id" { - type = string - description = "The ID of the vnet that should be linked to the DNS zone" -} - -variable "subnet_id" { - type = string - description = "The ID of the subnet from which private IP addresses will be allocated for this Private Endpoint" -} \ No newline at end of file diff --git a/infrastructure/modules/resource-group/main.tf b/infrastructure/modules/resource-group/main.tf deleted file mode 100644 index 6a70909..0000000 --- a/infrastructure/modules/resource-group/main.tf +++ /dev/null @@ -1,5 +0,0 @@ -resource "azurerm_resource_group" "adl_rg" { - name = "rg-${var.prefix}-${var.postfix}${var.env}" - location = var.location - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/resource-group/outputs.tf b/infrastructure/modules/resource-group/outputs.tf deleted file mode 100644 index 0cc7ee6..0000000 --- a/infrastructure/modules/resource-group/outputs.tf +++ /dev/null @@ -1,7 +0,0 @@ -output "name" { - value = azurerm_resource_group.adl_rg.name -} - -output "location" { - value = azurerm_resource_group.adl_rg.location -} \ No newline at end of file diff --git a/infrastructure/modules/resource-group/variables.tf b/infrastructure/modules/resource-group/variables.tf deleted file mode 100644 index 20659c3..0000000 --- a/infrastructure/modules/resource-group/variables.tf +++ /dev/null @@ -1,26 +0,0 @@ -variable "location" { - type = string - default = "North Europe" - description = "Location of the Resource Group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the Resource Group" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} \ No newline at end of file diff --git a/infrastructure/modules/storage-account/main.tf b/infrastructure/modules/storage-account/main.tf deleted file mode 100644 index 9ca017a..0000000 --- a/infrastructure/modules/storage-account/main.tf +++ /dev/null @@ -1,118 +0,0 @@ -data "azurerm_client_config" "current" {} - -data "http" "ip" { - url = "https://ifconfig.me" -} - -locals { - safe_prefix = replace(var.prefix, "-", "") - safe_postfix = replace(var.postfix, "-", "") -} - -resource "azurerm_storage_account" "st" { - name = "st${local.safe_prefix}${local.safe_postfix}${var.env}" - resource_group_name = var.rg_name - location = var.location - account_tier = "Standard" - account_replication_type = "LRS" - account_kind = "StorageV2" - is_hns_enabled = var.hns_enabled - - tags = var.tags -} - -# Virtual Network & Firewall configuration - -resource "azurerm_storage_account_network_rules" "firewall_rules" { - resource_group_name = var.rg_name - storage_account_name = azurerm_storage_account.st.name - - default_action = "Allow" - ip_rules = [] # [data.http.ip.body] - virtual_network_subnet_ids = var.firewall_virtual_network_subnet_ids - bypass = var.firewall_bypass -} - -# DNS Zones - -resource "azurerm_private_dns_zone" "st_zone_blob" { - name = "privatelink.blob.core.windows.net" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_private_dns_zone" "st_zone_file" { - name = "privatelink.file.core.windows.net" - resource_group_name = var.rg_name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Linking of DNS zones to Virtual Network - -resource "azurerm_private_dns_zone_virtual_network_link" "st_zone_link_blob" { - name = "${var.prefix}${var.postfix}_link_st_blob" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.st_zone_blob[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_private_dns_zone_virtual_network_link" "st_zone_link_file" { - name = "${var.prefix}${var.postfix}_link_st_file" - resource_group_name = var.rg_name - private_dns_zone_name = azurerm_private_dns_zone.st_zone_file[0].name - virtual_network_id = var.vnet_id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Private Endpoint configuration - -resource "azurerm_private_endpoint" "st_pe_blob" { - name = "pe-${azurerm_storage_account.st.name}-blob" - location = var.location - resource_group_name = var.rg_name - subnet_id = var.subnet_id - - private_service_connection { - name = "psc-blob-${var.prefix}-${var.postfix}${var.env}" - private_connection_resource_id = azurerm_storage_account.st.id - subresource_names = ["blob"] - is_manual_connection = false - } - - private_dns_zone_group { - name = "private-dns-zone-group-blob" - private_dns_zone_ids = [azurerm_private_dns_zone.st_zone_blob[0].id] - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} - -resource "azurerm_private_endpoint" "st_pe_file" { - name = "pe-${azurerm_storage_account.st.name}-file" - location = var.location - resource_group_name = var.rg_name - subnet_id = var.subnet_id - - private_service_connection { - name = "psc-file-${var.prefix}-${var.postfix}${var.env}" - private_connection_resource_id = azurerm_storage_account.st.id - subresource_names = ["file"] - is_manual_connection = false - } - - private_dns_zone_group { - name = "private-dns-zone-group-file" - private_dns_zone_ids = [azurerm_private_dns_zone.st_zone_file[0].id] - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} \ No newline at end of file diff --git a/infrastructure/modules/storage-account/outputs.tf b/infrastructure/modules/storage-account/outputs.tf deleted file mode 100644 index 9855779..0000000 --- a/infrastructure/modules/storage-account/outputs.tf +++ /dev/null @@ -1,7 +0,0 @@ -output "id" { - value = azurerm_storage_account.st.id -} - -output "name" { - value = azurerm_storage_account.st.name -} diff --git a/infrastructure/modules/storage-account/variables.tf b/infrastructure/modules/storage-account/variables.tf deleted file mode 100644 index 47f0fa2..0000000 --- a/infrastructure/modules/storage-account/variables.tf +++ /dev/null @@ -1,58 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the Resource Group" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "hns_enabled" { - type = bool - description = "Hierarchical namespaces enabled/disabled" - default = true -} - -variable "firewall_virtual_network_subnet_ids" { - default = [] -} - -variable "firewall_bypass" { - default = ["None"] -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} - -variable "vnet_id" { - type = string - description = "The ID of the vnet that should be linked to the DNS zone" -} - -variable "subnet_id" { - type = string - description = "The ID of the subnet from which private IP addresses will be allocated for this Private Endpoint" -} \ No newline at end of file diff --git a/infrastructure/modules/virtual-machine/main.tf b/infrastructure/modules/virtual-machine/main.tf deleted file mode 100644 index 7d0fa38..0000000 --- a/infrastructure/modules/virtual-machine/main.tf +++ /dev/null @@ -1,104 +0,0 @@ -resource "azurerm_virtual_machine" "vm" { - name = "wvm-jumphost" - location = var.location - resource_group_name = var.rg_name - network_interface_ids = [azurerm_network_interface.vm_nic[0].id] - vm_size = "Standard_DS3_v2" - - delete_os_disk_on_termination = true - delete_data_disks_on_termination = true - - storage_image_reference { - publisher = "microsoft-dsvm" - offer = "dsvm-win-2019" - sku = "server-2019" - version = "latest" - } - - os_profile { - computer_name = var.jumphost_username - admin_username = var.jumphost_username - admin_password = var.jumphost_password - } - - os_profile_windows_config { - provision_vm_agent = true - enable_automatic_upgrades = true - } - - identity { - type = "SystemAssigned" - } - - storage_os_disk { - name = "disk-${var.prefix}-${var.postfix}${var.env}" - caching = "ReadWrite" - create_option = "FromImage" - managed_disk_type = "StandardSSD_LRS" - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} - -resource "azurerm_network_interface" "vm_nic" { - name = "nic-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - - ip_configuration { - name = "configuration" - private_ip_address_allocation = "Dynamic" - subnet_id = var.subnet_id - # public_ip_address_id = azurerm_public_ip.vm_public_ip.id - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} - -resource "azurerm_network_security_group" "vm_nsg" { - name = "nsg-${var.prefix}-${var.postfix}${var.env}" - location = var.location - resource_group_name = var.rg_name - - security_rule { - name = "RDP" - priority = 1010 - direction = "Inbound" - access = "Allow" - protocol = "Tcp" - source_port_range = "*" - destination_port_range = 3389 - source_address_prefix = "*" - destination_address_prefix = "*" - } - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = var.tags -} - -resource "azurerm_network_interface_security_group_association" "vm_nsg_association" { - network_interface_id = azurerm_network_interface.vm_nic[0].id - network_security_group_id = azurerm_network_security_group.vm_nsg[0].id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_dev_test_global_vm_shutdown_schedule" "vm_schedule" { - virtual_machine_id = azurerm_virtual_machine.vm[0].id - location = var.location - enabled = true - - daily_recurrence_time = "2000" - timezone = "W. Europe Standard Time" - - notification_settings { - enabled = false - } - - count = var.enable_aml_secure_workspace ? 1 : 0 -} \ No newline at end of file diff --git a/infrastructure/modules/virtual-machine/outputs.tf b/infrastructure/modules/virtual-machine/outputs.tf deleted file mode 100644 index e69de29..0000000 diff --git a/infrastructure/modules/virtual-machine/variables.tf b/infrastructure/modules/virtual-machine/variables.tf deleted file mode 100644 index 7f81013..0000000 --- a/infrastructure/modules/virtual-machine/variables.tf +++ /dev/null @@ -1,49 +0,0 @@ -variable "rg_name" { - type = string - description = "Resource group name" -} - -variable "location" { - type = string - description = "Location of the resource group" -} - -variable "tags" { - type = map(string) - default = {} - description = "A mapping of tags which should be assigned to the deployed resource" -} - -variable "prefix" { - type = string - description = "Prefix for the module name" -} - -variable "postfix" { - type = string - description = "Postfix for the module name" -} - -variable "env" { - type = string - description = "Environment prefix" -} - -variable "jumphost_username" { - type = string - description = "VM username" -} - -variable "jumphost_password" { - type = string - description = "VM password" -} - -variable "subnet_id" { - type = string - description = "Subnet ID for the virtual machine" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} \ No newline at end of file diff --git a/infrastructure/network.tf b/infrastructure/network.tf deleted file mode 100644 index 1014766..0000000 --- a/infrastructure/network.tf +++ /dev/null @@ -1,131 +0,0 @@ -# Virtual network - -resource "azurerm_virtual_network" "vnet_default" { - name = "vnet-${var.prefix}-${var.postfix}${var.environment}" - resource_group_name = module.resource_group.name - location = module.resource_group.location - address_space = ["10.0.0.0/16"] - - count = var.enable_aml_secure_workspace ? 1 : 0 - - tags = local.tags -} - -# Subnets - -resource "azurerm_subnet" "snet_default" { - name = "snet-${var.prefix}-${var.postfix}${var.environment}-default" - resource_group_name = module.resource_group.name - virtual_network_name = azurerm_virtual_network.vnet_default[0].name - address_prefixes = ["10.0.1.0/24"] - enforce_private_link_endpoint_network_policies = true - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_subnet" "snet_bastion" { - name = "AzureBastionSubnet" - resource_group_name = module.resource_group.name - virtual_network_name = azurerm_virtual_network.vnet_default[0].name - address_prefixes = ["10.0.10.0/27"] - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_subnet" "snet_training" { - name = "snet-${var.prefix}-${var.postfix}${var.environment}-training" - resource_group_name = module.resource_group.name - virtual_network_name = azurerm_virtual_network.vnet_default[0].name - address_prefixes = ["10.0.2.0/24"] - enforce_private_link_endpoint_network_policies = true - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# Network security groups - -resource "azurerm_network_security_group" "nsg_training" { - name = "nsg-${var.prefix}-${var.postfix}${var.environment}-training" - location = module.resource_group.location - resource_group_name = module.resource_group.name - - security_rule { - name = "BatchNodeManagement" - priority = 100 - direction = "Inbound" - access = "Allow" - protocol = "Tcp" - source_port_range = "*" - destination_port_range = "29876-29877" - source_address_prefix = "BatchNodeManagement" - destination_address_prefix = "*" - } - - security_rule { - name = "AzureMachineLearning" - priority = 110 - direction = "Inbound" - access = "Allow" - protocol = "Tcp" - source_port_range = "*" - destination_port_range = "44224" - source_address_prefix = "AzureMachineLearning" - destination_address_prefix = "*" - } - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_subnet_network_security_group_association" "nsg-training-link" { - subnet_id = azurerm_subnet.snet_training[0].id - network_security_group_id = azurerm_network_security_group.nsg_training[0].id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -# User Defined Routes - -resource "azurerm_route_table" "rt_training" { - name = "rt-${var.prefix}-${var.postfix}${var.environment}-training" - location = module.resource_group.location - resource_group_name = module.resource_group.name - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_route" "route_training_internet" { - name = "Internet" - resource_group_name = module.resource_group.name - route_table_name = azurerm_route_table.rt_training[0].name - address_prefix = "0.0.0.0/0" - next_hop_type = "Internet" - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_route" "route_training_aml" { - name = "AzureMLRoute" - resource_group_name = module.resource_group.name - route_table_name = azurerm_route_table.rt_training[0].name - address_prefix = "AzureMachineLearning" - next_hop_type = "Internet" - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_route" "route_training_batch" { - name = "BatchRoute" - resource_group_name = module.resource_group.name - route_table_name = azurerm_route_table.rt_training[0].name - address_prefix = "BatchNodeManagement" - next_hop_type = "Internet" - - count = var.enable_aml_secure_workspace ? 1 : 0 -} - -resource "azurerm_subnet_route_table_association" "rt_training_link" { - subnet_id = azurerm_subnet.snet_training[0].id - route_table_id = azurerm_route_table.rt_training[0].id - - count = var.enable_aml_secure_workspace ? 1 : 0 -} \ No newline at end of file diff --git a/infrastructure/pipelines/tf-ado-deploy-infra.yml b/infrastructure/pipelines/tf-ado-deploy-infra.yml deleted file mode 100644 index 9c84e0a..0000000 --- a/infrastructure/pipelines/tf-ado-deploy-infra.yml +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -variables: -- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}: - # 'main' branch: PRD environment - - template: ../../config-infra-prod.yml -- ${{ if ne(variables['Build.SourceBranchName'], 'main') }}: - # 'develop' or feature branches: DEV environment - - template: ../../config-infra-dev.yml - -parameters: -- name: jumphost_username - type: string - default: "azureuser" -- name: jumphost_password - type: string - default: "ThisIsNotVerySecure!" - -trigger: -- none - -pool: - vmImage: $(ap_vm_image) - -resources: - repositories: - - repository: mlops-templates - name: Azure/mlops-templates - endpoint: github-connection - type: github - ref: main #branch name - -stages : - - stage: CreateStorageAccountForTerraformState - displayName: Create Storage for Terraform - jobs: - - job: CreateStorageForTerraform - displayName: Create Storage for Terraform - steps: - - checkout: self - path: s/ - - checkout: mlops-templates - path: s/templates/ - - template: templates/infra/create-resource-group.yml@mlops-templates - - template: templates/infra/create-storage-account.yml@mlops-templates - - template: templates/infra/create-storage-container.yml@mlops-templates - - stage: DeployAzureMachineLearningRG - displayName: Deploy AML Workspace - jobs: - - job: DeployAMLWorkspace - displayName: Deploy Terraform - steps: - - checkout: self - path: s/ - - checkout: mlops-templates - path: s/templates/ - - template: templates/infra/install-terraform.yml@mlops-templates - - template: templates/infra/run-terraform-init.yml@mlops-templates - - template: templates/infra/run-terraform-validate.yml@mlops-templates - - template: templates/infra/run-terraform-plan.yml@mlops-templates - parameters: - jumphost_username: ${{parameters.jumphost_username}} - jumphost_password: ${{parameters.jumphost_password}} - - template: templates/infra/run-terraform-apply.yml@mlops-templates - parameters: - jumphost_username: ${{parameters.jumphost_username}} - jumphost_password: ${{parameters.jumphost_password}} diff --git a/infrastructure/variables.tf b/infrastructure/variables.tf deleted file mode 100644 index be1b802..0000000 --- a/infrastructure/variables.tf +++ /dev/null @@ -1,47 +0,0 @@ -variable "location" { - type = string - description = "Location of the resource group and modules" -} - -variable "prefix" { - type = string - description = "Prefix for module names" -} - -variable "environment" { - type = string - description = "Environment information" -} - -variable "postfix" { - type = string - description = "Postfix for module names" -} - -variable "enable_aml_computecluster" { - description = "Variable to enable or disable AML compute cluster" -} - -variable "enable_aml_secure_workspace" { - description = "Variable to enable or disable AML secure workspace" -} - -variable "jumphost_username" { - type = string - description = "VM username" - default = "azureuser" -} - -variable "jumphost_password" { - type = string - description = "VM password" - default = "ThisIsNotVerySecure!" -} - -variable "enable_monitoring" { - description = "Variable to enable or disable Monitoring" -} - -variable "client_secret" { - description = "Service Principal Secret" -} diff --git a/ml-pipelines/cli/azureml-cliv2.ipynb b/ml-pipelines/cli/azureml-cliv2.ipynb new file mode 100644 index 0000000..be7af3d --- /dev/null +++ b/ml-pipelines/cli/azureml-cliv2.ipynb @@ -0,0 +1,1145 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this workshop, you need:\n", + "\n", + "* An Azure Machine Learning workspace. \n", + "* The Azure Machine Learning CLI v2 installed.\n", + "\n", + "To install the CLI you can either,\n", + "\n", + "Create a compute instance, which already has installed the latest AzureML CLI and is pre-configured for ML workflows.\n", + "\n", + "Use the followings commands to install Azure ML CLI v2:\n", + "\n", + "```bash\n", + "az extension add --name ml\n", + "az login --identity\n", + "```\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "# Model Training" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "## (Optional) 1. Create Managed Compute\n", + "\n", + "A compute is a designated compute resource where you run your job or host your endpoint. Azure Machine learning supports the following types of compute:\n", + "\n", + "- **Compute instance** - a fully configured and managed development environment in the cloud. You can use the instance as a training or inference compute for development and testing. It's similar to a virtual machine on the cloud.\n", + "\n", + "- **Compute cluster** - a managed-compute infrastructure that allows you to easily create a cluster of CPU or GPU compute nodes in the cloud.\n", + "\n", + "- **Inference cluster** - used to deploy trained machine learning models to Azure Kubernetes Service. You can create an Azure Kubernetes Service (AKS) cluster from your Azure ML workspace, or attach an existing AKS cluster.\n", + "\n", + "- **Attached compute** - You can attach your own compute resources to your workspace and use them for training and inference.\n", + "\n", + "You can create a compute using the Studio, the cli and the sdk.\n", + "\n", + "
\n", + "\n", + "We can create a **compute instance** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "
\n", + "\n", + "We can create a **compute cluster** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "Let's create a managed compute cluster for the training workload." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "``` python\n", + "# Create train job compute cluster\n", + "!az ml compute create --file train/compute.yml\n", + "```" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "## 2. Register Data Asset\n", + "\n", + "**Datastore** - Azure Machine Learning Datastores securely keep the connection information to your data storage on Azure, so you don't have to code it in your scripts.\n", + "\n", + "An Azure Machine Learning datastore is a **reference** to an **existing** storage account on Azure. The benefits of creating and using a datastore are:\n", + "* A common and easy-to-use API to interact with different storage type. \n", + "* Easier to discover useful datastores when working as a team.\n", + "* When using credential-based access (service principal/SAS/key), the connection information is secured so you don't have to code it in your scripts.\n", + "\n", + "Supported Data Resources: \n", + "\n", + "* Azure Storage blob container\n", + "* Azure Storage file share\n", + "* Azure Data Lake Gen 1\n", + "* Azure Data Lake Gen 2\n", + "\n", + "\n", + "It is not a requirement to use Azure Machine Learning datastores - you can use storage URIs directly assuming you have access to the underlying data.\n", + "\n", + "You can create a datastore using the Studio, the cli and the sdk.\n", + "\n", + "
\n", + "\n", + "We can create a **datastore** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "\n", + "**Data asset** - Create data assets in your workspace to share with team members, version, and track data lineage.\n", + "\n", + "By creating a data asset, you create a reference to the data source location, along with a copy of its metadata. \n", + "\n", + "The benefits of creating data assets are:\n", + "\n", + "* You can **share and reuse data** with other members of the team such that they do not need to remember file locations.\n", + "* You can **seamlessly access data** during model training (on any supported compute type) without worrying about connection strings or data paths.\n", + "* You can **version** the data.\n", + "\n", + "
\n", + "\n", + "We can create a **data asset** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1671207553070 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"creation_context\": {\n", + " \"created_at\": \"2022-12-17T21:49:48.920027+00:00\",\n", + " \"created_by\": \"Louis Li (AI)\",\n", + " \"created_by_type\": \"User\",\n", + " \"last_modified_at\": \"2022-12-17T21:49:48.952502+00:00\"\n", + " },\n", + " \"description\": \"taxi dataset\",\n", + " \"id\": \"/subscriptions/8480def5-8f7a-4285-99f7-295b61d7b22a/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/data/taxi-data/versions/6\",\n", + " \"name\": \"taxi-data\",\n", + " \"path\": \"azureml://subscriptions/8480def5-8f7a-4285-99f7-295b61d7b22a/resourcegroups/mldemorg/workspaces/mldemo/datastores/workspaceblobstore/paths/LocalUpload/9292ec840b5d1db6306dba71da69ab7f/taxi-data.csv\",\n", + " \"resourceGroup\": \"mldemorg\",\n", + " \"tags\": {},\n", + " \"type\": \"uri_file\",\n", + " \"version\": \"6\"\n", + "}\n", + "\u001b[0m" + ] + } + ], + "source": [ + "# Register data asset \n", + "!az ml data create --file train/data.yml" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## 3. Register Train Environment\n", + "\n", + "Azure Machine Learning environments define the execution environments for your **jobs** or **deployments** and encapsulate the dependencies for your code. \n", + "\n", + "Azure ML uses the environment specification to create the Docker container that your **training** or **scoring code** runs in on the specified compute target.\n", + "\n", + "Create an environment from a\n", + "* conda specification\n", + "* Docker image\n", + "* Docker build context\n", + "\n", + "There are two types of environments in Azure ML: **curated** and **custom environments**. Curated environments are predefined environments containing popular ML frameworks and tooling. Custom environments are user-defined.\n", + "\n", + "
\n", + "\n", + "We can register an **environment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"conda_file\": {\n", + " \"channels\": [\n", + " \"defaults\",\n", + " \"anaconda\",\n", + " \"conda-forge\"\n", + " ],\n", + " \"dependencies\": [\n", + " \"python=3.7.5\",\n", + " \"pip\",\n", + " {\n", + " \"pip\": [\n", + " \"azureml-mlflow==1.38.0\",\n", + " \"azure-ai-ml==1.0.0\",\n", + " \"pyarrow==10.0.0\",\n", + " \"ruamel.yaml==0.17.21\",\n", + " \"scikit-learn==0.24.1\",\n", + " \"pandas==1.2.1\",\n", + " \"joblib==1.0.0\",\n", + " \"matplotlib==3.3.3\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " \"creation_context\": {\n", + " \"created_at\": \"2022-12-17T21:50:31.521465+00:00\",\n", + " \"created_by\": \"Louis Li (AI)\",\n", + " \"created_by_type\": \"User\",\n", + " \"last_modified_at\": \"2022-12-17T21:50:31.521465+00:00\",\n", + " \"last_modified_by\": \"Louis Li (AI)\",\n", + " \"last_modified_by_type\": \"User\"\n", + " },\n", + " \"description\": \"Environment created from a Docker image plus Conda environment to train taxi model.\",\n", + " \"id\": \"azureml:/subscriptions/8480def5-8f7a-4285-99f7-295b61d7b22a/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/environments/taxi-train-env/versions/5\",\n", + " \"image\": \"mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04\",\n", + " \"name\": \"taxi-train-env\",\n", + " \"os_type\": \"linux\",\n", + " \"resourceGroup\": \"mldemorg\",\n", + " \"tags\": {},\n", + " \"version\": \"5\"\n", + "}\n", + "\u001b[0m" + ] + } + ], + "source": [ + "# Register train environment \n", + "!az ml environment create --file train/environment.yml" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "## 4. Create Pipeline Job\n", + "\n", + "**AML Job**:\n", + "\n", + "Azure ML provides several ways to train your models, from code-first solutions to low-code solutions:\n", + "\n", + "* Azure ML supports script files in python, R, Java, Julia or C#. All you need to learn is YAML format and command lines to use Azure ML.\n", + "\n", + "* Distributed Training: AML supports integrations with popular frameworks, PyTorch and TensorFlow. Both frameworks employ data parallelism & model parallelism for distributed training.\n", + "\n", + "* Automated ML - Train models without extensive data science or programming knowledge.\n", + "\n", + "* Designer - drag and drop web-based UI.\n", + "\n", + "
\n", + "\n", + "We can submit a **job** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "
\n", + " \n", + "**AML Pipelines**:\n", + "\n", + "An AML pipeline is an independently executable workflow of a complete machine learning task. It helps standardizing the best practices of producing a machine learning model: The core of a machine learning pipeline is to split a complete machine learning task into a multistep workflow. Each step is a manageable component that can be developed, optimized, configured, and automated individually. \n", + "\n", + "
\n", + "\n", + "We can submit a **pipeline job** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mAuto upgrade failed. name 'exit_code' is not defined\u001b[0m\n", + "Traceback (most recent call last):\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_util.py\", line 143, in load_from_dict\n", + " return schema(context=context).load(data, **kwargs)\n", + " File \"/opt/az/extensions/ml/marshmallow/schema.py\", line 722, in load\n", + " return self._do_load(\n", + " File \"/opt/az/extensions/ml/marshmallow/schema.py\", line 909, in _do_load\n", + " raise exc\n", + "marshmallow.exceptions.ValidationError: {'jobs': defaultdict(, {'prep_data': {'value': [{'code': [{'_schema': ['Value passed is not a data binding string: ../../../component/prep']}, {'_schema': ['Value passed is not a data binding string: ../../../component/prep']}, {'_schema': ['../../../component/prep is not a valid path']}, {'_schema': ['Not a valid URL.']}, {'_schema': [\"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"]}], 'component': ['Missing data for required field.']}, {'objective': ['Missing data for required field.'], 'limits': ['Missing data for required field.'], 'type': [\"Value command passed is not in set ['sweep']\"], 'trial': ['Missing data for required field.']}, {'component': ['Missing data for required field.'], 'type': [\"Value command passed is not in set ['parallel']\"]}, {'code': [{'_schema': ['../../../component/prep is not a valid path']}, {'_schema': ['Not a valid URL.']}, {'_schema': [\"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"]}]}, {None: [{'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'target_column_name': ['Missing data for required field.'], 'task': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'task': ['Missing data for required field.'], 'target_column_name': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'task': ['Missing data for required field.'], 'target_column_name': ['Missing data for required field.']}, {'type': [\"Value command passed is not in set ['automl']\"], 'task': ['Missing data for required field.']}]}, {'type': [\"Value command passed is not in set ['parallel']\"]}]}})}\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/custom/job.py\", line 60, in ml_job_create\n", + " job = load_job(path=file, params_override=params_override)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_load_functions.py\", line 74, in load_job\n", + " return load_common(Job, path, **kwargs)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_load_functions.py\", line 59, in load_common\n", + " return cls._load(data=yaml_dict, yaml_path=path, params_override=params_override, **kwargs)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_job/job.py\", line 235, in _load\n", + " return job_type._load_from_dict(\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_job/pipeline/pipeline_job.py\", line 471, in _load_from_dict\n", + " loaded_schema = load_from_dict(PipelineJobSchema, data, context, additional_message, **kwargs)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/vendored_curated_sdk/azure/ai/ml/entities/_util.py\", line 146, in load_from_dict\n", + " raise ValidationError(decorate_validation_error(schema, pretty_error, additional_message))\n", + "marshmallow.exceptions.ValidationError: Validation for PipelineJobSchema failed:\n", + "\n", + " {\n", + " \"jobs\": {\n", + " \"prep_data\": {\n", + " \"value\": [\n", + " {\n", + " \"code\": [\n", + " {\n", + " \"_schema\": [\n", + " \"Value passed is not a data binding string: ../../../component/prep\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Value passed is not a data binding string: ../../../component/prep\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"../../../component/prep is not a valid path\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Not a valid URL.\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"\n", + " ]\n", + " }\n", + " ],\n", + " \"component\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"objective\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"limits\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"type\": [\n", + " \"Value command passed is not in set ['sweep']\"\n", + " ],\n", + " \"trial\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"component\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"type\": [\n", + " \"Value command passed is not in set ['parallel']\"\n", + " ]\n", + " },\n", + " {\n", + " \"code\": [\n", + " {\n", + " \"_schema\": [\n", + " \"../../../component/prep is not a valid path\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Not a valid URL.\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " {\n", + " \"null\": [\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['parallel']\"\n", + " ]\n", + " }\n", + " ]\n", + " }\n", + " }\n", + "} \n", + "\n", + " If you are trying to configure a job that is not of type pipeline, please specify the correct job type in the 'type' property.\n", + "For a more detailed breakdown of the PipelineJob schema, please see: https://aka.ms/ml-cli-v2-job-pipeline-yaml-reference.\n", + "The easiest way to author a specification file is using IntelliSense and auto-completion Azure ML VS code extension provides: https://code.visualstudio.com/docs/datascience/azure-machine-learning\n", + "To set up: https://docs.microsoft.com/azure/machine-learning/how-to-setup-vs-code\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/knack/cli.py\", line 233, in invoke\n", + " cmd_result = self.invocation.execute(args)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py\", line 663, in execute\n", + " raise ex\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py\", line 726, in _run_jobs_serially\n", + " results.append(self._run_job(expanded_arg, cmd_copy))\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py\", line 697, in _run_job\n", + " result = cmd_copy(params)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/__init__.py\", line 333, in __call__\n", + " return self.handler(*args, **kwargs)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/commands/command_operation.py\", line 121, in handler\n", + " return op(**command_args)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/custom/job.py\", line 77, in ml_job_create\n", + " log_and_raise_error(err, debug)\n", + " File \"/opt/az/extensions/ml/azext_mlv2/manual/custom/raise_error.py\", line 117, in log_and_raise_error\n", + " raise cli_error\n", + "knack.util.CLIError: Met error :Validation for PipelineJobSchema failed:\n", + "\n", + " {\n", + " \"jobs\": {\n", + " \"prep_data\": {\n", + " \"value\": [\n", + " {\n", + " \"code\": [\n", + " {\n", + " \"_schema\": [\n", + " \"Value passed is not a data binding string: ../../../component/prep\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Value passed is not a data binding string: ../../../component/prep\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"../../../component/prep is not a valid path\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Not a valid URL.\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"\n", + " ]\n", + " }\n", + " ],\n", + " \"component\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"objective\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"limits\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"type\": [\n", + " \"Value command passed is not in set ['sweep']\"\n", + " ],\n", + " \"trial\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"component\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"type\": [\n", + " \"Value command passed is not in set ['parallel']\"\n", + " ]\n", + " },\n", + " {\n", + " \"code\": [\n", + " {\n", + " \"_schema\": [\n", + " \"../../../component/prep is not a valid path\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"Not a valid URL.\"\n", + " ]\n", + " },\n", + " {\n", + " \"_schema\": [\n", + " \"In order to specify an existing codes, please provide either of the following prefixed with 'azureml:':\\n1. The full ARM ID for the resource, e.g.azureml:/subscriptions//resourceGroups//providers/Microsoft.MachineLearningServices/workspaces//codes\\n2. The short-hand name of the resource registered in the workspace, eg: azureml::. For example, version 1 of the environment registered as 'my-env' in the workspace can be referenced as 'azureml:my-env:1'\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " {\n", + " \"null\": [\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ],\n", + " \"target_column_name\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['automl']\"\n", + " ],\n", + " \"task\": [\n", + " \"Missing data for required field.\"\n", + " ]\n", + " }\n", + " ]\n", + " },\n", + " {\n", + " \"type\": [\n", + " \"Value command passed is not in set ['parallel']\"\n", + " ]\n", + " }\n", + " ]\n", + " }\n", + " }\n", + "} \n", + "\n", + " If you are trying to configure a job that is not of type pipeline, please specify the correct job type in the 'type' property.\n", + "For a more detailed breakdown of the PipelineJob schema, please see: https://aka.ms/ml-cli-v2-job-pipeline-yaml-reference.\n", + "The easiest way to author a specification file is using IntelliSense and auto-completion Azure ML VS code extension provides: https://code.visualstudio.com/docs/datascience/azure-machine-learning\n", + "To set up: https://docs.microsoft.com/azure/machine-learning/how-to-setup-vs-code\n", + "Please check log in debug mode for more details.\n", + "\n", + "During handling of the above exception, another exception occurred:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/runpy.py\", line 194, in _run_module_as_main\n", + " return _run_code(code, main_globals, None,\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/runpy.py\", line 87, in _run_code\n", + " exec(code, run_globals)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/__main__.py\", line 49, in \n", + " exit_code = cli_main(az_cli, sys.argv[1:])\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/__main__.py\", line 36, in cli_main\n", + " return cli.invoke(args)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/knack/cli.py\", line 245, in invoke\n", + " exit_code = self.exception_handler(ex)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/__init__.py\", line 127, in exception_handler\n", + " return handle_exception(ex)\n", + " File \"/anaconda/envs/azureml_py38/lib/python3.8/site-packages/azure/cli/core/util.py\", line 65, in handle_exception\n", + " from msal_extensions.persistence import PersistenceError\n", + "ImportError: cannot import name 'PersistenceError' from 'msal_extensions.persistence' (/anaconda/envs/azureml_py38/lib/python3.8/site-packages/msal_extensions/persistence.py)\n", + "\u001b[0m" + ] + } + ], + "source": [ + "# Create pipeline job\n", + "!az ml job create --file train/pipeline.yml" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# Online Endpoint\n", + "\n", + "Online endpoints are endpoints that are used for online (real-time) inferencing. They receive data from clients and can send responses back in real time.\n", + "\n", + "An **endpoint** is an HTTPS endpoint that clients can call to receive the inferencing (scoring) output of a trained model. It provides:\n", + "* Authentication using \"key & token\" based auth\n", + "* SSL termination\n", + "* A stable scoring URI (endpoint-name.region.inference.ml.azure.com)\n", + "\n", + "A **deployment** is a set of resources required for hosting the model that does the actual inferencing.\n", + "A single endpoint can contain multiple deployments.\n", + "\n", + "Features of the managed online endpoint:\n", + "\n", + "* **Test and deploy locally** for faster debugging\n", + "* Traffic to one deployment can also be **mirrored** (copied) to another deployment.\n", + "* **Application Insights integration**\n", + "* Security\n", + "* Authentication: Key and Azure ML Tokens\n", + "* Automatic Autoscaling\n", + "* Visual Studio Code debugging\n", + "\n", + "**blue-green deployment**: An approach where a new version of a web service is introduced to production by deploying it to a small subset of users/requests before deploying it fully.\n", + "\n", + "
\n", + "\"Online\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## 1. Create Online Endpoint\n", + "\n", + "We can create an **online endpoint** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# create online endpoint\n", + "!az ml online-endpoint create --file deploy/online/online-endpoint.yml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Create Online Deployment\n", + "\n", + "To create a deployment to online endpoint, you need to specify the following elements:\n", + "\n", + "* Model files (or specify a registered model in your workspace)\n", + "* Scoring script - code needed to do scoring/inferencing\n", + "* Environment - a Docker image with Conda dependencies, or a dockerfile\n", + "* Compute instance & scale settings\n", + "\n", + "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated.\n", + "\n", + "We can create an **online deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# create online deployment\n", + "!az ml online-deployment create --file deploy/online/online-deployment.yml " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Allocate Traffic" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# allocate traffic\n", + "!az ml online-endpoint update --name taxi-online-endpoint --traffic blue=100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Invoke and Test Endpoint\n", + "\n", + "We can invoke the **online deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Invoke\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# invoke and test endpoint\n", + "!az ml online-endpoint invoke --name taxi-online-endpoint --request-file ../../data/taxi-request.json" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model Batch Endpoint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Create Batch Compute Cluster" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create compute cluster to be used by batch cluster\n", + "!az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Create Batch Endpoint\n", + "\n", + "We can create the **batch endpoint** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create batch endpoint\n", + "!az ml batch-endpoint create --file deploy/batch/batch-endpoint.yml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Create Batch Deployment\n", + "\n", + "We can create the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# create batch deployment\n", + "!az ml batch-deployment create --file deploy/batch/batch-deployment.yml --set-default" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Invoke and Test Endpoint\n", + "\n", + "We can invoke the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Invoke\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# invoke and test endpoint\n", + "!az ml batch-endpoint invoke --name taxi-batch-endpoint --input ../../data/taxi-batch.csv" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python38-azureml" + }, + "kernelspec": { + "display_name": "Python 3.8 - AzureML", + "language": "python", + "name": "python38-azureml" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5 (default, Sep 4 2020, 07:30:14) \n[GCC 7.3.0]" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ml-pipelines/cli/deploy-batch-endpint.sh b/ml-pipelines/cli/deploy-batch-endpint.sh new file mode 100644 index 0000000..3e55575 --- /dev/null +++ b/ml-pipelines/cli/deploy-batch-endpint.sh @@ -0,0 +1,11 @@ +# DEPLOY +# Deploy Batch Endpoint + +# create compute cluster to be used by batch cluster +#az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 3 +# create batch endpoint +az ml batch-endpoint create --file deploy/batch/batch-endpoint.yml +# create batch deployment +az ml batch-deployment create --file deploy/batch/batch-deployment.yml --set-default +# invoke and test endpoint +#az ml batch-endpoint invoke --name taxi-batch-endpoint --input ../../data/taxi-batch.csv \ No newline at end of file diff --git a/ml-pipelines/cli/deploy-online-endpint.sh b/ml-pipelines/cli/deploy-online-endpint.sh new file mode 100644 index 0000000..64a2ba6 --- /dev/null +++ b/ml-pipelines/cli/deploy-online-endpint.sh @@ -0,0 +1,12 @@ +# DEPLOY + +# Deploy Online Endpoint +az configure --defaults group=mldemorg workspace=mldemo location=eastus +# create online endpoint +az ml online-endpoint create --file deploy/online/online-endpoint.yml +# create online deployment +az ml online-deployment create --file deploy/online/online-deployment.yml +# allocate traffic +az ml online-endpoint update --name taxi-online-endpoint --traffic blue=100 +# invoke and test endpoint +#az ml online-endpoint invoke --name taxi-online-endpoint --request-file ../../data/taxi-request.json diff --git a/mlops/azureml/deploy/batch/batch-deployment.yml b/ml-pipelines/cli/deploy/batch/batch-deployment.yml similarity index 100% rename from mlops/azureml/deploy/batch/batch-deployment.yml rename to ml-pipelines/cli/deploy/batch/batch-deployment.yml diff --git a/mlops/azureml/deploy/batch/batch-endpoint.yml b/ml-pipelines/cli/deploy/batch/batch-endpoint.yml similarity index 100% rename from mlops/azureml/deploy/batch/batch-endpoint.yml rename to ml-pipelines/cli/deploy/batch/batch-endpoint.yml diff --git a/mlops/azureml/deploy/online/online-deployment.yml b/ml-pipelines/cli/deploy/online/online-deployment.yml similarity index 100% rename from mlops/azureml/deploy/online/online-deployment.yml rename to ml-pipelines/cli/deploy/online/online-deployment.yml diff --git a/mlops/azureml/deploy/online/online-endpoint.yml b/ml-pipelines/cli/deploy/online/online-endpoint.yml similarity index 100% rename from mlops/azureml/deploy/online/online-endpoint.yml rename to ml-pipelines/cli/deploy/online/online-endpoint.yml diff --git a/ml-pipelines/cli/train.sh b/ml-pipelines/cli/train.sh new file mode 100644 index 0000000..461feb7 --- /dev/null +++ b/ml-pipelines/cli/train.sh @@ -0,0 +1,12 @@ +# TRAIN + +# Create train job compute cluster +#az ml compute create --file train/compute.yml +# Register data asset +az ml data create --file train/data.yml +# Register train environment +az ml environment create --file train/environment.yml +# Create pipeline job +az ml job create --file train/pipeline.yml +# Create pipeline job with automl training job +az ml job create --file train/pipeline_automl.yml diff --git a/mlops/azureml/train/compute.yml b/ml-pipelines/cli/train/compute.yml similarity index 100% rename from mlops/azureml/train/compute.yml rename to ml-pipelines/cli/train/compute.yml diff --git a/mlops/azureml/train/data.yml b/ml-pipelines/cli/train/data.yml similarity index 100% rename from mlops/azureml/train/data.yml rename to ml-pipelines/cli/train/data.yml diff --git a/mlops/azureml/train/environment.yml b/ml-pipelines/cli/train/environment.yml similarity index 70% rename from mlops/azureml/train/environment.yml rename to ml-pipelines/cli/train/environment.yml index e3f534d..24199e0 100644 --- a/mlops/azureml/train/environment.yml +++ b/ml-pipelines/cli/train/environment.yml @@ -1,5 +1,5 @@ $schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: taxi-train-env image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 -conda_file: ../../../data-science/environment/train-conda.yml +conda_file: ../../../environment/train-conda.yml description: Environment created from a Docker image plus Conda environment to train taxi model. \ No newline at end of file diff --git a/mlops/azureml/train/pipeline.yml b/ml-pipelines/cli/train/pipeline.yml similarity index 94% rename from mlops/azureml/train/pipeline.yml rename to ml-pipelines/cli/train/pipeline.yml index c129486..ed56f5d 100644 --- a/mlops/azureml/train/pipeline.yml +++ b/ml-pipelines/cli/train/pipeline.yml @@ -30,7 +30,7 @@ jobs: prep_data: name: prep_data display_name: prep-data - code: ../../../data-science/src/prep + code: ../../../components/prep command: >- python prep.py --raw_data ${{inputs.raw_data}} @@ -52,7 +52,7 @@ jobs: train_model: name: train_model display_name: train-model - code: ../../../data-science/src/train + code: ../../../components/train command: >- python train.py --train_data ${{inputs.train_data}} @@ -66,7 +66,7 @@ jobs: evaluate_model: name: evaluate_model display_name: evaluate-model - code: ../../../data-science/src/evaluate + code: ../../../components/evaluate command: >- python evaluate.py --model_name ${{inputs.model_name}} @@ -84,7 +84,7 @@ jobs: register_model: name: register_model display_name: register-model - code: ../../../data-science/src/register + code: ../../../components/register command: >- python register.py --model_name ${{inputs.model_name}} diff --git a/mlops/azureml/train/pipeline_automl.yml b/ml-pipelines/cli/train/pipeline_automl.yml similarity index 96% rename from mlops/azureml/train/pipeline_automl.yml rename to ml-pipelines/cli/train/pipeline_automl.yml index 2b87975..db6e8ba 100644 --- a/mlops/azureml/train/pipeline_automl.yml +++ b/ml-pipelines/cli/train/pipeline_automl.yml @@ -30,7 +30,7 @@ jobs: prep_data: name: prep_data display_name: prep-data - code: ../../../data-science/src/prep + code: ../../../components/prep command: >- python prep.py --raw_data ${{inputs.raw_data}} @@ -74,7 +74,7 @@ jobs: register_model: name: register_model display_name: register-model - code: ../../../data-science/src/register + code: ../../../components/register command: >- python register_automl.py --model_name ${{inputs.model_name}} diff --git a/ml-pipelines/sdk/deploy-batch-endpoint-sdkv2.ipynb b/ml-pipelines/sdk/deploy-batch-endpoint-sdkv2.ipynb new file mode 100644 index 0000000..656db64 --- /dev/null +++ b/ml-pipelines/sdk/deploy-batch-endpoint-sdkv2.ipynb @@ -0,0 +1,390 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import required libraries\n", + "from azure.ai.ml import MLClient, command, Input, Output, load_component\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.ai.ml.entities import Data, Environment" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Enter details of your AML workspace\n", + "subscription_id = \"\"\n", + "resource_group = \"\"\n", + "workspace = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200031039 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# get a handle to the workspace\n", + "ml_client = MLClient(\n", + " DefaultAzureCredential(), subscription_id, resource_group, workspace\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Batch Endpoint\n", + "\n", + "**Batch endpoints** are endpoints that are used to do batch inferencing on large volumes of data over a period of time. \n", + "\n", + "**Batch endpoints** receive pointers to data and run jobs asynchronously to process the data in parallel on compute clusters. Batch endpoints store outputs to a data store for further analysis.\n", + "\n", + "
\n", + "\"Concept\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Create Batch Compute Cluster (Optional)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "gather": { + "logged": 1668247613855 + } + }, + "source": [ + "``` python\n", + "# create compute cluster to be used by batch cluster\n", + "from azure.ai.ml.entities import AmlCompute\n", + "\n", + "my_cluster = AmlCompute(\n", + " name=\"batch-cluster\",\n", + " type=\"amlcompute\", \n", + " size=\"STANDARD_DS3_V2\", \n", + " min_instances=0, \n", + " max_instances=3,\n", + " location=\"westeurope\", \t\n", + ")\n", + "ml_client.compute.begin_create_or_update(my_cluster)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from azure.ai.ml.entities import AmlCompute\n", + "\n", + "try:\n", + " ml_client.compute.get(name=\"cpu-test\")\n", + " print(\"Compute already exists\")\n", + "\n", + "except:\n", + " print(\"Compute not found; Proceding to create\")\n", + "\n", + " my_cluster = AmlCompute(\n", + " name=\"batch-cluster\",\n", + " type=\"amlcompute\", \n", + " size=\"STANDARD_DS3_V2\", \n", + " min_instances=0, \n", + " max_instances=3,\n", + " )\n", + " ml_client.compute.begin_create_or_update(my_cluster)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Create Batch Endpoint\n", + "\n", + "We can create the **batch endpoint** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "gather": { + "logged": 1668247623872 + } + }, + "outputs": [], + "source": [ + "# create batch endpoint\n", + "from azure.ai.ml.entities import BatchEndpoint\n", + "import random\n", + "\n", + "rand = random.randint(0, 10000)\n", + "\n", + "endpoint_name = f\"taxi-batch-endpoint-{rand}\"\n", + "batch_endpoint = BatchEndpoint(\n", + " name=endpoint_name,\n", + " description=\"Taxi batch endpoint\",\n", + " tags={\"model\": \"taxi-model@latest\"},\n", + ")\n", + "\n", + "poller = ml_client.begin_create_or_update(batch_endpoint)\n", + "poller.wait()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Endpoint creation succeeded\n", + "{'additional_properties': {}, 'id': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/batchEndpoints/taxi-batch-endpoint-6853', 'name': 'taxi-batch-endpoint-6853', 'type': 'Microsoft.MachineLearningServices/workspaces/batchEndpoints', 'system_data': , 'tags': {'model': 'taxi-model@latest'}, 'location': 'eastus2', 'identity': , 'kind': None, 'properties': , 'sku': None}\n" + ] + } + ], + "source": [ + "from azure.ai.ml.exceptions import DeploymentException\n", + "\n", + "status = poller.status()\n", + "if status != \"Succeeded\":\n", + " raise DeploymentException(status)\n", + "else:\n", + " print(\"Endpoint creation succeeded\")\n", + " endpoint = poller.result()\n", + " print(endpoint)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Create Batch Deployment\n", + "\n", + "We can create the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "gather": { + "logged": 1668247892781 + } + }, + "outputs": [], + "source": [ + "# create batch deployment\n", + "from azure.ai.ml.entities import BatchDeployment, Model, Environment\n", + "from azure.ai.ml.constants import BatchDeploymentOutputAction\n", + "\n", + "model = \"taxi-model@latest\"\n", + "\n", + "batch_deployment = BatchDeployment(\n", + " name=\"taxi-batch-dp\",\n", + " description=\"this is a sample batch deployment\",\n", + " endpoint_name=endpoint_name,\n", + " model=model,\n", + " compute=\"batch-cluster\",\n", + " instance_count=2,\n", + " max_concurrency_per_instance=2,\n", + " mini_batch_size=10,\n", + " output_action=BatchDeploymentOutputAction.APPEND_ROW,\n", + " output_file_name=\"predictions.csv\",\n", + ")\n", + "\n", + "poller = ml_client.begin_create_or_update(batch_deployment)\n", + "poller.wait()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Set deployment as the default deployment in the endpoint:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1668249096086 + }, + "jupyter": { + "outputs_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "batch_endpoint = ml_client.batch_endpoints.get(endpoint_name)\n", + "batch_endpoint.defaults.deployment_name = batch_deployment.name\n", + "poller = ml_client.batch_endpoints.begin_create_or_update(batch_endpoint)\n", + "poller.wait()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Invoke and Test Endpoint\n", + "\n", + "We can invoke the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Invoke\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "gather": { + "logged": 1668689480461 + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mUploading taxi-batch.csv\u001b[32m (< 1 MB): 100%|██████████| 133k/133k [00:00<00:00, 7.89MB/s]\n", + "\u001b[39m\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# invoke and test endpoint\n", + "from azure.ai.ml import Input\n", + "from azure.ai.ml.constants import AssetTypes, InputOutputModes\n", + "\n", + "input = Input(path=\"../../data/taxi-batch.csv\", \n", + " type=AssetTypes.URI_FILE, \n", + " mode=InputOutputModes.DOWNLOAD)\n", + "\n", + "\n", + "# invoke the endpoint for batch scoring job\n", + "ml_client.batch_endpoints.invoke(\n", + " endpoint_name=endpoint_name,\n", + " input=input,\n", + " deployment_name=\"taxi-batch-dp\"\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python310-sdkv2" + }, + "kernelspec": { + "display_name": "Python 3.10 - SDK V2", + "language": "python", + "name": "python310-sdkv2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + }, + "microsoft": { + "host": { + "AzureML": { + "notebookHasBeenCompleted": true + } + } + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ml-pipelines/sdk/deploy-online-endpoint-sdkv2.ipynb b/ml-pipelines/sdk/deploy-online-endpoint-sdkv2.ipynb new file mode 100644 index 0000000..7b423b2 --- /dev/null +++ b/ml-pipelines/sdk/deploy-online-endpoint-sdkv2.ipynb @@ -0,0 +1,356 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import required libraries\n", + "from azure.ai.ml import MLClient, command, Input, Output, load_component\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.ai.ml.entities import Data, Environment, ManagedOnlineEndpoint\n", + "from azure.ai.ml.constants import AssetTypes, InputOutputModes\n", + "from azure.ai.ml.dsl import pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Enter details of your AML workspace\n", + "subscription_id = \"\"\n", + "resource_group = \"\"\n", + "workspace = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200031039 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# get a handle to the workspace\n", + "ml_client = MLClient(\n", + " DefaultAzureCredential(), subscription_id, resource_group, workspace\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "# Online Endpoint\n", + "\n", + "Online endpoints are endpoints that are used for online (real-time) inferencing. They receive data from clients and can send responses back in real time.\n", + "\n", + "An **endpoint** is an HTTPS endpoint that clients can call to receive the inferencing (scoring) output of a trained model. It provides:\n", + "* Authentication using \"key & token\" based auth\n", + "* SSL termination\n", + "* A stable scoring URI (endpoint-name.region.inference.ml.azure.com)\n", + "\n", + "A **deployment** is a set of resources required for hosting the model that does the actual inferencing.\n", + "A single endpoint can contain multiple deployments.\n", + "\n", + "Features of the managed online endpoint:\n", + "\n", + "* **Test and deploy locally** for faster debugging\n", + "* Traffic to one deployment can also be **mirrored** (copied) to another deployment.\n", + "* **Application Insights integration**\n", + "* Security\n", + "* Authentication: Key and Azure ML Tokens\n", + "* Automatic Autoscaling\n", + "* Visual Studio Code debugging\n", + "\n", + "**blue-green deployment**: An approach where a new version of a web service is introduced to production by deploying it to a small subset of users/requests before deploying it fully.\n", + "\n", + "
\n", + "\"Online\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "## 1. Create Online Endpoint\n", + "\n", + "We can create an **online endpoint** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1669584576485 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "from azure.ai.ml.entities import ManagedOnlineEndpoint\n", + "import random\n", + "\n", + "rand = random.randint(0, 10000)\n", + "\n", + "endpoint_name = f\"taxi-online-endpoint-{rand}\"\n", + "# create an online endpoint\n", + "online_endpoint = ManagedOnlineEndpoint(\n", + " name=endpoint_name, \n", + " description=\"Taxi online endpoint\",\n", + " auth_mode=\"aml_token\",\n", + ")\n", + "poller = ml_client.online_endpoints.begin_create_or_update(\n", + " online_endpoint, \n", + ")\n", + "\n", + "poller.wait()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Endpoint creation succeeded\n", + "ManagedOnlineEndpoint({'public_network_access': 'Enabled', 'provisioning_state': 'Succeeded', 'scoring_uri': 'https://taxi-online-endpoint-5807.eastus2.inference.ml.azure.com/score', 'openapi_uri': 'https://taxi-online-endpoint-5807.eastus2.inference.ml.azure.com/swagger.json', 'name': 'taxi-online-endpoint-5807', 'description': 'Taxi online endpoint', 'tags': {}, 'properties': {'azureml.onlineendpointid': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourcegroups/mldemorg/providers/microsoft.machinelearningservices/workspaces/mldemo/onlineendpoints/taxi-online-endpoint-5807', 'AzureAsyncOperationUri': 'https://management.azure.com/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/providers/Microsoft.MachineLearningServices/locations/eastus2/mfeOperationsStatus/oe:00187fbf-e9d1-40fe-becd-8d9bd1713ab3:a7f35f02-2493-40f0-8452-35cd3a20cb73?api-version=2022-02-01-preview'}, 'id': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/onlineEndpoints/taxi-online-endpoint-5807', 'Resource__source_path': None, 'base_path': '/mnt/batch/tasks/shared/LS_root/mounts/clusters/jomedin2/code/Users/jomedin/mlops-v2/ml-pipelines/sdk', 'creation_context': None, 'serialize': , 'auth_mode': 'aml_token', 'location': 'eastus2', 'identity': , 'traffic': {}, 'mirror_traffic': {}, 'kind': 'Managed'})\n" + ] + } + ], + "source": [ + "from azure.ai.ml.exceptions import DeploymentException\n", + "\n", + "status = poller.status()\n", + "if status != \"Succeeded\":\n", + " raise DeploymentException(status)\n", + "else:\n", + " print(\"Endpoint creation succeeded\")\n", + " endpoint = poller.result()\n", + " print(endpoint)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "tags": [] + }, + "source": [ + "## 2. Create Online Deployment\n", + "\n", + "To create a deployment to online endpoint, you need to specify the following elements:\n", + "\n", + "* Model files (or specify a registered model in your workspace)\n", + "* Scoring script - code needed to do scoring/inferencing\n", + "* Environment - a Docker image with Conda dependencies, or a dockerfile\n", + "* Compute instance & scale settings\n", + "\n", + "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated.\n", + "\n", + "We can create an **online deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1669584886619 + }, + "jupyter": { + "outputs_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Check: endpoint taxi-online-endpoint-5807 exists\n", + "data_collector is not a known attribute of class and will be ignored\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "....................................................................................." + ] + } + ], + "source": [ + "# create online deployment\n", + "from azure.ai.ml.entities import ManagedOnlineDeployment, Model, Environment\n", + "\n", + "blue_deployment = ManagedOnlineDeployment(\n", + " name=\"blue\",\n", + " endpoint_name=endpoint_name,\n", + " model=\"taxi-model@latest\",\n", + " instance_type=\"Standard_DS2_v2\",\n", + " instance_count=1,\n", + ")\n", + "\n", + "poller = ml_client.online_deployments.begin_create_or_update(\n", + " deployment=blue_deployment\n", + ")\n", + "poller.wait()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Allocate Traffic" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "gather": { + "logged": 1670199946158 + } + }, + "outputs": [], + "source": [ + "# allocate traffic\n", + "# blue deployment takes 100 traffic\n", + "online_endpoint.traffic = {\"blue\": 100}\n", + "poller = ml_client.begin_create_or_update(online_endpoint)\n", + "poller.wait()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Invoke and Test Endpoint\n", + "\n", + "We can invoke the **online deployment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Invoke\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "gather": { + "logged": 1668246829854 + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'[11.928738280516184, 15.403240743572406]'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# invoke and test endpoint\n", + "ml_client.online_endpoints.invoke(\n", + " endpoint_name=endpoint_name,\n", + " request_file=\"../../data/taxi-request.json\",\n", + ")\n" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python310-sdkv2" + }, + "kernelspec": { + "display_name": "Python 3.10 - SDK V2", + "language": "python", + "name": "python310-sdkv2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + }, + "microsoft": { + "host": { + "AzureML": { + "notebookHasBeenCompleted": true + } + } + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ml-pipelines/sdk/train-sdkv2.ipynb b/ml-pipelines/sdk/train-sdkv2.ipynb new file mode 100644 index 0000000..f4701bc --- /dev/null +++ b/ml-pipelines/sdk/train-sdkv2.ipynb @@ -0,0 +1,605 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this workshop, you need:\n", + "\n", + "* An Azure Machine Learning workspace. \n", + "* The Azure Machine Learning Python SDK v2 installed. \n", + "\n", + "To install the SDK you can either,\n", + "\n", + "Create a compute instance, which already has installed the latest AzureML Python SDK and is pre-configured for ML workflows.\n", + "\n", + "Use the followings commands to install Azure ML Python SDK v2:\n", + "\n", + "```bash\n", + "conda activate \n", + "pip install azure-ai-ml==1.0.0\n", + "```\n", + "\n", + "If you're using a virtual env, make sure to install the sdk inside the virtual env.\n", + "\n", + "The virtual environment for sdkv2 on Azure Notebooks is called `azureml_py310_sdkv2`.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "## Connect to ML Client" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To connect to a workspace, you need to provide a subscription, resource group and workspace name. These details are used in the `MLClient` from `azure.ai.ml` to get a handle to the required Azure Machine Learning workspace.\n", + "\n", + "In the following example, the default Azure authentication is used along with the default workspace configuration or from any `config.json` file you might have copied into the folders structure. If no `config.json` is found, then you need to manually introduce the subscription_id, resource_group and workspace when creating `MLClient`.\n", + "\n", + "```python\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.ai.ml import MLClient\n", + "\n", + "credential = DefaultAzureCredential()\n", + "ml_client = None\n", + "try:\n", + " ml_client = MLClient.from_config(credential)\n", + "except Exception as ex:\n", + " print(ex)\n", + " # Enter details of your AzureML workspace\n", + " subscription_id = \"\"\n", + " resource_group = \"\"\n", + " workspace = \"\"\n", + " ml_client = MLClient(credential, subscription_id, resource_group, workspace)\n", + "```\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# import required libraries\n", + "from azure.ai.ml import MLClient, command, Input, Output, load_component\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.ai.ml.entities import Data, Environment\n", + "from azure.ai.ml.constants import AssetTypes, InputOutputModes\n", + "from azure.ai.ml.dsl import pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Enter details of your AML workspace\n", + "subscription_id = \"\"\n", + "resource_group = \"\"\n", + "workspace = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200031039 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# get a handle to the workspace\n", + "ml_client = MLClient(\n", + " DefaultAzureCredential(), subscription_id, resource_group, workspace\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + }, + "tags": [] + }, + "source": [ + "# Model Training" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## (Option) 1. Create Managed Compute\n", + "\n", + "A compute is a designated compute resource where you run your job or host your endpoint. Azure Machine learning supports the following types of compute:\n", + "\n", + "- **Compute instance** - a fully configured and managed development environment in the cloud. You can use the instance as a training or inference compute for development and testing. It's similar to a virtual machine on the cloud.\n", + "\n", + "- **Compute cluster** - a managed-compute infrastructure that allows you to easily create a cluster of CPU or GPU compute nodes in the cloud.\n", + "\n", + "- **Inference cluster** - used to deploy trained machine learning models to Azure Kubernetes Service. You can create an Azure Kubernetes Service (AKS) cluster from your Azure ML workspace, or attach an existing AKS cluster.\n", + "\n", + "- **Attached compute** - You can attach your own compute resources to your workspace and use them for training and inference.\n", + "\n", + "You can create a compute using the Studio, the cli and the sdk.\n", + "\n", + "
\n", + "\n", + "We can create a **compute instance** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "
\n", + "\n", + "We can create a **compute cluster** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "Let's create a managed compute cluster for the training workload." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "```python\n", + "from azure.ai.ml.entities import AmlCompute\n", + "\n", + "my_cluster = AmlCompute(\n", + " name=\"cpu-cluster-CA\",\n", + " type=\"amlcompute\", \n", + " size=\"STANDARD_DS3_V2\", \n", + " min_instances=0, \n", + " max_instances=4,\n", + " location=\"westeurope\", \t\n", + ")\n", + "\n", + "ml_client.compute.begin_create_or_update(my_cluster)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Compute not found\n" + ] + } + ], + "source": [ + "from azure.ai.ml.entities import AmlCompute\n", + "\n", + "try:\n", + " ml_client.compute.get(name=\"cpu-test\")\n", + " print(\"Compute already exists\")\n", + "\n", + "except:\n", + " print(\"Compute not found; Proceding to create\")\n", + " \n", + " my_cluster = AmlCompute(\n", + " name=\"cpu-cluster\",\n", + " type=\"amlcompute\", \n", + " size=\"STANDARD_DS3_V2\", \n", + " min_instances=0, \n", + " max_instances=4,\n", + " )\n", + " ml_client.compute.begin_create_or_update(my_cluster)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## 2. Register Data Asset\n", + "\n", + "**Datastore** - Azure Machine Learning Datastores securely keep the connection information to your data storage on Azure, so you don't have to code it in your scripts.\n", + "\n", + "An Azure Machine Learning datastore is a **reference** to an **existing** storage account on Azure. The benefits of creating and using a datastore are:\n", + "* A common and easy-to-use API to interact with different storage type. \n", + "* Easier to discover useful datastores when working as a team.\n", + "* When using credential-based access (service principal/SAS/key), the connection information is secured so you don't have to code it in your scripts.\n", + "\n", + "Supported Data Resources: \n", + "\n", + "* Azure Storage blob container\n", + "* Azure Storage file share\n", + "* Azure Data Lake Gen 1\n", + "* Azure Data Lake Gen 2\n", + "* Azure SQL Database \n", + "* Azure PostgreSQL Database\n", + "* Azure MySQL Database\n", + "\n", + "It is not a requirement to use Azure Machine Learning datastores - you can use storage URIs directly assuming you have access to the underlying data.\n", + "\n", + "You can create a datastore using the Studio, the cli and the sdk.\n", + "\n", + "
\n", + "\n", + "We can create a **datastore** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "\n", + "\n", + "**Data asset** - Create data assets in your workspace to share with team members, version, and track data lineage.\n", + "\n", + "By creating a data asset, you create a reference to the data source location, along with a copy of its metadata. \n", + "\n", + "The benefits of creating data assets are:\n", + "\n", + "* You can **share and reuse data** with other members of the team such that they do not need to remember file locations.\n", + "* You can **seamlessly access data** during model training (on any supported compute type) without worrying about connection strings or data paths.\n", + "* You can **version** the data.\n", + "\n", + "
\n", + "\n", + "We can create a **data asset** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200033270 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Data({'skip_validation': False, 'mltable_schema_url': None, 'referenced_uris': None, 'type': 'uri_file', 'is_anonymous': False, 'auto_increment_version': False, 'name': 'taxi-data', 'description': 'Taxi dataset', 'tags': {}, 'properties': {}, 'id': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/data/taxi-data/versions/2', 'Resource__source_path': None, 'base_path': '/mnt/batch/tasks/shared/LS_root/mounts/clusters/jomedin2/code/Users/jomedin/mlops-v2/ml-pipelines/sdk', 'creation_context': , 'serialize': , 'version': '2', 'latest_version': None, 'path': 'azureml://subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourcegroups/mldemorg/workspaces/mldemo/datastores/workspaceblobstore/paths/LocalUpload/9292ec840b5d1db6306dba71da69ab7f/taxi-data.csv', 'datastore': None})" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_data = Data(\n", + " path=\"../../data/taxi-data.csv\",\n", + " type=AssetTypes.URI_FILE,\n", + " description=\"Taxi dataset\",\n", + " name=\"taxi-data\"\n", + ")\n", + "ml_client.data.create_or_update(my_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Register Train Environment\n", + "\n", + "Azure Machine Learning environments define the execution environments for your **jobs** or **deployments** and encapsulate the dependencies for your code. \n", + "\n", + "Azure ML uses the environment specification to create the Docker container that your **training** or **scoring code** runs in on the specified compute target.\n", + "\n", + "Create an environment from a\n", + "* conda specification\n", + "* Docker image\n", + "* Docker build context\n", + "\n", + "There are two types of environments in Azure ML: **curated** and **custom environments**. Curated environments are predefined environments containing popular ML frameworks and tooling. Custom environments are user-defined.\n", + "\n", + "
\n", + "\n", + "We can register an **environment** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200035753 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Environment({'is_anonymous': False, 'auto_increment_version': False, 'name': 'taxi-train-env', 'description': 'Environment created from a Docker image plus Conda environment to train taxi model.', 'tags': {}, 'properties': {}, 'id': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/environments/taxi-train-env/versions/1', 'Resource__source_path': None, 'base_path': '/mnt/batch/tasks/shared/LS_root/mounts/clusters/jomedin2/code/Users/jomedin/mlops-v2/ml-pipelines/sdk', 'creation_context': , 'serialize': , 'version': '1', 'latest_version': None, 'conda_file': {'channels': ['defaults', 'anaconda', 'conda-forge'], 'dependencies': ['python=3.7.5', 'pip', {'pip': ['azureml-mlflow==1.38.0', 'azure-ai-ml==1.0.0', 'pyarrow==10.0.0', 'ruamel.yaml==0.17.21', 'scikit-learn==0.24.1', 'pandas==1.2.1', 'joblib==1.0.0', 'matplotlib==3.3.3']}]}, 'image': 'mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04', 'build': None, 'inference_config': None, 'os_type': 'Linux', 'arm_type': 'environment_version', 'conda_file_path': None, 'path': None, 'datastore': None, 'upload_hash': None, 'translated_conda_file': '{\\n \"channels\": [\\n \"defaults\",\\n \"anaconda\",\\n \"conda-forge\"\\n ],\\n \"dependencies\": [\\n \"python=3.7.5\",\\n \"pip\",\\n {\\n \"pip\": [\\n \"azureml-mlflow==1.38.0\",\\n \"azure-ai-ml==1.0.0\",\\n \"pyarrow==10.0.0\",\\n \"ruamel.yaml==0.17.21\",\\n \"scikit-learn==0.24.1\",\\n \"pandas==1.2.1\",\\n \"joblib==1.0.0\",\\n \"matplotlib==3.3.3\"\\n ]\\n }\\n ]\\n}'})" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_environment = Environment(\n", + " image=\"mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04\",\n", + " conda_file=\"../../environment/train-conda.yml\",\n", + " name=\"taxi-train-env\",\n", + " description=\"Environment created from a Docker image plus Conda environment to train taxi model.\",\n", + ")\n", + "\n", + "ml_client.environments.create_or_update(my_environment)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## 4. Create Pipeline Job\n", + "\n", + "**AML Job**:\n", + "\n", + "Azure ML provides several ways to train your models, from code-first solutions to low-code solutions:\n", + "\n", + "* Azure ML supports script files in python, R, Java, Julia or C#. All you need to learn is YAML format and command lines to use Azure ML.\n", + "\n", + "* Distributed Training: AML supports integrations with popular frameworks, PyTorch and TensorFlow. Both frameworks employ data parallelism & model parallelism for distributed training.\n", + "\n", + "* Automated ML - Train models without extensive data science or programming knowledge.\n", + "\n", + "* Designer - drag and drop web-based UI.\n", + "\n", + "
\n", + "\n", + "We can submit a **job** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
\n", + "\n", + "
\n", + " \n", + "**AML Pipelines**:\n", + "\n", + "An AML pipeline is an independently executable workflow of a complete machine learning task. It helps standardizing the best practices of producing a machine learning model: The core of a machine learning pipeline is to split a complete machine learning task into a multistep workflow. Each step is a manageable component that can be developed, optimized, configured, and automated individually. \n", + "\n", + "
\n", + "\n", + "We can submit a **pipeline job** with cli v2 or sdk v2 using the following syntax:\n", + "\n", + "
\n", + "\"Create\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200036044 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Create pipeline job\n", + "parent_dir = \"../../components\"\n", + "\n", + "# 1. Load components\n", + "prepare_data = load_component(source=parent_dir + \"/prep.yml\")\n", + "train_model = load_component(source=parent_dir + \"/train.yml\")\n", + "evaluate_model = load_component(source=parent_dir + \"/evaluate.yml\")\n", + "register_model = load_component(source=parent_dir + \"/register.yml\")\n", + "\n", + "# 2. Construct pipeline\n", + "@pipeline()\n", + "def taxi_training_pipeline(raw_data, enable_monitoring, table_name):\n", + " \n", + " prepare = prepare_data(\n", + " raw_data=raw_data,\n", + " enable_monitoring=enable_monitoring, \n", + " table_name=table_name\n", + " )\n", + "\n", + " train = train_model(\n", + " train_data=prepare.outputs.train_data\n", + " )\n", + "\n", + " evaluate = evaluate_model(\n", + " model_name=\"taxi-model\",\n", + " model_input=train.outputs.model_output,\n", + " test_data=prepare.outputs.test_data\n", + " )\n", + "\n", + "\n", + " register = register_model(\n", + " model_name=\"taxi-model\",\n", + " model_path=train.outputs.model_output,\n", + " evaluation_output=evaluate.outputs.evaluation_output\n", + " )\n", + "\n", + " return {\n", + " \"pipeline_job_train_data\": prepare.outputs.train_data,\n", + " \"pipeline_job_test_data\": prepare.outputs.test_data,\n", + " \"pipeline_job_trained_model\": train.outputs.model_output,\n", + " \"pipeline_job_score_report\": evaluate.outputs.evaluation_output,\n", + " }\n", + "\n", + "\n", + "pipeline_job = taxi_training_pipeline(\n", + " Input(type=AssetTypes.URI_FILE, path=\"taxi-data@latest\"), \"false\", \"taximonitoring\"\n", + ")\n", + "\n", + "# set pipeline level compute\n", + "pipeline_job.settings.default_compute = \"cpu-cluster\"\n", + "# set pipeline level datastore\n", + "pipeline_job.settings.default_datastore = \"workspaceblobstore\"" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "gather": { + "logged": 1670200062228 + }, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
ExperimentNameTypeStatusDetails Page
pipeline_samplesmango_bone_4n6c48cfyzpipelinePreparingLink to Azure Machine Learning studio
" + ], + "text/plain": [ + "PipelineJob({'inputs': {'raw_data': , 'enable_monitoring': , 'table_name': }, 'outputs': {'pipeline_job_train_data': , 'pipeline_job_test_data': , 'pipeline_job_trained_model': , 'pipeline_job_score_report': }, 'jobs': {}, 'component': PipelineComponent({'auto_increment_version': False, 'source': 'REMOTE.WORKSPACE.JOB', 'is_anonymous': True, 'name': 'azureml_anonymous', 'description': None, 'tags': {}, 'properties': {}, 'id': None, 'Resource__source_path': None, 'base_path': None, 'creation_context': None, 'serialize': , 'version': '1', 'latest_version': None, 'schema': None, 'type': 'pipeline', 'display_name': 'taxi_training_pipeline', 'is_deterministic': None, 'inputs': {'raw_data': {}, 'enable_monitoring': {}, 'table_name': {}}, 'outputs': {'pipeline_job_train_data': {}, 'pipeline_job_test_data': {}, 'pipeline_job_trained_model': {}, 'pipeline_job_score_report': {}}, 'yaml_str': None, 'other_parameter': {}, 'jobs': {'prepare': Command({'parameters': {}, 'init': False, 'type': 'command', 'status': None, 'log_files': None, 'name': 'prepare', 'description': None, 'tags': {}, 'properties': {}, 'id': None, 'Resource__source_path': None, 'base_path': None, 'creation_context': None, 'serialize': , 'allowed_keys': {}, 'key_restriction': False, 'logger': , 'display_name': None, 'experiment_name': None, 'compute': None, 'services': None, 'comment': None, 'job_inputs': {'raw_data': '${{parent.inputs.raw_data}}', 'enable_monitoring': '${{parent.inputs.enable_monitoring}}', 'table_name': '${{parent.inputs.table_name}}'}, 'job_outputs': {'train_data': '${{parent.outputs.pipeline_job_train_data}}', 'test_data': '${{parent.outputs.pipeline_job_test_data}}'}, 'inputs': {'raw_data': , 'enable_monitoring': , 'table_name': }, 'outputs': {'train_data': , 'test_data': }, 'component': 'azureml_anonymous:f97794ad-73b5-4b7a-94bf-bcda77fa41c7', 'referenced_control_flow_node_instance_id': None, 'kwargs': {'services': None}, 'instance_id': '2f806bf0-71d7-4d62-9450-8a9ec47ff3c4', 'source': 'REMOTE.WORKSPACE.COMPONENT', 'limits': None, 'identity': None, 'distribution': None, 'environment_variables': {}, 'environment': None, 'resources': None, 'swept': False}), 'train': Command({'parameters': {}, 'init': False, 'type': 'command', 'status': None, 'log_files': None, 'name': 'train', 'description': None, 'tags': {}, 'properties': {}, 'id': None, 'Resource__source_path': None, 'base_path': None, 'creation_context': None, 'serialize': , 'allowed_keys': {}, 'key_restriction': False, 'logger': , 'display_name': None, 'experiment_name': None, 'compute': None, 'services': None, 'comment': None, 'job_inputs': {'train_data': '${{parent.jobs.prepare.outputs.train_data}}'}, 'job_outputs': {'model_output': '${{parent.outputs.pipeline_job_trained_model}}'}, 'inputs': {'train_data': }, 'outputs': {'model_output': }, 'component': 'azureml_anonymous:06b6fc41-aaaf-41d5-957e-4d8dfb481b4e', 'referenced_control_flow_node_instance_id': None, 'kwargs': {'services': None}, 'instance_id': '5762e0b6-b02d-4ed2-964b-0ce3616c28e4', 'source': 'REMOTE.WORKSPACE.COMPONENT', 'limits': None, 'identity': None, 'distribution': None, 'environment_variables': {}, 'environment': None, 'resources': None, 'swept': False}), 'evaluate': Command({'parameters': {}, 'init': False, 'type': 'command', 'status': None, 'log_files': None, 'name': 'evaluate', 'description': None, 'tags': {}, 'properties': {}, 'id': None, 'Resource__source_path': None, 'base_path': None, 'creation_context': None, 'serialize': , 'allowed_keys': {}, 'key_restriction': False, 'logger': , 'display_name': None, 'experiment_name': None, 'compute': None, 'services': None, 'comment': None, 'job_inputs': {'model_name': 'taxi-model', 'model_input': '${{parent.jobs.train.outputs.model_output}}', 'test_data': '${{parent.jobs.prepare.outputs.test_data}}'}, 'job_outputs': {'evaluation_output': '${{parent.outputs.pipeline_job_score_report}}'}, 'inputs': {'model_name': , 'model_input': , 'test_data': }, 'outputs': {'evaluation_output': }, 'component': 'azureml_anonymous:afe8a98a-9052-434d-8ce5-2d0c9235d132', 'referenced_control_flow_node_instance_id': None, 'kwargs': {'services': None}, 'instance_id': 'bdece213-a036-4e94-96d7-a36787d8e26c', 'source': 'REMOTE.WORKSPACE.COMPONENT', 'limits': None, 'identity': None, 'distribution': None, 'environment_variables': {}, 'environment': None, 'resources': None, 'swept': False}), 'register': Command({'parameters': {}, 'init': False, 'type': 'command', 'status': None, 'log_files': None, 'name': 'register', 'description': None, 'tags': {}, 'properties': {}, 'id': None, 'Resource__source_path': None, 'base_path': None, 'creation_context': None, 'serialize': , 'allowed_keys': {}, 'key_restriction': False, 'logger': , 'display_name': None, 'experiment_name': None, 'compute': None, 'services': None, 'comment': None, 'job_inputs': {'model_name': 'taxi-model', 'model_path': '${{parent.jobs.train.outputs.model_output}}', 'evaluation_output': '${{parent.jobs.evaluate.outputs.evaluation_output}}'}, 'job_outputs': {}, 'inputs': {'model_name': , 'model_path': , 'evaluation_output': }, 'outputs': {}, 'component': 'azureml_anonymous:48cbad14-c17b-4f02-b1d8-21b449d8d16c', 'referenced_control_flow_node_instance_id': None, 'kwargs': {'services': None}, 'instance_id': '41368e3d-27d9-4e1e-bcb6-ff16818ae86f', 'source': 'REMOTE.WORKSPACE.COMPONENT', 'limits': None, 'identity': None, 'distribution': None, 'environment_variables': {}, 'environment': None, 'resources': None, 'swept': False})}, 'job_types': {'command': 4}, 'job_sources': {'REMOTE.WORKSPACE.COMPONENT': 4}, 'source_job_id': None}), 'type': 'pipeline', 'status': 'Preparing', 'log_files': None, 'name': 'mango_bone_4n6c48cfyz', 'description': None, 'tags': {}, 'properties': {'azureml.DevPlatv2': 'true', 'azureml.runsource': 'azureml.PipelineRun', 'runSource': 'MFE', 'runType': 'HTTP', 'azureml.parameters': '{\"enable_monitoring\":\"false\",\"table_name\":\"taximonitoring\"}', 'azureml.continue_on_step_failure': 'False', 'azureml.continue_on_failed_optional_input': 'True', 'azureml.defaultComputeName': 'cpu-cluster', 'azureml.defaultDataStoreName': 'workspaceblobstore', 'azureml.pipelineComponent': 'pipelinerun'}, 'id': '/subscriptions/14585b9f-5c83-4a76-8055-42149123f99f/resourceGroups/mldemorg/providers/Microsoft.MachineLearningServices/workspaces/mldemo/jobs/mango_bone_4n6c48cfyz', 'Resource__source_path': None, 'base_path': '/mnt/batch/tasks/shared/LS_root/mounts/clusters/jomedin2/code/Users/jomedin/mlops-v2/ml-pipelines/sdk', 'creation_context': , 'serialize': , 'display_name': 'taxi_training_pipeline', 'experiment_name': 'pipeline_samples', 'compute': None, 'services': {'Tracking': , 'Studio': }, 'settings': {}, 'identity': None, 'default_code': None, 'default_environment': None})" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipeline_job = ml_client.jobs.create_or_update(\n", + " pipeline_job, experiment_name=\"pipeline_samples\"\n", + ")\n", + "pipeline_job" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python310-sdkv2" + }, + "kernelspec": { + "display_name": "Python 3.10 - SDK V2", + "language": "python", + "name": "python310-sdkv2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + }, + "microsoft": { + "host": { + "AzureML": { + "notebookHasBeenCompleted": true + } + } + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/mlops/azureml/azureml-cliv2.ipynb b/mlops/azureml/azureml-cliv2.ipynb deleted file mode 100644 index 9b26794..0000000 --- a/mlops/azureml/azureml-cliv2.ipynb +++ /dev/null @@ -1,605 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this workshop, you need:\n", - "\n", - "* An Azure Machine Learning workspace. \n", - "* The Azure Machine Learning CLI v2 installed.\n", - "\n", - "To install the CLI you can either,\n", - "\n", - "Create a compute instance, which already has installed the latest AzureML CLI and is pre-configured for ML workflows.\n", - "\n", - "Use the followings commands to install Azure ML CLI v2:\n", - "\n", - "```bash\n", - "az extension add --name ml\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!az extension add --name ml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - }, - "source": [ - "# Model Training" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - }, - "source": [ - "## 1. Create Managed Compute\n", - "\n", - "A compute is a designated compute resource where you run your job or host your endpoint. Azure Machine learning supports the following types of compute:\n", - "\n", - "- **Compute instance** - a fully configured and managed development environment in the cloud. You can use the instance as a training or inference compute for development and testing. It's similar to a virtual machine on the cloud.\n", - "\n", - "- **Compute cluster** - a managed-compute infrastructure that allows you to easily create a cluster of CPU or GPU compute nodes in the cloud.\n", - "\n", - "- **Inference cluster** - used to deploy trained machine learning models to Azure Kubernetes Service. You can create an Azure Kubernetes Service (AKS) cluster from your Azure ML workspace, or attach an existing AKS cluster.\n", - "\n", - "- **Attached compute** - You can attach your own compute resources to your workspace and use them for training and inference.\n", - "\n", - "You can create a compute using the Studio, the cli and the sdk.\n", - "\n", - "
\n", - "\n", - "We can create a **compute instance** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "We can create a **compute cluster** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "Let's create a managed compute cluster for the training workload." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Create train job compute cluster\n", - "!az ml compute create --file train/compute.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - }, - "source": [ - "## 2. Register Data Asset\n", - "\n", - "**Datastore** - Azure Machine Learning Datastores securely keep the connection information to your data storage on Azure, so you don't have to code it in your scripts.\n", - "\n", - "An Azure Machine Learning datastore is a **reference** to an **existing** storage account on Azure. The benefits of creating and using a datastore are:\n", - "* A common and easy-to-use API to interact with different storage type. \n", - "* Easier to discover useful datastores when working as a team.\n", - "* When using credential-based access (service principal/SAS/key), the connection information is secured so you don't have to code it in your scripts.\n", - "\n", - "Supported Data Resources: \n", - "\n", - "* Azure Storage blob container\n", - "* Azure Storage file share\n", - "* Azure Data Lake Gen 1\n", - "* Azure Data Lake Gen 2\n", - "* Azure SQL Database \n", - "* Azure PostgreSQL Database\n", - "* Azure MySQL Database\n", - "\n", - "It is not a requirement to use Azure Machine Learning datastores - you can use storage URIs directly assuming you have access to the underlying data.\n", - "\n", - "You can create a datastore using the Studio, the cli and the sdk.\n", - "\n", - "
\n", - "\n", - "We can create a **datastore** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "\n", - "**Data asset** - Create data assets in your workspace to share with team members, version, and track data lineage.\n", - "\n", - "By creating a data asset, you create a reference to the data source location, along with a copy of its metadata. \n", - "\n", - "The benefits of creating data assets are:\n", - "\n", - "* You can **share and reuse data** with other members of the team such that they do not need to remember file locations.\n", - "* You can **seamlessly access data** during model training (on any supported compute type) without worrying about connection strings or data paths.\n", - "* You can **version** the data.\n", - "\n", - "
\n", - "\n", - "We can create a **data asset** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Register data asset \n", - "!az ml data create --file train/data.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## 3. Register Train Environment\n", - "\n", - "Azure Machine Learning environments define the execution environments for your **jobs** or **deployments** and encapsulate the dependencies for your code. \n", - "\n", - "Azure ML uses the environment specification to create the Docker container that your **training** or **scoring code** runs in on the specified compute target.\n", - "\n", - "Create an environment from a\n", - "* conda specification\n", - "* Docker image\n", - "* Docker build context\n", - "\n", - "There are two types of environments in Azure ML: **curated** and **custom environments**. Curated environments are predefined environments containing popular ML frameworks and tooling. Custom environments are user-defined.\n", - "\n", - "
\n", - "\n", - "We can register an **environment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Register train environment \n", - "!az ml environment create --file train/environment.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - }, - "source": [ - "## 4. Create Pipeline Job\n", - "\n", - "**AML Job**:\n", - "\n", - "Azure ML provides several ways to train your models, from code-first solutions to low-code solutions:\n", - "\n", - "* Azure ML supports script files in python, R, Java, Julia or C#. All you need to learn is YAML format and command lines to use Azure ML.\n", - "\n", - "* Distributed Training: AML supports integrations with popular frameworks, PyTorch and TensorFlow. Both frameworks employ data parallelism & model parallelism for distributed training.\n", - "\n", - "* Automated ML - Train models without extensive data science or programming knowledge.\n", - "\n", - "* Designer - drag and drop web-based UI.\n", - "\n", - "
\n", - "\n", - "We can submit a **job** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "
\n", - " \n", - "**AML Pipelines**:\n", - "\n", - "An AML pipeline is an independently executable workflow of a complete machine learning task. It helps standardizing the best practices of producing a machine learning model: The core of a machine learning pipeline is to split a complete machine learning task into a multistep workflow. Each step is a manageable component that can be developed, optimized, configured, and automated individually. \n", - "\n", - "
\n", - "\n", - "We can submit a **pipeline job** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Create pipeline job\n", - "!az ml job create --file train/pipeline.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# Online Endpoint\n", - "\n", - "Online endpoints are endpoints that are used for online (real-time) inferencing. They receive data from clients and can send responses back in real time.\n", - "\n", - "An **endpoint** is an HTTPS endpoint that clients can call to receive the inferencing (scoring) output of a trained model. It provides:\n", - "* Authentication using \"key & token\" based auth\n", - "* SSL termination\n", - "* A stable scoring URI (endpoint-name.region.inference.ml.azure.com)\n", - "\n", - "A **deployment** is a set of resources required for hosting the model that does the actual inferencing.\n", - "A single endpoint can contain multiple deployments.\n", - "\n", - "Features of the managed online endpoint:\n", - "\n", - "* **Test and deploy locally** for faster debugging\n", - "* Traffic to one deployment can also be **mirrored** (copied) to another deployment.\n", - "* **Application Insights integration**\n", - "* Security\n", - "* Authentication: Key and Azure ML Tokens\n", - "* Automatic Autoscaling\n", - "* Visual Studio Code debugging\n", - "\n", - "**blue-green deployment**: An approach where a new version of a web service is introduced to production by deploying it to a small subset of users/requests before deploying it fully.\n", - "\n", - "
\n", - "\"Online\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## 1. Create Online Endpoint\n", - "\n", - "We can create an **online endpoint** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# create online endpoint\n", - "!az ml online-endpoint create --file deploy/online/online-endpoint.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Create Online Deployment\n", - "\n", - "To create a deployment to online endpoint, you need to specify the following elements:\n", - "\n", - "* Model files (or specify a registered model in your workspace)\n", - "* Scoring script - code needed to do scoring/inferencing\n", - "* Environment - a Docker image with Conda dependencies, or a dockerfile\n", - "* Compute instance & scale settings\n", - "\n", - "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated.\n", - "\n", - "We can create an **online deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# create online deployment\n", - "!az ml online-deployment create --file deploy/online/online-deployment.yml " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Allocate Traffic" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# allocate traffic\n", - "!az ml online-endpoint update --name taxi-online-endpoint --traffic blue=100" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Invoke and Test Endpoint\n", - "\n", - "We can invoke the **online deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Invoke\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# invoke and test endpoint\n", - "!az ml online-endpoint invoke --name taxi-online-endpoint --request-file ../../data/taxi-request.json" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Model Batch Endpoint" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Create Batch Compute Cluster" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# create compute cluster to be used by batch cluster\n", - "!az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 3" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Create Batch Endpoint\n", - "\n", - "We can create the **batch endpoint** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "\n", - "
\n", - "\"Create\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# create batch endpoint\n", - "!az ml batch-endpoint create --file deploy/batch/batch-endpoint.yml" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Create Batch Deployment\n", - "\n", - "We can create the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# create batch deployment\n", - "!az ml batch-deployment create --file deploy/batch/batch-deployment.yml --set-default" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Invoke and Test Endpoint\n", - "\n", - "We can invoke the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Invoke\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# invoke and test endpoint\n", - "!az ml batch-endpoint invoke --name taxi-batch-endpoint --input ../../data/taxi-batch.csv" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python38-azureml" - }, - "kernelspec": { - "display_name": "Python 3.8 - AzureML", - "language": "python", - "name": "python38-azureml" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/mlops/azureml/azureml-sdkv2.ipynb b/mlops/azureml/azureml-sdkv2.ipynb deleted file mode 100644 index c3a9797..0000000 --- a/mlops/azureml/azureml-sdkv2.ipynb +++ /dev/null @@ -1,1018 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "For this workshop, you need:\n", - "\n", - "* An Azure Machine Learning workspace. \n", - "* The Azure Machine Learning Python SDK v2 installed. \n", - "\n", - "To install the SDK you can either,\n", - "\n", - "Create a compute instance, which already has installed the latest AzureML Python SDK and is pre-configured for ML workflows.\n", - "\n", - "Use the followings commands to install Azure ML Python SDK v2:\n", - "\n", - "```bash\n", - "conda activate \n", - "pip install azure-ai-ml==1.0.0\n", - "```\n", - "\n", - "If you're using a virtual env, make sure to install the sdk inside the virtual env.\n", - "\n", - "The virtual environment for sdkv2 on Azure Notebooks is called `azureml_py310_sdkv2`.\n" - ], - "metadata": {} - }, - { - "cell_type": "markdown", - "source": [ - "## Connect to ML Client" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - } - }, - { - "cell_type": "markdown", - "source": [ - "To connect to a workspace, you need to provide a subscription, resource group and workspace name. These details are used in the `MLClient` from `azure.ai.ml` to get a handle to the required Azure Machine Learning workspace.\n", - "\n", - "In the following example, the default Azure authentication is used along with the default workspace configuration or from any `config.json` file you might have copied into the folders structure. If no `config.json` is found, then you need to manually introduce the subscription_id, resource_group and workspace when creating `MLClient`.\n", - "\n", - "```python\n", - "from azure.identity import DefaultAzureCredential\n", - "from azure.ai.ml import MLClient\n", - "\n", - "credential = DefaultAzureCredential()\n", - "ml_client = None\n", - "try:\n", - " ml_client = MLClient.from_config(credential)\n", - "except Exception as ex:\n", - " print(ex)\n", - " # Enter details of your AzureML workspace\n", - " subscription_id = \"\"\n", - " resource_group = \"\"\n", - " workspace = \"\"\n", - " ml_client = MLClient(credential, subscription_id, resource_group, workspace)\n", - "```\n" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential\n", - "from azure.ai.ml import MLClient\n", - "\n", - "try:\n", - " credential = DefaultAzureCredential()\n", - " # Check if given credential can get token successfully.\n", - " credential.get_token(\"https://management.azure.com/.default\")\n", - "except Exception as ex:\n", - " # Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work\n", - " credential = InteractiveBrowserCredential()\n", - "\n", - "# Add config.json file to the workspace\n", - "# Get a handle to workspace\n", - "ml_client = MLClient.from_config(credential=credential, path=\"config.json\")" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554468232 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "# Model Training" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - } - }, - { - "cell_type": "markdown", - "source": [ - "## 1. Create Managed Compute\n", - "\n", - "A compute is a designated compute resource where you run your job or host your endpoint. Azure Machine learning supports the following types of compute:\n", - "\n", - "- **Compute instance** - a fully configured and managed development environment in the cloud. You can use the instance as a training or inference compute for development and testing. It's similar to a virtual machine on the cloud.\n", - "\n", - "- **Compute cluster** - a managed-compute infrastructure that allows you to easily create a cluster of CPU or GPU compute nodes in the cloud.\n", - "\n", - "- **Inference cluster** - used to deploy trained machine learning models to Azure Kubernetes Service. You can create an Azure Kubernetes Service (AKS) cluster from your Azure ML workspace, or attach an existing AKS cluster.\n", - "\n", - "- **Attached compute** - You can attach your own compute resources to your workspace and use them for training and inference.\n", - "\n", - "You can create a compute using the Studio, the cli and the sdk.\n", - "\n", - "
\n", - "\n", - "We can create a **compute instance** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "
\n", - "\n", - "We can create a **compute cluster** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "Let's create a managed compute cluster for the training workload." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "from azure.ai.ml.entities import AmlCompute\n", - "\n", - "my_cluster = AmlCompute(\n", - " name=\"cpu-cluster\",\n", - " type=\"amlcompute\", \n", - " size=\"STANDARD_DS3_V2\", \n", - " min_instances=0, \n", - " max_instances=4,\n", - " location=\"westeurope\", \t\n", - ")\n", - "\n", - "ml_client.compute.begin_create_or_update(my_cluster)\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554474840 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 2. Register Data Asset\n", - "\n", - "**Datastore** - Azure Machine Learning Datastores securely keep the connection information to your data storage on Azure, so you don't have to code it in your scripts.\n", - "\n", - "An Azure Machine Learning datastore is a **reference** to an **existing** storage account on Azure. The benefits of creating and using a datastore are:\n", - "* A common and easy-to-use API to interact with different storage type. \n", - "* Easier to discover useful datastores when working as a team.\n", - "* When using credential-based access (service principal/SAS/key), the connection information is secured so you don't have to code it in your scripts.\n", - "\n", - "Supported Data Resources: \n", - "\n", - "* Azure Storage blob container\n", - "* Azure Storage file share\n", - "* Azure Data Lake Gen 1\n", - "* Azure Data Lake Gen 2\n", - "* Azure SQL Database \n", - "* Azure PostgreSQL Database\n", - "* Azure MySQL Database\n", - "\n", - "It is not a requirement to use Azure Machine Learning datastores - you can use storage URIs directly assuming you have access to the underlying data.\n", - "\n", - "You can create a datastore using the Studio, the cli and the sdk.\n", - "\n", - "
\n", - "\n", - "We can create a **datastore** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "\n", - "\n", - "**Data asset** - Create data assets in your workspace to share with team members, version, and track data lineage.\n", - "\n", - "By creating a data asset, you create a reference to the data source location, along with a copy of its metadata. \n", - "\n", - "The benefits of creating data assets are:\n", - "\n", - "* You can **share and reuse data** with other members of the team such that they do not need to remember file locations.\n", - "* You can **seamlessly access data** during model training (on any supported compute type) without worrying about connection strings or data paths.\n", - "* You can **version** the data.\n", - "\n", - "
\n", - "\n", - "We can create a **data asset** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "from azure.ai.ml.entities import Data\n", - "from azure.ai.ml.constants import AssetTypes\n", - "\n", - "my_data = Data(\n", - " path=\"../../data/taxi-data.csv\",\n", - " type=\"uri_file\",\n", - " description=\"Taxi dataset\",\n", - " name=\"taxi-data\"\n", - ")\n", - "ml_client.data.create_or_update(my_data)" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554479153 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 3. Register Train Environment\n", - "\n", - "Azure Machine Learning environments define the execution environments for your **jobs** or **deployments** and encapsulate the dependencies for your code. \n", - "\n", - "Azure ML uses the environment specification to create the Docker container that your **training** or **scoring code** runs in on the specified compute target.\n", - "\n", - "Create an environment from a\n", - "* conda specification\n", - "* Docker image\n", - "* Docker build context\n", - "\n", - "There are two types of environments in Azure ML: **curated** and **custom environments**. Curated environments are predefined environments containing popular ML frameworks and tooling. Custom environments are user-defined.\n", - "\n", - "
\n", - "\n", - "We can register an **environment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "from azure.ai.ml.entities import Environment\n", - "\n", - "my_environment = Environment(\n", - " image=\"mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04\",\n", - " conda_file=\"../../data-science/environment/train-conda.yml\",\n", - " name=\"taxi-train-env\",\n", - " description=\"Environment created from a Docker image plus Conda environment to train taxi model.\",\n", - ")\n", - "\n", - "ml_client.environments.create_or_update(my_environment)" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554483854 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 4. Create Pipeline Job\n", - "\n", - "**AML Job**:\n", - "\n", - "Azure ML provides several ways to train your models, from code-first solutions to low-code solutions:\n", - "\n", - "* Azure ML supports script files in python, R, Java, Julia or C#. All you need to learn is YAML format and command lines to use Azure ML.\n", - "\n", - "* Distributed Training: AML supports integrations with popular frameworks, PyTorch and TensorFlow. Both frameworks employ data parallelism & model parallelism for distributed training.\n", - "\n", - "* Automated ML - Train models without extensive data science or programming knowledge.\n", - "\n", - "* Designer - drag and drop web-based UI.\n", - "\n", - "
\n", - "\n", - "We can submit a **job** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "
\n", - " \n", - "**AML Pipelines**:\n", - "\n", - "An AML pipeline is an independently executable workflow of a complete machine learning task. It helps standardizing the best practices of producing a machine learning model: The core of a machine learning pipeline is to split a complete machine learning task into a multistep workflow. Each step is a manageable component that can be developed, optimized, configured, and automated individually. \n", - "\n", - "
\n", - "\n", - "We can submit a **pipeline job** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "from azure.ai.ml.dsl import pipeline\n", - "from azure.ai.ml import Input, Output, command\n", - "from azure.ai.ml.constants import AssetTypes, InputOutputModes\n", - "\n", - "\n", - "# 1. Define components\n", - "\n", - "prep_data = command( \n", - " name=\"prep_data\",\n", - " display_name=\"prep-data\",\n", - " code=\"../../data-science/src/prep\",\n", - " command=\"python prep.py \\\n", - " --raw_data ${{inputs.raw_data}} \\\n", - " --train_data ${{outputs.train_data}} \\\n", - " --val_data ${{outputs.val_data}} \\\n", - " --test_data ${{outputs.test_data}} \\\n", - " --enable_monitoring ${{inputs.enable_monitoring}} \\\n", - " --table_name ${{inputs.table_name}}\",\n", - " environment=\"taxi-train-env@latest\",\n", - " inputs={\n", - " \"raw_data\": Input(type=\"uri_file\"),\n", - " \"enable_monitoring\": Input(type=\"string\"),\n", - " \"table_name\": Input(type=\"string\")\n", - " },\n", - " outputs={\n", - " \"train_data\": Output(type=\"uri_folder\"),\n", - " \"val_data\": Output(type=\"uri_folder\"),\n", - " \"test_data\": Output(type=\"uri_folder\"),\n", - " }\n", - ")\n", - "\n", - "train_model = command( \n", - " name=\"train_model\",\n", - " display_name=\"train-model\",\n", - " code=\"../../data-science/src/train\",\n", - " command=\"python train.py \\\n", - " --train_data ${{inputs.train_data}} \\\n", - " --model_output ${{outputs.model_output}}\",\n", - " environment=\"taxi-train-env@latest\",\n", - " inputs={\"train_data\": Input(type=\"uri_folder\")},\n", - " outputs={\"model_output\": Output(type=\"uri_folder\")}\n", - ")\n", - "\n", - "evaluate_model = command(\n", - " name=\"evaluate_model\",\n", - " display_name=\"evaluate-model\",\n", - " code=\"../../data-science/src/evaluate\",\n", - " command=\"python evaluate.py \\\n", - " --model_name ${{inputs.model_name}} \\\n", - " --model_input ${{inputs.model_input}} \\\n", - " --test_data ${{inputs.test_data}} \\\n", - " --evaluation_output ${{outputs.evaluation_output}}\",\n", - " environment=\"taxi-train-env@latest\",\n", - " inputs={\n", - " \"model_name\": Input(type=\"string\"),\n", - " \"model_input\": Input(type=\"uri_folder\"),\n", - " \"test_data\": Input(type=\"uri_folder\")\n", - " },\n", - " outputs={\n", - " \"evaluation_output\": Output(type=\"uri_folder\")\n", - " }\n", - ")\n", - "\n", - "register_model = command(\n", - " name=\"register_model\",\n", - " display_name=\"register-model\",\n", - " code=\"../../data-science/src/register\",\n", - " command=\"python register.py \\\n", - " --model_name ${{inputs.model_name}} \\\n", - " --model_path ${{inputs.model_path}} \\\n", - " --evaluation_output ${{inputs.evaluation_output}} \\\n", - " --model_info_output_path ${{outputs.model_info_output_path}}\",\n", - " environment=\"taxi-train-env@latest\",\n", - " inputs={\n", - " \"model_name\": Input(type=\"string\"),\n", - " \"model_path\": Input(type=\"uri_folder\"),\n", - " \"evaluation_output\": Input(type=\"uri_folder\")\n", - " },\n", - " outputs={\n", - " \"model_info_output_path\": Output(type=\"uri_folder\")\n", - " }\n", - ")\n", - "\n", - "# 2. Construct pipeline\n", - "@pipeline()\n", - "def taxi_training_pipeline(raw_data, enable_monitoring, table_name):\n", - " \n", - " prep = prep_data(\n", - " raw_data=raw_data,\n", - " enable_monitoring=enable_monitoring, \n", - " table_name=table_name\n", - " )\n", - "\n", - " train = train_model(\n", - " train_data=prep.outputs.train_data\n", - " )\n", - "\n", - " evaluate = evaluate_model(\n", - " model_name=\"taxi-model\",\n", - " model_input=train.outputs.model_output,\n", - " test_data=prep.outputs.test_data\n", - " )\n", - "\n", - "\n", - " register = register_model(\n", - " model_name=\"taxi-model\",\n", - " model_path=train.outputs.model_output,\n", - " evaluation_output=evaluate.outputs.evaluation_output\n", - " )\n", - "\n", - " return {\n", - " \"pipeline_job_train_data\": prep.outputs.train_data,\n", - " \"pipeline_job_test_data\": prep.outputs.test_data,\n", - " \"pipeline_job_trained_model\": train.outputs.model_output,\n", - " \"pipeline_job_score_report\": evaluate.outputs.evaluation_output,\n", - " }\n", - "\n", - "\n", - "pipeline_job = taxi_training_pipeline(\n", - " Input(type=\"uri_file\", path=\"taxi-data@latest\"), \"false\", \"taximonitoring\"\n", - ")\n", - "\n", - "# set pipeline level compute\n", - "pipeline_job.settings.default_compute = \"cpu-cluster\"\n", - "# set pipeline level datastore\n", - "pipeline_job.settings.default_datastore = \"workspaceblobstore\"" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554553702 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "pipeline_job = ml_client.jobs.create_or_update(\n", - " pipeline_job, experiment_name=\"taxi-training\"\n", - ")\n", - "pipeline_job" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671554563966 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "# Online Endpoint\n", - "\n", - "Online endpoints are endpoints that are used for online (real-time) inferencing. They receive data from clients and can send responses back in real time.\n", - "\n", - "An **endpoint** is an HTTPS endpoint that clients can call to receive the inferencing (scoring) output of a trained model. It provides:\n", - "* Authentication using \"key & token\" based auth\n", - "* SSL termination\n", - "* A stable scoring URI (endpoint-name.region.inference.ml.azure.com)\n", - "\n", - "A **deployment** is a set of resources required for hosting the model that does the actual inferencing.\n", - "A single endpoint can contain multiple deployments.\n", - "\n", - "Features of the managed online endpoint:\n", - "\n", - "* **Test and deploy locally** for faster debugging\n", - "* Traffic to one deployment can also be **mirrored** (copied) to another deployment.\n", - "* **Application Insights integration**\n", - "* Security\n", - "* Authentication: Key and Azure ML Tokens\n", - "* Automatic Autoscaling\n", - "* Visual Studio Code debugging\n", - "\n", - "**blue-green deployment**: An approach where a new version of a web service is introduced to production by deploying it to a small subset of users/requests before deploying it fully.\n", - "\n", - "
\n", - "\"Online\n", - "
" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - } - }, - { - "cell_type": "markdown", - "source": [ - "## 1. Create Online Endpoint\n", - "\n", - "We can create an **online endpoint** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - }, - "tags": [] - } - }, - { - "cell_type": "code", - "source": [ - "from azure.ai.ml.entities import ManagedOnlineEndpoint\n", - "\n", - "# create an online endpoint\n", - "online_endpoint = ManagedOnlineEndpoint(\n", - " name=\"taxi-online-ep\", \n", - " description=\"Taxi online endpoint\",\n", - " auth_mode=\"aml_token\",\n", - ")\n", - "ml_client.online_endpoints.begin_create_or_update(\n", - " online_endpoint, \n", - ")\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671555421278 - }, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 2. Create Online Deployment\n", - "\n", - "To create a deployment to online endpoint, you need to specify the following elements:\n", - "\n", - "* Model files (or specify a registered model in your workspace)\n", - "* Scoring script - code needed to do scoring/inferencing\n", - "* Environment - a Docker image with Conda dependencies, or a dockerfile\n", - "* Compute instance & scale settings\n", - "\n", - "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated.\n", - "\n", - "We can create an **online deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": { - "tags": [] - } - }, - { - "cell_type": "code", - "source": [ - "# create online deployment\n", - "from azure.ai.ml.entities import ManagedOnlineDeployment, Model, Environment\n", - "\n", - "model = \"taxi-model@latest\"\n", - "\n", - "blue_deployment = ManagedOnlineDeployment(\n", - " name=\"blue\",\n", - " endpoint_name=\"taxi-online-ep\",\n", - " model=model,\n", - " instance_type=\"Standard_DS2_v2\",\n", - " instance_count=1,\n", - ")\n", - "\n", - "ml_client.online_deployments.begin_create_or_update(\n", - " deployment=blue_deployment\n", - ")\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1671557131286 - }, - "jupyter": { - "outputs_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 3. Allocate Traffic" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# allocate traffic\n", - "# blue deployment takes 100 traffic\n", - "online_endpoint.traffic = {\"blue\": 100}\n", - "ml_client.begin_create_or_update(online_endpoint)" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1670199946158 - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 4. Invoke and Test Endpoint\n", - "\n", - "We can invoke the **online deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Invoke\n", - "
" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# invoke and test endpoint\n", - "ml_client.online_endpoints.invoke(\n", - " endpoint_name=\"taxi-online-endpoint-2\",\n", - " request_file=\"../../data/taxi-request.json\",\n", - ")\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1668246829854 - } - } - }, - { - "cell_type": "markdown", - "source": [ - "# Batch Endpoint\n", - "\n", - "**Batch endpoints** are endpoints that are used to do batch inferencing on large volumes of data over a period of time. \n", - "\n", - "**Batch endpoints** receive pointers to data and run jobs asynchronously to process the data in parallel on compute clusters. Batch endpoints store outputs to a data store for further analysis.\n", - "\n", - "
\n", - "\"Concept\n", - "
" - ], - "metadata": {} - }, - { - "cell_type": "markdown", - "source": [ - "## 1. Create Batch Compute Cluster" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# create compute cluster to be used by batch cluster\n", - "from azure.ai.ml.entities import AmlCompute\n", - "\n", - "my_cluster = AmlCompute(\n", - " name=\"batch-cluster\",\n", - " type=\"amlcompute\", \n", - " size=\"STANDARD_DS3_V2\", \n", - " min_instances=0, \n", - " max_instances=3,\n", - " location=\"westeurope\", \t\n", - ")\n", - "ml_client.compute.begin_create_or_update(my_cluster)" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1668247613855 - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 2. Create Batch Endpoint\n", - "\n", - "We can create the **batch endpoint** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "\n", - "
\n", - "\"Create\n", - "
" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# create batch endpoint\n", - "from azure.ai.ml.entities import BatchEndpoint\n", - "\n", - "batch_endpoint = BatchEndpoint(\n", - " name=\"taxi-batch-endpoint-2\",\n", - " description=\"Taxi batch endpoint\",\n", - " tags={\"model\": \"taxi-model@latest\"},\n", - ")\n", - "\n", - "ml_client.begin_create_or_update(batch_endpoint)\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1668247623872 - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 3. Create Batch Deployment\n", - "\n", - "We can create the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Create\n", - "
\n", - "\n", - "Note that if you're deploying **MLFlow models**, there's no need to provide **a scoring script** and execution **environment**, as both are autogenerated." - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# create batch deployment\n", - "from azure.ai.ml.entities import BatchDeployment, Model, Environment\n", - "from azure.ai.ml.constants import BatchDeploymentOutputAction\n", - "\n", - "model = \"taxi-model@latest\"\n", - "\n", - "batch_deployment = BatchDeployment(\n", - " name=\"taxi-batch-dp\",\n", - " description=\"this is a sample batch deployment\",\n", - " endpoint_name=\"taxi-batch-endpoint-2\",\n", - " model=model,\n", - " compute=\"batch-cluster\",\n", - " instance_count=2,\n", - " max_concurrency_per_instance=2,\n", - " mini_batch_size=10,\n", - " output_action=BatchDeploymentOutputAction.APPEND_ROW,\n", - " output_file_name=\"predictions.csv\",\n", - ")\n", - "\n", - "ml_client.begin_create_or_update(batch_deployment)\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1668247892781 - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Set deployment as the default deployment in the endpoint:" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "batch_endpoint = ml_client.batch_endpoints.get(\"taxi-batch-endpoint-2\")\n", - "batch_endpoint.defaults.deployment_name = batch_deployment.name\n", - "ml_client.batch_endpoints.begin_create_or_update(batch_endpoint)" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "gather": { - "logged": 1668249096086 - }, - "jupyter": { - "outputs_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## 4. Invoke and Test Endpoint\n", - "\n", - "We can invoke the **batch deployment** with cli v2 or sdk v2 using the following syntax:\n", - "\n", - "
\n", - "\"Invoke\n", - "
" - ], - "metadata": {} - }, - { - "cell_type": "code", - "source": [ - "# invoke and test endpoint\n", - "from azure.ai.ml import Input\n", - "from azure.ai.ml.constants import AssetTypes, InputOutputModes\n", - "\n", - "input = Input(path=\"../../data/taxi-batch.csv\", \n", - " type=AssetTypes.URI_FILE, \n", - " mode=InputOutputModes.DOWNLOAD)\n", - "\n", - "\n", - "# invoke the endpoint for batch scoring job\n", - "ml_client.batch_endpoints.invoke(\n", - " endpoint_name=\"taxi-batch-endpoint\",\n", - " input=input,\n", - " deployment_name=\"taxi-batch-dp\"\n", - ")\n" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "gather": { - "logged": 1668689480461 - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python310-sdkv2" - }, - "kernelspec": { - "name": "python310-sdkv2", - "language": "python", - "display_name": "Python 3.10 - SDK V2" - }, - "language_info": { - "name": "python", - "version": "3.10.6", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "microsoft": { - "host": { - "AzureML": { - "notebookHasBeenCompleted": true - } - } - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file diff --git a/mlops/devops-pipelines/deploy-batch-endpoint-pipeline.yml b/mlops/devops-pipelines/deploy-batch-endpoint-pipeline.yml deleted file mode 100644 index e0ba72b..0000000 --- a/mlops/devops-pipelines/deploy-batch-endpoint-pipeline.yml +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -variables: -- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}: - # 'main' branch: PRD environment - - template: ../../config-infra-prod.yml -- ${{ if ne(variables['Build.SourceBranchName'], 'main') }}: - # 'develop' or feature branches: DEV environment - - template: ../../config-infra-dev.yml -- name: version - value: aml-cli-v2 -- name: endpoint_name - value: taxi-batch-$(namespace)$(postfix)$(environment) -- name: endpoint_type - value: batch - -trigger: -- none - -pool: - vmImage: ubuntu-20.04 - - -resources: - repositories: - - repository: mlops-templates # Template Repo - name: Azure/mlops-templates # need to change org name from "Azure" to your own org - endpoint: github-connection # need to set up and hardcode - type: github - ref: main - - -stages: -- stage: CreateBatchEndpoint - displayName: Create/Update Batch Endpoint - jobs: - - job: DeployBatchEndpoint - steps: - - checkout: self - path: s/ - - checkout: mlops-templates - path: s/templates/ - - template: templates/${{ variables.version }}/install-az-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/install-aml-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/connect-to-workspace.yml@mlops-templates - - template: templates/${{ variables.version }}/create-compute.yml@mlops-templates - parameters: - cluster_name: batch-cluster # name must match cluster name in deployment file below - size: STANDARD_DS3_V2 - min_instances: 0 - max_instances: 5 - cluster_tier: dedicated - - template: templates/${{ variables.version }}/create-endpoint.yml@mlops-templates - parameters: - endpoint_file: mlops/azureml/deploy/batch/batch-endpoint.yml - - template: templates/${{ variables.version }}/create-deployment.yml@mlops-templates - parameters: - deployment_name: taxi-batch-dp - deployment_file: mlops/azureml/deploy/batch/batch-deployment.yml - - template: templates/${{ variables.version }}/test-deployment.yml@mlops-templates - parameters: - deployment_name: taxi-batch-dp - sample_request: data/taxi-batch.csv - request_type: uri_file #either uri_folder or uri_file - diff --git a/mlops/devops-pipelines/deploy-model-training-pipeline.yml b/mlops/devops-pipelines/deploy-model-training-pipeline.yml deleted file mode 100644 index bfbab87..0000000 --- a/mlops/devops-pipelines/deploy-model-training-pipeline.yml +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -variables: -- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}: - # 'main' branch: PRD environment - - template: ../../config-infra-prod.yml -- ${{ if ne(variables['Build.SourceBranchName'], 'main') }}: - # 'develop' or feature branches: DEV environment - - template: ../../config-infra-dev.yml -- name: version - value: aml-cli-v2 - -resources: - repositories: - - repository: mlops-templates # Template Repo - name: Azure/mlops-templates # need to change org name from "Azure" to your own org - endpoint: github-connection # need to set up and hardcode - type: github - ref: main - -trigger: -- none - -pool: - vmImage: ubuntu-20.04 - -stages: -- stage: DeployTrainingPipeline - displayName: Deploy Training Pipeline - jobs: - - job: DeployTrainingPipeline - timeoutInMinutes: 120 # how long to run the job before automatically cancelling - steps: - - checkout: self - path: s/ - - checkout: mlops-templates - path: s/templates/ - - template: templates/tests/unit-tests.yml@mlops-templates - - template: templates/${{ variables.version }}/install-az-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/install-aml-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/connect-to-workspace.yml@mlops-templates - - template: templates/${{ variables.version }}/register-environment.yml@mlops-templates - parameters: - build_type: conda - environment_name: taxi-train-env - environment_file: mlops/azureml/train/environment.yml - enable_monitoring: $(enable_monitoring) - - template: templates/${{ variables.version }}/register-data.yml@mlops-templates - parameters: - data_type: uri_file - data_name: taxi-data - data_file: mlops/azureml/train/data.yml - - template: templates/${{ variables.version }}/run-pipeline.yml@mlops-templates - parameters: - pipeline_file: mlops/azureml/train/pipeline.yml - experiment_name: $(environment)_taxi_fare_train_$(Build.SourceBranchName) - display_name: $(environment)_taxi_fare_run_$(Build.BuildID) - enable_monitoring: $(enable_monitoring) \ No newline at end of file diff --git a/mlops/devops-pipelines/deploy-online-endpoint-pipeline.yml b/mlops/devops-pipelines/deploy-online-endpoint-pipeline.yml deleted file mode 100644 index 397fa69..0000000 --- a/mlops/devops-pipelines/deploy-online-endpoint-pipeline.yml +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. - -variables: -- ${{ if eq(variables['Build.SourceBranchName'], 'main') }}: - # 'main' branch: PRD environment - - template: ../../config-infra-prod.yml -- ${{ if ne(variables['Build.SourceBranchName'], 'main') }}: - # 'develop' or feature branches: DEV environment - - template: ../../../../config-infra-dev.yml -- name: version - value: aml-cli-v2 -- name: endpoint_name - value: taxi-online-$(namespace)$(postfix)$(environment) -- name: endpoint_type - value: online - - -trigger: -- none - -pool: - vmImage: ubuntu-20.04 - - -resources: - repositories: - - repository: mlops-templates # Template Repo - name: Azure/mlops-templates # need to change org name from "Azure" to your own org - endpoint: github-connection # need to set up and hardcode - type: github - ref: main - -stages: -- stage: CreateOnlineEndpoint - displayName: Create/Update Online Endpoint - jobs: - - job: DeployOnlineEndpoint - steps: - - checkout: self - path: s/ - - checkout: mlops-templates - path: s/templates/ - - template: templates/${{ variables.version }}/install-az-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/install-aml-cli.yml@mlops-templates - - template: templates/${{ variables.version }}/connect-to-workspace.yml@mlops-templates - - template: templates/${{ variables.version }}/create-endpoint.yml@mlops-templates - parameters: - endpoint_file: mlops/azureml/deploy/online/online-endpoint.yml - - template: templates/${{ variables.version }}/create-deployment.yml@mlops-templates - parameters: - deployment_name: taxi-online-dp - deployment_file: mlops/azureml/deploy/online/online-deployment.yml - - template: templates/${{ variables.version }}/allocate-traffic.yml@mlops-templates - parameters: - traffic_allocation: taxi-online-dp=100 - - template: templates/${{ variables.version }}/test-deployment.yml@mlops-templates - parameters: - deployment_name: taxi-online-dp - sample_request: data/taxi-request.json - request_type: json diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 46a12d8..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -black==22.3.0 -flake8==4.0.1 -isort==5.10.1 -pre-commit==2.19.0