From 11716e8e230c480dba683a3539cb038f0d69f80b Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Fri, 6 Dec 2019 22:54:22 +0100 Subject: [PATCH 001/109] Simplified build with Azure CLI; various bugfixes (#121) --- .pipelines/azdo-ci-build-train.yml | 66 +++++--- code/evaluate/evaluate_model.py | 8 +- code/register/register_model.py | 48 +----- code/scoring/score.py | 12 +- code/training/train.py | 146 ++++++++++-------- docs/code_description.md | 1 + docs/getting_started.md | 110 +++++++------ docs/images/release-task-createimage.PNG | Bin 0 -> 232898 bytes docs/images/release-webapp-pipeline.PNG | Bin 10362 -> 38747 bytes environment_setup/requirements.txt | 1 + ml_service/pipelines/build_train_pipeline.py | 20 +-- .../pipelines/build_train_pipeline_with_r.py | 19 ++- .../build_train_pipeline_with_r_on_dbricks.py | 16 +- ml_service/pipelines/run_train_pipeline.py | 43 +++--- ml_service/pipelines/verify_train_pipeline.py | 66 ++++++++ ml_service/util/attach_compute.py | 2 +- ml_service/util/create_scoring_image.py | 17 +- ml_service/util/create_scoring_image.sh | 17 ++ ml_service/util/workspace.py | 29 ---- tests/unit/code_test.py | 40 +++-- 20 files changed, 348 insertions(+), 313 deletions(-) create mode 100644 docs/images/release-task-createimage.PNG create mode 100644 ml_service/pipelines/verify_train_pipeline.py create mode 100644 ml_service/util/create_scoring_image.sh delete mode 100644 ml_service/util/workspace.py diff --git a/.pipelines/azdo-ci-build-train.yml b/.pipelines/azdo-ci-build-train.yml index d1d92d74..d1d95843 100644 --- a/.pipelines/azdo-ci-build-train.yml +++ b/.pipelines/azdo-ci-build-train.yml @@ -7,8 +7,7 @@ trigger: exclude: - docs/ - environment_setup/ - - charts/ - - ml_service/util/create_scoring_image.py + - ml_service/util/create_scoring_image.* variables: - template: azdo-variables.yml @@ -27,12 +26,15 @@ stages: timeoutInMinutes: 0 steps: - template: azdo-base-pipeline.yml - - script: | - # Invoke the Python building and publishing a training pipeline - python3 $(Build.SourcesDirectory)/ml_service/pipelines/${{ variables.BUILD_TRAIN_SCRIPT }} - failOnStderr: 'false' - env: - SP_APP_SECRET: '$(SP_APP_SECRET)' + - task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + # Invoke the Python building and publishing a training pipeline + python $(Build.SourcesDirectory)/ml_service/pipelines/${{ variables.BUILD_TRAIN_SCRIPT }} displayName: 'Publish Azure Machine Learning Pipeline' - stage: 'Trigger_AML_Pipeline' displayName: 'Train, evaluate, register model via previously published AML pipeline' @@ -45,22 +47,35 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - script: | - python $(Build.SourcesDirectory)/ml_service/pipelines/run_train_pipeline.py - # Set AMLPIPELINEID variable for next AML Pipeline task in next job - source $(Build.SourcesDirectory)/tmp.sh - echo "##vso[task.setvariable variable=AMLPIPELINEID;isOutput=true]$AMLPIPELINE_ID" - rm $(Build.SourcesDirectory)/tmp.sh + - task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python $(Build.SourcesDirectory)/ml_service/pipelines/run_train_pipeline.py --output_pipeline_id_file "pipeline_id.txt" --skip_train_execution + # Set AMLPIPELINEID variable for next AML Pipeline task in next job + AMLPIPELINEID="$(cat pipeline_id.txt)" + echo "##vso[task.setvariable variable=AMLPIPELINEID;isOutput=true]$AMLPIPELINEID" name: 'getpipelineid' displayName: 'Get Pipeline ID' - env: - SP_APP_SECRET: '$(SP_APP_SECRET)' + - bash: | + # Generate a hyperparameter value as a random number between 0 and 1. + # A random value is used here to make the Azure ML dashboards "interesting" when testing + # the solution sample. + alpha=$(printf "0.%03d\n" $((($RANDOM*1000)/32767))) + echo "Alpha: $alpha" + echo "##vso[task.setvariable variable=ALPHA;isOutput=true]$alpha" + name: 'getalpha' + displayName: 'Generate random value for hyperparameter alpha' - job: "Run_ML_Pipeline" dependsOn: "Get_Pipeline_ID" displayName: "Trigger ML Training Pipeline" pool: server variables: AMLPIPELINE_ID: $[ dependencies.Get_Pipeline_ID.outputs['getpipelineid.AMLPIPELINEID'] ] + ALPHA: $[ dependencies.Get_Pipeline_ID.outputs['getalpha.ALPHA'] ] steps: - task: ms-air-aiagility.vss-services-azureml.azureml-restApi-task.MLPublishedPipelineRestAPITask@0 displayName: 'Invoke ML pipeline' @@ -68,7 +83,7 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' PipelineId: '$(AMLPIPELINE_ID)' ExperimentName: '$(EXPERIMENT_NAME)' - PipelineParameters: '"model_name": "sklearn_regression_model.pkl"' + PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)", "hyperparameter_alpha": "$(ALPHA)"}' - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" displayName: "Determine if evaluation succeeded and new model is registered" @@ -77,11 +92,15 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - script: | - python $(Build.SourcesDirectory)/code/register/register_model.py --build_id $(Build.BuildId) --validate True - displayName: 'Check if new model registered' - env: - SP_APP_SECRET: '$(SP_APP_SECRET)' + - task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python $(Build.SourcesDirectory)/ml_service/pipelines/verify_train_pipeline.py --build_id $(Build.BuildId) + displayName: "Determine if evaluation succeeded and new model is registered" - task: CopyFiles@2 displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)' inputs: @@ -89,10 +108,11 @@ stages: TargetFolder: '$(Build.ArtifactStagingDirectory)' Contents: | code/scoring/** + ml_service/util/** - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact' inputs: ArtifactName: 'mlops-pipelines' publishLocation: 'container' pathtoPublish: '$(Build.ArtifactStagingDirectory)' - TargetPath: '$(Build.ArtifactStagingDirectory)' \ No newline at end of file + TargetPath: '$(Build.ArtifactStagingDirectory)' diff --git a/code/evaluate/evaluate_model.py b/code/evaluate/evaluate_model.py index 2c01c1e0..f59a87fd 100644 --- a/code/evaluate/evaluate_model.py +++ b/code/evaluate/evaluate_model.py @@ -27,7 +27,6 @@ import sys from azureml.core import Run, Workspace, Experiment import argparse -from azureml.core.authentication import ServicePrincipalAuthentication import traceback run = Run.get_context() @@ -48,16 +47,11 @@ build_id = os.environ.get('BUILD_BUILDID') # run_id useful to query previous runs run_id = "57fee47f-5ae8-441c-bc0c-d4c371f32d70" - service_principal = ServicePrincipalAuthentication( - tenant_id=tenant_id, - service_principal_id=app_id, - service_principal_password=app_secret) aml_workspace = Workspace.get( name=workspace_name, subscription_id=subscription_id, - resource_group=resource_group, - auth=service_principal + resource_group=resource_group ) ws = aml_workspace exp = Experiment(ws, experiment_name) diff --git a/code/register/register_model.py b/code/register/register_model.py index bdef3600..fff5c7b6 100644 --- a/code/register/register_model.py +++ b/code/register/register_model.py @@ -29,7 +29,6 @@ import traceback from azureml.core import Run, Experiment, Workspace from azureml.core.model import Model as AMLModel -from azureml.core.authentication import ServicePrincipalAuthentication def main(): @@ -37,37 +36,23 @@ def main(): run = Run.get_context() if (run.id.startswith('OfflineRun')): from dotenv import load_dotenv - sys.path.append(os.path.abspath("./code/util")) # NOQA: E402 - from model_helper import get_model_by_tag # For local development, set values in this section load_dotenv() workspace_name = os.environ.get("WORKSPACE_NAME") experiment_name = os.environ.get("EXPERIMENT_NAME") resource_group = os.environ.get("RESOURCE_GROUP") subscription_id = os.environ.get("SUBSCRIPTION_ID") - tenant_id = os.environ.get("TENANT_ID") - model_name = os.environ.get("MODEL_NAME") - app_id = os.environ.get('SP_APP_ID') - app_secret = os.environ.get('SP_APP_SECRET') build_id = os.environ.get('BUILD_BUILDID') # run_id useful to query previous runs run_id = "bd184a18-2ac8-4951-8e78-e290bef3b012" - service_principal = ServicePrincipalAuthentication( - tenant_id=tenant_id, - service_principal_id=app_id, - service_principal_password=app_secret) - aml_workspace = Workspace.get( name=workspace_name, subscription_id=subscription_id, - resource_group=resource_group, - auth=service_principal + resource_group=resource_group ) ws = aml_workspace exp = Experiment(ws, experiment_name) else: - sys.path.append(os.path.abspath("./util")) # NOQA: E402 - from model_helper import get_model_by_tag ws = run.experiment.workspace exp = run.experiment run_id = 'amlcompute' @@ -89,12 +74,6 @@ def main(): help="Name of the Model", default="sklearn_regression_model.pkl", ) - parser.add_argument( - "--validate", - type=str, - help="Set to true to only validate if model is registered for run", - default=False, - ) args = parser.parse_args() if (args.build_id is not None): @@ -103,30 +82,13 @@ def main(): run_id = args.run_id if (run_id == 'amlcompute'): run_id = run.parent.id - if (args.validate is not None): - validate = args.validate model_name = args.model_name - if (validate): - try: - tag_name = 'BuildId' - model = get_model_by_tag( - model_name, tag_name, build_id, exp.workspace) - if (model is not None): - print("Model was registered for this build.") - if (model is None): - print("Model was not registered for this run.") - sys.exit(1) - except Exception as e: - print(e) - print("Model was not registered for this run.") - sys.exit(1) + if (build_id is None): + register_aml_model(model_name, exp, run_id) else: - if (build_id is None): - register_aml_model(model_name, exp, run_id) - else: - run.tag("BuildId", value=build_id) - register_aml_model(model_name, exp, run_id, build_id) + run.tag("BuildId", value=build_id) + register_aml_model(model_name, exp, run_id, build_id) def model_already_registered(model_name, exp, run_id): diff --git a/code/scoring/score.py b/code/scoring/score.py index dafe6bee..716cd0e4 100644 --- a/code/scoring/score.py +++ b/code/scoring/score.py @@ -39,14 +39,10 @@ def init(): def run(raw_data): - try: - data = json.loads(raw_data)["data"] - data = numpy.array(data) - result = model.predict(data) - return json.dumps({"result": result.tolist()}) - except Exception as e: - result = str(e) - return json.dumps({"error": result}) + data = json.loads(raw_data)["data"] + data = numpy.array(data) + result = model.predict(data) + return {"result": result.tolist()} if __name__ == "__main__": diff --git a/code/training/train.py b/code/training/train.py index 5f8c19ef..05c58683 100644 --- a/code/training/train.py +++ b/code/training/train.py @@ -31,73 +31,83 @@ from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from sklearn.externals import joblib -import numpy as np - - -parser = argparse.ArgumentParser("train") -parser.add_argument( - "--build_id", - type=str, - help="The build ID of the build triggering this pipeline run", -) -parser.add_argument( - "--model_name", - type=str, - help="Name of the Model", - default="sklearn_regression_model.pkl", -) - -args = parser.parse_args() - -print("Argument 1: %s" % args.build_id) -print("Argument 2: %s" % args.model_name) - -model_name = args.model_name -build_id = args.build_id - -run = Run.get_context() -exp = run.experiment -ws = run.experiment.workspace - -X, y = load_diabetes(return_X_y=True) -columns = ["age", "gender", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6"] -X_train, X_test, y_train, y_test = train_test_split( - X, y, test_size=0.2, random_state=0) -data = {"train": {"X": X_train, "y": y_train}, - "test": {"X": X_test, "y": y_test}} - -print("Running train.py") - -# Randomly pic alpha -alphas = np.arange(0.0, 1.0, 0.05) -alpha = alphas[np.random.choice(alphas.shape[0], 1, replace=False)][0] -print(alpha) -run.log("alpha", alpha) -run.parent.log("alpha", alpha) -reg = Ridge(alpha=alpha) -reg.fit(data["train"]["X"], data["train"]["y"]) -preds = reg.predict(data["test"]["X"]) -run.log("mse", mean_squared_error( - preds, data["test"]["y"]), description="Mean squared error metric") -run.parent.log("mse", mean_squared_error( - preds, data["test"]["y"]), description="Mean squared error metric") - -with open(model_name, "wb") as file: + + +def train_model(run, data, alpha): + run.log("alpha", alpha) + run.parent.log("alpha", alpha) + reg = Ridge(alpha=alpha) + reg.fit(data["train"]["X"], data["train"]["y"]) + preds = reg.predict(data["test"]["X"]) + run.log("mse", mean_squared_error( + preds, data["test"]["y"]), description="Mean squared error metric") + run.parent.log("mse", mean_squared_error( + preds, data["test"]["y"]), description="Mean squared error metric") + return reg + + +def main(): + print("Running train.py") + + parser = argparse.ArgumentParser("train") + parser.add_argument( + "--build_id", + type=str, + help="The build ID of the build triggering this pipeline run", + ) + parser.add_argument( + "--model_name", + type=str, + help="Name of the Model", + default="sklearn_regression_model.pkl", + ) + parser.add_argument( + "--alpha", + type=float, + default=0.5, + help=("Ridge regression regularization strength hyperparameter; " + "must be a positive float.") + ) + + args = parser.parse_args() + + print("Argument [build_id]: %s" % args.build_id) + print("Argument [model_name]: %s" % args.model_name) + print("Argument [alpha]: %s" % args.alpha) + + model_name = args.model_name + build_id = args.build_id + alpha = args.alpha + + run = Run.get_context() + + X, y = load_diabetes(return_X_y=True) + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.2, random_state=0) + data = {"train": {"X": X_train, "y": y_train}, + "test": {"X": X_test, "y": y_test}} + + reg = train_model(run, data, alpha) + joblib.dump(value=reg, filename=model_name) -# upload model file explicitly into artifacts for parent run -run.parent.upload_file(name="./outputs/" + model_name, - path_or_stream=model_name) -print("Uploaded the model {} to experiment {}".format( - model_name, run.experiment.name)) -dirpath = os.getcwd() -print(dirpath) -print("Following files are uploaded ") -print(run.parent.get_file_names()) - -# Add properties to identify this specific training run -run.tag("BuildId", value=build_id) -run.tag("run_type", value="train") -print(f"tags now present for run: {run.tags}") - -run.complete() + # upload model file explicitly into artifacts for parent run + run.parent.upload_file(name="./outputs/" + model_name, + path_or_stream=model_name) + print("Uploaded the model {} to experiment {}".format( + model_name, run.experiment.name)) + dirpath = os.getcwd() + print(dirpath) + print("Following files are uploaded ") + print(run.parent.get_file_names()) + + # Add properties to identify this specific training run + run.tag("BuildId", value=build_id) + run.tag("run_type", value="train") + print(f"tags now present for run: {run.tags}") + + run.complete() + + +if __name__ == '__main__': + main() diff --git a/docs/code_description.md b/docs/code_description.md index bd094ce0..472e781b 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -24,6 +24,7 @@ - `ml_service/pipelines/build_train_pipeline_with_r.py` : builds and publishes an ML training pipeline. It uses R on ML Compute. - `ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py` : builds and publishes an ML training pipeline. It uses R on Databricks Compute. - `ml_service/pipelines/run_train_pipeline.py` : invokes a published ML training pipeline (Python on ML Compute) via REST API. +- `ml_service/pipelines/verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. - `ml_service/util` : contains common utility functions used to build and publish an ML training pipeline. ### Code diff --git a/docs/getting_started.md b/docs/getting_started.md index db4a4938..8cff7ec1 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -10,35 +10,25 @@ following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/ If you already have Azure DevOps account, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). -## Create a Service Principal to login to Azure +## Create an ARM Service Connection to deploy resources -To create service principal, register an application entity in Azure Active -Directory (Azure AD) and grant it the Contributor or Owner role of the -subscription or the resource group where the web service belongs to. See -[how to create service principal](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal) and assign permissions to manage Azure -resource. +The repository includes a DevOps pipeline to deploy the Azure ML workspace and associated resources through Azure Resource Manager. -Please make note of the following values after creating a service principal, we -will need them in subsequent steps: - -* Application (client) ID -* Directory (tenant) ID -* Application Secret - -**Note:** You must have sufficient permissions to register an application with -your Azure AD tenant, and assign the application to a role in your Azure -subscription. Contact your subscription administrator if you don't have the -permissions. Normally a subscription admin can create a Service principal and -can provide you the details. +The pipeline requires an **Azure Resource Manager** +[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). +Given this service connection, you will be able to run the IaC pipeline +and have the required permissions to generate resources. -## Create an Azure DevOps Azure ML Workspace Service Connection -Install the **Azure Machine Learning** extension to your organization from the -[marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), -so that you can set up a service connection to your AML workspace. +![create service connection](./images/create-rm-service-connection.png) -Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group below. +Use **``AzureResourceConnection``** as the connection name, since it is used +in the IaC pipeline definition. Leave the **``Resource Group``** field empty. -**Note:** Creating service connection using Azure Machine Learning extension requires 'Owner' or 'User Access Administrator' permissions on the Workspace. +**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. +You must also have sufficient permissions to register an application with +your Azure AD tenant, or receive the ID and secret of a service principal +from your Azure AD Administrator. That principal must have 'Contributor' +permissions on the subscription. ## Create a Variable Group for your Pipelines @@ -62,16 +52,10 @@ The variable group should contain the following required variables: | --------------------------- | -----------------------------------| | BASE_NAME | [unique base name] | | LOCATION | centralus | -| SP_APP_ID | | -| SP_APP_SECRET | | -| SUBSCRIPTION_ID | | -| TENANT_ID | | | RESOURCE_GROUP | | | WORKSPACE_NAME | mlops-AML-WS | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | -Mark **SP_APP_SECRET** variable as a secret one. - **Note:** The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide here an existing AML Workspace if you have one. @@ -93,7 +77,10 @@ There are more variables used in the project. They're defined in two places one ### Local configuration -In order to configure the project locally you have to create a copy from `.env.example` to the root and name it `.env`. Fill out all missing values and adjust the existing ones to your needs. Please be aware that the local environment also needs access to the Azure subscription so you have to provide the credentials of your service principal and Azure account information here as well. +In order to configure the project locally you have to create a copy from `.env.example` to the root and name it `.env`. Fill out all missing values and adjust the existing ones to your needs. + +For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). Azure CLI will be used to log you in interactively. +Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. ### Azure DevOps configuration @@ -103,7 +90,6 @@ Up until now you should have: * Forked (or cloned) the repo * Created a devops account or use an existing one -* Got service principal details and subscription id * A variable group with all configuration values ## Create Resources with Azure Pipelines @@ -118,18 +104,6 @@ To set up this pipeline, you will need to do the following steps: 1. Create an Azure Resource Manager Service Connection 1. Create a Build IaC Pipeline -### Create an Azure Resource Manager Service Connection - -The pipeline requires an **Azure Resource Manager** -[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). -Given this service connection, you will be able to run the IaC pipeline -and have the required permissions to generate resources. - -![create service connection](./images/create-rm-service-connection.png) - -Use **``AzureResourceConnection``** as the connection name, since it is used -in the IaC pipeline definition. Leave the **``Resource Group``** field empty. - ### Create a Build IaC Pipeline In your DevOps project, create a build pipeline from your forked **GitHub** @@ -152,8 +126,18 @@ Check out created resources in the [Azure Portal](portal.azure.com): Alternatively, you can also use a [cleaning pipeline](../environment_setup/iac-remove-environment.yml) that removes resources created for this project or you can just delete a resource group in the [Azure Portal](portal.azure.com). -Once this resource group is created, be sure that the Service Principal you have -created has access to this resource group. +## Create an Azure DevOps Azure ML Workspace Service Connection +Install the **Azure Machine Learning** extension to your organization from the +[marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), +so that you can set up a service connection to your AML workspace. + +Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group below. + +**Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. +You must also have sufficient permissions to register an application with +your Azure AD tenant, or receive the ID and secret of a service principal +from your Azure AD Administrator. That principal must have Contributor +permissions on the Azure ML Workspace. ## Set up Build, Release Trigger, and Release Deployment Pipelines @@ -241,10 +225,10 @@ Specify task parameters as it is shown in the table below: | ----------------------------- | ---------------------------------------------------------------------------------------------------- | | Display Name | Azure ML Model Deploy | | Azure ML Workspace | mlops-AML-WS | -| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml` | +| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | | Model Deployment Target | Azure Container Instance | | Deployment Name | mlopspython-aci | -| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aci.yml` | +| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aci.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | | Overwrite existing deployment | X | In a similar way, create a stage **Prod (AKS)** and add a single task to the job @@ -259,11 +243,11 @@ Specify task parameters as it is shown in the table below: | --------------------------------- | ---------------------------------------------------------------------------------------------------- | | Display Name | Azure ML Model Deploy | | Azure ML Workspace | mlops-AML-WS | -| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml` | +| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | | Model Deployment Target | Azure Kubernetes Service | | Select AKS Cluster for Deployment | YOUR_DEPLOYMENT_K8S_CLUSTER | | Deployment Name | mlopspython-aks | -| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aks.yml` | +| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aks.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | | Overwrite existing deployment | X | **Note:** Creating of a Kubernetes cluster on AKS is out of scope of this @@ -300,19 +284,33 @@ config. To learn more on how to create a container with AML SDK click [here](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-). Below is release pipeline with two tasks one to create an image using the above -script and second is the deploy the image to Web App for containers -![release_webapp](./images/release-webapp-pipeline.PNG). +script and second is the deploy the image to Web App for containers. + +![release_webapp](./images/release-webapp-pipeline.PNG) + +In the Variables tab, link the pipeline to your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: + +| Variable Name | Suggested Value | +| --------------------------- | -----------------------------------| +| MODEL_NAME | sklearn_regression_model.pkl | +| IMAGE_NAME | diabetes | + +Add as an artifact to the pipeline the result of the **Build Pipeline** as it contains the necessary scripts. + +Use an Agent of type `ubuntu-16.04`. -For the bash script task to invoke the [Create Image Script](../ml_service/util/create_scoring_image.py), specify the following task parameters: +For the Azure CLI task to invoke the [Create Image Script](../ml_service/util/create_scoring_image.py), specify the following task parameters: | Parameter | Value | | ------------------ | --------------------------------------------------------------------------------------------------- | -| Display Name | Create Scoring Image | -| Script | python3 $(System.DefaultWorkingDirectory)/\_MLOpsPythonRepo/ml_service/util/create_scoring_image.py | +| Display name | Create Scoring Image | +| Azure subscription | aml-workspace-connection | +| Script Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipeline/ml_service/util/create_scoring_image.sh`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | +| Working directory | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | ![release_createimage](./images/release-task-createimage.PNG) -Finally, for the Azure WebApp on Container Task, specify the following task +Finally, for the Azure Web App for Containers Task, specify the following task parameters as it is shown in the table below: | Parameter | Value | diff --git a/docs/images/release-task-createimage.PNG b/docs/images/release-task-createimage.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8224db187f09e3ffe64d37c3bf8c7a5d04c0054a GIT binary patch literal 232898 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

&6X+n*JP8b|ftkPmJOrO>j;QMg9t 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≠Y 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%0D!^^_(K*(xt0XqNu& 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℞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

{Sz_MmoteBSYJfMyaG!F>6L9{zd*Ut5;f*T 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 MMYZGE3dX+w7xZx|^8f$< literal 10362 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 diff --git a/environment_setup/requirements.txt b/environment_setup/requirements.txt index e7d7cc7b..f99e7f4b 100644 --- a/environment_setup/requirements.txt +++ b/environment_setup/requirements.txt @@ -2,6 +2,7 @@ pytest>=5.3 requests>=2.22 numpy>=1.17 pandas>=0.25 +scikit-learn>=0.21.3 azureml-sdk>=1.0 python-dotenv>=0.10.3 flake8>=3.7 diff --git a/ml_service/pipelines/build_train_pipeline.py b/ml_service/pipelines/build_train_pipeline.py index fa21b515..4b0d775b 100644 --- a/ml_service/pipelines/build_train_pipeline.py +++ b/ml_service/pipelines/build_train_pipeline.py @@ -1,12 +1,11 @@ from azureml.pipeline.core.graph import PipelineParameter from azureml.pipeline.steps import PythonScriptStep -from azureml.pipeline.core import Pipeline # , PipelineData +from azureml.pipeline.core import Pipeline +from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration, CondaDependencies -# from azureml.core import Datastore import os import sys sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from workspace import get_workspace from attach_compute import get_compute from env_variables import Env @@ -14,13 +13,11 @@ def main(): e = Env() # Get Azure machine learning workspace - aml_workspace = get_workspace( - e.workspace_name, - e.resource_group, - e.subscription_id, - e.tenant_id, - e.app_id, - e.app_secret) + aml_workspace = Workspace.get( + name=e.workspace_name, + subscription_id=e.subscription_id, + resource_group=e.resource_group + ) print("get_workspace:") print(aml_workspace) @@ -46,6 +43,8 @@ def main(): name="model_name", default_value=e.model_name) build_id_param = PipelineParameter( name="build_id", default_value=e.build_id) + hyperparameter_alpha_param = PipelineParameter( + name="hyperparameter_alpha", default_value=0.5) train_step = PythonScriptStep( name="Train Model", @@ -55,6 +54,7 @@ def main(): arguments=[ "--build_id", build_id_param, "--model_name", model_name_param, + "--alpha", hyperparameter_alpha_param, ], runconfig=run_config, allow_reuse=False, diff --git a/ml_service/pipelines/build_train_pipeline_with_r.py b/ml_service/pipelines/build_train_pipeline_with_r.py index 72ed8e2a..eea6d4c6 100644 --- a/ml_service/pipelines/build_train_pipeline_with_r.py +++ b/ml_service/pipelines/build_train_pipeline_with_r.py @@ -1,11 +1,10 @@ from azureml.pipeline.steps import PythonScriptStep -from azureml.pipeline.core import Pipeline # , PipelineData +from azureml.pipeline.core import Pipeline +from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration, CondaDependencies -# from azureml.core import Datastore import os import sys sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from workspace import get_workspace from attach_compute import get_compute from env_variables import Env @@ -13,13 +12,12 @@ def main(): e = Env() # Get Azure machine learning workspace - aml_workspace = get_workspace( - e.workspace_name, - e.resource_group, - e.subscription_id, - e.tenant_id, - e.app_id, - e.app_secret) + aml_workspace = Workspace.get( + name=e.workspace_name, + subscription_id=e.subscription_id, + resource_group=e.resource_group + ) + print("get_workspace:") print(aml_workspace) # Get Azure machine learning cluster @@ -28,6 +26,7 @@ def main(): e.compute_name, e.vm_size) if aml_compute is not None: + print("aml_compute:") print(aml_compute) run_config = RunConfiguration(conda_dependencies=CondaDependencies.create( diff --git a/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py b/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py index 733683eb..7d1891c7 100644 --- a/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py +++ b/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py @@ -1,8 +1,8 @@ from azureml.pipeline.core import Pipeline +from azureml.core import Workspace import os import sys sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from workspace import get_workspace from attach_compute import get_compute from azureml.pipeline.steps import DatabricksStep from env_variables import Env @@ -11,13 +11,12 @@ def main(): e = Env() # Get Azure machine learning workspace - aml_workspace = get_workspace( - e.workspace_name, - e.resource_group, - e.subscription_id, - e.tenant_id, - e.app_id, - e.app_secret) + aml_workspace = Workspace.get( + name=e.workspace_name, + subscription_id=e.subscription_id, + resource_group=e.resource_group + ) + print("get_workspace:") print(aml_workspace) # Get Azure machine learning cluster @@ -26,6 +25,7 @@ def main(): e.compute_name, e.vm_size) if aml_compute is not None: + print("aml_compute:") print(aml_compute) train_step = DatabricksStep( diff --git a/ml_service/pipelines/run_train_pipeline.py b/ml_service/pipelines/run_train_pipeline.py index 06abfd4d..50bf6e65 100644 --- a/ml_service/pipelines/run_train_pipeline.py +++ b/ml_service/pipelines/run_train_pipeline.py @@ -1,24 +1,35 @@ from azureml.pipeline.core import PublishedPipeline from azureml.core import Workspace -from azureml.core.authentication import ServicePrincipalAuthentication import os import sys +import argparse sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 from env_variables import Env def main(): + + parser = argparse.ArgumentParser("register") + parser.add_argument( + "--output_pipeline_id_file", + type=str, + default="pipeline_id.txt", + help="Name of a file to write pipeline ID to" + ) + parser.add_argument( + "--skip_train_execution", + action="store_true", + help=("Do not trigger the execution. " + "Use this in Azure DevOps when using a server job to trigger") + ) + args = parser.parse_args() + e = Env() - service_principal = ServicePrincipalAuthentication( - tenant_id=e.tenant_id, - service_principal_id=e.app_id, - service_principal_password=e.app_secret) aml_workspace = Workspace.get( name=e.workspace_name, subscription_id=e.subscription_id, - resource_group=e.resource_group, - auth=service_principal + resource_group=e.resource_group ) # Find the pipeline that was published by the specified build ID @@ -41,22 +52,18 @@ def main(): print("published pipeline id is", published_pipeline.id) # Save the Pipeline ID for other AzDO jobs after script is complete - os.environ['amlpipeline_id'] = published_pipeline.id - savePIDcmd = 'echo "export AMLPIPELINE_ID=$amlpipeline_id" >tmp.sh' - os.system(savePIDcmd) - - # Set this to True for local development or if NOT - # using Azure DevOps Azure ML agentless pipeline execution task - skip_train_execution = True - if(skip_train_execution is False): + if args.output_pipeline_id_file is not None: + with open(args.output_pipeline_id_file, "w") as out_file: + out_file.write(published_pipeline.id) + + if(args.skip_train_execution is False): pipeline_parameters = {"model_name": e.model_name} - response = published_pipeline.submit( + run = published_pipeline.submit( aml_workspace, e.experiment_name, pipeline_parameters) - run_id = response.id - print("Pipeline run initiated ", run_id) + print("Pipeline run initiated ", run.id) if __name__ == "__main__": diff --git a/ml_service/pipelines/verify_train_pipeline.py b/ml_service/pipelines/verify_train_pipeline.py new file mode 100644 index 00000000..b677dd6e --- /dev/null +++ b/ml_service/pipelines/verify_train_pipeline.py @@ -0,0 +1,66 @@ +import os +import sys +import argparse +from azureml.core import Run, Experiment, Workspace +sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 +from env_variables import Env + + +def main(): + + run = Run.get_context() + if (run.id.startswith('OfflineRun')): + from dotenv import load_dotenv + sys.path.append(os.path.abspath("./code/util")) # NOQA: E402 + from model_helper import get_model_by_tag + # For local development, set values in this section + load_dotenv() + workspace_name = os.environ.get("WORKSPACE_NAME") + experiment_name = os.environ.get("EXPERIMENT_NAME") + resource_group = os.environ.get("RESOURCE_GROUP") + subscription_id = os.environ.get("SUBSCRIPTION_ID") + build_id = os.environ.get('BUILD_BUILDID') + aml_workspace = Workspace.get( + name=workspace_name, + subscription_id=subscription_id, + resource_group=resource_group + ) + ws = aml_workspace + exp = Experiment(ws, experiment_name) + else: + sys.path.append(os.path.abspath("./util")) # NOQA: E402 + from model_helper import get_model_by_tag + ws = run.experiment.workspace + exp = run.experiment + + e = Env() + + parser = argparse.ArgumentParser("register") + parser.add_argument( + "--build_id", + type=str, + help="The Build ID of the build triggering this pipeline run", + ) + + args = parser.parse_args() + if (args.build_id is not None): + build_id = args.build_id + model_name = e.model_name + + try: + tag_name = 'BuildId' + model = get_model_by_tag( + model_name, tag_name, build_id, exp.workspace) + if (model is not None): + print("Model was registered for this build.") + if (model is None): + print("Model was not registered for this run.") + sys.exit(1) + except Exception as e: + print(e) + print("Model was not registered for this run.") + sys.exit(1) + + +if __name__ == '__main__': + main() diff --git a/ml_service/util/attach_compute.py b/ml_service/util/attach_compute.py index 569e3041..cc88be95 100644 --- a/ml_service/util/attach_compute.py +++ b/ml_service/util/attach_compute.py @@ -39,4 +39,4 @@ def get_compute( except ComputeTargetException as e: print(e) print('An error occurred trying to provision compute.') - exit() + exit(1) diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index 7e99bd28..af7de448 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -1,25 +1,20 @@ import os +import sys from azureml.core import Workspace from azureml.core.image import ContainerImage, Image from azureml.core.model import Model -from azureml.core.authentication import ServicePrincipalAuthentication +sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 from env_variables import Env e = Env() -SP_AUTH = ServicePrincipalAuthentication( - tenant_id=e.tenant_id, - service_principal_id=e.app_id, - service_principal_password=e.app_secret) - +# Get Azure machine learning workspace ws = Workspace.get( - e.workspace_name, - SP_AUTH, - e.subscription_id, - e.resource_group + name=e.workspace_name, + subscription_id=e.subscription_id, + resource_group=e.resource_group ) - model = Model(ws, name=e.model_name, version=e.model_version) os.chdir("./code/scoring") diff --git a/ml_service/util/create_scoring_image.sh b/ml_service/util/create_scoring_image.sh new file mode 100644 index 00000000..1651b73e --- /dev/null +++ b/ml_service/util/create_scoring_image.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +set -euo pipefail # strict mode, fail on error +set -x # verbose + +docker run \ + --rm \ + -t \ + -v $PWD:/mlops \ + -v ${AZURE_CONFIG_DIR:-$HOME/.azure}:/root/.azure \ + -e SUBSCRIPTION_ID=$(az account show --query id -o tsv) \ + -e RESOURCE_GROUP=$RESOURCE_GROUP \ + -e WORKSPACE_NAME=$WORKSPACE_NAME \ + -e MODEL_NAME=$MODEL_NAME \ + -e IMAGE_NAME=$IMAGE_NAME \ + mcr.microsoft.com/mlops/python:latest \ + bash -c "cd /mlops/ && python ml_service/util/create_scoring_image.py" diff --git a/ml_service/util/workspace.py b/ml_service/util/workspace.py deleted file mode 100644 index 08d1f67d..00000000 --- a/ml_service/util/workspace.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -from azureml.core import Workspace -from azureml.core.authentication import ServicePrincipalAuthentication - - -def get_workspace( - name: str, - resource_group: str, - subscription_id: str, - tenant_id: str, - app_id: str, - app_secret: str): - service_principal = ServicePrincipalAuthentication( - tenant_id=tenant_id, - service_principal_id=app_id, - service_principal_password=app_secret) - - try: - aml_workspace = Workspace.get( - name=name, - subscription_id=subscription_id, - resource_group=resource_group, - auth=service_principal) - - return aml_workspace - except Exception as caught_exception: - print("Error while retrieving Workspace...") - print(str(caught_exception)) - sys.exit(1) diff --git a/tests/unit/code_test.py b/tests/unit/code_test.py index 3c49454d..06654b2f 100644 --- a/tests/unit/code_test.py +++ b/tests/unit/code_test.py @@ -1,27 +1,25 @@ import sys import os -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from workspace import get_workspace -from env_variables import Env +import numpy as np +from azureml.core.run import Run +from unittest.mock import Mock +sys.path.append(os.path.abspath("./code/training")) # NOQA: E402 +from train import train_model -# Just an example of a unit test against -# a utility function common_scoring.next_saturday -def test_get_workspace(): - e = Env() - workspace_name = e.workspace_name - resource_group = e.resource_group - subscription_id = e.subscription_id - tenant_id = e.tenant_id - app_id = e.app_id - app_secret = e.app_secret +def test_train_model(): + X_train = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) + y_train = np.array([10, 9, 8, 8, 6, 5]) + X_test = np.array([3, 4]).reshape(-1, 1) + y_test = np.array([8, 7]) + data = {"train": {"X": X_train, "y": y_train}, + "test": {"X": X_test, "y": y_test}} - aml_workspace = get_workspace( - workspace_name, - resource_group, - subscription_id, - tenant_id, - app_id, - app_secret) + run = Mock(Run) + reg = train_model(run, data, alpha=1.2) - assert aml_workspace.name == workspace_name + run.log.assert_called_with("mse", 0.029843893480256872, + description='Mean squared error metric') + + preds = reg.predict([[1], [2]]) + np.testing.assert_equal(preds, [9.93939393939394, 9.03030303030303]) From 2a22e75cd961af0995c3651138750a905e326935 Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Mon, 9 Dec 2019 19:57:05 +0100 Subject: [PATCH 002/109] Multi-stage pipeline + scoring observability (#122) --- .pipelines/azdo-ci-build-train.yml | 123 +++- .../azdo-template-get-model-version.yml | 14 + code/scoring/score.py | 21 +- docs/getting_started.md | 592 ++++++++---------- .../images/automate_deploy_model_pipeline.png | Bin 136551 -> 0 bytes docs/images/ci-build-logs.png | Bin 80696 -> 0 bytes docs/images/create-rm-service-connection.png | Bin 112149 -> 311731 bytes docs/images/deploy-model.png | Bin 55899 -> 0 bytes docs/images/multi-stage-aci-aks.png | Bin 0 -> 145042 bytes docs/images/multi-stage-aci.png | Bin 0 -> 135006 bytes docs/images/multi-stage-webapp.png | Bin 0 -> 150655 bytes ml_service/pipelines/verify_train_pipeline.py | 11 + ml_service/util/create_scoring_image.py | 18 + ml_service/util/smoke_test_scoring_service.py | 94 +++ 14 files changed, 527 insertions(+), 346 deletions(-) create mode 100644 .pipelines/azdo-template-get-model-version.yml delete mode 100644 docs/images/automate_deploy_model_pipeline.png delete mode 100644 docs/images/ci-build-logs.png delete mode 100644 docs/images/deploy-model.png create mode 100644 docs/images/multi-stage-aci-aks.png create mode 100644 docs/images/multi-stage-aci.png create mode 100644 docs/images/multi-stage-webapp.png create mode 100644 ml_service/util/smoke_test_scoring_service.py diff --git a/.pipelines/azdo-ci-build-train.yml b/.pipelines/azdo-ci-build-train.yml index d1d95843..e1ed0dc6 100644 --- a/.pipelines/azdo-ci-build-train.yml +++ b/.pipelines/azdo-ci-build-train.yml @@ -8,6 +8,7 @@ trigger: - docs/ - environment_setup/ - ml_service/util/create_scoring_image.* + - ml_service/util/smoke_test_scoring_service.py variables: - template: azdo-variables.yml @@ -36,8 +37,9 @@ stages: # Invoke the Python building and publishing a training pipeline python $(Build.SourcesDirectory)/ml_service/pipelines/${{ variables.BUILD_TRAIN_SCRIPT }} displayName: 'Publish Azure Machine Learning Pipeline' + - stage: 'Trigger_AML_Pipeline' - displayName: 'Train, evaluate, register model via previously published AML pipeline' + displayName: 'Train model' jobs: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) @@ -87,32 +89,121 @@ stages: - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" displayName: "Determine if evaluation succeeded and new model is registered" + pool: + vmImage: 'ubuntu-latest' + container: mcr.microsoft.com/mlops/python:latest + timeoutInMinutes: 0 + steps: + - template: azdo-template-get-model-version.yml +- stage: 'Deploy_ACI' + displayName: 'Deploy to ACI' + dependsOn: Trigger_AML_Pipeline + condition: and(succeeded(), variables['ACI_DEPLOYMENT_NAME']) + jobs: + - job: "Deploy_ACI" + displayName: "Deploy to ACI" + pool: + vmImage: 'ubuntu-latest' + container: mcr.microsoft.com/mlops/python:latest + timeoutInMinutes: 0 + steps: + - template: azdo-template-get-model-version.yml + - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 + displayName: 'Azure ML Model Deploy' + inputs: + azureSubscription: $(WORKSPACE_SVC_CONNECTION) + modelSourceType: manualSpec + modelName: '$(MODEL_NAME)' + modelVersion: $(MODEL_VERSION) + inferencePath: '$(Build.SourcesDirectory)/code/scoring/inference_config.yml' + deploymentTarget: ACI + deploymentName: $(ACI_DEPLOYMENT_NAME) + deployConfig: '$(Build.SourcesDirectory)/code/scoring/deployment_config_aci.yml' + overwriteExistingDeployment: true + - task: AzureCLI@1 + displayName: 'Smoke test' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python ml_service/util/smoke_test_scoring_service.py --type ACI --service "$(ACI_DEPLOYMENT_NAME)" + +- stage: 'Deploy_AKS' + displayName: 'Deploy to AKS' + dependsOn: Deploy_ACI + condition: and(succeeded(), variables['AKS_DEPLOYMENT_NAME']) + jobs: + - job: "Deploy_AKS" + displayName: "Deploy to AKS" pool: vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: + - template: azdo-template-get-model-version.yml + - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 + displayName: 'Azure ML Model Deploy' + inputs: + azureSubscription: $(WORKSPACE_SVC_CONNECTION) + modelSourceType: manualSpec + modelName: '$(MODEL_NAME)' + modelVersion: $(MODEL_VERSION) + inferencePath: '$(Build.SourcesDirectory)/code/scoring/inference_config.yml' + deploymentTarget: AKS + aksCluster: $(AKS_COMPUTE_NAME) + deploymentName: $(AKS_DEPLOYMENT_NAME) + deployConfig: '$(Build.SourcesDirectory)/code/scoring/deployment_config_aks.yml' + overwriteExistingDeployment: true - task: AzureCLI@1 + displayName: 'Smoke test' inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python $(Build.SourcesDirectory)/ml_service/pipelines/verify_train_pipeline.py --build_id $(Build.BuildId) - displayName: "Determine if evaluation succeeded and new model is registered" - - task: CopyFiles@2 - displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)' + python ml_service/util/smoke_test_scoring_service.py --type AKS --service "$(AKS_DEPLOYMENT_NAME)" + +- stage: 'Deploy_Webapp' + displayName: 'Deploy to Webapp' + dependsOn: Trigger_AML_Pipeline + condition: and(succeeded(), variables['WEBAPP_DEPLOYMENT_NAME']) + jobs: + - job: "Deploy_Webapp" + displayName: "Deploy to Webapp" + pool: + vmImage: 'ubuntu-latest' + container: mcr.microsoft.com/mlops/python:latest + timeoutInMinutes: 0 + steps: + - template: azdo-template-get-model-version.yml + - task: AzureCLI@1 + displayName: 'Create scoring image and set IMAGE_LOCATION variable' inputs: - SourceFolder: '$(Build.SourcesDirectory)' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - Contents: | - code/scoring/** - ml_service/util/** - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python ml_service/util/create_scoring_image.py --output_image_location_file image_location.txt + # Output image location to Azure DevOps job + IMAGE_LOCATION="$(cat image_location.txt)" + echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" + - task: AzureWebAppContainer@1 + name: WebAppDeploy + displayName: 'Azure Web App on Container Deploy' + inputs: + azureSubscription: 'AzureResourceConnection' + appName: '$(WEBAPP_DEPLOYMENT_NAME)' + containers: '$(IMAGE_LOCATION)' + - task: AzureCLI@1 + displayName: 'Smoke test' inputs: - ArtifactName: 'mlops-pipelines' - publishLocation: 'container' - pathtoPublish: '$(Build.ArtifactStagingDirectory)' - TargetPath: '$(Build.ArtifactStagingDirectory)' + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python ml_service/util/smoke_test_scoring_service.py --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score" diff --git a/.pipelines/azdo-template-get-model-version.yml b/.pipelines/azdo-template-get-model-version.yml new file mode 100644 index 00000000..f69f3366 --- /dev/null +++ b/.pipelines/azdo-template-get-model-version.yml @@ -0,0 +1,14 @@ +steps: +- task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python $(Build.SourcesDirectory)/ml_service/pipelines/verify_train_pipeline.py --build_id $(Build.BuildId) --output_model_version_file "model_version.txt" + # Output model version to Azure DevOps job + MODEL_VERSION="$(cat model_version.txt)" + echo "##vso[task.setvariable variable=MODEL_VERSION]$MODEL_VERSION" + name: 'getversion' + displayName: "Determine if evaluation succeeded and new model is registered" diff --git a/code/scoring/score.py b/code/scoring/score.py index 716cd0e4..b78a435c 100644 --- a/code/scoring/score.py +++ b/code/scoring/score.py @@ -38,10 +38,27 @@ def init(): model = joblib.load(model_path) -def run(raw_data): +def run(raw_data, request_headers): data = json.loads(raw_data)["data"] data = numpy.array(data) result = model.predict(data) + + # Demonstrate how we can log custom data into the Application Insights + # traces collection. + # The 'X-Ms-Request-id' value is generated internally and can be used to + # correlate a log entry with the Application Insights requests collection. + # The HTTP 'traceparent' header may be set by the caller to implement + # distributed tracing (per the W3C Trace Context proposed specification) + # and can be used to correlate the request to external systems. + print(('{{"RequestId":"{0}", ' + '"TraceParent":"{1}", ' + '"NumberOfPredictions":{2}}}' + ).format( + request_headers.get("X-Ms-Request-Id", ""), + request_headers.get("Traceparent", ""), + len(result) + )) + return {"result": result.tolist()} @@ -49,5 +66,5 @@ def run(raw_data): # Test scoring init() test_row = '{"data":[[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}' - prediction = run(test_row) + prediction = run(test_row, {}) print("Test result: ", prediction) diff --git a/docs/getting_started.md b/docs/getting_started.md index 8cff7ec1..b5e92902 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,328 +1,264 @@ -# Getting Started with this Repo - -## Clone or fork this repository - -## Create an Azure DevOps account - -We use Azure DevOps for running our build(CI), retraining trigger and release -(CD) pipelines. If you don't already have an Azure DevOps account, create one by -following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=azure-devops). - -If you already have Azure DevOps account, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). - -## Create an ARM Service Connection to deploy resources - -The repository includes a DevOps pipeline to deploy the Azure ML workspace and associated resources through Azure Resource Manager. - -The pipeline requires an **Azure Resource Manager** -[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). -Given this service connection, you will be able to run the IaC pipeline -and have the required permissions to generate resources. - -![create service connection](./images/create-rm-service-connection.png) - -Use **``AzureResourceConnection``** as the connection name, since it is used -in the IaC pipeline definition. Leave the **``Resource Group``** field empty. - -**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. -You must also have sufficient permissions to register an application with -your Azure AD tenant, or receive the ID and secret of a service principal -from your Azure AD Administrator. That principal must have 'Contributor' -permissions on the subscription. - -## Create a Variable Group for your Pipelines - -We make use of variable group inside Azure DevOps to store variables and their -values that we want to make available across multiple pipelines. You can either -store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) -or connect to an Azure Key Vault in your subscription. Please refer to the -documentation [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) to -learn more about how to create a variable group and -[link](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#use-a-variable-group) it to your pipeline. -Click on **Library** in the **Pipelines** section as indicated below: - -![library_variable groups](./images/library_variable_groups.png) - -Please name your variable group **``devopsforai-aml-vg``** as we are using this -name within our build yaml file. - -The variable group should contain the following required variables: - -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------| -| BASE_NAME | [unique base name] | -| LOCATION | centralus | -| RESOURCE_GROUP | | -| WORKSPACE_NAME | mlops-AML-WS | -| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | - -**Note:** - -The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide here an existing AML Workspace if you have one. - -The **BASE_NAME** parameter is used throughout the solution for naming -Azure resources. When the solution is used in a shared subscription, there can -be naming collisions with resources that require unique names like azure blob -storage and registry DNS naming. Make sure to give a unique value to the -BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have -unique names (e.g. MyUniqueML-AML-RG, MyUniqueML-AML-KV, etc.). The length of -the BASE_NAME value should not exceed 10 characters. - -Make sure to select the **Allow access to all pipelines** checkbox in the -variable group configuration. - -## More variable options - -There are more variables used in the project. They're defined in two places one for local execution one for using Azure DevOps Pipelines - -### Local configuration - -In order to configure the project locally you have to create a copy from `.env.example` to the root and name it `.env`. Fill out all missing values and adjust the existing ones to your needs. - -For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). Azure CLI will be used to log you in interactively. -Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. - -### Azure DevOps configuration - -For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/azdo-variables.yml`. Adjust as needed the variables, also the defaults will give you an easy jump start. - -Up until now you should have: - -* Forked (or cloned) the repo -* Created a devops account or use an existing one -* A variable group with all configuration values - -## Create Resources with Azure Pipelines - -The easiest way to create all required resources (Resource Group, ML Workspace, -Container Registry, Storage Account, etc.) is to leverage an -"Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment.yml). This **IaC** pipeline takes care of setting up -all required resources based on these [ARM templates](../environment_setup/arm-templates/cloud-environment.json). - -To set up this pipeline, you will need to do the following steps: - -1. Create an Azure Resource Manager Service Connection -1. Create a Build IaC Pipeline - -### Create a Build IaC Pipeline - -In your DevOps project, create a build pipeline from your forked **GitHub** -repository: - -![build connnect step](./images/build-connect.png) - -Then, refer to an **Existing Azure Pipelines YAML file**: - -![configure step](./images/select-iac-pipeline.png) - -Having done that, run the pipeline: - -![iac run](./images/run-iac-pipeline.png) - -Check out created resources in the [Azure Portal](portal.azure.com): - -![created resources](./images/created-resources.png) - -Alternatively, you can also use a [cleaning pipeline](../environment_setup/iac-remove-environment.yml) that removes resources created for this project or -you can just delete a resource group in the [Azure Portal](portal.azure.com). - -## Create an Azure DevOps Azure ML Workspace Service Connection -Install the **Azure Machine Learning** extension to your organization from the -[marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), -so that you can set up a service connection to your AML workspace. - -Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group below. - -**Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. -You must also have sufficient permissions to register an application with -your Azure AD tenant, or receive the ID and secret of a service principal -from your Azure AD Administrator. That principal must have Contributor -permissions on the Azure ML Workspace. - -## Set up Build, Release Trigger, and Release Deployment Pipelines - -Now that you have all the required resources created from the IaC pipeline, -you can set up the rest of the pipelines necessary for deploying your ML model -to production. These are the pipelines that you will be setting up: - -1. **Build pipeline:** triggered on code change to master branch on GitHub, -performs linting, unit testing, publishing a training pipeline, and runs the published training pipeline to train, evaluate, and register a model. -1. **Release Deployment pipeline:** deploys a model to QA (ACI) and Prod (AKS) -environments. - -### Set up a Build Training Pipeline - -In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [azdo-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) -pipeline in your forked **GitHub** repository: - -![configure ci build pipeline](./images/ci-build-pipeline-configure.png) - -Name the pipeline **ci-build**. Once the pipline is finished, explore the -execution logs: - -![ci build logs](./images/ci-build-logs.png) - -and checkout a published training pipeline in the **mlops-AML-WS** workspace in -[Azure Portal](https://ms.portal.azure.com/): - -![training pipeline](./images/training-pipeline.png) - -Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master -branch. The pipeline performs linting, unit testing, builds and publishes and executes a -**ML Training Pipeline** in a **ML Workspace**. - -**Note:** The build pipeline contains disabled steps to build and publish ML -pipelines using R to train a model. Enable these steps if you want to play with -this approach by changing the `build-train-script` pipeline variable to either `build_train_pipeline_with_r.py`, or `build_train_pipeline_with_r_on_dbricks.py`. For the pipeline training a model with R on Databricks you have -to manually create a Databricks cluster and attach it to the ML Workspace as a -compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables shoud be -specified). - -![running training pipeline](./images/running-training-pipeline.png) - -The training pipeline will train, evaluate, and register a new model. Wait until -it is finished and make sure there is a new model in the **ML Workspace**: - -![trained model](./images/trained-model.png) - -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\azdo-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. - -### Set up a Release Deployment Pipeline to Deploy the Model - -The final step is to deploy the model across environments with a release -pipeline. There will be a **``QA``** environment running on -[Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) -and a **``Prod``** environment running on -[Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). -This is the final picture of what your release pipeline should look like: - -![deploy model](./images/deploy-model.png) - -The pipeline consumes two artifacts: - -1. the result of the **Build Pipeline** as it contains configuration files -1. the **model** trained and registered by the ML training pipeline - -Add an artifact to the pipeline and select **AzureML Model Artifact** source -type. Select the **Service Endpoint** and **Model Names** from the drop down -lists. **Service Endpoint** refers to the **Service connection** created in -the previous step: - -![model artifact](./images/model-artifact.png) - -Go to the new **Releases Pipelines** section, and click new to create a new -release pipeline. A first stage is automatically created and choose -**start with an Empty job**. Name the stage **QA (ACI)** and add a single task -to the job **Azure ML Model Deploy**. Make sure that the Agent Specification -is ubuntu-16.04 under the Agent Job: - -![deploy aci](./images/deploy-aci.png) - -Specify task parameters as it is shown in the table below: - -| Parameter | Value | -| ----------------------------- | ---------------------------------------------------------------------------------------------------- | -| Display Name | Azure ML Model Deploy | -| Azure ML Workspace | mlops-AML-WS | -| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | -| Model Deployment Target | Azure Container Instance | -| Deployment Name | mlopspython-aci | -| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aci.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | -| Overwrite existing deployment | X | - -In a similar way, create a stage **Prod (AKS)** and add a single task to the job -**Azure ML Model Deploy**. Make sure that the Agent Specification is -ubuntu-16.04 under the Agent Job: - -![deploy aks](./images/deploy-aks.png) - -Specify task parameters as it is shown in the table below: - -| Parameter | Value | -| --------------------------------- | ---------------------------------------------------------------------------------------------------- | -| Display Name | Azure ML Model Deploy | -| Azure ML Workspace | mlops-AML-WS | -| Inference config Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/inference_config.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | -| Model Deployment Target | Azure Kubernetes Service | -| Select AKS Cluster for Deployment | YOUR_DEPLOYMENT_K8S_CLUSTER | -| Deployment Name | mlopspython-aks | -| Deployment Configuration file | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines/code/scoring/deployment_config_aks.yml`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | -| Overwrite existing deployment | X | - -**Note:** Creating of a Kubernetes cluster on AKS is out of scope of this -tutorial, but you can find set up information in the docs -[here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). - -Similarly to the **Invoke Training Pipeline** release pipeline, previously -created, in order to trigger a coutinuous integration, click on the lightning -bolt icon, make sure the **Continuous deployment trigger** is checked and -save the trigger: - -![Automate Deploy Model Pipeline](./images/automate_deploy_model_pipeline.png) - -Congratulations! You have three pipelines set up end to end: - -* **Build pipeline:** triggered on code change to master branch on GitHub, -performs linting, unit testing and publishing a training pipeline. -* **Release Trigger pipeline:** runs a published training pipeline to train, -evaluate and register a model. -* **Release Deployment pipeline:** deploys a model to QA (ACI) and Prod (AKS) -environments. - -## Deploy the trained model to Azure Web App for containers - -Note: This is an optional step and can be used only if you are deploying your -scoring service on Azure Web Apps. - -[Create Image Script](../ml_service/util/create_scoring_image.py) -can be used to create a scoring image from the release pipeline. The image -created by this script will be registered under Azure Container Registry (ACR) -instance that belongs to Azure Machine Learning Service. Any dependencies that -scoring file depends on can also be packaged with the container with Image -config. To learn more on how to create a container with AML SDK click -[here](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-). - -Below is release pipeline with two tasks one to create an image using the above -script and second is the deploy the image to Web App for containers. - -![release_webapp](./images/release-webapp-pipeline.PNG) - -In the Variables tab, link the pipeline to your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: - -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------| -| MODEL_NAME | sklearn_regression_model.pkl | -| IMAGE_NAME | diabetes | - -Add as an artifact to the pipeline the result of the **Build Pipeline** as it contains the necessary scripts. - -Use an Agent of type `ubuntu-16.04`. - -For the Azure CLI task to invoke the [Create Image Script](../ml_service/util/create_scoring_image.py), specify the following task parameters: - -| Parameter | Value | -| ------------------ | --------------------------------------------------------------------------------------------------- | -| Display name | Create Scoring Image | -| Azure subscription | aml-workspace-connection | -| Script Path | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipeline/ml_service/util/create_scoring_image.sh`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | -| Working directory | `$(System.DefaultWorkingDirectory)/_ci-build/mlops-pipelines`
_(The `_ci-build` part of the path is the source alias of your CI artifact)_ | - -![release_createimage](./images/release-task-createimage.PNG) - -Finally, for the Azure Web App for Containers Task, specify the following task -parameters as it is shown in the table below: - -| Parameter | Value | -| ------------------ | --------------------------------------------------------------------------------------------------- | -| Azure subscription | Subscription used to deploy Web App | -| App name | Web App for Containers name | -| Image name | Specify the fully qualified container image name. For example, 'myregistry.azurecr.io/nginx:latest' | - -![release_webapp](./images/release-task-webappdeploy.PNG) - -Save the pipeline and create a release to trigger it manually. To create the -trigger, click on the "Create release" button on the top right of your screen, -leave the fields blank and click on **Create** at the bottom of the screen. -Once the pipeline execution is finished, check out deployments in the -**mlops-AML-WS** workspace. +# Getting Started with this Repo + +## Clone or fork this repository + +## Create an Azure DevOps account + +We use Azure DevOps for running our multi-stage pipeline with build(CI), ML training and scoring service release +(CD) stages. If you don't already have an Azure DevOps account, create one by +following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=azure-devops). + +If you already have Azure DevOps account, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). + +## Create an ARM Service Connection to deploy resources + +The repository includes a DevOps pipeline to deploy the Azure ML workspace and associated resources through Azure Resource Manager. + +The pipeline requires an **Azure Resource Manager** +[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). +Given this service connection, you will be able to run the IaC pipeline +and have the required permissions to generate resources. + +![create service connection](./images/create-rm-service-connection.png) + +Use **``AzureResourceConnection``** as the connection name, since it is used +in the IaC pipeline definition. Leave the **``Resource Group``** field empty. + +**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. +You must also have sufficient permissions to register an application with +your Azure AD tenant, or receive the ID and secret of a service principal +from your Azure AD Administrator. That principal must have 'Contributor' +permissions on the subscription. + +## Create a Variable Group for your Pipeline + +We make use of variable group inside Azure DevOps to store variables and their +values that we want to make available across multiple pipelines or pipeline stages. You can either +store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) +or connect to an Azure Key Vault in your subscription. Please refer to the +documentation [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) to +learn more about how to create a variable group and +[link](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#use-a-variable-group) it to your pipeline. +Click on **Library** in the **Pipelines** section as indicated below: + +![library_variable groups](./images/library_variable_groups.png) + +Please name your variable group **``devopsforai-aml-vg``** as we are using this +name within our build yaml file. + +The variable group should contain the following required variables: + +| Variable Name | Suggested Value | +| --------------------------- | -----------------------------------| +| BASE_NAME | [unique base name] | +| LOCATION | centralus | +| RESOURCE_GROUP | | +| WORKSPACE_NAME | mlops-AML-WS | +| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | +| ACI_DEPLOYMENT_NAME | diabetes-aci | + +**Note:** + +The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide here an existing AML Workspace if you have one. + +The **BASE_NAME** parameter is used throughout the solution for naming +Azure resources. When the solution is used in a shared subscription, there can +be naming collisions with resources that require unique names like azure blob +storage and registry DNS naming. Make sure to give a unique value to the +BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have +unique names (e.g. MyUniqueML-AML-RG, MyUniqueML-AML-KV, etc.). The length of +the BASE_NAME value should not exceed 10 characters. + +Make sure to select the **Allow access to all pipelines** checkbox in the +variable group configuration. + +## More variable options + +There are more variables used in the project. They're defined in two places one for local execution one for using Azure DevOps Pipelines + +### Local configuration + +In order to configure the project locally you have to create a copy from `.env.example` to the root and name it `.env`. Fill out all missing values and adjust the existing ones to your needs. + +For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). Azure CLI will be used to log you in interactively. +Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. + +### Azure DevOps configuration + +For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/azdo-variables.yml`. Adjust as needed the variables, also the defaults will give you an easy jump start. + +Up until now you should have: + +* Forked (or cloned) the repo +* Created a devops account or use an existing one +* A variable group with all configuration values + +## Create Resources with Azure Pipelines + +The easiest way to create all required resources (Resource Group, ML Workspace, +Container Registry, Storage Account, etc.) is to leverage an +"Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment.yml). This **IaC** pipeline takes care of setting up +all required resources based on these [ARM templates](../environment_setup/arm-templates/cloud-environment.json). + +To set up this pipeline, you will need to do the following steps: + +1. Create an Azure Resource Manager Service Connection +1. Create a Build IaC Pipeline + +### Create a Build IaC Pipeline + +In your DevOps project, create a build pipeline from your forked **GitHub** +repository: + +![build connnect step](./images/build-connect.png) + +Then, refer to an **Existing Azure Pipelines YAML file**: + +![configure step](./images/select-iac-pipeline.png) + +Having done that, run the pipeline: + +![iac run](./images/run-iac-pipeline.png) + +Check out created resources in the [Azure Portal](portal.azure.com): + +![created resources](./images/created-resources.png) + +Alternatively, you can also use a [cleaning pipeline](../environment_setup/iac-remove-environment.yml) that removes resources created for this project or +you can just delete a resource group in the [Azure Portal](portal.azure.com). + +## Create an Azure DevOps Azure ML Workspace Service Connection +Install the **Azure Machine Learning** extension to your organization from the +[marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), +so that you can set up a service connection to your AML workspace. + +Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group below. + +**Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. +You must also have sufficient permissions to register an application with +your Azure AD tenant, or receive the ID and secret of a service principal +from your Azure AD Administrator. That principal must have Contributor +permissions on the Azure ML Workspace. + +## Set up Build, Release Trigger, and Release Multi-Stage Pipeline + +Now that you have all the required resources created from the IaC pipeline, +you can set up the pipeline necessary for deploying your ML model +to production. The pipeline has a sequence of stages for: + +1. **Model Code Continuous Integration:** triggered on code change to master branch on GitHub, +performs linting, unit testing, publishing a training pipeline, and runs the published training pipeline to train, evaluate, and register a model. +1. **Train Model**: invokes the Azure ML service to trigger model training. +1. **Release Deployment:** deploys a model to QA (ACI) and Prod (AKS) +environments, or alternatively to Azure App Service. + +### Set up the Pipeline + +In your [Azure DevOps](https://dev.azure.com) project create and run a new build +pipeline referring to the [azdo-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) +pipeline in your forked **GitHub** repository: + +![configure ci build pipeline](./images/ci-build-pipeline-configure.png) + +Once the pipeline is finished, explore the execution result: + +![build](./images/multi-stage-aci.png) + +and checkout a published training pipeline in the **mlops-AML-WS** workspace in +[Azure Portal](https://ms.portal.azure.com/): + +![training pipeline](./images/training-pipeline.png) + +Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch. + +* The first stage of the pipeline, **Model CI**, perform linting, unit testing, build and publishes an **ML Training Pipeline** in a **ML Workspace**. + + **Note:** The build pipeline also supports building and publishing ML +pipelines using R to train a model. This is enabled +by changing the `build-train-script` pipeline variable to either `build_train_pipeline_with_r.py`, or `build_train_pipeline_with_r_on_dbricks.py`. For the pipeline training a model with R on Databricks you have +to manually create a Databricks cluster and attach it to the ML Workspace as a +compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be +specified). + +* The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, so it can wait for training completion for hours or even days without using agent resources. + +* The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. + +Wait until the pipeline finished and make sure there is a new model in the **ML Workspace**: + +![trained model](./images/trained-model.png) + +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\azdo-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. + +### Deploy the Model to Azure Kubernetes Service + +The final stage is to deploy the model to the production environment running on +[Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). + +**Note:** Creating of a Kubernetes cluster on AKS is out of scope of this +tutorial, but you can find set up information in the docs +[here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). + +In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: + +| Variable Name | Suggested Value | +| --------------------------- | -----------------------------------| +| AKS_COMPUTE_NAME | aks | +| AKS_DEPLOYMENT_NAME | diabetes-aks | + +Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster referencing your AKS cluster in your Azure ML Workspace. + +After successfully deploying to Azure Container Instances, the next stage will deploy the model to Kubernetes and run a smoke test. + +![build](./images/multi-stage-aci-aks.png) + +## Deploy the Model to Azure App Service (Azure Web App for containers) + +Note: This is an optional step and can be used only if you are [deploying your +scoring service on Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service). + +In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variable: + +| Variable Name | Suggested Value | +| --------------------------- | -----------------------------------| +| WEBAPP_DEPLOYMENT_NAME | mlopswebapp | + +Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. Delete the **ACI_DEPLOYMENT_NAME** variable. + +The pipeline uses the [Create Image Script](../ml_service/util/create_scoring_image.py) +to create a scoring image. The image +created by this script will be registered under Azure Container Registry (ACR) +instance that belongs to Azure Machine Learning Service. Any dependencies that +scoring file depends on can also be packaged with the container with Image +config. +[Learn more on how to create a container with AML SDK](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-). + +Make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. You could do this by following the instructions in the section [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app). Note that you must have run the pipeline once (including the Deploy to Webapp stage up to the `Create scoring image` step) so that an image is present in the registry, before you can connect the Webapp to the Azure Container Registry in the Azure Portal. + +![build](./images/multi-stage-webapp.png) + +# Next steps + +* The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. +* You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. +* The sample pipeline generates a random value for a model hyperparameter (ridge regression [*alpha*](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html)) to generate 'interesting' charts when testing the sample. In a real application you should use fixed hyperparameter values. You can [tune hyperparameter values using Azure ML](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-tune-hyperparameters), and manage their values in Azure DevOps Variable Groups. +* You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. +* You can explore aspects of model observability in the solution, such as: + * **Logging**: navigate to the Application Insights instance linked to the Azure ML Portal, + then to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs + generated in `score.py`, and can be used for example to analyze query duration vs. scoring batch size: + + let Traceinfo=traces + | extend d=parse_json(tostring(customDimensions.Content)) + | project workspace=customDimensions.["Workspace Name"], + service=customDimensions.["Service Name"], + NumberOfPredictions=tostring(d.NumberOfPredictions), + id=tostring(d.RequestId), + TraceParent=tostring(d.TraceParent); + requests + | project timestamp, id, success, resultCode, duration + | join kind=fullouter Traceinfo on id + | project-away id1 + + * **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs this header. The query above shows how to surface this value. You can adapt this to your tracing framework. + * **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance, just as for any other container. \ No newline at end of file diff --git a/docs/images/automate_deploy_model_pipeline.png b/docs/images/automate_deploy_model_pipeline.png deleted file mode 100644 index 35c7f54e98a1b797a044e3cb2fa2ebc314c1040f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136551 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 diff --git a/docs/images/ci-build-logs.png b/docs/images/ci-build-logs.png deleted file mode 100644 index 726f70ac9c7e6441ef299ab0bcee26b8623bbcf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80696 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 diff --git a/docs/images/create-rm-service-connection.png b/docs/images/create-rm-service-connection.png index 629d3c2a1e91109ef6ba5135d707b1bbf61356b8..011018d374b05cc8043d09b65af614baa64c1ac2 100644 GIT binary patch literal 311731 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%0Dae%iy@5gH`clY#Z@Bking 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�M)!G~kQhp*9cB_Y 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 diff --git a/docs/images/deploy-model.png b/docs/images/deploy-model.png deleted file mode 100644 index 8a4cbd06abffff9022058e2a47f343099ab31bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55899 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

Efh7Mz0Rx-tD%-Y}D=@&7nYEqYi0d42z_USmGE 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 bj{0lAZmN(Z_2n#s|MqGbXg*Z8x%hto_f*z1 literal 0 HcmV?d00001 diff --git a/docs/images/multi-stage-webapp.png b/docs/images/multi-stage-webapp.png new file mode 100644 index 0000000000000000000000000000000000000000..e6d60ce15841392927ef7d88bac662b0e3050258 GIT binary patch literal 150655 zcmeFZXH=BUwl#`~f`SN=T0r89AgMueXh5loT?cR%$!RkdoZxmL|t!ODsW2B2o|Y;mSyV4L_1=qbXCaKI_DKoNNy7RE9O_GH zcO0`d*}LbuPeeO+8W=>CIOm)3c|XdMCZu%T9ol%giDF{Nd^ExG{asjqCiSeVv401Z zaWu24Y{ReNnLdjbqq385!e=*Hf`Hv_u1>>mfnW&XLpSeNqsa5aAWMC64+Z8tWGZ#}u z^>d&(UvgH+G|nt(>g!L!E%eb!@2EPYXz*^SErsh5%6;HDHvTm5DiW)EByOP2Eexhe zvM9y0uTGHIflI_=veSskPdj+#mS0XI^7tMjJfWF_x+okQirMdXRs0GrlVK+o@)15k z)gkZUS4I~l{-0Owe!DLIGp!#lO!nEn>`xv-;s8#AD*E||&dsBHRxOv?JwYXlO_}SbS>d;M`pLtL-^OKdJ%5Zx zA9#m8ct%oY0_%3m`HqF#t-$VkhfUr=Y3IgDZcmnJgy|+|obPNtA%cGJj=GK8;-|Pw zs~hFCI4m&tGIEgUcGFcF(fPK7>KiYb+QpS@gmF#|UTcTncQieicD!T@D#|S^Nv~E_ z?!b}bXq_2aC64LcMFP{bnnfGtyYH`oAJt9$JpC`O*rdFC$(|TNE9bg@?CgWn@Uo3mb+T2XxN`4uDmqqHc+tBtPAx}p^Z&UY0t zxNZG(UNw<@x~HpC`xGObWRIj&yh5>t^9trfs`Jl~hu0Sy$@v?-Cj7~^v72b{-eEh? z-1zLDQ`|wvpKNM)KmID|D^+ED^;a$_H-Ee;Fk~FLdJtgt0xJot!7udZ&FU+gUq_L* z;Qk`p*YRj@#Ko6!u5wDV66mztb&&Cj6#EM=So%&R_g`1POaJv2GaK#co7Lo5&HR zESF7V!$?V&`+#vvL0(qaK4x)YSWmZ=}y%9r*=5vC=~6G$LK!N4zikkQ|B4R7a{li^fPl(NYB;*e`AS{X;dVyDLdP^j0mc^gt#y}<1gzDtqf)?kF7X5yVveH=egWon;O^{Hd(G& zX@wPi?5c?-7eAiJoKPEY+g<6ZEB%dAe%6sD z%67%=DU&I^%F{3MjY5px8&%AxG%Mb3D>rdWaPK1NI`2yCx=r6DT`Yqm!+Niue|Gh4 zl{9_WtFYJ7rqZ5ab`Wn4v%5iem&l7A+VR%gze?m!c*2ojS^9nc-Qz9UfcF>l$Ml`j zo7BgN53E+7e>4;vcg|a3K>BbwmEmyZj9xEOGeays*)!au+^bk@@A71YkouDvhgOib zvt1b8Egi`hR%ck_&g&ic@o+%ZsHU}a(y_5)ih0!P{h)r{>CjVa>NVE2iXqz}Z(dSf zPF^P)avPtrjFFR(5S!s~c!jsMxqX~f)kxv!W)9*#Y`A`;zUcyfb&~d*QJ}=9W*3>X z^azu}Iq7y5#q6l8sBbxAE2Uhk>kF(erLV7c}+D)*itX=R`-08-~M%YkM1cTOL2}rYC_N3H;s^ z!4%odT~47{$-ihHGCMw-XDhrL*ITf35Ozo<>Uy@qr2W+R>9Zf{7FiZr&enM3Tq0%) zT?ox_&Br!QlyB$S3WC2-+f$3uUo72dxv@i(%P6e)LOwp~1@HU!{A>;yvx%Q0Ka)Im zjk@=N=QjWZwHm^Zc{fddJbX(7C~#6Rw&Bo&;|%d|%jQ0*z*| zdLKO=K_RKg_nY6eKkai1(ReDnj9`*|O1nzp)bebWOyIphg@C=&oTKYJ{$j@BMmOV< z`8;*(vb-ZhR#u`C^y3t*OKhy1koi%!CSSS|DZ@Cs%)Ht>+qLW4LFXU7KH5Rd8W|ZH zxy*b?c))d=c!lI~2z$5V#|r16sM+mVYV*0WRJRmhuWRFR%S3-w+>389t- zt0m6O1HGoNN^uto7f2SU<96coj+!=tI;gM5nX}m&%v2a7S$Qs2-msH$~y z8U7g0qhPIN-8odR&u2S%98yA3v6iz&vL?im&Z5IRVxw6zV-l0SD(xb>KShrGn89Pu zcav9tlDICXWGKI~?x5LhXK`GIu9ACjbnuxCgB{z%iJMMGWtr&7nP$V}bI;=gC858B z1YPg13+rv^88mb{4~JYYf7IVs=DEAc;wgSu&RxrGH`+O&Q-6D1ZT)mE>s_+lX2jU^ z%f=bR zA4~$;Ln988BjL-i1n<&3TkY{lH6kTFQP_<0X+k#FlFyCHg&$f6qjO7`J@*8*Trak- zCF6FJA=r8KcI%v%HF^zhS9n(N=^fNhIJO?jS+`e*n`i_S!s|#qHsaPM*2wHzrk1M{ zy!H+XzE=s_|2@e#Go#>+bnGz1*Mnib&MPm zKc&*9CjYR2faJ<1!!3*##(^hZImC3r6gKMc;KuF^c``ry`ROT4Pm)c$1X_?^+;}0Y z<%EGj%7FfR<+18t+ZY&Ek}aQVI%_IC5j3&4WjA_mZ*0o$X8QvC8UsVvO%S}bHFY+k zakI6ta}soe(f#^`Ab5}d7)nR;>nG0EFgi^IWf}>4M^hRec5ZeKI+2?+G&I7F&&>o? zC8hs)Irtxp&cfOGg&-8_>gvkw%EfN)Xb$BR5DZZ^L^zY6Aq(o$0CDR{+1PY#&6Q}7Sd zKVHH6D+&iGm+@s77-ATYB_BO?yRtrsouvD0QuJrkYXXn=eL}J_A#b^_WTdCj(Y>vI zdMq!aOl%;P@z&Y<5piUp9}eBy5Lv>OK$@GR9W2}8pIx8$5r6RYA?tl%{_sn}r%#ig z*1f}%P0cnZUcx=Q6FirMmfpE-R19Zk_(WSGPb%C*D{WLTv2X}z#QZR>{HHg~I)*K8 z3GWsCd|Q7#5bL#|4_EL*AlYuBIL3+uW<%BP>o5&o(5 zSZ_`qZlzd`5d6o7`)8y6TAC?PqZEfo(jLQfq%~E z5*FQ;y_2<~tnX2bWWECY(E*a~@(NeQkpa>Rs$>u=yqm4>2=9b6jC|8|>V761tMOCd zPe$~4N0g(6r+-2SvRi^ z8#giT(AP%_9(Tz(y@ksxIn_X?F(pb$m-U#$C2s!N2u?B(9K)AQnRa3Qoywb*Ob4Y} z7EGCg*8=Idqdmz&Qop4IrIwhq50P#bu8vXs(L)ZBzRm9~>lM+#3N*GTr6V9tO}RXK zqlk}hnnTC&bW@KBJCKf*+j8J@`G|4of;;TaZ(Rwx|9z&IN+QS4KYAaGt_3o5(x$ex zkL+t3GQAQ%h6d7i`lq&%8Ps*=TDbm!YXa?k!&DO9kwi8sDR$zxwDkUU@D)7Ey zQhcnoRStVz+9d7o9Otjurola1Gq{v9X?yn|@GlnZKGU7Jtwa4iHXnL`3 z`a8_E4c>Z83d02}4sjjKCNbg`@MOlarKYi3*V+DX(3rQE(<6og|LTO{@dO4M4_h~- z-XOaFr1Md#Ft-*~;C&@{(tU-Ge{uZCz#g+B{1YR=@yEeyjeMRi6TuEl1cAHIr`#2l zMbg_IK`jbnZ%6-t+-`Lj@OoVjoWYbW1Tyg(TOppT?r~DqI1A*H* zw^q~uPYa^;Pu2SQc3kQYti)dq_iXy|+<=_R>md4r z>Fi3w1m?QzUpD@qrs!V-IYvkTv6AV2_(wlBQ@H|qgK8YL{e#|I!Q8;%#>ESRaMFc= zaNBBf5$Zzr%cyKU9)l&MaO}_#{oujHuT`#NSM&0q`OlsL2k(_%V;>F8IM$ym8Gk#_ z!_`=NBhi2L`9Hn+yX}8Raet4=-(&LcBk=E^{B0-ycaKT7jiJTa(T?RrwZn?R<%xy| zz&6OVQ1*|pT4o95KUC#21Qz4db;2XgA(@zb(_T)3i}5BQV;d#yRF*}E1M*CsXKcT9 z{3+vD%w&+-!zoYXW5!R>g$)-cR1vKrr|VJpg3Bp%l0W92OhGC!hjpD41Xr`uLrylT zrhQiYuHrAd>G|$PC4bg*jc&#lV!h|kLU?aFkmL_=?#CNX?{je5j+N74IbIwu@i|!t zZoK2_krmn~S3@4M*KL1wZolXHV=C0I-zu*_-E-r6KFfVL{U5}>-fSAW4pL*!qZG_EZHDz+6&fz~i>#5*hO^!B zmCVE;eb0w$H*xT~YukI^zmMNsWZ3|7f(fz=xW$`|j5mk7hoq)Voo~8kT_e?`ft{m} zD_NrFmV$d-T;}mxMZV|OXtXft?4K$aZnQ6MXrXyeG3NJRnH-Cm5F)siUpBzmPN|mX z@%l~Sm(AMp*$|eY%mqf@qh{)XAknj#vr@OZ)!e*+KngoeJ_W<%|hPP^5wKpUOir=cjp3!6HdtF%d;g^mBM4yAQqtV|qg z9v0UrcXLAK5M{-((m{0{l9^99XOfTyaX1m&u{f;vUNl~jlFi;hoCzK*`Ccsf4gl*& zW*mgIc{0M?j3>*@p!H`9(BZF~-BVkYmIYXWnF@)q==FwEHevLH@Y^H!?o!sW?yUpzt{ni#(h?BSn#SKcR% zyU!oN_j|Lo!g)%^;XLq|F~i-65(|Sz%ownPRWmm1K#|?| z5yS|oePYrM+)dz+S3sWY;iDzoRxcUJ)YF|11F8`oSsy(&Ys`7`4u6~9_#3eTLr}&- zr?<&>@lCLp(yCG+1J)Ta>T)309mm^?W^8$(vXtbc$oaqnm-!I2SLljhX(doqF+R#} zzAakkMg_YiwI#k#x<90ob&GGJ7$U+tgoGT7fK{^Q5gI&YL+6Z&YdFiO`$!C<2TAhJk&gk{M*sIv153~q1YFkWl>Zz0El+>sCz^e3aW+ja= z)n!<(il6NA;;2vG@1V}%mUlrDc_ioFe!t&Jpi6kNQm|gTR=6_UaN%Mbi}T(F z^rd3>_`6Ziz1UfVuCZHrdW48z11nW8@YK#-ob5j{r5fkqo?!FWZm3M<^;2X1VosAb z;ynepa1A7O^~?0Roo&t8XG#cjkkRb`tQQ)ez0UbsMwwf?Rew6*wb!jNu2?1VfMTO&3BGbP7g4lfg|}b1(?&78 z>e50e^W#m>?mH#e{?qOF z(zsriPB}WloidqUF>Jwe`cz-=V8kT!J1Cg;QY`I#{B40TJ5Y=PQ^J9X+8fnRZ1hPz z==wNt-veaz+i%hsKbd8T=lQ4N?6wrE)JQgFIY7#nl6^%AfTMDco#phv=zyI_j?B-7 zLJJYpi1ro&Q&8q8R0w5+?Mptz$CHAJEztBGFC`~ej@x~y-ERq9RZFg()i&47+!_JqmP*9Dt(dp+Ez>t%ce zLopiqTDUiO0vkIdKD2%%#0=q3F1xezHCD$?%X7`O;Z(0b^w|^s&FZ;>%mx>)#Fo%{Da}bfncs-B*wU(dK3C_E%gak&yX;5dC~zI%g6D4h%%P2OcfJjo)e&kvg&%e5Ub9?Gx4_F!?2}jqrbNvmr{t)f>tu}GmyJs2(~YX(TWqmQ z4@BF%SPH9+-BnkuL9LIsYRbd9WD@OsTO-xc3)|Z0Lv4(buL?e1LB)`E1#Pi$Jv>k} z^pMJHyXkJAG^mD>>AR)k6t{S7L@y6AVXNQ^Z#Sams4uJA2V08uIP1o-MYjF#u6yWa z%TFz{aX4=`VP{dFFUz#T;Z8jQD*%}I7I`8zD#wRBDne2h)D67%jV~MxEwVnnlrv9q zkS^h7Rc3wiSb`_m>)#@!CnR#J=pT7}if5(y>Pv?~oaIaZ1_q zf_z}_iAEKG=AY*xL`B#@K;`;WMPUZUf!HP3i9v2OJ?nf57-q;G^HjsnSGZOepzcN+ zMEN1DDs4&*Pl&WRLMpgV6)!GM{&kD7Hi~pGUvf(c;6104b#u`~Qr#C#W@Yixzug;o zDl2A~J!2@NB-U^Jq^3O<;0C=&oHXi z2Ib}iY&}CIU3y>8fUj;;$It>e|GZn&Lpn-IHB<|G^8h3p^;0O}H3o(0it#hYShxO&Bn_tKz zq`LvOuQ)WWj~9(|G|YC;F*xqf7|0UY&k?qsG{KT4pYA*rao?RUUoY((>c0F&AMu%E z#XcAw4V+#*2(!yq9$b*i+ds-`a}V0x2c`WFXuxbthR&DLTtC-|E~GZq?}XWZMg#kX zK@?};HQYHS&a=q@d8nQ+6gv>0-8|==Rx&cA=SeTfT2_et)0qH-Q|J7lqqNtC0-&B9 zWHt@*;Ei4FT)2=`nO(#A!3uDud5DAGyTojGWASY~*x7coWt0MMj!-G5Gmamz$J^(TRJ-!0;j)N(C z?Q+`KX^Cim;uDiTMvsJ1;9ykoVCw7w9K^_}{X*BlYuVa&)${5K)sx$UD*#aX@g^lL zD9!tDvTE>|vsXP1kJN1;!laPmArR@NGRK(?7xxl+z3#Ufuyf{*kTo2&&MpARJ+h|k z)UPuL(yDkeg&mK|Q8O0(xT_MJ&qqGFP6;%-zbAWl9;Tn^Sfl|)O$j+ZeQ|Jh@PwM) z5RC$e_gX7A8!j)nja%L(u$y21t=BYkyNP$&sQlW3?p;(fsRKmxsOfelR}X(W=@b+7 z7ywNIQUvoLZ7NW>Xv7v#My;wQa-2VQx5$m38X;160(|Va*|LA8mLZb|-U*m5iqIc& zU_fB4Ui0+SIS4YPG<@LUv_AqL7`oCQH2_fGLMCi5`lPcYoaam6ybn4eSRu%DaTz35PEHA-Wx2npC3*)*kzYac}RD3;?0|wL?}7D1L6GQ zF0U4TfcKitv>f%tc98X+q_QPd+ z=YsQ*5>{Jr$=ugRb_KW{W?P)Wp3RV1*m=*AgzYSf5n8t`u5A*=V--aw$!FFTKW44; z2l>Gb^k7o<01zyUP873+N+HWCJs@sun_61R^oys#Gf?puq*+yZnixMjvkYgdi zFWJEP5{hd9E&-*FRjxdv)E zA(hYfsTQrW9~Aj^AFMFdl1`?6lDuoRm54UMC; z`?6M^AQ?Byk&04cmLOZsOU$5z2(EmN8W6oa?oHE3t4)xD(!C|2tpMOGkDDjsfm$Z< zsRLlq3@O+jq-jOSbuV&-{T3%frZ8h};I$gPn=)Xpng8J2cGnz5j(R)w!gx6gVr&h_ zH8A)UG~%g67q-B&M^m}|^dIx;mw$rg=XjUTPM458I8wGovY1Jnl8`yrHs-3tju$8^ zLVNXvefI}7koLZ(<7vZb0KMC{3KK56pN>z%jb%$9_%`6%BAvpLpwu%nRJPN4NjqtC z!h+>7r?@Hz$o3_^uxsA4^ECjsd*anfjw}L5pwJ)CyI$4{*MQAO7(trzq?EI?MnQoH zd4n-2lI}B7C)j8m#EWX@xiG$-7b2|!<(C(yWC(E{9T^m5wC9PyLbO^40TR?|;^>Zu zjPiA7`CDoT$F(d{-|WuUwgbRkLxNz8=}i?@ON!upr-f&b`3IPinFP`iip@O!fOBNh(qHb3=>e>hW<$ykwW%?~KEw`XC1!sH)#D;NGg+L)S_T&Q~?oJkCZz zr3?v@sD$YQ+22A~0vcrp^iJweEVs>?B~?6!XY62Tr3AMduOi8<^Hoqci4hDSX+f7? z+$){OEVD8|wo_sEk?em-0RAmv4U!N*K1zk3zn7s(V6Q)#71`LhPGJ+t4p!rpyC?Zd zLdIslb+mpM{)Om$(~lDUr{PZ$9x|ZI@hiKX&@Jz_%Q^}e!6)~{1WT|g>@9t`{$w}* zsf3uJ1*uRExLdo3U04|cf;XgKu548K|a z9zz3jPZ0-O;v|A2xpIFnGh(1wfxnymdk|>E3`YQi$ZLj5rY00C)7!g%eT?D@5F!4K zb&w7BYgFD3KaL#IG_;UCwoUr&6*Q4pfk{{a%rqR_*%Q3KPk{;IAA!|${SMJ}Rq#sV zQjqxjTW~o2$|VK-1^&%p{BKU>sSL=n1>3b1e(NRC!||6tE#sBnjSG5N``^5QgZFIN zFpv39etpHCcIo#$`@7kH%;?`^`?n?h|KAe)!?6QF(rlOezj>{H$F|NnjjwMI4a9Sr z3@rDjBePY~2fn?hN4_Pbw~E*izDOhfe_^Cy1=gZu$A3?EK!*e5H9;zfHrS?Z`~$KA zn4!K5%zM;mPM>^4`6S(+V2!`Q&ac`28=3(F|9cSr9)y47Z+~0D-g5YW$I-h6Fpo@%Nv^N1{arfJ`>zU!i>soq2YxV$w^$lLbPd$6$}pRU2K^ z1Gvz9pLyT4KqZL1{#rU2l^ch zB>V%xX%hh@MR!hn4XA1*!+lOxP+(j7@V_W$jcDWvHYY!T9Y?sFu?3XHedHOM{9=py zv|{pyex-MZCR*qjL!52pnQ*)EC6~P0U+8>h3M+R?|G;bx_N!|&96utQXxQbF-DZQ0 zZ-HG7jegG-Ko!tBruysTkri5FipS!AlrfiARIiN^KSb|Cxaa^16bl*ofIfa6QX5U& zo4&ZH&LHHuNvn+s_k7&pe~XASYB1wYYk;_h=2A0-03Qva>h$FPXU^&$Qblw z-NAfj1>L(cXlHgK0)2U3t{BO9r@C#I4BBT5l7ji#JBpy-V+WgA)|P;?DT}s+MC+1Y zYSgEX(Us(topx#^r!GzzZI6`<78REbQwIDpIncVH7*_5NJ1Z#mJaMTix?kcca-d%+ z|J^T=Y-7*S+^}PGzf#6P3DTD85^&IxEyv0&En7)6^1F&3+Nx^31J8nWK~FH5DGFGy zmSBTorNG|XnnAZbE{4C0`7yA8D}>pqUT%-fX+Sbo{AIQW6=;OZJTBl@{|a6n^o7Hq#7 ztNYa${O`v89<%=sOykPiJ8%B$EP%fa*#GZ!`hUGUk~nUfjrm@bDSEyJM@3|9D%}

N=7$~cB3Gt~+R46%Y{k0|81J!tP^bFhrR^EagVYW!8j_3Y zl0Zky0H(fM8{Z6{R#B`TqcsnJ<^%mDCIVDpmW#Aac__m97YV2x@EEh*DDjBKf7Sel zuGOaAv-Gw<6j(L})}-^0cd3?QwF$3R2&GXUH|XGUhbhtT<6KW#P~^b0cG`(;r_fM+xriE(SE?*;mhWlM9J7mI8{lQJ zpBgwbLzm+G{mCF5FQ5OkK3pUXEQJG3#?}DfRU);;mb(#F7p(O-lYpMB`Z|ahL_mUN zeE(D%nLu$vrd0}~F$-w=k`&BaUzwQ;pf^xZ+<<$FJ{1`56a&Dv;n33<1lrJ z`Z3vrgS*Gi1nlwL#tz(~_ycXyF?$d*4+|WIE5p?{9hj6N;6Vq|zP<*2W&~)g1QGX7 zwU7xcu9dniT5`VJWX{on=5{+H75KV~bJWMXG+%VGRXstIU(GdxZu|=AZU8($v6Y5m z(SXNL{TIAizBPm$3b9+)X@H4NPA|s6!v=LsPvTOrZA)D_ZM5b*H|pVnE>dyg7BP-}@A9v#Yn| zq2Y0|k`?OWy7sc# zI+Z2ed7fo)Wc}=I4GUNG(9#mrevvO?qzgdpBv1p6^`Dw&MO@fj;&IB)jk#ko_&3?f z$R$$!$O_Qw1%ih{Z)43ECeC?HlwaR?qzNI%37`!dpz^nY!ico9m4k(lJmh6MGQ&#& zS-q*XK)wWcnNKwIT%MJj_Ol>!vfyKyBt@Qt-pf$OrS6z3Tu7g z!IEDruKjY<)Dy9#EOKZT<5U1;U%UqgmK2UxF>5%;H})NEsa*`>;{7Il%z60(CKkM} zDjlFjCD;wWY#7C18g{9_=pEKxEkiL}HK{M?0<9Qd6CgMxJM>H6=rH|}tzrq3BfZc> z5owCMhfHbc169KAa%HY~IoK}%?rh_W8f!;Tp4VKmn&&|>`CEX zy^kz|k4e`qJ2H!A01ZcH%q-D%b%=zl6m<6(KA~cb3ijFgl%oT90tlNW6C|vUcg)bfR=TM6g(8yM6>jM5t5E}<`UUYGoaoN zHV}tX3e9L0ibgFUXooITPQDy>Zn{Rstrrvwa;^GC!*c2XgFJW@fBb$}ao^>{!6e)@ zGt3o#(s?@kO`xLaIm-F#4MvnZbT+hL`YhAF`Tc=AJ(6q$P)3nqd{de_DC)~28FT__ zRRqf+TOR5q*!Nr^@z*jid0pe-7ki`!c`PvS5VKUvji&^~ogJ_e!y z|J3wwL1tS((p6}XbcIbaE$-*jaKvxO^10zjd(*QzPdKy>2Cl#BGe!{*Um35DhJ0o9 zVCqPPTiDOR^%*53`tKh&UveC{Aohpk^9m}pcdC(!Li^+&*X1V#1?+vdGG00wXlrQ* zNFrBno9k%V3+=T;7)1cu@mQKee&YVyXNg89QPo?NOGfNF0fS}?n+m>riPQNAm!JOF znNXjd(28L~!CF8H4e`9!D{^XM>v8)R)~dZFf;vQ6PH81|y%!qdhT1@mE^b z?SEmoGZsBOpfa2sP31jP!h2YJ*cz+#;=A*DWwN|e*O0c77^0v+%P>18vI|ggo}JNU z)!F%{KE(>d7d_jqh1zyXFDyBv?*U<#gSJh{$+pJv^(COk*+er=W6AcCF#KtWAUUAb&XpKDILmK)BO~EZNPhF;^^{BVZl8k5c zP<(sG02q&AL14J{sQ&RsGqb%2AW_U729!yjGA-==bFBv)fX@XbF}QD@0xAZAXzf84 z6#JaB2U%UD%#K#&ofKW36zzV#3vUPOS#=jpDw;vG-EgQ+0#qI@)V!w1p{^2NuKQ#G zX24*$v-~-BZ9QPW`v#>=zAHs*im&4Hr)<1rA94b2IMWx{R_lqeW^eW3a86$zAY-ZI zSH)aPx-qTtYBtwYlqzxd<`Y9|j~5fwUdK2E&ru*w@SX)L?*f&ue$_FWY$XNNbRm+5 zYJ-4AfR>IGuvN5@>JTqEP~D^Pco4$NcWF_p@ z7dR3Zog5ECrds!Nz>wx>CTq6$93KzCU4ksG1Ac5amkyw{4@3YuWG!vS#Ls;C-B)57 zH}ITK`=7;ps^VVf!~($($6+Uwyb{IJgJ21_j<)qshg}(o8{t zvz@)W(7`?74UyO)OXGVr-tP=hhd)Ba&t_ph$5U)lhS>;u!r|5}w|1ccpczuBdIiY5 zqI#f!wZ*@im zqK?6|hIp2tnZ(`JOjjjJHg55bq*OwWA19UV466aT~_;~dsjh)N>7tFq9q40CM>^uU9oWH-FXke*bXYBQOya?P3TIr zP6KigzHeL7Ygg~9?YrV~QmNcL(Typ=+1U$(ujN1_!`pS<*4btNT};TOf`k|>Uo>1E zUOtp@P!p~_jR-B(g#+3vs;1Ywke%Oo#3*Rc1-5qGd}voT^my&({@Ym1eA)%iPhKJ{cOzy`FpT9ds(K>a#!7)r!r80#~!G+md>n zYs3&{Yd1y1pIEsAcKFgT6WQoc_S$TIO~Tx_@H-!4AdajakKRHlzzSPR@Oh+tp~_P) zytbyy)_p*mx&KmO?<+3!vv9fgT=A!!YZ|B)!Lo;t4Ot=o)TWUlGv2V_W$zWEY~(2= zjOF0R-ZT4lK1`E^nd&*+ca1OI-wr~CSPN@9VFax_hk*U9ZL+d4k=H$c!=If9^6us5 z#9ZOXeQ-YF557QJA)sCMw85p%Cu|O@7&B|z2b!)!-{C;UP%#-)-N3XeP`$YERqgC- zIlYFOK>FkL@r~PF()V$Cpq4M}>ghW*7&v~c@N$U+wf4D(F?cZ71CfUZrG9x;V_(2+ z5ly`Dgk}*3ADM`jFxZ3)4d2&l6=P4J)zs5|{$9%J%bn&J@9hBUCulEdg~apLPv3t2 z7CriqH0DuOP`?5Iyb7HUyuJ#uqfVsfykFdZ2zChQ|#P@uj0hny4kw%bJ(| zL}Vp9WMn^&HG~#S$7;TP0s@{fpsZZ8(`^eIsQzii%DL%&Mt1}x7i?47MsG+|kELrU zlERGjiI%DS{cS{RvtsQxzZ?EI+_rA`K;^meosVy9v22h`PXNX>Q-kU{S~AmY{;&s) zRUA*fh;!oV`qB1U9q76)KE3#Qqm`6Y-)$z%J8Wvfu5PD|STC#>=zvzxveAu4@;v9q0dM$zNP4rM}c8D*Y&=gx(Alkf*aL`8={ zl%9s2h8EsV0(P?0DY-#cJ>Wkpp(TXKhn=iZWQi*#a~^ZUmmuYEaNv4)AXLvf0gx3E zeT;yyUjOETNBe0>vcuJfJ_+N*F*xJ{YrW=%q~*d#GoYqzEoSB{mt*g@ikjDPFJn%1>?eb$l9o;Is1!1h&*@GXUKhO+#;^E_(*GB6GW#?}xj1~-alB^f>1GNPXcV7zM zStj*wvXH6GC@i7Asx|Fs@5P1tHCCdmpgf^uYXQSP%VTNn0SEDT=K@GOT^%Ngn=Kda zY)pW;{C-w?Fw%qQyQoYkn2_J-tkCm{6#zDF?Gi$*)Aqt9YyljUk$r24WVjUJ9Ukmi znn7RFdG4fs))c`1<`_&_3$Wz!k$Mp?NZXD2>9mbe%?d@3< z&5iNPdDVyR@x@iQMNpl7jDZ8u?m7@b9S%(<*8`o&s!tdBS}2E#!1}>xuTLe!tjIwJ z0EPX9U625Yw)UCb^iRD5`36#g)#qRSkrFhZ(b-M>AK0OwOu=+-Ka^;EBJZSi3NhPe zc^NjfOts(P>GQF$dTH$B?#15f$c9KVC|rmm5495@WI{kDtbo*-YnwUS>oqvkKl?BX z+j3XhFwQ(P1EGCloz2%$3oZ(mabvRc;~fv0iVdTPa0n2vBbTuxg`9v8r=$Di@W&f_ z8zH+*>Aoyo?V4|Fz0|!FzEXFMK38*&t65UY2-s11)D&RaqU2Sbj|VRk%j@WI0`G{O+(W zEM{bDf?fiiHK8a);SSV4WLL(|e2z;-E7pNnzrVhn*Ryu&-M$RuFeLzAE?qi|nU|~` zdimmW38LqeNHjNiW;TucqWZ7iDC#XBNlfr@I0W7#l@tdK(h|-yS+AL4wczs*r|dH+ zW2HS_#fT}KAx)DoZBObY_3EX)s;m?4gJJ?vyb$X%xSW>*r6_C2ou(zq523>aa8J%6 z@f01b>$Ue*Vm%hmA=xL=5szxBVvqRpt7tzN8+1rGwXLa-b;TD^%B@O%8I?0+s-$R6 zMFZq_SyGk<_EujG#ZSl0de-%=42m}B`Y2PAbkl5Y@b>CJo+w3d-@s%OA zZLoQ8ct@#l&Zhfo^Uh=*I!fZ?Yr7TBlU?ALh~a7n+iADUy3x8YIR%XXeBr7wkhsk@&=VD@-;8{jOB3WNJ?MGxuX)z}^S?~uJ$nUyxyOp*w@JkH+WP5JB*{wF;nYac>Qb??{$o5`^5y{E*u$dAXD3DbFYS^h ziiS6^0zJkI%XJ7l!VH*Vznq0DKbiOzN`=v3iayh1Uz-@Ia|;82p>Y4lwTseQ_1;+=g2IB87=*!>N>|!3nd1+?Y~3>7i!~Mo%K3nDk!J@-?4A z4$6h?;aO)RN4RHGU^NIms;}=_duuCMPrvIK6ve9!dlg>rH`Q` zVu2cm2bYl=$T+0j_$x`0@6MJfqY8hh1$*A?XHkzHHA`gc24d_Aty9NM^nnD81h{z4 zLJwO86OHz+KAU#LVDc$e!8hqDCb~>e-b{ermrA?~Bibj0haJ$3Ei&~7xG6PrkaCr8 zCj%r>l8eLCTA{{Hm>cGcosL@4x9}bBn%c~$^t2^wrw!B#9e^wbTZV~Fy`yg9uI%PC zVCTZci@B=VE#lkaLHAjkij*s}6@hZJm*p&o*#-4AnAGjZDrv(_7RjAWxfU{LH9y~m zZ4of5WO=$LiM^egOWzrjb*-c3TudI^eoVS01v4J$#ksvdbe*rT-5N9C0f+KNyWvn% zCA!w+Czf>$>}3+)%f3x&aK7+hWh(2ksvF^9Qql$$F|krI@M-hRV=GlXS>;U*%d(9D z8aXV3-9FkK>m;zdonePqNX+ctch~(kpIEg3oOWF(ZiLqyr`<_wUB9=D7cDuAzNJXQ zF?h4x7vR_VxYkG$hjgL1WpbXy2#VO9wWgyOspCLtqZqu3gVPhm2|O*X{ck zZmA%HcDz!ko85RT6A;&IK#uutspOoptxP3X)Ias8N+ggu7%DtB97Xui_Uw%jDv+RQ za@l9P)dB+Ga4r%)LldEeM0g2x!I^lemzu!AgH>V! za9TO9$91OLoJ3pg%2xefR9`<&*YI<6U0Z-3=N{apvmwT8e)emTIDkbWy~VmiA6Acd zcWAgznQAvbhU%`i!&WCxH;~RI@s2)^8na3_uZ6r4lskJ^KOxZqj-t^!HRc^_J9@}@ zN%L3za%iJmJ-)R~)@)}R&=xbI<*}_5&uthzD!(&`e<57{p5e7Ieq?Hhw{y2CQ+F29 zT68jpTWKMa9@abjb?1%2x=DEf`uJN;JPUpH!W@$+-44W^wsQXP1q>B<(f`BRTL)#? zweP}@hzQb+ba#VDgK$&QAT24~A{{r`K}`#g?IBC!RJv*o1l44?f&B2PAnAA66feb@h-3ebG(8vxPyLI=+f zkIJSzxPNOwRA}dFqF@;NPvckCkhE6?WtTcMqNu#b5~Pi1JW5kCjK1^ZNn0KDJ_0A_ zwe|e zmboGDn8@&(qhBtNTLo(8{CjOOwsVhHC)gw9&t_gveZ<&#x!~Sm7_Zrq_gYNQvoPw1 z*4e|-AyFy4$G$axCfglV%dMa+N%+Mu*QOR)A(^E8iW8Vi{Bv|2pMP>lWas8h-bJ;z zHqH_G>=k8AKGhEpt!G|Lt-f;=cHr%NY@898gUL|~L?wI#_ z`5+=i^y_H9!%Na9jeoi~z;${_`;+5x(cC0{znCY(_xh~X_&GGvo>$ADe0B7P z@af-u(YA=r{p1cVk(DSzp`}=dU_RFplBWi*W}Lzdg#hMCnurt_GJic!FrBqJY)iUQ zZTT*(ucnRfAmUdByVF5^A9>HyIFhC|J3e2Bk*T>&#SSmTV9i@6tw>`)k7Dh78@zXZ zRhq+b<>*01@2S$Ow8zHTA07BB)*Vet4!vKkq|X>MKHmKBI>IM&*xsmsG?K~T37qW) zOlIT7El8WyboeE^PrLld1;woVO4&tT+GZjgbm)2=K@ zx88ilXwJN2Q6FhDHKnI`MqErvWL?i5Sy@BsA92)1Sk2XD$-Zo}ymmzG|4cPU=F@2l zd(ys(b$Q$nizLf37}sa^H0VCyyIA0!IJZ1_V|6KvH9}K>zp5DDXz+&*&i;<00-7i` z(P#MJDDm#CrUCGlF-HhSy8p~!bK0Yk5u#R}X6|$OoE#b}gQ44Df+SuNzieEhHCNL$ z>rw9>U|IH6jF-LOeJ43^>sM(4WrHdhrOr8^j%LJo%oAe$5$SAp;(7*k%OOqY+O2-7 z%)s~C7V%^P2S^GqA=K5xi_yTenLU?na$&_%*!=x;p1Q16a$F)4QBxn`f$`MQA6j91 za734$XQ`Hx5d2iT9$Nx(SGz^{%Y}}j+fa^sJ9E__WKnzdm}h_l8WrF7+7sT6liAT( z_ObuKAR&*95jo%N#j@u?D`8!t6!b#{6*wYXzm7_M?y7kdP&Mxe>2JVK_F3Pujt}N_ zmDj@?pUenfGV8m|_VIXUkDvZrWr;IXB%D5LHE5OaAW8CF=$n(z82$UI?8hJ&XH~6x zrq?(ZHmLmagH%{r>7Gsc{!g7Vddo{So+uJ>L-O{d)SB?AdWXI6o>Pri>}OiI5JsPM z1L;q%<+MhR8FyC0dN8Ow^u)&*<%9f`t?lLT5rFYf8u}=~UeXId#5C(S*QuWlOm3EV z^VAeS)g<||ie&LI^bcaK40Ip1KO0|VpgH@vU0uViCJt|&u)G-%)tZ3+W*bgl+*Z0d zX{oN&A)f3_2?{cq#~!&k2~hr^QI&DsXj$*4WB;&c!+w)(4&cQovJ{o8c_iiyETaB8 zJ+hv9|K8xpM7#7-epH*%o|?V1llo_A5mGSUjQb*914g|3tEl^Xh1aJpH@(k+Sr%Ehp&%$YCca^ZRCTtyY?DfJWT(&z4na zA}P_Mkw$pe#3ujYawB#XX1;PJ7j^@2MUlk-GHddZW*5@B*`jhLoT*W*g9*Zu%lYNbd!NkREAM;PwQ1Y5?gOJ1F~5 z68lA%%8Pg>$LbP>4D(if0@NpG10dMqA{_@=8g;$W{A2zWK7qr@q-ck){4I(@EDrHR zo=-fN2k83qop!{R2T(jRQXT}GG*&wpVrZ91Ryjx7?x}-4{d5MYZa=-=v0e zo>%-N);ZDD`3F5g5z95qqzw-Hp7k*f?|g48gG%_H zD_lPexg_E8Al zd5H>V;MfCS>(9Dg_*B5PP-7gFlcqEJfh8s@G6AaiYrkZLX%u1>&tbA8IvGfM~E;n5pzt6Gkx^Ll__(MZRVD z$Yk2UYiqeZg2WW0z*CFI~v7vF>4G`5n_!HmkI6{DH(sJ=U(NJ<&dsE3-I0`JM_) z@+%3S(a-L4>7NpP$+2kJJ)r;7(4)?;9n(QUw^L7$I7KG)g(4?je_BH`63OZ3K4xho zR4a#}zz9*--0WZZ%9(Q@sA#QHXz^=b+CwExF7-#Ma_QH!S;`~T)Jd>SW?23GZBx6$ zUyy&}?I(R$mK0*@vY4)^QdPcPWkW?C?Zxu;YE5G}oYN;EEVz=QB6rd`0drQmn4vWK zu}&US*PL|>;#Y5PY627SA&Jb8$>GE@wer41R+_W6D>uFV-53IAC%yd2 zN45q!d6q^&o%6Zt{ELa-h>~5+6M%%IZl=LYYybNL*z@DcYXAl@KRZ)p2U}>ij}5bE zVUj46f|V}DWga017l^@FX;m>#<>{&Kry0GoE5B$h_|bK>C4`N=k<$O`m;nJh1~-C4 z6_qHO4!h*3fLRKe)_?_#OL4|!c@#3RCAAjteU&+dK=9nK2Lmtu=we(*c>U!mJjy-(WG6Eob}X4$e#U`25J>%7 zh4p2R!Q^PV5hIi7w_^!(j`KlZdnP+;o=E~Y{Q!l%yq=PhVYjFpkVM~rqMul^ z17)F#=oyK=6)yE?;fySJuZ%fzUeRG&;`^DOMQM(IJb3pOITU=v$q{LZx@AjrFbNo@ zy(2G94sWz7Ud+zUBZ|@KRFDzlqs9yrm}$8&LaIxfG zMn=b0d(wMEK`KR0Bl)!|M=y{`0%MY7k zg9he~TsBU9Vsu-z3TgX^*Oly#&)q;-zEGjd{30+jp6i3&1;}}S4Xo36Xd(N&hgyXl zp>LmJxpcpEn0Imp*Z#cGYkxUkOxXB)`S=%-ngG!f#Y>HO5d=Rjs1**JPdtNWDx0G@xxmoRWI1qPY{S;cozn zrE-GH2a)8UfuGMNXdDm?V5(_ooSx zO%PSlm>$oEc8U9RfE7sz2~tn;kT$=Sz3#S5vWw~p_gQlqm1 zq(LT&&DuvLm^qo!IQNSrMTyxO$TrzRWsyf9UXKNlzFwNyzWjQ?BYm6!xp zg@%~ACDU#6N;}wm+~zv=4Hp^iNr)%Tf-H5t?q4O=Kv|q7IqMg_Hmk^D8~A8kSmJnm z@*tt<1dFCRD(5KA7cJ8@v{s&QHD?%kGhXg+%1vEg4B*i!$1nPM#a@n6l|7a*u)~_M8}>oBL)wJrxNI zTP@Zy^!Z&3)y$@T_}y>qOEB9vYriKCO06M_smx*Gg~+@;zUAHI=~{>|ap<#82^668 zyFSnFL^rz>(-lz~nLA1A9mytU%l9M+83pcVTFiRHWaioWMLf~m6!a9T>JY5^HTLm1 z&)T0V@)1dRBB}$zu$83){R><)I-2c3vf@N7?)bVOImO1V*8rl-*+a;G(W7S`H}jOU z8^#FX<-W^on(Pl4wCYXfIOCc!cl?64lfcrWwO zgbJx!Nob4Lmw!trkVQl>TNy$ZCFPK%#ofvQAz2~!So`sk_zV6Bf`GCRQYTsNv@f%9 zTjNVcBoBiFqP;OsKGPGW3c7rudG{?hPD!wf>&QGgHlUX8s&cECKi6<16zI_aFt*^k!(%~b-+|TS=v4++8VRBAn8xfo7pr91CVG(ADYv(-+j?ma z`QSDBvv6z^mq4QrROjSf2|x-&51(2yF&d%gwGt*I3ZB>?#5sE-F#rurn^?Ej({`}t_d3ehY=nrZL@JnJ#2w+)8kdAtgmOT>ouWtPY>DJIPpj(yu-P_Z5 z|CH6T{r>ZG;^{#=b62nO^fA#>lXZ>Q!i{SKc}@tlk#&$N4Q<&#k@FBhzSe@`Y_S@K zAiD2Sp`nJLh?R=Z3Qy*1fcoY?Yq6Z5bsS-kLqbQQ&x^FaTaJW>o(Z+8P*+n0eBXmm z#Lotg6wIV^_W0qK?th96#ctAlyS|q=2Re}ho%?N8d(p78Sq|=88B8^`KJ`iR3^ZsJ zEd{di*0OyL7?E95N9>l#(z*WVod{RSF`vBXM7?p%pY=3QJc!H5W;LNwa=c8Ob+W;H zta0!%!oF9J6E9e!gJVCjAWY7pFLgOI(x@?_)b)!IW4lGD^hU-pp`R<&ts98ZR~c9N zNEKIh8pU%L9cEMV!iJc8GGFysESc6unQmIJAH&33fD-Gpn(mh21$@d{)7BR+0v=+1 z`zlG>X2c$LjL(r1s2T!hqSk&g@kIx*DXdC8$AAx;*Mr7TX4Pu|ddPPI5VwbRdcay0_Kl^0XceY9l`zV@`kmK{$l6K;2p_mw=UvwPur-$FCzGCJlH1AAi(Wtsv z7W2i%4$$r@OMis$nd_6=_sza1R5HapknNIfLi2wUQ7hk-dsYW0)Ji z7A15{T8JFO*ypW44%e#zH~{%TwLJRw)FiqA18Tav=MfR`{=#V zi>Lw9Cda>Jo`LnG>MR<#XhUM%B8h}gYYamWu(o56S=e+vfsp@i*TACJ-IcO5_N;5r zg4&(F+lz*2eJ2?QA_&-weNeCC5QZ#M-XRwsBKwv=C)4Ff8cCs1xaZB_BbKk?1o}7w z#4lgft#lE-vqlN-MBb|o>pJZ(dt_1u`eq`FuLa&CM)u=C+c{F|0~{QD6*XKF^)VGtV$om8oEC*j}!*}oVMs)oj$g)UC(e| zmvie+C#)OasmHhfX5+DRxvrtKK7YtufhhTArFU=P@rHM^k*(8|Zlii9(7zrzY# zh$(qZ*1w`1KpMj*zi_MPLyz-duoXz;9a5<=NxHLM1o~4oGLZO62BWqODfLwqnGky!%9(=(C6>Ld*USY+3(5p-urpJu0Xb*briPqyO}% zg3u<_At(E*Nj83>ZvT~0K4wtL6Xnq#?MrhnE0kJ5<*rV?9H}}_QH~(kCZ7mKJ_Z61 zvh<)(`?$tp^#_t;6S}bolBbc=-e2g6OcnvqS;%xIfsDM&7NPBpxuo+Tpwp7 zfUDv;cThlVmt93;$d>l;tMA?r9&A7_Ul9@ZhZa62Y9=HqL(g@(4pdHKlLRzi(@V+vBff zn_)BF_oKd)eY{!D%{wxq(%XvqcplHd6@CGOy(0>_6>ZLU6dhOsMfps4Xus14RbAF> z(A1UBA$gXh2#ltG&-(``?D3E$N@injx}f&1EvwnM5!({Xqd-}~l>v91gd{`B%s^!w ztK5Xk1DUm`UG$4K2rG~;dzL<>Y2>sa@6TG|W0 z)pjT04&e^4Ws_}&un9BlT?WYtDF{pMy^kAB!rsm|yOrs4Ak%vPTc&w#W!fIdG`ah> zF~>jM+U3C*LLe%iLSk{XBjt;4zD&0PmnS?pwy&eUi$3jCR%BiPTqi8jJ#(|tMK0kC zvzDrZ73pO6@ZeW*5xA2fHQ7v<>9xQHg}QVF<8Q=<1!JkcZK+AMdEyk;!O%34W%}sJ z4Cfa6&>;1&%D$qyi=(TI(xg0d_%|{RA>qxYV5|o|v#`5Is<>4}GtwtvNeOlGZPS5)t)7TDH zEBl?9B3S*mf5l2E-8PhyDha+E#|q8?;rIX+PoO@5nMB z+8T9Tks?M~j)mWV#_zw!wL0YU3})F1U4heRjMv?UC7d;4vm{}Z;xLAu;<`22 zQ@4rz#8@A+F(ol^qGz4Qif}bU%N~XeckL5eqUUNOC#5*hE$ccqpCFN5Uc44>GT#?9 zW(}2vnbvyx&~G(CwtQt9`kk1Rv+WItW0@W%IMz6yO8^-on@AU|P~Lzs;Qiy)3F z9`=#8Ab>xgdfK>$ep5l-JO~uT1`Pw(baJkvr&fkoXe!>j4|YxE15kg=_0NTJJ6#3@ zDQwHU8^&&=beaEgVWAjaI;Ri*y?Qspu)2whxd_?Bv6Y&2;mr9asn5Y2rOf?@7FRl#O-3oKHv1Jm{xL zgrFxvfDJD1@=K@>3_-=Z{ z5s^$0vGa>uda=;8@{UA5Al$8!O?m)e-@~-F^}RNXRUc+OilkK_fNJ<6L{Wb>8cMQavi3 z9)n&2i7cH~kU6XXD^ELNZ(QyHY1&7w<3hJL9@doad|rsal>Ms+=3biD&V zsoRG7%+Rj620Kd1`y@)R9+Lss{)9?xZswwNWD4a&N?5%y^(-h}k8Oc-Pgpl;*{b~D zeL*pgv+$WU%x~m&=@qkdRA|`&>xwYEV2)LvZ#8=2PCrLD_El<75S3;y6ilDIhV3JL?Gx@K?`@t zx>8rpud$YJc_I7GyF-eQPTKxZsI;!asBjoo!gFZsTMhS@B>`S${WV95BADh@eKpL z-lIMj?L4IEp&s;?eJ7Pd{YBi4%fe-Bv>ZqWV8DK5m&_TbBg4cyIP@yD=enQrR>F#M zHcg{(vLA~22O1#{!4mP_1z~M)=02~m>MvcI{rZYXIN*Lve4@Uqj+j}Z;m_?zXqNbV#^id}AYl5#>HsZ$dZ_=?;Px!My*~ z0a8Gs6~c!lE-9bYnrJ`WJpMF+H+d8VrkqKBN4k9Y8lpgh?9+m`>MH9M=_(vQrrvHg z6a{=ijmc9^t*%u?HFR`k;o0gsWv{LQ@Cuij> zcBuGO!^uI5atUmWB#!Eqnnt(-Qffx*|QGtOFFhc`?Dv99BG#rM-u}#tTV&eU6lfwu0}Q;8&id zasrBF+)mf!%nFi~n>g=yqxXh4IB$Oy8{Bf4s7EP_%~F%$mTUfXzB7xmk_DfdYWA*i zP?xm{;}f84ohg+{IYpORyKp4agc3{=?SsxIDx_zR|5+|h-3=)~Rw!%EMEAte30;37 z{hlc1Ves&>>S(iajvCfHlfcnK^*6`PsWrp;i1@PLZP^i|E@EmQ{ccNtS4!yX25|0$ zF7xORE1?b%!YNJMNop`s)WbVK&%fY)xeVNf7w4T4<~B5$W``-EHdO!{pZ(8(twbk& zPxyd&nW&UF;s=&)-_VNNtm0eba@>0;!Q2K#ITWn$i@}QRsHmGKudKxQZIhlBFYb?Hu5I40x00TYHL&GVZJgn&V?e(S z5`jg#G)0tykA$%Q0S#ql3G14@_IV|w{Ek^ZN0|z%ydYF(-w2IK7oIgX9$d>Jld}ay@ z%u!MVOI5&ce-Yo+b}&%=dNH=}NFNbKi2!yk3OTwPc9)LFfU;5T;bZR}hOZi=uUzkE z>P_1zPfx3SuF|%9Rdq$ISBrnaF+2ErLg&`_Q~H7xP@L(h`bHL&pR6$KIQynMr=^`w zguCFo2jwQdnT(ujfxJ8Y3mb;JN37sl=2BQSx=>_fC%EnhUqRrrg4JinC}J;7jG)-h z8PI|ag|G-YuY<9&v^0>esE-(Kn~^ujCz0S+#H^| z?;2IL6WdgS{y@E$powgW&+n-RX`w|aa!ZZ>PhQ#nHuq7QfJxxca8c>CdnPl5%c1BL zXCb%C7u`1~fOitT7g z3(1SZV}5qqaD@Dga)0usfwxbs*Q@Qc#x?n4gBG?w4mu!{GQa(*C(0E{Nkqv_+<97A z;s|EDG*ZcWNJ4hqT%sxd%YZHCBo9|El&L5A%h%C(GbzVmfxD*-qr^8yeMTI1>NzB`IN08%y%j(K0uu1N=5*=0PjwQslQVKc_%Pc`$H_E z{VPaL=!3yn*YBP68==t{h z?vJ74MBi9qCA$*d>XA_Yw}_IDIm*acx&23sq2Is~00ki#+hb{i2D8TFh`q7@!2*Ep z-jWg}ff!DBdW{yA8RM<#okM9`kufRL`u*}w{wNUkDb5^Uu-`o_T}s?P`~4qvOoGSF z>$ln{^nLLwm|jyVfgzw=Va)mU`mvHH`r+nFYK$jKJ4+G#JD4r zoW+c7YCO4Hb!W)iOBqqp1R#)5mBIo$+K6%S=vRQ0w4FvU0Nq-!%1uS zvU2x?Gpy*F&XA8z*mp*R_11`Fcz*9hRtkZHN_+|IJw?eliN{gm8T6HCAwTU)SytB- zgJ<#CciIzRlXXT6RspB( z8DN_>-tCk=c*b+i7liCvw6{Wn#RQIvE=kKjTb8A!mjDtHQsm^Ocq7J#$=wonqWS7p zG}ZnO(d4}GGqT)Y>LOEqHB;{~BmJaJ=vu8u96Bz`M_?xvO8k{QK=4*4G62S_Ha(C2 zE`u5;SBH}j?OBg&^>gNr(EG$Ey*-mpt1YXi+w$nz-ARr8x=NZ50R5y*_Qz%JIn%59 z^U^yzl|>BX_6X?Y&QZcjEc^PWsY3hbq)=UzU=`Z!n6Iz!PL^YcHv2JwflA z`hkUb3?m}nwANoGI-SQ8IY_;IrWwo)jTduim8qWSBUMM`&J>Axowes^JeG$vmV-|m$m z(0*H9TQ8iT|6%#9K#GM%@4sIL8hGHEB#%YEGemf0_63J!5RzxmtdD-7TRR}V$*MoE zL3#K067MdGLk~;xBOo)B2xJoC*B>R>KlMV716L~n5}DWk$I<>@TBr0hM&Qj#HK3_mAVe9v^gahNpXc(DJxjoHNp$f^(H-OTfRCP*1S9q9!C}zdPAGyOpEV zwg0N(JQrlHXX9=L`aV1z!KcjDmJi=fCgb{w@u4W{FYwyB{g8 z3iLo!yJgcOR^$yvg*|(Ea{j%<5#RqVA_nk4 zMoAb+>90a9j;Ef7mQ|n@G4Ul4zG7w}A2HZ|1qTN*$TA%pvN_7%T13%wndB{EzqhcVLi?k>`k zI}<&bs+(H|Sy=H^?C6`ddK>2OJ6-9i1lfJG|8A>1&SPrctk#B5z^mmSYiS!lcIh+Mr`ea4U_!cv-WAAY**rcH)8cyormiq z(@R}(EX$iC`B8c{MHN#(mA%yY^Dd}<%QgsIF#k@hH-J|K9GWVZC-N4z3KTdTH$ysq z)JN~`1u*nrX{7&sX??pifCn<(3l!3r&B#Q(tMx!I!7{5?GKeOmXB^TGLPALA6W_Td zc8W#AI=8}c0F0^g%##Eu=*N@@A`H;dg8%!{%ui#+%Pi_3q9e6Y_|{{7^@jtux|K!B__Gy-cKy~H0hfE~t`uWL@;hDjqMA;_m1V*~@|3k?D&jGgE32INz zt?ywid#?v(W|(Kg4J;GWr6#iv?)=~K;5+rJr(Wo+3EieOVW6SX-4xAY?v8TcHr<~6 z-<3uRdzRbn?YDoqT)|D|v52Ht+L^AaS}fKd2DD(S<^vf;wL|QL3d^A;N~BUIJrzv(Vork$ z+%#Z+Qmg_DWG-IzTXQe#xFPnqDZ}f1!YWWBtp)#4N-7ON84NoD2vY9G^MF@q6I`+# zp#stCy{JDfQB04}(-lFFQ0A+wcP}=`Wf>+VF-4Y=4VD1=j|;#Y`T*8(^xSQhdDs`v zCEYqbU)JlO;6C6}j)F8FSyRw}&-R-Ng~FOG02$#5+S2`JAui3&HN|}9G`nCvdwd#x zv1Jd%{1E+PrGl;_9_B1W{Hgc)C;oJH2>FCR&RTpC<&T3)fXG1M>-)_8doOoSH8zbj ze;ZQ~IjO|d9>C;rry@a!($Lh&#Si_GQ8o@o%)WtUH3h_u-}t;!>Z|0j8UT%oi(4xK z(SC}yc|{Pv+=Gkd2F5fXzk8awIt0coK2}Blvi%%73lo@X)MV6zyGv)$?F3`Frc}a}%{VhJzkZH^9hLN1L%so-4<*V-8E1<{p~kJj6%1iW^7_959^5~N zP>FJ#0asIL)SgZsz+JeG^ zJ(wQF94&V(VZ0gAWf2qhQaxVLc({4p0Lr_y0KRiWQj++kwX4gJ}RpA!tX;|q}Dom z6{W~x`+zNaWcL2|m}fsUL-XE!$GxcjqYva`8&IjvZ6JglF9P!U9Z0Kkm40WPa5LKuw*fJ2?6pW%>Mgd#^FzZ>r6=*ToITshOe+fS!IM zW{?w;T>;YxuvNKsF)MPyUIaozM(`%U>eUWuTT$vEsHP6~fxQV1pak|d>P$y-IQot$ z*tiS-T7`dqIw1ICPC%7VI+Aoecd_b=p9UYVV6`qCNzu1wl*-M6at!H9q1^jm>Ut8L zl>d9Xj#r~x`kIKvn3BNQQC=@#ZFVKGug-3&a&)K%AQG3Tgb;<_R8r$%ZcCp8=YHDk zWqVSy5_zFfsO7if#`7;7gH;Z*iNZX1^Bi2!NviHlL4o{<_Y~X4Ag3jb|8Mg4ao`;`mOpON`-{qyE zDwzR0Gl&S9wkQ-COH1z(L0EoyxR7_eU@odndHjr4;$uwz1n6??yV_4`I;1Po;*1~q z`m1#xr|FaVOg77b34OClh-NfF>Ji{cs{`=HW3zgZ0xQYv{>U3+Iqs07sRv-r^fc94 z;JB$50GaO%M6XHLt&(cgnHN0)!0Vj{GRb-2dTt_B&ZH=eYhK}4OKI<(G~G;7 z;n9yfX98}SAp38PHRTF*>>|W9xa+f%x7fZ$LF^YO&CJ0u)zD&WYMA*;{&zI z-V3;J0b%xbD?U1+{omp@z~ghR-q4? zXD>;1@G1v;hsk%wXK*C$+$8+MwF>yr9m5(&Toee^d!ErtW12KAmxYHPG5mvQh!Mqt4ff-QysFcz7+s4DCYEuIZzc zqVnPA`h0N=l{}o!c<*nLbD0EY&I(WMfj4sj6zt@loyF#&Z*Yv?wK5@ScaSX9<15r) zrMwn-d}%DerU(j8t3qbocw!IQzZ8D^TQddxifu446+Q`wKY?)BCAk)iRtWe3g*T$_ zdv(+Zcl1TUb?Bz*oG)^uCexnA@O>z9r5LnYSfOB=1yRt7P7DFkJGPMOuy{PQp!@t* z>F#LoeLWLT?4H*C@N~#tdx6e{2Jtv6o>R76lEuccucjv-LEA%vPClbXV_#(zg9|14 zFEH}BIlD{y7lCS}wasA(48VOoWxwnN$*IeouuweX=NR8`Dv-sbeMopMqe-Bk0=!;b z=)=v^`oHEpK5S-E-vc^50Myk!9QlUdW|VbjWVhn#;^YLrX?Sy>kXoPNnQ?N~wOP9a3q&sgjAJMc*{(Zlj<-&q`Wv-%4 z#Q$JVZXp#!Q5}YvOX7l}i58TXPf-ked~ni+agLp$=5-!UCNG2{TPi&D1aMa876rgL z;oVXx+Q33E{#4KV4C{mg{?yw^Icqzn;6nIjFHhho+$^KvOmRq58-Oic!Kbu{;!S)j zOELtl9I7wUzg#Zryj>MFP{{hmbHy<7Rx_Lvc1Q-39^C#?dI8yDxo*1rmB`?Ye3 zT#D=~DYCKZ3z|hHa0X7N3d0qo#=3moyFOZvS66y1H~Z7mi*G^TfuZd4bKa(X-y6$- z!MvOqz~!mgc=e3rzOP&Z#!jxz_7O~Sp;2BaW*=^elX4)YfaK@xuNDjQJ0t zlM7cb+?OEnfPWN$HIa#SpRa?S9{1w~okzaX&Zam%iRC(Lb-7Uqc*o7W!-Oe62hMS? zcRm~)YD`>PZxEsQfDpT!1o*pAu8Z0G|JFeML0mJGK4~6fTx6&}d~TTOQ)=te5BF&N zVGK{R%=pODCz`SlEQTZ*Oo#MG5dRJ6Ia&+MZ|)>X7q{SyWa5@RdK65wdkMzJw}dP` zynYQsohGyNm7Ir_GooUEm-#gKo6qV<8war8g@kdA>8&se!8fiPAfqz>_e+m+Cyx&n z`hsZ=Hyl7q7V^f9&se5BKBckcM7Kly2W>kjOqK>XqZM@^Q{kPCUZv`bDSA5hJh!Tz z$kY@oxZRC=sKDYo9qC(M^De6?qOoSzK#8tEtozr;D*_ITxpXjcv=6bT(|fM`4t#XD zCfU$PBm6Dz6jD?VdmZb`<)p{aCPokjISv||c>WvBU9W|xG`JdGtHZ_VV$?}H^*7_U z>84Eq!f2 z+M-aQoj9~nbhTY2TI~=KRp4QKbDFJWq^?X?MxxpqqQ@~J8~DfLSD*QXZg=;U|AjQs zgZD?Y8R!`NbN{%3Us7riAKmJ?GTA-DxE(LoaOj3wN@Qdi(pB%E3u+m(BZ zUV;k8PRNTYTS!PUlR%m%rxy^IhKUK=$_ytq07cR;X9?VGgzaQrfm7~AVPhHn4V6GogQvXav!z+ zYC!J;FP87k#jMvJYJ@h@SX{snX`BMzll%9-IxEc#_Yds*f@nBmXG?Jj7;7N5n{J|$Cr6{F`f$3g?E7~sE5IL-g5)KADFUA{ zgW24c7B!(`gvYD&dy^p0ucbDZC~yYoOK09hV>2L}V{y1gBh1Z}OpWFN8@hVM8T{;V zAQbya{Jh?E8yuN^K{rB-3bhm8G;lW%jl7Qmy6KDA&$LxEYi#|%W@az>jH@ugHgR@p z#%(Jo$V}t2OQo2Su*A-&)4kUDL%1$hn#eVHkU~ zai|}Xp`NR1-f7<+n4e=_rEWop5ejt-`R8qwhFn+k6);|9z<5<*SS5yW!!FD2TdVHR${ZY0a5kdfRfwP>kvbV zcdX;C0I<}(8Ap_4@9_X}Xn*JjX&u=qUp(W^k85MTnljkCyYJ0UPaTsbb2l7H)+)*<^<7hLUVh{1fenAPYj-n>;G`^nPg*nZ$xgl0eb-0^T zQmuSs?RzeDh7Ef`|97>|m)ajc$ui4`!zY-OHiESEWeP8B8t zI)Su}2jZtVMi3=8)pr_Z5G6@poxIrIDUaLDol=k6>X4q)UsAjXb7csdB~{Ja#Vp6R zV$qE?>Vz8XVOh3_@AhfTO6tasgQ@iX^oO`J z#xR%#*vh9w?W>e#R^KOe9(&^ng)@m4`Fmf+_8J!`+C>SnD9AY->#?qt+UURebuM2 zr9x#)vHl7-skY&N0`sTT?pR#m^~usLfuu_zj*(vdjThS+p@QaN_f%n2$Vka~C67PL z-VD9pf0}B+vQ?z<@XL4%Jy8o%c-C(Ej(2{~FNSPJ6fP9(P1$*oRAiT5PwJ}5rgJ#H zlPaOc$xO4h{86*th*rWt4lxNaJtV`0QL(rD(JQSdLZmO%esTlFVD2RZ9VtYwKvL!q z!Duw7k|Cc77U~74QcBb0MFWW3s0DS~@S7GdeW5&010z~9=W$?Irz$eP1UAkP6P9gE ztQoS<5*^VaIoB2Lq35CJa?@Pdn5s6(kCJMwQL=UU70pgbBu?#Ag~R+?uMlp2mN5(* z9Sc9ku%?22gg=2~y2awk^ppBuK@;>qiY_L15&<{23xZ`CcR#!ry)Q1ZS+P)c zb?U=vPW_IXW;x6Cfc*NApN%`Fx!2kV78=z*4S>jgy!=Nv?$-?^&R?AkqP9(RK926n z=!SEa<+39* zVGobteoEK5No!-`cg(z)#!gndFVa4F6N0X}P}kMqH^g_l6kFZW%TOZ!9(HKbj~h9F z^u9oNW)zcT6pB@*(E4*uAiZe*2OXZmhZb&iPo0M~VTPgPKlFZf1r9!FMs-leWy;np z#j5Z6EV@Y~_%Y1AO>d}RtTbN0R-0k=d*$be(9kwL5#v(7j@OIr0@t#}2FU(Kg!FBS zyq$9Mb04`-A4ocX8L1)1u+=p{`-h7X_9*{lsZEPVYbeL2h3%SiRsiUQDv2;n$1z@Q zfu;ygheD`xFpsb2nxqCn@cU`_tOu4$O^g)aZ`Bffr?A;lFEg;vxh><~YYrBG$klJ& zyX)zxw%czFErC39)95%az0#3LpVWkRhZKFK*)iUFW)5yHS*hq&{!|D0R{q%g&ye3b z1~zNv%~J;j6lQbmlC0jKKD>sSiZ9k^Yw2WE+b|Wn$TB==MUw!f`gGR`EB!Xl zQNKt_|IWZfR*pQ&SKkFw6v}bWISwYX4WCSg;mNlBFfCn^l$+;;$9pNOaRySN?NKvr z8Tc#ztfFqKxUz3NGw(2Dq<++6>_8;XiKn*SYvy&_Dwu=JMV5gw3~&$7IZS2v+uo25 z#2m9)fGKc6lM}`^5c{;64rI#RQ>#|4Scc4t1~TobK5j(tno+1VaP-fxbKX)BR|Yy( z56LRJ+9nRcFn`ZPj;#c%!cU>)56!*>>2T2%PR094qc0LTRN0da1k`3jE?lQRrTrpE9|SDXfcuhTWn^OhFCtC7#l5xGkP&D=bxT9 zMugB$tgoBqs#@l<6y+=@_pe!peV6o)S%+5A+GL*$#!~ z=l%j{#D)iOEmPZ(U@j4Y1spYUm$JJ3bKD0vy_vk{-bQ4@U7?r+>$H7tsbdwXAZ=x2 zWqh5|4chFs_pv`H&>Ek-cN8D9?WpISwQNjW$4Jrq5qs9Ldlq76{356PGIY&CRZzj! z&a8mGyt2w^q>WOO+{YE^UN~pqlWZ`IRW|!*7TXwWInERa)3d4Y7E{&QSatD|DD>07 zflu=#6^Vr?!Tj`iM*C!Yxc7~OFL-h-%G6ciftF9^f2jjRIbX!RnulIhIyls?1F1%-04Pgzk9^^EU4NW$W+3IK2}J%~0@$&NqBx#v&23 zj{GAj-HWf-Vv_{}FZ4RTy@dpHB0-$xQl_p{tp+M1iX$#i?fQaZZ{3)bs5VgjrTy@h z75bmt(#=TAXXW?)!EM4q0jW&WFARo4E5P$VNFOrpbe~K-)={46;$CI4FGxsAIDrzM zCa8!Qd=)W}8q-ulB29UhqiZrZmKRe%M+7xIPDA+YnTiv0UzU|uYZS9h%#e$Vw>t70 zvRRr{WOLsnJzg_^_h2S()y}ES8cZ$e|CrNl3Xqm^M>V}}!dHlT7D9;fOwY+^CQsc| zkXmrTeNjw6AE{$PT)1a?+9Gt@5o-JZ{Wa&E)TELNCmqgsVEX>>A&b+s;isFoxI8Jhch#CP6(~K`-T#iU zF8n}Jt~oN{H%QratH3%wf%$C^U&^0=$kEGq8w^L2>ow_&;H&83#EM7g|k+^(n!Uo+OS`Im1X{{5|7 zLNM_R#+jjSBQhC$VWGp`9ksiUi11uqSW?fcbM(nU8KaQR_}hZvyaIHoPua?-QOZg} zR+F`0bauJx?vd6p~Zb|7s;;h^^5MZv9i^jG1QvQDHWFAOVJX8F=b@-zY_Cv14agrDF;^!Imb7{OH#5U-! zDC40XI^hJCPFgR+&-SmR+_aeQyXQN9|E7BL`_$69)dUtq-8!r5&GY5Fz&yv%XP&(a z1#%o#0FCd~h33K(io@(Dn{#YE1i0i;`oUfrb{gd2DfFy9*ow2uUfJlPMGQ8dc~5^L zdpXu}{j}n_o7=h|F0D}-pSKO@1+^9sfMQ#0G3WdGrsDDT@C)8btog4NqW1M) zzUAwVX!f6eFs9_(H0G!fBy9yApy zdW9l2&-sp!#AxnI@M~TJrR@2fnnQc`JNmOJ0HQg&YDKiZjnikiYuP9mkc_Q>%2Wr?YW>|a~pw=#o{ib`>clM{O;$ssZb5KRlnb3{;IARhRo0ueLH5pdxXxX7mll{P9rhz{9#GstzbSuli z%PV?25uq$n+%dACFCSfbuyD5PsY}$R$Mg1pvzXr}TcW1GpZSh(5vH#h|8zm{4OvU~ zU!G@;Es7M*vz1K{So}mZUx_ixpTa%eXy)b*yHjueLLBJ!9?eq~b1j^)$R(KhM4K9Z zurE1Q*?t>mfQF4lbMXD7)jXFpcA(mH8a2|f(x%P_LsAC^rid0DU6(*s|4g%6S^2($Fzg?2%~gZPKMp+{&3R9NPd%70n>y$>uxE2lGfqQha@P51L*iM#Q#0?U_BUkQOfX zBhn_v{E!IQsPagIGhT6V(43dM1MR#(&Vi994lOm^vpOFbQ$(rYs*a&Cs%Q_r6)Y;? z;jG;2S)GOKeWyU7m4XeVa&2B`mQ#ldCV3}G&d8TpK2Z3DEx9xA88j?z;uAxsTS+2gD3G-Bnfcsa4GlNP7kDa zb$0*@wYRXx858&YiokhAZG5kK!LCqNDc%Iv35pfmFNa`Uy}IE9qh4$f2WSnF5NnbH z58{3EaG6h?@cpOgu6S7V3>8=2e6vnv7gBb0he*#N(K;?v2%_g=pcu)InDUN06m}h{ zuf3$C#A5W4%AP(AF~c%1Q+=1_?(xh8BKK_l{*cp2V-Xm4UE)RdwsWt#p`A+%FLiCV zC)R~B%xBq8d}yz8N!AiQ8sp}D;6V6;_T?2Of(;B8|6GZS(g1oqn%;J?k=3(jj;U&S zB`=G|L#>o-PQ$=S;}n4|Dn={zR0i9VNU(y7_;lB%rOxHs3Iz)I&L5jw%O1DBpQ)i` zdH{oL%oMwX-+XxYS=bDnU`vv=SpGK&S#2AVY*97t>GY)zZU0Q_mcZL z{iB!Z%O9CJhD7k=D%Gdm)En|5mf16<2S|yMR#7y(q)zz%wpr;eB4H z!(t67WfFVmpy7m8?r{iyq$-1S9Tx5(-94?cwBh6JZizHa$2Zs^^vc%ZQI;cC2UL;` zR{Ua3v7eb=*JT2vopgU4ov`NZ1)gR;N8>C`wa+3~Pd!VrPr%usL`uPV@An8l8A$%AtvUnQ!%@?mvd;%VH8SkLKX@tk zF@B-x{XmkFjG5Aso1UAc`xdpXBFZ(@PIB4)mAqwpld>IVi<7Ow4k`sB=~ zEJQjO+3N7D__=7Xp~vvGoQDlJ-K@qvAKS|tT_4}ug#3;^8KDGCz$1QQf*SEfW31Wv zlFv)0^$fTa0uK|(e_3$1(ayIh0RE!qzK5mpdQp$@BKMSY1t|UZZW&~9HTmgKJTTCi z?LTUvN;0sgSloMeRkrvEDPGQmGGEk!>9tz^q%|Vkm5XjJpMk}x=6|e; zu_0~?XOWHKZRrCb?`^>E8W$mAR79Dvx9y1$ogXq^$8VQyydM_&0^k3p{2Q6~U=A?) zLFn#!6$FYtL;3q09&M(m4LQj*XRIjijY3`yJ7;2n4;n=PG1y3vg{k)T-S_hpSVzo<`@{u)9QqPW^F+T3YqI4KG)o^k+lvJ$7`dVw#jxX^ zd~R92mM3DxK{T(jDgyW-+9j*S`=gT2DHX&+$$LO9d4(Y6jJVpX+_6Jr z%IYjS`CJClYTt50=e}7AH!bH!&)?o(_VQdCFYGC&vY zjkjpT>+t^~JWO}DDP6#hWSrb}L4|FTE+4ONG==U_bTSN@>pp;dHf!6V)t~I$qZcxI zwI?kT6s8D8p41gwI3=!EKehasA8m<4`u+6|Un=37JkR{a>+kzqxDjI%FXnw0JD|QY zlXXq=CtnfbaA3IiR5+&L_0NYj=Z8M83Ag2vSby!EI#BnZ%HyP)#~Hd>NM0I79O#q( z&Q&HQXTtu~0)7F0-eni82dojY;|>gDKP%3@&41FBqNYhS8qQ0v4%sjvZs2*e7|5+( zoV+yE(AfEStU4z2f|;%5f$>sA?9?Ekyc?DViE%*NvccQJHIry$j~2R#$U7$y7biy- zU^%=_kr?urO46^#>~Qfe?N4aS_umnZ3StptBU+#>O<|SXTLmq*CGhv6md+a-Wuf46 zm1@)pxN{to?;tW$b15Zl6v6T&zOJCBGshXP3t2e8p%m$Es1?h9$IDGPhIQ%$_Y>9$ z`_ii3Rp5@#GD{2nOxD<0{@j|SUf}r3O2}>_>042=yqRXdWJ!8B**Aj>G+OL|ZoMAA z+@hFs7U=v^((-L0=+LZq8G?g^@kgd zuvFxF=31LaZDZ}N7z*22&k<65%KoTciybefbs&Z4q## zJ&+hsPjfuJFKKmw(aA}0);V;i&h0ZLWu`}nEKb|^xODlYm|jW$3*K)5qM5$t%DLx% zi6SiMmcW1jbWt0FgTxg2U5*Zz6)}^;la+4}O4^uDy|2oLZl%#9ko)2f%2!^qFb+{x zx$8^)cxY{(rLz@a4M}Za830;wr#0OP0c)s9(5`I3e9(@P3eS&2CRZ1=Hj9^&k9F=s@9q} zC}&Jbr^CPDJ)>YxFp#1yD8Qp*ZEiao5~4-h{v7#i39p1;pmxY@F0JAAcv0rjs4}^v z=$67nmGAKB2ylC7Gt7|1S*CF%+yC;am%k4@F;ERv(G(37E1nF?D*woPY`5voF@bmz z4`FKcv1m?VyY(#hFN#bq5PHhL*H z#c9n~0o`X9nnRPAUM0iN?jr;b)jY|}s9QfEeYUo!IVc{2jQv8)l_K(A@-gt~ej$S8 zGMHm|K%|97#;NbE2|g~^uJVP^o@61{?}j=YfN|}7>T3!<^Y;`mK$BL&i5S%f;D8m! zF9>OqDdt0M4+_qnd{jeNB<|gT1a6-!?=i=M`xOF(l>NI9#AlO^@T!azOje93d9?ha z&bj4gs&{a~3MQK|1C_gV@WNk=TkYaZ4{Y{Ez|1CJNXi-85L*gDFf)i_@V}%kP zxUwSIp>_MeiXGupK`+3i41_{21Wup3sMb%^CO#Cg=c({ps>n)z%oh(;VT(p7Kl#0Z zFOI1t6>-cL51>GFfC>LDsf2gA7Y&tdb41&l2?7=g;+zwZknP}bIG3X2y4zhy`v z71GA!BxZ&hCaL1xCW0#+{e9 zU}mYkK&aZoGbJ!@Y0_L#!wXhW<#aY8-GmUK^IJ?X8kru15)+gmVuCsQH16Z5^b4i@ zo{RfeF#+(O1%V}C-kYWV-4D9u-?D-4``@?wWQ7k3qk!~Yl4!g1-8|a5w`nA$5cf?n zS2iyA&>)|?z52IWrUf>nEwH`zd~FxuFlo&PxGZ2sPZo7oXeDCKDI8`y(oIj`;=7ye+nfOsUF`*-u4CZGK%qyF1AApy1*$766d`}W`V zi~@BTw(h6>)z`XnRBvaaBo9g~C8qTpeVq!pr+r+~7UO&BT8}HJej=$hn|mV;aEwGhmTS;KlyisUWc=oTl_G4{BH?6 z!%LBl!~7HPOk!wx9Zc)ne_xX2XTG>}``!~czFx${kfT7V`9C`f{~uZAqZHSL|9Al) z;qd?cB~Mazi%*TQZ*Ga=Ys&_oTyvnEwniuZeg@MI(3WbBsvSTxGJ+g7sIH4zdAL7F zIdi>?7e5XmWXw2|pab9E2$a;wOJZJ@ZDu5~uBQ&A{z# zew2+#A)_nVfkBiu6Y+0Nr7jY!(6#>;-}_qx*9dcN-r-`MLib~#i>G2Y4o^;($et67;Ba%XPV(pv7(pEL8 zW4i)cInHC*iL4tf&doah{@AoH z)g}>n6C!l*XZdLS3YYvRT*I&3?#cOeeX$4~=RfwV+oIavRe{9jj=6?L_Y1<#8tLQjw+`cz_uMY1t=k^V!T`MZ%G(30f-%91; zDYG!encay?vr)~&5Pd-M-GkobBTN7o87_N1Qfap~IB$|(`g<8Ke}FDW z8JLh)0PHv{k*N7%%rnZaymN}RMt%2w5*iY6MDAmK(J4l+kYPH$tG!S$v*XE$!Zg3R zx1YLE{vXt6^mNDO7eUH=#3bgtSGHqkB{N>X4>TiE`--S)de~aFhxqO`8&KarPki1Fucw3saX{0Nl z@+LcETV5t(ve1%iIzGmK`*RhsZ@3flzp~K?aEqKm0)L<67snPYWb7xh{*{wA2mj+k;hMkaU&-p%^1X70Q5g9K-qEm{a9i}7zMnt- zPVmdW{^R-rwUip9BbFnQ*QTH!1_ENzEkxIX7|mu^@6H}RW!pqH0s^;#JHZ%awSAJs zgU3GB)R<@nn^ZT#OGHTW1}aXR$Uc69Y4CzN@J1IEDu2MQhAJ!n@(7Rr2u(f2zT_eD zAd|y&K!jE)G96a4pDeuZP3QL%jMv|Ty2Uw+Uf_3+CE%2+%`&{5dK27t%wDFqP_GS& z^Wz)0>`AlOzr5R7)Vt9hzZ(R>_>@OtalEb(T!!T^Fs^T7X>@dBain6ib&v^-5q+@E zC5cF2Eu(+F1@|82@l~2cfZ9^Q_T)%U@^8Nr{4(woA_!hdAVGbtY&=})7{P%N%SOuT zQkYqiipW$=I;dX!ILW71kKQ;HcguYk5q6#vnEw%~Z9mg}puPii$1;S`N`)fdAnG); z4|S)_L3Hs9W}Hr=HA+WvH)%m(b~B^%gI>chGMQmp>i#~SdCh?hpZ*uT5@>UzEF@Ud z{x~zA*LbOV@etUH)_^mnr+JGsAYYFAiIVRr$aGF)n-QQk#upK|Z)oe}yxt^<{^NIp z8Z!tfPS`a&DEriX)C+a7EL%a)q{29h)YM1~w_}bY6=<`+(g=?EQ($m0kLdfhrLNGH zUv%CcTRiWwE&A*oGOco$KJ39y@b}1TE=JTeH~~z|hb1o=j3&MWYN@>2N)9CYWa1AzAqa@!1L~*aenrPmO?^h4M$nMB!KHq8+NPmrfaB z9(6pTbH@ea8V;>D#|P^MqU3~U(;%)$@|UCbU;k)^Djvepr~T$wKC#^6SO>`uBC_p; z&aca?!Z)y@M2pIG-pF*W$ps~;b~hIQHMXrcrb-diQi68 z-mnjIPPpx6GrK1|E=IY+3>vhBAHo+n)1smu6_ik197F+IwC&W#C-tm0^};b@4Asi~ zud9LlcY84^hR;A8YE}3~i!O>>`+GmoGJx4dT+AH~AToGX0_|nhVg$N<nh>tCS-3NaBr{m{KC>=d$ky)5gm40hNCCv>c{+sBYRRc9Xg*Meavm2=6}GoNSV@ zJBB8%s}@oP>Pi9*`H#C8z%Zm_>qMe7;}x{`@L}4bEkBbVKK&>NgZF$Z5Y7=;mITp% z#qf*ZF%8uO;ZT+LD@h?K92gmpxpN?u^$0WK`l}@|LYPtzV73~IuwtD&Vy%1C8xMdQ zk^Y44SvyRS{0TlJzs#YT-fXYAT~Av5LtMn$*4s*qv#uRb}P!>xOrDhMg!EhBM@y4)=ff} z5Un_DV`h|mxeAC#NFs&Ed~Fc}J>+UPE6Iq3aAgZR!fJnQj}vDrcE$%4a%7!X-yy;1 zp3otPWmgryMU05PI%hqXTT_joZi=4jzQNX;^8<^ZME7;?0g2?a7oW!2HWinPaX-XjjoO6!`aX*efPiima1L4k8tRwvA! zAp32Qh`_eLAiLCmedLlHN&J7iZ~ya4F#dsCIp2Wl1fo{Hh;}~ZglN*O+b{EXCZily zS`e~z-^Mx>Z7`ytHwW>oB@Sz00NqbHn0Qf7j4lM5I-&x!C8XDReu+woBC`}ozkYa2 z*$*9GT0;6RU<(~|Kk~N0^9=BQ2G-hqWr)2hJC^}j$7>LH+HN&a9kwq$uRn9O6qse* zlrRGHuq`)hE%tR(Pz5rSO`A-A?zO!YIK|t?2Y~6T$5mu(Gm}mJrIYOtH7qKucEq+Z z41-=Ll>_1F{`FrMZbw5)pSSGIQ8myNchd*T3H@m94eGy>cBH((XZ}Fkk>s(@^yzCF z43!AR;ZOF-%Cbp}`)ZDKjq?Fh)CERnYd?N5?hO6gSYle_kh~jo0jq5okyKxTFx||r z*{|zp-95F7@PdyoRTm&M6uC*6z+erKb9lY)sfqM*WLmh$oPz=y37T#Yyu-n{M~=%u{% zy*bwrSu1N%x58M;gHSN7#tWhDy(RJ-geR;|Zzj}IU!lSGH3B@;IRcAUENBNT^8=Y) z-U@CYdVF!u-(|mnN)-JfI-8ybxII+L82|^xZ~B_IaIc0bt1W;QR`?YjjY^u%5H>G% zgvfvqNbD3$Y9FWD!z*e`5qAJ1s1X2aE+&va+3qc={*`zFKY9}QuDDWm6Vn2fKzp--@LEql67C(jY z7v690a=|j9SNm9a}i%6#(LWb&-hsw9@YYv({AR4HD5sF9jYNP|H0&3aoo? ze*SgKcXL-G%;Uns3-A$0fK8@XjST-tB>zWh>B@^@!Mst00+a5On8!0HmhI)g!KmcX zUveI7;PDu^H*Y9BM|akGAiNUmJftC$uhy=`OHXni$jr70&*;CYHN5 zuKsN%8xCGXNK1-4aI3%7`U-uj7h;}q@f+{((+2ZYJ>b=Nd&&qOSP6I@A(I-0jZ>p1 z7eug(>3}i`UL80$roN9-~|PS=ldFoiM`xK)a`u(!UbVKCF>-l8zw&!i`NXwM9vA`XNi ziEz_+nX19|uM!ulb!&HJEJ1SI?gqTfCy)o2dlIWi63ZuDQkrT8g1iTpnCGo!%Wipz zmZpu*=I1)&25OFxV8#v~cu2OJ9pc^y;`c)jUaHIx;vEZqA1$cqye#e>}m- z#^M#@DM@UvelL!m>Mu2GkktU}w;paW8+a0Xu3jC*ShWP3sh)wGia0 z#1ttq(Hipiy&7Sp5APxf@I!PNJQ99+VFmZNaO;bm5@>vEamuJL^LUvle=oD8eBrTa z=3f^0_>UqIs2jroxiMlM(kAu8DcrZxm(o&Zrui}e2}qT$_cXIzGOVxI4YAg{QM0et zxPFmzSq9=ou)tN~JdjY!LD>zwhM#?&M@Y$30tCFBX;Cqn45R`}_963Ntiih)@e=D6 zZr}@~bh2B)dD05=h)vX$d!wl7&F*m$3ezav3Q=W^b~)Txd_=VuJ}T9X;$k06Toqn< z7_}Tu=Xd>~YnnXJqA%h!;;@z04y@~hjv{4Eqn*RXtU;!Nur!AU!z-ZwHl-}*GuD51 z+R|dbcl)FM>+uNZvw0T`?!iOK4a~0wa?xVYeKt$P?172)@~Rr>)-G;*q>aYE<-=cB zhI#Jd7q;{n@SXA5>kO-&NVPzEk+FBOBe%cNN*LeER|?ip$8_b~_2>7AwhQ}zRMC!T zUBi!@hw9~A2cDu`4_7i0VwXHAq@*_k{T-7k6uXP6LUpIXyktf35e*5=s#N~lD-VB) zf#Xr;dw(M_Wd3Ugwr{K8niRVa%_>fyNhg6Lo`wfN7iBml0M9hvZx;Ly(Bakdy4JyM**>eYb$+(vVvnsO0QHG zAgp^>bLZ>5GCT|#Njf)tS{e`IB$$8J5=JBaua}sncP16ol z=*^SDv#hqg2T*Do6-!bE|rx%h0X!lgpNVfYt{PIg20&?ZKn<8z7h)^Dy`IKwfh(;x}wy|_jL{SfMr2T zT*oX0XiG`%^DNPeo*Y;t-nN~qHIQ151WH^Q5a;NYR3AH)3j3h{EG0iTiw~(gewEKh zk@I`~JEg@~ktFK+fozR(7T1MoSqOOsHjWTs71neDD%03Cf+N3&I}D^Q)8gpep5y=w}tsE037k{>eVKQ+lfQX&N1 zY5hopi$^Vz!B^jITfIivsPsT;?#^Xu58=>D_R};a@Yl9;gAsbr+E;H+nEQpxJ{T`` zUU2y(`xX=pOKT#-XcUCZ_-4q&w?nlQCc21sGr zpwTy@XMzDzV_4!dx#rspWC>ZowYC$V{?u~H_1x6?)TetpZ7z#4f-7QectcX&r~DDk zxC9+`>g59CvFlE@2I4IGw+j$MoNGmqs7Y)Rve;|Ra8ieN=W>_YUcbbVxsp}^x3u6X zzmjQ5mRQ^Gc8hzXN7d}Y)(x$sgI}Ey?kXdWE9Z_s%P))d@cwzTVE@fy_%coU_(Uzt z#b^H&pZHIm2fqiGO=vRoQ z*696J4yroLKzv09B&*o0k9nHPq2s}gB#yDYvtX)bg(X*hA2EbF6n3yhv*;;3vfMY! zNOF~=7Z)cC`X>5J)H_Fga_pyqmnm+behh7ngYQ@nO#~+?r`VU^8wbjKBi`J`)Z~ZN z{(JKkt^9lMtJ?S-atk)qW2dU$7rf#ToU7`+(N^Z*v?r94|1Pv^h2eVA^RXeAJh%W8 zr)^}3(G?i(D+h6VhG}q|NWvD1{46CsH2b}(f^j)vEhEJ&Q$gV=6Q6WZ@(-WL2iyx9 zK#DMH3Zl=c_pcW;!6r#J2}HXwSW+(>iN>ZX`3=*nJC>*KL6>JS(WF9h%-wfa%FO13 zZtVI9^EXD?e4`qNq}T9k7`ts91NroI_xPBM%^p?j&eozTKT3f}rlaXd1qW~><2=bM zL?vWj2>7w=`E2nwBy57ov+~Y6U?woAto00M|4>|*FvBnDWn`qEs$$;Eg`g-u#YP$3 zFDuLRZX!XS{jo-JSDB0jzB8T5Lqo%&ekqcSX6a9d?!_cTS^4?|@|!wGXb(ui?dsMu$@rYOb;)u0Rt@=ld zIeq*L z256%8HB3&*+mgyDM8&J|m(4_lF%j}M4)cuNhxE=szkw}@rSvvLB#_BD!K|`lO~UqI zdN+4D&;na)W_a2Wgcl8)?V{()s6$<1m#`+71A^8-c840WSqx;-N0vG1}2wss55pplMEHsMq@ z10Rz&nX`%|<|A2M3C0dMBrH$&rM$7R$}^{Qn#lo<60*S}sI=!IX4?7mA-v%6mQrLwawjl@Y_c#+xk zX%@9tXwvlqC( zKvR~&z`8g66WRcpXwml58{Fs*@g+OA@f%O3F1#4$FrY$CNhJEuOA=VP$uqM*)$sp# z3h*|PB_~|ty&-ctpF?N!t_LqI6#i_olE;arj?u~Me0l7J@cu5>-j7Uwvu4{av(2s1 z!32XhBW1>FC9XUcg~dfWnZ9P_t)F|7#Z$AU-jbr;#6*UA(bA(9UM=Ty26lJU0Mvr&_idd&;5*5-25{bpx(3zkD7yMMeyT6o%Kia z{0pc!QjZQ_v-{(UOcYo7e4Gq232U<{R;V7tv+G+HI%gg1BXQIV0R-M>>nelT420T^}(j*TxatA z$)duW+rPqeq%N&ZwUv;tYVWU;YN(nxYF6bw4+0Ei;ogQm;^Ai~8q3xj2HUvKWs zKeC?dWu3NEv3?Zma#$uE&JjOsf_<{cxa%|Tpb?$sBVV58s!<3)4sb;-gg^4j15SC? z@ZKlKTQSJcEW{Pa1{t%g#VFEU_S|r5yI0eKXM_EW*>I^Pj4j0-dK_hz1#E)|Hs6ak zIz!pCBJFZ8k&HCE=5Tj$*XVm?8RI-jGUFF(xMv0t9CH>rrIlyNIWIS-s9n9h3?^s; zdrLJ-^=fcW@kOVakCdy=^=6CSU*(Pxc|Y#GDXYscr2d2F?;mNJFX|lj{JBo0eyUvo zXB{_vOjJp*b=a_V9#l8l<;lqMLc5-HczZh0zkbBBtq;&f3f?E-8}kEPb9>5mmf%Cn z3nNURR(FNlkbOz{2w0E;uaHg|LfBHoH0yBiG$RL!Bg`qxBe(rvovlLu* zr780zyH>xj3e`+r3-8c3Ar+VI+{=Z8GS}-68_joPkWxm^DC})6n63Q$6frf1*;B^5 zU)E9d0jgZ}rSDZ*rA(FQV^pPoz#Ng1YmYwbYu)WjcyAm6Qy%@cweiSS2^=N<8m&TxE?Y~OqC1*UJ=V9K`$jo^ZjYGZ*4{gRX712!)bGgdpn zPJAohjRJCGTV+pf-(KL?J}w!tiOLjA#6aBPkY-?gR9fd+x?-xv*5b&>x?;xuJBu|} z8fndqzM4axg2DGUp3ft`oK8J&VA66CB|y{>Td*Rg4p4eXj|D@U#X#GC{8n*oz-A`4 zOk|LhlaE7Wp^u+{s_t}v=()UNv!U`HQnm+1h#Utxa9o5}6zG$I+LE8p66PSJW;_EP z!Fh^H`cT8`>y{KKZ9#` zrkd_=gN=w8DH3aN8~=zkA1x~%rB*&{xcXhEo6Bil<&{S6rjSp$KV139XgpyDAR-QP zD`Ef2g6!O2a|bGjq1eOqtBT8a^e889kn?3CXDPGDdcCn80&L?R;8z_cL z!+4z38@$fCzv=!m?t>=E(;0D5poN&s9?YP>N-3wb%nXtVzW87~$XS#jl{cAtN|{07 zi>C^is|zH#DL#4#GQC%J)?Ar5`*BO80W_g4BbXHG3|{QN61g}o*&bOdC+FUX3Z;Mi zkc+~=!W9>+uylD!nHQDig@pY84%b3oD$9#Yb*1*<1@KBE2Dzw;n-v=OfgVxmyZ=x6(nWv^EZOnWn3B&Y4P$buP!zpNA|wrTKCQk1~x$ zp;2HIzX^b=Us*Cg|HgfR(Sh8_fN?D(~PN5J+q?`1f z5+1XrBFEiZDUKS}XrlZiRPFZA?rZjNuHVzn*T3u8<&VngV0MLye5ts9ftKoESOz&p zZYna;+*8krbx$OcH)$<*t}VAYKs)rx*PjQVHiEH0J{}I=S_FgPG*#--34B+(ef4#{v!S`%|nQv%_ z>*`Kw#FB&c;3vQSegEd05u`ZVBE;fKp5ltco|(xL1r*YEi-2L*|MSxuEo%Y{dT!!y zHxBHHG>npLVKl>U;bZmKus9!J+*i3lBv_#rDBR7d4M?Fk?a2rk`VNk!Pln7&q8+k+ ze1`T>{%Nmav>KN(Xj?u=j`zeNEvNR$*h}+F9oq%(abv`TE`146iI~Bb;kEcKSn<<` zc^-BPFGjl6JPPO%zNah63|B_)#$8u3Gf`zTqGoyOdv&yo(>8Os&K@S4lX7$ys?Y7%Ej(yNK3|+ z!S0`S+%rSh`C49Z!Ct=4^Y-(M(>DEjuOgUub|z1W+ULyOjpshdn(en@>n1uERFpgN;+uGiW!l+RNWvi8Yoy!p<57I|7?z0K*;8nbACwN!noIs8q2(&S7iOoDxHO)vOFn^yY{71!L??6g`R` z?s*^w6+lmux$EpfwjEfS^+On*2Zlkx2zc%;3SnH`C(;4i-$cr%wI?I2xuf5?5oTZ$ z;Yy01#Wil`#?W$9w7#m`Di1iX%4db#86nR{R%~ty-?-YW>S!?Ryv}~r!p|&+qENf@ zh62w8=^LS$$~KhKk)12kyTN)-P1rG7i$`oUOYF2B9p;_Kow=C4DjUsj{mi`~F&DS1GARoPXcRI=+=PqE6p<>h&CT?Ur==l_tgW}`CJfj=`=cqA){t@%q~ ztUgwu1)iQ>g2LQ$R{Ddt63fpnY@W*XEzEtu%=luY+}gAxJj3$|^oiesF4tcDv{D^c0Oa1((60%n905F(v3-vy0{;~4H@rnUokh`%|8Q&@kBCX ztedoAdAdRe(u=R2t734Ce@aYaCgFOS3TCn-`b%{IO28t_^PY)zhq11(auB#O<7l!O zDoM@4Wg6C}L^Db!+?94?kms{K*KEOF$r`QW=}BZIFDKc8=|!ZXV8l2|@~hHh2#`MQ zD@G}%&tUkf4YaBU;bDX?lJ#yCRi*-gfRz9MUxJBje#6QuJIqR+Wxl67KtlH>fINQ#}9w-Kjc$Ci)7T)dT7QJ z!ah!wnEuy0oc9h~1_n*6XNN9PIt&VM34d^Di&cLdnBnDFxVj`xx=`0}l=f8d@gofT zgjtr1{%4Q?X@Zq@^Al_M8f=7Q3iPx*o~M9=H+{)=rt=eq4N-!;H~ny-S&?pBa();*mZ{!fna! zRjtIw(VeR!OaYKz)P;q&T&-AURr_7dIj3B-(iPfMqRchS4RoYuk>osH^i}y51i+;Q z*k-?a)2BTdrg|*y?``h&ty^VuC$Fa8HNoaIzIU?-F(2QzrkqbakIT4S0?x9A-#dfd zNp&3an9pW%Jou0v8Jb0`Psc$N{CYFIR*svm7X=Lb0eiT15+Zlld*Z#*Mjy@de&YZL z+yQqOGY;ab>Qh6}A1MYT3D_YruHqEbS5ttRRGxnnMAFvCHG#;-@uOxSrzQe1!Zwwj}>IV~d4> zV$evBZFrB)FaPw6(EY-0q6@Pl#)fkpHbdW(uRS_+$;vnW!ijTu7#FS>WGtLtG_Uy&|{qVDBb6?M6!{0%2v#6ZXfY9p0mqlhgg z99&>P+2k-uMG!l?B$%d2_+MK51u)zIOuNx-6F#b>1ncZ#WaP;`{xR!(A@;|*l3n7~ zv)xS#U`fc>nZJ>m-Q=lgLZ{#2sm6Go_I$nh3%^4~z#Zm{hu0(VHNSv(^8K8%gny0wO}$ zWp9CxG-Vqu?QFB5;*@(LCN~)pjK3+JG=SD1OM$kytPeg}XZ01S@E)>ZjaqS*Wwp^7utA(mbt`5qRtHz(2;B9eWLn*5;%DFLRf>USww zVdKnP=!YcOEKJKLy-)z%t9gyc;o_O4z*;#qkEuTjRaChyr-`ao3;wKDKi&N9FiL44 z>$G{>)37X|T~4{-_F$cMv`rozukeR@C*q%HF+3d^#-R&d0NRkK+gD5gipY%enn!Yl zHsWTv(%KS)KfgKrTy~3_OhaC68tAxB<1wUZHle;ZOkvrBe`Q1FXdaDFhKmOtQ`D5* zt086PC~lyeQw(vhqGY`>+l>x}M?_~1 zCe5UGBe98!4K^^T5+YXS>atDWZNZngI94yWqoSVy32l5dbk&ETqSrfxdCsaagMGkF zDS}V*JRBs1PHw-oxX@b)Boi*hcH^4zL+B*k?6L-Gtc3v+Gm;`*g;bQ^T#FR@bUJ6) zZhqU%z0z@2VkWJ=-zSi{`D#mY4qRUrxg9tdR_a7uU*W_GL&w1KgV6bEGoa~F-6c#3`~nE>il z00|8JqP36;@fD16$DXSL#uxZ_gvH}7sTxEIvo1yLu7j3+JC)eEuk8U)28Z`7(Y=1! zq%GI3IVSdxOO{gnd+mT!_z{0r_}=3$+Fm^S(4uj@qLXU@9!|q;Rtmn7x!vIC$;?hl zl{JWAWwRNXoF{2&Zg|Ql*+~+cx{Z+^Racviz*WFTh}LPEL7Qa4IN&CNU5FScrI_3_ z(b)Roe%{8Pc{jl+P2s+BN>yhukyk1F{ozA|-dAF$Jbq&?tKb2BJOqY5P)*S8LF&j^ zadUS%(F_=)5gC#Ze9kU$ao&FS_2P89g3W-@tdZjO_WN3okNxJnF&J=uVaXBc1w45k z0OTUX4y)=W^a~NT{^P+d1Yc0^6_)EEM}Z=c4bAHCdU`2!+@T?+>gXXz7@>p+bBRFGYrxPKQiposh-JsCLldr*11glotu+uBd=VZv1Y~^FGxuD)#Ola zd{S-coU@l+>dDsZiwm;MPBAVE^9 z`9EQSe}X%oQ1lgQU>6werXuKUGaGYG>BD02uT{mmb!c6|k|6JU-ecCxif4Z-L?x76 z$NVe>Zy_KWH0$OoF{e+7Mg~bshdk=u>dn>+JL9U<{RWy316J>JZsB2wF<~nz7dl_l zR-G0n_99|a@Jt)*tUfw)h~l%*W@!wWtDLo0?rQUhEpHRZv=8l7#W|g}UXb*wq3;Wv z*lbunXX`DklN`|%jxLkUS?`yxCQslsUMCRL`rm@M{sA55rQrEWLROCfmB2EZr7xYc z3%XY&`shEE4>(Bq;Pq$u@RR?$@!I45TEkopWnxBs#pLL(Ti4qLdDU|Rq6{=oovNz{e=*B>G#=m=cg^EdBC zm3v#1ui8eUi1}=KetWvWMF}+qJz-%h%#-MySMj#4-_~Vt>LZi*+s2}Z2I@h zt1lX5>^{ZpIlhNLCy<*NXD~il?C>h4H`B?#GSrX;snlJ6;(QeH!y{ulykT(u@1H>c zE<7;&Hql|K2NLsFGHH-iyDUX*HZDQnx7Cmzn3q8xlutzm>{(6E>pm`!ta7P!silz1M269;~5aGhHPYP?N{Cc5isc=IQ zdGvRVm-<@F0~^o3|4=+k@R?|9j(+g}oc-N9aw;8@|Bn~IGuJ|Nqx}~Vq2tm!1}$UA z9fU#Z?QoHXLupy@%jv%ln$+g%EmnRK!i2U?)HK z=Z-|}(p4gAj^L|GFY;ia&n?9sS6s=A2c<+ri5;6Ean*!9jVo)rLYzT|0@O zxP}*EZOIJMM)pq=F>3z=51YEipyKQw5kN!_xl7jH{?W9O99p?D|141e-c6+GcTC^8 z?{(^Ljx6$#1>t3Wogvm{frW0^o4SDn8xdn{Xq>|fg-$Bp&4vBzI)RM}*7p{RMB4uD z@B^vp1G1m(|4gxx7G4nAlyy+TQHz_vKoNdI_URi={_%}aXHO&sUS`z;o1Fv}dhB5B zA`)!kxDogZUg-W>Mp7U00iPYe5dD@$oFQsi|M(%NhFn%c|L6Mn|NHep;AacmuKB7X zN27N&2lbCx_Xn$Wkley|miI%buclgK5#I;%Ih#DlF{Jx@ZX*Zr-zI9=dr7_X#2m|d+(^I(rxWm5kw0V)FKEXVkAgVq98#KL7_-R0g@5PP@oi`L_q-+ z39SMGlA(Yi=Nt_fNktAKB9e2?cP_g3clJ5m`<{LFckdYAxOe~4qkCXu)mra**L>%E zp5OEOwyLLiyHu>8FqBGiWasu2NB*8XT*v<-r4r`Ybg=ZcrAviVbztn4R#JX{<=1xS z-gbZ8%FuCn-Pq8bkB|DjluUIP4&wa>-yv_OmX!YUceukot=->PG+y6tZqyKq%M|Q) z4GeR3U9RpH4~*2dkr1w&gErYDC_@YR49Z#w+MQkp_QN=ke+l|3y7fV9NC&NL>>Z+o zK}MTenYuU|iHv75xZkfTZfGLs{9o53FY}NZ$%6mSn|8zCrt_?e^Ju`Ei70tT)ZO+d zVOwja3HQj%KI2Ru+w8nR1e@|ckX5_uq}jI~(6rlvsgQGCcjcoG6-|cYaKqFP5+|^> zFnYu=NlP+3_82%xY!P*TgDEz|{O#jIOJMRXlW7CPPt47FdmAvu=Bh-Cn;B-0Jw(o% zV5XZhoCJYbG2}9znI4+IIRlOBB2cZ}>?yLd+gO<`szdSo%-1b7LlRsieul{Pj-yT# zS~e&2UKF0Kg8{G|WGD|gXAatS3)^<) z=o{USzw0ele`pc3hC{;-UH-Zbh+EpJbNT+fQT@35jiz4TF19g3w@L6@JP4QW74N3% zGcO9#x0Q2$KMWS)$`b)}I5AkZVbp1Wh?0 z@iK4?7r7-1jCcKlhM>^qa8!RgGz;+1>MQUn{nXDOy9RprdBbUt%I6@IxJq{^8bdHw zfRMVl^g$ym8aw1HER`Or_X~2R@~bz7_@@>DG};OOpAkMH^4=9(uroxh-*Cxv6m$44 zqs^AqLPawJlpsMnm`V{(U`vpbyn!lAB1~3zW3*4w4~r$>>6uACZ_hCP^|ET^M)q=5 zq_*@gzjWu<`ciYp3%j+7qay3eH&6jyx<44L)GUN;w%p_&iD23R>rE)g)ZM(3C{Q8w zdjV;EEsj_pToNpvHR$nuvwmV$HHPQYz+`^&l=BDkbw;xu&qS2uBOcmHXfiIrqYy>f zzX^_lrGT<&lKYX2$Jk$AYhEB-In4DUFy3?lJmT2BlqJap4tBOKAn{ud$GG8>sqcTe zP`}fdzW5GB+Xu~^qT3(Yy%JX&^Z{NnWrB#=1BKgX_{--Vd+*eDf#Buk{Y-kg0xttS z1b|V9?-QRpi~DV~u*1+XKFU3-@`D8F$J5%HCP-xB-~QKl)!$0PPGEl_LUBE)Oq1+(tF9X#|;$>?mH z97k29JCDQ$6*6s2yroq%8*oJeK|v>hT4zNkfI!+ zflou^NUkx8#zZ)yqvl`_fb(Gj z^2UC4r$*U1Mg%j{@s4Nx5c{UrU(xa2V^+6)lWFW-4C{pPIa|l8@gm_J&UdN&geqI1 z#fm2#Z!NOZbAu+DGRI30tVU$tN_8aw!0KIakWKvMO$(50^3l)2<$Og-vy4X4q3zs&me8JOri2}O?clbxI*eg> zA+@z)s%Mi~XbYZ~A|%qYUElHR#eiRq%4S;oF7My#w~$Brm`YMEI?KfVt!e!_igvV@ z7hVsz_@gj{s)W8i-#$ke$cTw9F2nxf)Rq$Cxn@O1>yVDO5izWylltL&1_g@5O6c$} z!7keaS04BN&9nkG%*s^+N7r)S4iqtqBh7CR8KEBNi!b)v%rW*hfNt>AYXor-(V+k? z@hm3HdZBICMQrRjmDeM67b6d=4!p7@XKVtA9Z~j2G?WI#!eBi6&9uWU zKs+>t@xmRGv%Wza(-^xHn0jcXsIX~AD{_>8;InK#lWPDv)zo@sp*T{{5*XJan;vF3Vrlz2?2j{Y$r0KWDY4Z>l(hn)0Q`g?Ehv!5dg7 zOWnty43!UC0j@z`Aa-+n>3j9r;ELKu8L3eY;%ECVKP!j*!-Y7iO4!4DPcY-`I=XoG zdU`a)ognt>^yimm`3$xmvI))=ShHJ`_u6!;N3q|Y-WcBFc7Nr0I5L^ z_3?W(R01ODZcs~sCIR2=9s^^$=Iil3h1QCxifsGjj_OgB7a=3VL>(rt<49wx6!M2-A#gNUJoB*y4du z*|2Uf31P_5W;TeP=@&!uKGKujvdb^(h z198v~##u?MF|EUZIHCMXlGmjyR@1U4#q$jk+G2L^VF_83%_e=?k81sCO*$rE*IjTo zVDwis{)CM#tuN6BGoHHkup0!6HoUq8`>G5U>Pb2rbhs~SZMzF2r?Aa*;_ul;EaqYK zLJ-|@8bsXk&Y@Q|BNEQqU*`T0hhied#YLr}0)%bazZmQx>1(KCg@cepb-=;!kQ-kT zH*P|~p?}W=c8(0oLYDiIS+j}P4)T3g3Gk>GOsO^#t@N}AlN{cDUMH))SXHByj_uDR z%nk0bYxq$*B;qi)#ypIHCgJz05zl1c$nE^5v z78{0`8@G%VqqRoTKtnOLoF61NSX8GkZf}jU=6Wj#CYOjJoYP+ zXBg49Ruf{Fs#lz~-lH_EB8@H6@*wM!kf+<;E*K0ZZJpHs9qypM{HbbvyA4B-Z`oe^ zCnlX@QYC!1&EQ@59%uDoJKcWLXyC>71@-}{)nQQd!K|s3s2UsN$c?Htd^s%)17Lau z(LlmOK0R#PzD=I>nU}m(+%iS1@m)oO_6g>0s@bEzvPt_WQyQBBO);kuL`>=)Rn!^c z2Pix~GBT4!r5Hwrxh20F-tQph)c#9rcCDeZ}nX_G4@GM&qYR_)gw>)#Ynn^ zxhYj!Tzkf>J}{e_a1|8ipEI?w{BJLKwzlS)_1NbIFSm2*b>vTqXLq0vmpOC@ z+HMMOX;toZQ|%l$lfcvTfX1VMu;Io_U=F! zuRu~$ErQNnNz75rN&698$7Wqyqc*dgEnA7=T_N7^K)I)$R2C3O+Vz-j-13?FJDAnF zwl(J0Wv~pRpQ?WzezhS|*T1Rb0uGZ`o{d~_Np~gy_05}~>Vu2)R2o22?Rn0^tnuNU zDlgOJ2eX6q<)0+h^km}C^?Pp2Dqu&j-fEa5?UimW%UYm0^&Ix+p}l{qi&H;2j7K2J zF;gvws4zc?cz*{j;y$c`U17*@3kpMJY-rl3EBW4Zlx!lZhO?DO>}PK~KwAlW#xEWV ztBemKK`Wa~bLGTyWKC0XcF&5?hn`z#+BsfkW^v$|8KgE;r{s3~k2GEyKE||nVVbKT zCGJ&_9g@$=-|=Z0QF2;R{@*G&cc!ttOTSlE`1^w~k1Idh7al2=Y}snXuWv90m1x3M z!;I|x21hi*fp(z-54o9Fw4(ON)mmRdO^o>Uo{h5o!A(6XDUExEUm7!7r{>uOLV#6k z)EusGU*86nYFFP+9L?U4g(`e1>G^{-dKZ{y!8&?pr}k_UapU2Znu?s>Xo(&jhv_>0 zlXW+Xu)#U7s|ULs8)oVg+kywMSBN)K<9eGCL6Gp{?USq@A!`X%PClWZeCiWXS4mk3 zB)xo#M(5C@3ss&~n(7H>dCpO>1xR{QE{8s<2cd>zZ0Q$budlY*S!W2V zqY(uUMKHQOp_SYF$XB~f7_>i$3ZQ9CAGsVlNSnqI9vi8A1%(?#iBR1aqIxcSu(l?I zR71-u@+Ii68HD>mFO?1{6?&t|>jKLuSM zH@AWR^F5aRhPv1d4>j^)XQBd~wueHz0q)cdYhy(YUaAMAmWo=04^N`E?$Zac7XwE% zKUHfM$W$-JU-aeVhO`HLdBq-$?>bj5Z1yEQ)v(^0W~b_1@LX}pmmNesCXKoeu`;*J zZP}lbY$xQB3X*n3M820WAP;PoiU!QchvwgAwPh10ICu^3ed7Ti$49R=_Q*}npGiZi zmxf+`C-yQg!)h;`q}q1o%U9#QuK}CSm#hE8=5x!_p>iRGeWLXoUyi&qUr=ZHhL(*^ zws+skFic3J^RVhe#m=5ezI)`>w706PF-5$Vx&mIN3ez3!HBBJDvLzi)ih31^zbbnE z4ek*_q?Q;#J#ynlNb0Bo%d6u`U-q zET1wc3?=0d!~~L9{SYrtCfM4BiW0o`e*-E1#cT^2+R?peN zcY4NQ{nkDiT=JtU5BJ^#(AlSo@X3#$8GXKgR~m&JIR5f^&Cf*>o{ziCT#I5nf7@8G zheoAi7Me5S_297V1c}6;k20y@N7RJV9;My1eZ3kVt};-deKgKcVt9^Z=?rw>3SU9z zu5{7K(Gg@Ecd^6~^IIimG_*tHbC~rD&J#M?q1Qx@I@xh1X~74W;p=szvLs+gWo^1P znM1N?BBl6`eg9N;cYjrCRQ_6N>jgg^g;Dby;$Dq%pmkuRd92HfiCJ2^sm4ok3^PXM#0qQDCmW$D%7&c;Tt^;z))ptTI-t<_W z1ihKSriz;HVFT3xVwxKye@(8X%Bbgz>Ja9g-#T@w-dfvP~0Q)c->gNhqflrTGh>Yk~ zoe9I{__!@Dkgz8gu`sMXbud;GRmXYAW3N1l;-)|jN>jgHd#Q@5rNehEIE*^L<~~y! z5tZbrS36BAOW@+w(zQAxD(O$B%OEarT2*@TNw!d2)R|C>WWv(}Ufb*a2AwB6E&57Y z7mn(RcA}qY485`)RtY_g?nP<&LwWb9Ed|8YJ-)Af*4s>}ve4J|`}v_6n-6>jY@|R% z3C+P#b1N}5EWY-z`<434r;;GJ8t3jrFO`CTw)g8WNS-aYX}NS#xEV>tC+Z!@iy7Yo zv!Wenv}sV)vD1!JbcDg19Z&Hq>0C)d0Kr?gNU*=hcMJQKj8#de>+azW=~t|CA*n9;TJ6 zGU3Qn8-ulE=6+8>x&vWNis>!)DBG+gy_N-B2ns z#5*2wRR+!jfXI<-Kj!k9`#9A@?qp`>mV24Gn&cv@-f_SipM9M9R0b4{wh8dYzn${Q zZ$O}+TFQq^9$Qw(>VLOokJ;Re{}d?PB}7b3XkxL+Q2%Am(tnOhbI~!0_*7x7Jg6q5 zBW(pS0nEhw6RKam47#jy4etGZRd1TxzcQtFCE4#vETN~v{qD*QE(S`agN}y~sHR=_KkPvmdtT~O|n^@HJ zH6IG}vYe;=&I0@L;p|mDq$z(*^g3{&UPY9hI>y|hd5FJyBQO0%Tv`YLt3)oblrHN^ zL~%kDKVP19*Eb#kd<(RIdC`*kn1hVD#Hti0!I<-&V?)$%r0Z3W&}96*w2Lpf-=@|* z$G49<`6?jl$%EJ15*M=9ou&v|NZhLS^=l@a21l$(wuxits^53W%#<4!QGSSJg7}o$ z8lj4&cm6D%=5ZO>I|#~2t1>AB^-#u@<(O@)GiG#w=j%$<>7jCBA~r`U)Z3>cnT|Fs zcI{|ufpK07`YJfWzY;*$T@V*s+Ein{x-C4WeM9V8wn%K7xAO9`dneParZrKJk>qTeFv&!(6@9^XLNN`6@ za$h}ie0?ECRu=VrwSMisHhCJ0JF0;V%{68ap*keY=LJ|vGkBQd@&|(?%ADNg*_VG- z8!hA$M+-E+excq%c1QeF)jD4En@w+f|LHL|ff9Xd*c*kf;nJJ?wX3)$lH<}nsi}Er zM_uA%L)Ln344C(C^dDZ;V*bR?{k6C*BkNjZ*?YnYlNSda%Ng;=i~1F^)eRA2`CElZ!PB>P+9xWTd4TZBwm|_(9ZN z?LWNj*7`^HZDZP(LJGpzbo_{@RKIYYYZ?He#c;a_ZOlZ#7x9{cfw9QFxS6t{HRNpJ2eBkvRO zGNhp+4g33V)9!tUuDb-X^S&a&H^LS{PUlL3u^H>pkzaAL*VqBCLZncBSrc-;b=x>O z0mdh_S!H9~+E1?FGFk~Qy32j#^hmUE-y`rue>r9RknWm%{DnRpZEPGoMJwRKE2~Yb z3Cbo6+26Ik)VFa!h2fX|)3HipGj_?wHlgGQZWPy}xR8i$u)mB^T!tnTSNTy#H?t*`J z{;{dXnN2_7bNdgUfRL4)_L7tlovD>nr;fUCnR}h^T34%6=B}U6=l;I731)##q@#13 zr=S$J$kP7LEYut5Tdso4znXM%Vg6!99BFMVEJ_*O5ABXyOcP}BS`@ep@5q=I`N)xs z5f%El8JRr}HO|$0`1P;zv8H!fKg_)gb^_>9@M;?0!`-Zzhhta@TfsR*pVIGQ9oh1U z`l4`PM+k?Ua(xyfEv@9%%3wR>9$QoULCY}2-dJ%H>nk1jkwqJQxxL?xC2Fy}pZ#GN zc{=zOmEVG6{LCsTJjn6Kj-lw}J2dUPl&1BMDUxyw47WX|iThH@t%=f?|NZEf^TAP%RCbi}ncJsu- zRqO)S?etiAs_$*+i!Z!A58`e*Ad>9taTo6`JQ?k{s$4j(#r-4vR`98TtRu{*fSH}S z#Ghp`*6BM#+9DlxeWRJ)&?T>aOmJtqv=)uO@7+H7K8H*Z=g}#zUa{2np!|$uw6t6w z;#oP~_|x$_zEDb!CbV47`r%I(v10WOIayp*e{k;D%uM;>_DM;d>*ffaO7sE`%5&sw z20j6lu%u&2QQ8C6@}AOFYfWH^F?X9>tPdO^QTh?ch2ZSPJC>!PX?a#Wey$xC7D!TS zN30qm*-=4d92c!yQ@@~(m!*xQ9R7^EE+gvgR8{xY{~@7@kkz_TN)EK_E1)fkQ*dy7 zZR;Jc?}3VOtEMv$?5_Tzc}Wq2BM=_yi!PuwTE5m9W2yFf?a}MEaidZBEg|+Orj5x~ zN}vGx9Tr*a+g02bcNzl6XGK{SWAKLStg*Vpgs5~+2`F#0lH;^Cv25(F1 zj{s&O-r`MoGGnn;87GhZFG%G%UJOmswwq8f1tsfCN@W>)>e4iCFVFa zk0vmgxKc^nax77;XbO!Sm9`=@dM-QdX?W~eVfc%Q3!014g-~`k;@WBaelncY0EqB7D&4u31H&Lwf5TkGhz_GF`? z-jMPcUuBhn2E}n3>$8QnqH}~(D!j~|vpwoECu6;yO!7#L7u(!j!cf2h&Bh{4*Gu>YFHP0Iynb|UR4|ebACBpe)ZoNZ9v-0Y&ny7G_0)}mv z=fUa_`c~5c{YrNH+Wpo*W8uDixL1mpo<(mF$qq~(%neIyaM%fke1^YUq${KLU6}0t zn^sJ3OcNQUhDVj=BmK^o47@1b4sf#1cbZ8~kZKUgqH;;CN#XvIsu9Nh!OX^UE!WtW zqxv=J1*hUFupdg)9&(S2x;*eKwpoRnGH&(d_=Q`KXy~}~);o5`hP_g`mw?Tqyb9~tfwWoOn%P8MtsdsF>-|3wSK z4|6g_Ykku<}gI@=vwY}b0c6}EfXWMYuJfA8X+`eBl&}41> zY)RF7wZP==BDx!^i|&ikoBF=nzgkM$`-{5`rM#5Zsy&1};yfFKoW>L61N57;y!@#i zs+IX^UOL|+R99tx$CDpM6;0H6?wbQS_XEN!tI3?=YsRkNb~aM>#X=$ zN||uj$%q15a3btt4|nSexEDQ(ZRSFozmdFGSQBblW46qpM*nFsz zab4LckQlR&&xCOqQal)~t>%sS`VF?b1Ea|`@j&YoV2PG?=WCS^6} zn8+=6dLe`3G}%zRWqO+IBktpEY1n!UIk5wMm*#jZ{$&*~JEzPGY2C>O+zs9g#O~kr zbV9b{RDAW*LeJb_ZPUIBr&K?8ZKf|D`}tm#_uf3~c3yaj%7;>wd*0=12lLm`UuG&Y z8WKe=cPyx(=s7jNrwn{?(wBOfF#8iCOFoyCaDN)TRzbl6o3aXfgcFrvhNg@+YhYWX z>;+~Y5+V8UJu>x+*0%5c-tR`rh#YMt^i_;79@otx1(B$&l=lan3I%+FI8`6RiI!K% zH||$G*D@Ptn6I?0Pj<*Uw%~ZwwkzyF75nfY@-jE&5I{2y>OK-ZdR*Xkv)o;g0lleTi%9JfRt#uSx10)2JxGy47p!9DET(Sg5^)_msw!7{% zr|%^yZjb5jPI4I9<%L@0A7^0R@8`84j=G$hr(Tj4Sp#VSI_7NEY#65a?Kvyl0b0mH zkSB6|)m*&h?F-2mT;q7c8(9Wt!YL)J%Sx0ctO$}!ys?%PuePybo2ll}lfAbQi&=S1 zu&loI)@91=Mb~?kGxK23T;SivaT$ZogMg!~TUUAGNOc>%rXhR=6Ob~aC*NUm%$uX{ zm44psC+YgXP5N2q-1?35*pfTf9hp~-ds^I1@1@r_I!O8%R}*E6ey%1QbgST2Ap5%! z8;+u*^|RmBepObhDlI8c<$hZ0Egx*iA~mJ-Z)A(#F#Am1KVDjUuv%5Y`RYvabB~FX z5sluD8&c|a0zRAndS^Rn1x$TxEJO1n6Uno{l>I6kYbte=A%t_u=2KKpVK$eQB_Uu2$t zEgdFI^q;itQd2d8xi5_D%^;rMPp$W3AML35M?}McA3G#H6hNYaAnU5$>Q5a7=41I` z5-^vPkB;abLMmBJw>$QL$P`UY!98eJIX&vK;PD z0qRLN=nwl|atthQTuk0Dz#SGc2$VGe6if_CTYKMeBe?IF*@P3}+{UZ1{l@GIf+=%$K2kT$xUMSRdw zxP?Sa-O+>&@Yb>WKYxp`dbco7j4cPYs2S0%RTCHa<4f>B_rU|+wiKS+VwEY?cNSdY zxoJl2Mf$l>ZtKgdF~<>cQQTSY__)2n|3LI7vg4R?4p^*Rq-r#<+FtHk$f(rKRPiXc z>i_&%*+0SR<3gD|?f{Kd<$(@s)9@+Jtp2N4sx6|PD@!no6H?b3rbuay0mhxkzwf7QkSKR#O?eanyZ!NB>D{yRyn2a2I4B9KsWcY2nBqKk4t!pMtmY&z4J+%Hzvkcac5<*OfD z*atkjd%&&uZ~boX*1o&0yrs6Ccp1(!(Y9t&kXKvTaQ+C(9F4+$8mm6TNtZm+V)3{3 z#JGMQ6z%GFe`jLU3wG!so#jmE$b+M486MB=kU&I4Py>5omA9mp7S= z%syn3K`4fR6Z^y^-IfaO489Ld6G$3@w!9r!H65eWd?OH=;sak2O`4T1KW2JJ51J6N z^kY$V`>pS)y*uTbWDXc4Q9FR>6@%FD#JoP;b9$Is%X087x*>xIDO6V~LeCTdIVilm zo9AKw?vcc$%7q$0p&WpkZ zN^kb2a*gBz6sv5!x&M(AD0}tyHDxDG!*my?)w&><)qjShnKY(hUFPTU{cELK4L`DN zbiVV!b2kiDI(%tcT78{HHRx>VujpAUhe!4Zh1IJg6dUdAykih5?9ou)|wOIOfU~VVwbMvMY)H&@6IDp zV3Z6T#;~DnNqZAe(p^N!G){q}MZnjXXotS{cUg#p?hQW zB0)p*xQGaRPjAMc0>|mkVI05G{lhcLp`mcxQ^9& z>8;;Jql~o4Z)qU`6O)YY4gaE#BeF1~RhQ8NJ)8pMurBJT>dwuliAY4Kb5IA<+(kaJO$#9@(j}1^Vb%-8;BS0 z?Y!0(x~yPUCnB$|mb0s$gXqKf__0U6EbVs2F2}@#DpsH0%d+xCuc()#!VCS$kPZoWo^N9k_h)-IoN%nnZh3T%(-+Gy_)6yb1 zn<;t*W_6mq*LrCf+|`|u0f108}?Y>oWM~|$joxp_p z5me^(+atPAB=*(Qe9?^~)@i}*3Ynht$v3PKcQcuO>fJGERCBegJy2yg$JV=?H&=Ql zKCkAJoH#Q(EUi*pw$n4osrL(u-hA3I?X(^F-6~f(|E~K_E}osILQNd87R98)*njhT zQu9)0y;=I~?eSm0Bhs4=l0YDCUDd;lUy2kPI+prMirIRdreA-~-9=$|LeKa^b-fEE z{Rdt(800K}8#GEd8?;;>>s27}t*rmOsuxeoZWsIfLbl??crE*(Pbt5i7TnR=0rR9j z|K0M)9etef+Ml~<$UQy0V=Mp3F#m8oS$fkrMe2?>?^^C0#5R}5+{`qo-0M6T%U`(W zr1iDp{T|A@`@#8j=I#1EO+NTAiF1-2U&_I6f@+mo9o1QPZ)mMJSoOc>Hp!JP@w6Hn zcmB+}e09RWGd;Rw^0y@j{uwS7P~w;|@&=euH@so3EneU8110VrCIC4n$mG@sb33Pu z1e_bVm*Ot^_1k)*zsPD2zioS6_T>7u%6iwxvehL$5xfao$G4iY%$|4M*=`=Rwu z1kEOXkIs6(m+V~87IzD`^WdES{V&LSO=%0eEQWRu3AP1@t|KD%)WffGwKQN_b?x2~4 z-mlg=aqt{azsdPyzXgJrjgvv-xKv|z3q@WO4Q4Vj^6UTzUjDJ9r_eJyIQYLfwrT7* z8f?MQP%X6RR6f0_VAmWRaB8sxSv8&J>s_(kcI;Ljzb{43XYdIXOkCMKc)%k(qLHz~ zln=rD?tv}Jud(?D4-V^&M<^XULYa8J%~5K%ALQJny6sBqfUqH^W7a^)p3EBvS{iPs z%D>{=2M?b@vKXGp)hpi{4SM;@2{ zA+-R;B*Ao)-YLnrgAY_p{lma4%P&!e zxO##5x5IpYUa2`E_SY^GO?6nO47D3S;Brkae}-KHzEKO~AI{9l^cUZDoSDDh+m{tK z503x!2a>sixXTEChK>B&nfd#6{%>a{h1|c5{W~Y)f8E&se~>Z!O(Cz&u3ZQGu3x>P z`EQdr^S@2v|7MK*=knnH)~Dw*0paY3 zbJ!??b_(J12LCw|uaG9Fz}$%l0QO(Ol^RssyAbMo*f|jS#EP*GxDN+tvPS@t6D?*LP-_0lv}7Rmfd^gs)?(onn!&-rwI(%^ zm+i00qdd{s-tk|ppU6MhRMxvn4I8IQUjpyg#$;)Ea4Qqs~Mn6dq6{9O!;yk$(dD&L>XiZ0?F2V~<~`HzBW%MGYR_5BI>E!F$s4 zX84We-^5e2_Q;(v`Ku55oq*gSREm_o+lnpY&Ub!9S;Q`b-8}VjOUzc>$iq?p(-vb|l{&1(~F3e)E z+S*{wsQcpAJ5MN)JN~rBxjI8Bd0jCYo9-R|Jm>IVEEtC}xWDGUSoSPQcM+OftneXZ zDSGJQ(zXuW@H!?Eon3W_@3&p>rF0H;PK7(A5!lllt%U_N4{QCGHNCT5RG0uckl`@) zrqI99{EF=L)YPcu*QL>Q{0~+h3p4kAp8xvvBEK+&23c%k|9@C)TTaF! zbh~!#+TPyq=coP~oo%9zx&qzS_kLFTs}fF}f)RZc&2U~P;eA%K<+EG0hU({Y<)1`% z>P<*GW0cS5QnJ4P=C<3GazQ>xQ9G^0Fvhe&K*D9(YU!oC`bA|+XojDKLEna;#S&*~(q-qMlAt581B|9W08BYqH z%mNKh(Z~AHTI+}ID>qLNH>(Pw9&* z@OFZU=@yWa^B_ICP6S{wx{X6`dMN=gd>aWdJhxswGVFZDf`eZ5#OP8>_{mAgIJo3P(yOpaJeyzY;w3m?MPXHX0D(Eb$|DumgdX zB6!FDd>q;NPfizj&t9+*%VgIl&mPT}EkUq`iq}t!9&9S;4t{AUJ>9c&U+!zGkBL48 zOPvP{+cJ9{g>hXFZ-mRFMRF;Te5SS_#}h8z5Wp>%b4K80IjhBcCdIPKg)`U7*=8GO zZIBr+LUjC#`QFQNc$L2re%(%&HM;WbCI?lOEu^9mRT?50iCd}H{Ra2FjQQhYyyK2q zT5rKK+I;2b(H0U|fanl1lCk(Y2hh=o5QLTLoLC8A5T-i$fR*s2GqW8Rm$t{hr29zLL$}752P$Uv=Nsw z)l&544{-K0ciZ@{>%ca}AtQ()fRQ&3jA|w6txqzH8EGi2XioR-j?`NJtw^qSJq20f zcWj6b9r8V2ER8>e|3nf|kn!Jiw_xLCQ=6<(^PKEJu&;GVZ_U!NUb>rvB*}Fb+1Vh< zdSszHf8g-fv|(DX^=gE9bk~`1{af2x%hi)eI2r&+`bZ?wL}u}~yNzPtb)1BdJwgv4 zEaL1SgBahljb!z$17YE(i`|D1j`l(u?c!~)_;v&KVX~;W_pXwt`15ZF=b!-S6J4Q> zeNG*PNZ=Rv4$0q-m*Oj6V7>(Txt;K1E0kb?WpkaDk%to!iDL_}nc}6%9_r#U@X6T$ z6?+L-B|V77Wfnj_Jqzx<2w;yJlt&qleeiKfTR@Hr zV(btC73HwMDCD`>BbuFbnm}}N^|Wp7JH{mlBmQ<)dJG?Ah|VPA-Czdi42+N- z&{yg~N4o-;$-I zt3gyh86+{~Am8ae|8)}ljhT%S@6YYHQ2r$NO@8_iJFMQ@kzMBS1GCp#^myMn!^YbE^?HS;<;OqQ(@T%u$ z=jjhzwOKxS5JDeDvp`9Giq$n6Ni9RqG$%9#(V^s3oXU}SrOhdqYR4Ya`XHxY{a)K1 zMcBUFslM_aFx5@~FXROXUF;-g-yX@AQreviMi@S3;TvXvzovT=9wn=m660!Z95Xx6 z!e-zI3j9|TI_HyjcAb9l|M8ZGUdgi@wm`CAap_uF=tz?C_9v;b*APC9f9pMRXUUPN z1nA=vKpwcu1k=O5K*9MVzhCcD)y2xwV+H-;&VrR?N@ESpBKgFcCNLi|Q7SLk2A(b$ z@MA5z1*!AfxzZa0bXR^up9RK#FkCC%#IJ3Za;Qcj+s>wF)`PTEObQ~;57NrxjqJ3| zya3H~K3rN4-FgWmUJulGhyfyfn5;TW+DCrw zsB3&0(Z1ok_w4PAg{b@QA=mU;6lDu}%fjjStR%qJH6jN9F@yI*o~?;9Zljcelx;AK zeCF82rQ)q$MZR+b7V2T%Bi`|;`_}(zD}vWk*3Qeq_HQo>xN<{Io}?pqKph=ri{<`- z;OZi81e}SH>8%MFO9Y$k?D5E9+~VrQ<$#8v?LRJCq7Kjb|5&C&g%RRdvauDa(c!z6 zNi5*Hd%(GEQ1dR>CsF1LVvd(07ot9G%m#b467}j%johZ8MfQ9?&P1yUwEOI-`P0I6 zA*lFWjSw|8P1IZmIou?~5+I7B!Eg$`O@sC38s!-iOSw~gRzJ`1vRoO3EcyLg$7g>8 z@OSS&_nQ9oW*rUxE212nQ*&wdSaDyNzTa~FTo9R@eiKUu_BZI!l3g*d_Rg4=#fo=KlESOB>19Zxt|lUrJ$$DZ{ zBC!n1IE%C}j7Znppi94AJ#({y44Z~rE-bNRaEx<-Ts^|((S`H-%vb)U^=R6`Pw*;k zlT^S4rM^%*gsMrdQ# z)oraU0iSY-ok8M3`RdesO}2a%Gui0mu@!ZTAqc6pV%Y&~5yeY_YE~g>pQn@)>FPKR1->8Lo@lc`c6~cg*mcu}AtlAWdd|m* zGC^UM#v`eTL3tpAKUKn4@!M_V55YeMr?Zz%^r|4Kjz`Jas}PJ>$m;o)t+Io+xcB*? z2e|c2V^SF8oSW+(7XjV^*0w3`%F)>LO7cF8ZY$AgwB^j;{79-wr0kdN`^-fx{Yc>H z?6YcWByXILen?IltioI05{o+dSuSxOb8nf2*3V_rZgmg;v9)DdFRymrBQyQMNwKex zN0PoV5KhK)-Dh2ov9qp3Adjf7f!h$ge2 z5fnk)Wltj;Dl*lZ`E8bDGtGl}HB zSqK;1)M-5r)!Q7PtnbsWrv_fc>B!V&Fh!2l>Ib?7N7!G@?@y^#>2 zI{)kIW)_z+DdYuRQ)=dZ)m+Bc%w1xjoSK9h;6M;}Ng1evBcHY3v|zJ=aM78Y1k?N8 z@gu7!d#j`rBoo|-BzkE@{))cuZ3dySp5kojiH0Y-qi=xkScl{|xEKN)LF6t}H*{Ir zGnZJjG-_^m(ai+-d;$#8TzN)-CQ|2Dn|Dt>_6jmO0#Lz>f1q~l1sTG-jDZ4A2TZ-i z7ZlfwS#v{UB!wJcZ}i_6+}>WPm$pT`Y{}7LcWxDqDz@%UeHVQ8yK~sq5>O@eATg>J zFC_4@aewxUgS5WW24v@=L+p9c5>P>5Yd9<5i8_c!g+gU^$-UFpQ|MM5yrIB5o|A^f zDG?&kY~)laQvOVWini0S^|YG{H}9SHpDFd!V~eTE*RHSg=5X5UpW@X#j5=*aIO`PT zmmRRTp1`Lxi~7BQRnPF*ISu8uZ{*#D^3^O>vtJyH<4C5_mzDfgDE5kx`ep57;jvll zgKK-_ST3n}g<0r5N6{iF(D<>O5kd6xS??D8J#q+IEGmfCmA^V$-CtU1jIF6R#b) z&4u4N78d<}EW{XpP|EoSLZ!P%+;6_$@8`V>JV`a-@)FYdpbpJm2p0SC_*t`c>zyvh z)zj_pnT| zm*VRHjnPG-l9kC%Mx$}&)vY351EdvfFh?B0PfYDEbT}mTni&vQ@lOTWvzi|tj+|4* zKC}A75E$}Pfu~9FfTte$rDehX=)|;+jYWhbSAH%2M5)z+KPbmf-7C7rs|!Khy;YwM z#pGd3V&SmxKJaS%Hs9iu>+sCsgS1wZ``C3`E=4v>idL@%N*HvcAL*s8)l>yLW+4DG zAKBMC|Ms_=ndBb!_uH}NddleWLe3gTkVjLWvw0-8dH<*(nr}9d+BdkPXi{MX-lQ9| zwjGS7#)?Cl_paF8u-gl)P3^+wz2QvE8ak<7+gr5-ab3!F_3p+aa8_|96V@81pz?jj z^?qY^#?oh?MomodXQRP4UF<7A1wH+5tL}!tvc z&X)#B8J!Ql7Qyla%v(nSSkl*<=u zG-aS4y`iD&=owMeBWdCT_0C3i3j_DR^&4V)`On<=`_0l%t_V5`0=^P$SEiZRm1ox@ zBj+Ju`A#`1z}of05O3AwV*n3*aE3f(+xMnukrqXQXPVWGyweKIbB!%)kT;Wuq<+B} z&^9uGNBpFkkmeD5xXPs=G^>!M+KTfMps?DgOgFFi1|d1-Oor{TZYXM-HNol?*C#61 zoolI>ZYy8-)mRNVtv<$g!~_gL?zM zMX-mgk}tLo&_5&YChwDMHUsh&t++LU8j6+a;y_=K@?5R5#p zX73lV1%66wKC_Xa@^;Tbu^Nm;!Y()x*lj4ZwU<)*)iGH`3Ir|)*|eYUXeK$8ywHel zg5z0!`RU6zWsFwjMc&JEzU(H7jiY_#E;E+CZ|cZ}BYS+~>Y@u-DlOp*OOs`ic#rD& z)Gkc=CZ|>{ay-e`vGKfFnqX%RZA5VFFew$p#kfruZm|g}vCbeCWl*D8K`Qo)tG}L|&B5CObiQt0x__#U1 z6psWgj*{zzPO9B|qLMzgM^60QWfm+F)&BU&!1pOoQJ`L-Gia3-`j*UwxwNSA(J z25c=nf2Hid`0DCDp8ennk%q=4$x8PSCRZa|{#1MF9zpTC5MpPy>v(4VH|~$%e+^Xk zH@er{dW$7lK`9F!!L#u)U!h=SsKVt`B4TuPHla`6*ECW5aOH(~yXG6Er^Tg&pI)(3 z5)(MB*Pk0<_x4;LL=0azdgTN=b0oYQ1vJ#{8fm=3> z2dGW*eO(upk5HKuX5@Y1KI^#c!Vvf5ybDU{g;H!kjB(| zNG{cnz$M1-YrR=1e3A_9OuJ0o!nqX4u38c;U-=R6aMRX{dcV}|L`zDzO`8G9eL*Y3 zE5hC!{I&l;WBSQJMmjy4M7o>5lo~9vIX}iUYhyPa&RASYcodYpIje+p)_!$FMk-dL zZ;!NRMoElV2u@b^KU-oOH>FJ36%QD#LoP5?~{$;!pyb{nOycdPmTUoH-`SFx)G`g z@p)e+!w)Nt+NW}?PK#7O>S1NWh77|NR%jz9bih*Vbpn?p(pV{18b8eZRHZqYl~Xa1 zOCg_1jeL-HbQRV9=>OvGz2muT-#_3I84bw?AqgpDC0ijfvS+eYWMz*cTPQ-wO7@;n zR`!T8%HA@|CJEU*$MvaxcRqJLuiy9k`{#K*|J<+p{@kwfI!Hdoz*$%n2B+y(m=a;o#)Y^k8h^PRnl5>zCS$wVlC-&?G>N+No1JS?d@3d%{wj^{&1 z(HT&S$p0p;G>eL%xMT>#(1()Olv=B!ZuhCZyLlJ2$LkTOYsUwgXd$FvK~7dcdnR~! z#{*cTCzYRK zIbgb`Z4!r~zLIUEvc(pX=VadpCCKRt`xpb+tA+fdgvi~&MnEq z>Vo46MEF0Q!pr*PVpotu>-=j!>y!fSb}~@^g7mZ@wkvA8LnTB5rPGSiAlTDcV1!+Q zl*Ozr=CiuTAt3uFkE#>!ykhJ?EVUnEwWG(Gfb_2K1rA~0ZGB2|w)H!QTZn{GDH-a&gA{{M}ap{X;Gvfa6Z*y>*xBX0}oK!_rX5TZ)dx1HM)Mj&41_1@mW(*Ist}{W3W-$%EdLl zjtRmEFbg%w3n?#It=tm@gxgJod_(wlC3CjlPo|zHh*~vfvkMR}gkn8{$E!jXTlo|r z=8#!5zkEW7Gg;7Yzd1?)h;Y*?GW#^E`c1FNE8Dzu)ca1ct3HCwlYo*g@Q4dsB`|~E0D~@q1FY?;Hsqv z#K+gRswMdjNuK>NrYcEr^!9i?2iz+vPDvTjJQ`zU=A!h7Hl2*lGeYZl4Aw6cN zT(dPL?`k~(j6_rWydsu1CpnWi)NW&J3daZozt+`qQrjAx_IK7T$_=M ziD5p&o?tT#9#_Jx0ddze>u^D52GeeD(6U*_oJ5Z}e?x-*8|QDm*GW}1WJaK6mUq3k zbo+XNu4(^{s99lI-aZ54m^VjPvP-u#+6kt@TzZC}Cf=IIWbP1Y9pqc zNzPMVP|tf2HM;-{SIJV+)w>h~Kgjo<_J5p6|lUaD;>RpAW3!^my1){Qk^Ij-8W7Mq-1+ zE$$*L%{pu=H8Z}eU!tx+MB6zp zM(*4bmsNINUsMnCK~}oje{+k*99H=l%MQvBd7@^>{P}YS9cR|Gc|81+ucn!`E}h_) zh$CaM!#_B+sVv7=>!qAWrOi1OCQh;n>H{AoV4xVUC8WtM`N*63C0{CngpGE5YfKnR za6)qjV_IuC6e}lRySLn_wna}q11aKig~rr2|Z<|N|c@FyR6 zTxzO`>QT~T+Ps)L=Omcn`g6HX>oVQLZ*$S@`!M_ExY$YAz5b+$jBhsMTOM!22`)`` z58_cX5H;DRE9?r6gF?(k-nVjVaQNsr#{D;&ACe4dlC6sO;o4201bElZOJ&FvLZ*i{ zJh{;|wTZ{>t?}pMUNW1nK;V+c>)DXns($VV?!}VME&^=EyTpf18|z0)vz2v#{QA<# zljrs8j;vf5IK|KZMEs%&B$wW9S(LBcx?@50(I~;+gRzK1uHjX}aA3n06y@D|RF|O4 zMcWLFPDb~>6s0^jIqg`Ke7@b*ED$(tzqSI4$t>Jw=Jt1UazF_29I>%g6W`iVmK0G& zaJ|K2hi$B=ohn!Dm&~gC)euBPzQYypYsL?pv`?{QY{uWejI!@z$wT7{yNyUfm*VBIAuQ zFl2VciQ_D&+Q(mUbjFRodFc}MOfLB%rc1&jqZI%`FqdlW%{9c$h9W^O z?MdWvFiPOg;ecGlLBu)GIs3n{TbP&h4g^Mdv5+Xjz0>+YW_ot15lNpCx~__{TR#?e zbA*(SAMM?-#yWngpNqZCVPkV1odqA)mH4>V{S-FJsf*2jTJ2!m=Tn0Z?{&x`nM9$B z|6OO0e02e2MQ?o+YY$ll%6Cqj0jP3|Sml%JpxtjgA}Kr!*Uhhh!qvLy&NOmc3d9%><;V*^`dEvU{c;m6gc}_!k!dN4 zBpAMlR8a{d17F_rU%gUN59S#zV@JS*hL#vzmA6x8d1EgD0KX-QG(z?SCH*$EsFY$f77eUE9Ku$+C zmH%cgpQ%~R;dLVSu(CI_7OqJNM1&^A{oLjTWL>lz8gr5|+x2Sutxz4&>5|2b73E{SXgM+jWuuuP@^} zU76|yAW~M^SdVNHkiI*>Y0^;#(q!a2`}4J)!R?$g=l||@?lfEy`~pJ3&UDE!&JQbB zfmCb`pUwEH_751>^2rt;BQoWG@?>L<-YS@P*!SalodCitcW2Tq4_!H zfGZN}$?I#hOhZvb2)PQ<9r9A_LGCUHPR2g*0wj;pfdf+{1g!!0(*XF*h5ldvMsc}Y zBlXw0_Q403wncVzGbhGO}O(1ub)TLN2>dGGNo7 z#jC$e4}doaxwF1=R47@Y(O|-9c&K73P>5w3I@o|N=S4Qj?l5i*spen|hY-Nowhn|I|k?(PD_@ zjX*5#&*`mUCP7^h<@Us*%z5=Gr4pRIWLCBiE@3(;WarBK-+cr6PiXg=g7f<=tw18{;#z z%jnO4_G7LL)^mOSH6Z9e7(;Z1Zw-*H<946(t4HkQ9xSob3ZNICRA%wSd4S=kF!YZp z-&FG^`_~+yJMDfPCTa|i3!N{CLfGJW)hwbgV zQX*Xc@99RGI;oB<@{0$yJZHjdKXaf5iI(_hJ9XvesGri%=ys&G&%QaZd!BzyyKn$3 zLhJj!(N`xyVLPT-5LpnQ#j2vQp=dm>88IX!g{)^(ws2fO5teA}hIXv}uV;6U)ni1f zIy~BIyUOnU4eKAc(Qc zK}twMr1q@Bq&?^^F1U~}pg({2_#k`j6ta$z4dXx{IyW3`mrg3^|7?e}x7&XdnIw9) zAMMn;8r_zF3{ZZ(J^_c;_Od@sC z7@7a2wOMqA2qe9e@~I*FTtF`!dJXPJvOxJVN!=K|$c1Bduu0i;Zr^jTEC;ivJUjr|IjJU24|vepF?M9ZkUUJKarP()euq9olRkcI364jb`} zXMz{yk%cEEB|P^Tf-W-vTbb+Akd%WwDsmWjl;OI^c_=QPL`=}XzckIE3)z`*W%&vNbiLN1*0t zOPvVh_Lz;XN#a1JDWmu`-oIal?xzAWxKaqp6)qV+a4Ly(ztFxp=!KlFa0Xq`Lm&Y) z_W{m}NU)xr>KrIB`HbgJ5jWfcFuVatXA+;v1L)P;!4ONd3Vy*yp}H0$+e4JxnF}BD z1VPz5lzBz$51$Gff#+!jHR#+)!~ve(|P0jx%rwOqaJdS-ELat`MI0k#x?f= zv)?Iw#)zJGG2q8i{7eU1i2CA-zqG9cB7eaWX2y;o4~fqd3m7HRY@O}7^&z4aKhlRW z3>l@dQ?Zs)Fhv8Y{E(rr%I<>1zlVIbl3a4>fgh&L7*2O7<*<8y$={ws*kW?I!9M~P zTS{YwW=$(T^m#yjz(_w1U|mN^nLhE4|0n>H(uIMZ>ZY+k4BHlocM-_V?qP+UnZ!z>od+4&WqglMZf5D2| zfh(qB$ia%S?ii2*Wb9f-De)isg{Kdb6fEm?6Qk24XN2`qN7Ez8kkjQ~YdQ7?oZPCn zI~PYW9=i@NyMCzPFDRr)cq+tZ?wdKrQ+$vqZ+PZQ{FldSkjL)gC^_x!h`T=2kI{ds z)BacY&|QvQg~v!-sT4&p9>W5;U#2}Affxhz^FQ6=p{`B^)hSGa(d@J)%&>F!o@Vs% z@~?;8MPP=Rf;pQpOb~+!42hWbMbuyXz@uQAf=`|<#9-E8(1yp7H17oeg+hG#G|Z2= zP9(-+P)G)Y-H>;~fo1nc|C+;8Lc#F+sHO zGTM_rtup4q7w(0pnEKPlYB63mO$&Ws)rj=_^G-=(hW{OG8u$uhTb_chGn|t$zyIgQ z#Gq6nweIYLQ4C5LlsJ6a^+*STKQI4|3h-vuv-d$!*{(l8pRT^KM;ZP?AB4IL&0Y$3 zz}xkdoA66m%1qxW;+-&-_|N}*91O2ZJXJ)9@z@pQv8m~VuYZ0_0T)(-UFE3C?pbyJ z2L6glxn1LPjF0|lfP|CbZ8C)4F(!aX1^VuF^+Gnr;`uQI!Z^rmS4vHUV9a(p^fBGM z8cnA5Yd!t54H)F1i(~59r6d@iMg`ljlju=9Mr%L&6swPH?%SP;mKdLQ3Vx?gt1rXo z`>)5sk+$+5qf5-oV!7*nkS#$qsFfhC@q z5f+9d=`fmv|8##0vwdX$bBw1#z{^gxo{8r9K$-g3;Q~|Aa6B+gmDkkO89}OSl?-Ke~U+{x6T^!Tu^y;p_Vvv)G#IS4V(!7Q; zZwH}2KlT+`{a0z7yDzf7TRWQ@F^uOAgP@=Y4>6?|JE-q&(>($fLFcJAR=a=xHMI;p z$kx7^P>N}_nBn)AJ^!!1C;n9mF$@<%QU^ZxTk=PuU+w?C(;$>ZC>X7}4kTf0VTK%7 za#)^=ynpUwD$>bi@n%oVosA6dxz7Ct80YdYi@=HO?6k%*jK`#qW20V$1m`dQ=LKYo z;@6E~EZ8wnyi2_>{iJaBH~reI?qgs>HOh$$F+4;SH~2P!RDGSlj7j7kcbalMjCbKN zgY~cJ{-Z7UnO{ok;GD-uZ7CqyBN`5?NB%te4U+KPFKYa`t=%wfJiVcrlI7EP|f`|x(c(f?V8( zds=`UfmtFN6(GHwdUC!|6x|IeO>}DSc7112M8%L{pRiF-7`>E-#Ov}l)5CdoZzLsHHNi}5n8yJFiTgUiLD?9=0SG;BLE{j>Csm8_p})~r7zq@i zQK%s@grJ_qSJU2w5(3c{7?^K~E4 zEjLJGCMCv}txFGKOjbHfqSDydIL2rs(JBC?W@~~(e-OQNCP?SWoKa@dB}Hd*Q4igc z^N*ju^$01s2K{rzQ%Uj1FrNoLfK-&pLyjMLh5s?!iL6MwNNwwv0f69VbqqbhMX#yg zm_2inYn_Z1yNxwU1U3gvu)}_gZnq*{-8xge8~VNKU}Oz0jU3tiN0ruKNm#-jV7eAe zm!M7h4vu+5?lmah_Xw+?m?1Vt;V~Ois#5hi)L_9YP~4phUj>UUT>0Bc8C7M(_s4ksh2_ z3Du{!XM0{=>V?w2o2HOL$%*OOPgQ1IZ>FT9u(>xJiKR+=ZVD**y_vi=L%n z>(>uI4VILW9$+w_pm;KNmhyIvJMa=P_sE-i1`Ouu7qP+MDUf63(S;~Bm+p2R9_PVm zCyEteTBj=nkdJx;b>t+$Wl&U%q?YuAvJUY(wg-(No|>=$UQ2+A_{CqzfuEBo+y)yZ zh;+;aV`AtTp>$RVshlPcc18-TuV!iBY#5uhv_AitzF`t|vrpuhepa~Kzz2ap5uC@c zg5hy8TyX~>@OnWgP>r2M2ni4wivQ#H!p$~R2SWd{^1EIYnDy`fzx5BYJ$+D>?TOIx z5A+pUP|v31Uy`uUc=eGC<}CH#-o7UdsfL3`e@@_!`IJO*k!|rG5#rO|PVm@MI4;|3 zhDdEGv^UfBf!}T#^?z%RlvT?Jp$1p@-g#B?0~&7mf9fBSJD#uDaZ&jGLc6375xf1r z^iLmW5K8-EXF)qU2V`&0!_+1m<9GCt->eplVs8_d-Fka^i?`P$La4FKJR?1{;F~X1 zmf;3hrhM4)ZO^8e#M(+^6Ya&mL4Xn!IGQ{8Bd_~E2KJ;vAS~2rq8JGbKNS^L36+00 zfW_mEmj(bh&7$nu23C6HmqQqjj5Cvts-zGGA)M6(<(%rZI@gwI%f_n zZi{l8G=yK9@6HvyBM?8dU2vogo5EXLE?gNN*_E zVj-!21Yv2797zbRK}X}Y$$-Jaw=Q}-rB*2{>aR{^-+9`6MU%>`Lc{rK>6fQ-qcN`A zz2M;l&(Xns??Yfk=bbUEwf*}3d~+Vu-n=ISB=x)nZO-$1=7xpX`cS0 zg4s}E*emxEQTy<~Iq=bN-31cqoHGtZClU|agp8K1lfpfQ($IY4;w}@n7dr?}^592w zcQ8C=hJEfJP0)KEpV)(^7nJYJyhyI%eQ)n!(3i-r7U`~Vk%-T>`qs6NnD7wQz1f%C zwv#OsjR1X;pBX4A+^_?R_~*%iXA8y>pUSk#IEh@GO`Va5e z!^@tFZ!9$8kZI}d!#%uIQso$?ZT}KV5MOU)74$WL-1*3GE-z)0ijUP`plO3dtO9r+ z4;D^i^c#Hdnib42zmUI|v+BzyeVP#D*yH9)mV)*pE z>_qAo*a~Ea`)W-O8 zi_G+NCf<1jaR&9?XL?+rgeOZrMzG2y(x2Dvb?LXT|Q@?MgZnoJTBff+ai(=n!u9DJM8y}_jB*ia&#HF>##1HPVsy)wC3+p##z2exOpNUa zKaL9=hO-T&wWON7%}_duy`nMbJ^fNGTc@f{@l5pHc%<6C%7DTOUF`OK>n*U6+(L}V zP(GzaX)9~VEJxuGqNf5y!C7FhswM~`kP@ix3-73(e@PQ-T2FfNU=u3iaHM(S?HHuX z3d{F_glW7@=N&yjau>k-@;e#lWUbr-g!wGgrR0Dba@*SgDpRHyakln6<8^bm*5u~Z zrCg6T*5GA<(etOgeq}k`a9T%$yU&QO{f-_$X76l_41FsTbYd%z7L7eJCuuCHAhpX1 z?Qt&#zdYTKbYi#vix*s036;}&aPet9k5mL}Lb0o|^F*Ei`uJsaSST(X8d=q)GVjkU z^7^pt5U@4!(B>m}hBo%RwcL}Xa!Zy`D>eYGPA0&b1C_W-ITG O2##;+Q!Sr;= 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 literal 0 HcmV?d00001 diff --git a/ml_service/pipelines/verify_train_pipeline.py b/ml_service/pipelines/verify_train_pipeline.py index b677dd6e..db1725ba 100644 --- a/ml_service/pipelines/verify_train_pipeline.py +++ b/ml_service/pipelines/verify_train_pipeline.py @@ -41,6 +41,12 @@ def main(): type=str, help="The Build ID of the build triggering this pipeline run", ) + parser.add_argument( + "--output_model_version_file", + type=str, + default="model_version.txt", + help="Name of a file to write model version to" + ) args = parser.parse_args() if (args.build_id is not None): @@ -61,6 +67,11 @@ def main(): print("Model was not registered for this run.") sys.exit(1) + # Save the Model Version for other AzDO jobs after script is complete + if args.output_model_version_file is not None: + with open(args.output_model_version_file, "w") as out_file: + out_file.write(str(model.version)) + if __name__ == '__main__': main() diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index af7de448..0968b6c4 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -1,5 +1,6 @@ import os import sys +import argparse from azureml.core import Workspace from azureml.core.image import ContainerImage, Image from azureml.core.model import Model @@ -15,6 +16,15 @@ resource_group=e.resource_group ) +parser = argparse.ArgumentParser("create scoring image") +parser.add_argument( + "--output_image_location_file", + type=str, + help=("Name of a file to write image location to, " + "in format REGISTRY.azurecr.io/IMAGE_NAME:IMAGE_VERSION") +) +args = parser.parse_args() + model = Model(ws, name=e.model_name, version=e.model_version) os.chdir("./code/scoring") @@ -30,6 +40,8 @@ name=e.image_name, models=[model], image_config=image_config, workspace=ws ) +os.chdir("../..") + image.wait_for_creation(show_output=True) if image.creation_state != "Succeeded": @@ -43,3 +55,9 @@ image.image_build_log_uri, ) ) + +# Save the Image Location for other AzDO jobs after script is complete +if args.output_image_location_file is not None: + print("Writing image location to %s" % args.output_image_location_file) + with open(args.output_image_location_file, "w") as out_file: + out_file.write(str(image.image_location)) diff --git a/ml_service/util/smoke_test_scoring_service.py b/ml_service/util/smoke_test_scoring_service.py new file mode 100644 index 00000000..753ef23e --- /dev/null +++ b/ml_service/util/smoke_test_scoring_service.py @@ -0,0 +1,94 @@ +import os +import sys +import argparse +import requests +import time +from azureml.core import Workspace +from azureml.core.webservice import AksWebservice, AciWebservice +sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 +from env_variables import Env +import secrets + + +input = {"data": [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], + [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]} +output_len = 2 + + +def call_web_service(e, service_type, service_name): + aml_workspace = Workspace.get( + name=e.workspace_name, + subscription_id=e.subscription_id, + resource_group=e.resource_group + ) + print("Fetching service") + headers = {} + if service_type == "ACI": + service = AciWebservice(aml_workspace, service_name) + else: + service = AksWebservice(aml_workspace, service_name) + if service.auth_enabled: + service_keys = service.get_keys() + headers['Authorization'] = 'Bearer ' + service_keys[0] + print("Testing service") + print(". url: %s" % service.scoring_uri) + output = call_web_app(service.scoring_uri, headers) + + return output + + +def call_web_app(url, headers): + + # Generate an HTTP 'traceparent' distributed tracing header + # (per the W3C Trace Context proposed specification). + headers['traceparent'] = "00-{0}-{1}-00".format( + secrets.token_hex(16), secrets.token_hex(8)) + + retries = 600 + for i in range(retries): + try: + response = requests.post( + url, json=input, headers=headers) + response.raise_for_status() + return response.json() + except requests.exceptions.HTTPError as e: + if i == retries-1: + raise e + print(e) + print("Retrying...") + time.sleep(1) + + +def main(): + + parser = argparse.ArgumentParser("smoke_test_scoring_service.py") + + parser.add_argument( + "--type", + type=str, + choices=["AKS", "ACI", "Webapp"], + required=True, + help="type of service" + ) + parser.add_argument( + "--service", + type=str, + required=True, + help="Name of the image to test" + ) + args = parser.parse_args() + + e = Env() + if args.type == "Webapp": + output = call_web_app(args.service, {}) + else: + output = call_web_service(e, args.type, args.service) + print("Verifying service output") + + assert "result" in output + assert len(output["result"]) == output_len + print("Smoke test successful.") + + +if __name__ == '__main__': + main() From 8d1be26983e7b116044a09adbb11cdb3f9831630 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Wed, 11 Dec 2019 18:14:25 -0800 Subject: [PATCH 003/109] Canary deployment (#125) --- .pipelines/azdo-abtest-pipeline.yml | 162 ++++++++++++++++++ .pipelines/azdo-ci-image.yml | 36 ++++ .pipelines/azdo-helm-install.yml | 9 + .pipelines/azdo-helm-upgrade.yml | 19 ++ .pipelines/azdo-variables.yml | 4 +- charts/abtest-istio/Chart.yaml | 5 + .../abtest-istio/templates/istio-canary.yaml | 60 +++++++ charts/abtest-istio/values.yaml | 15 ++ charts/abtest-model/Chart.yaml | 5 + charts/abtest-model/templates/deployment.yaml | 31 ++++ charts/abtest-model/templates/service.yaml | 13 ++ charts/abtest-model/values.yaml | 13 ++ charts/load_test.sh | 8 + code/scoring/scoreA.py | 6 + code/scoring/scoreB.py | 6 + docs/canary_ab_deployment.md | 106 ++++++++++++ docs/getting_started.md | 2 + docs/images/scoring_image.png | Bin 0 -> 91162 bytes ml_service/util/create_scoring_image.py | 2 +- ml_service/util/env_variables.py | 5 + 20 files changed, 505 insertions(+), 2 deletions(-) create mode 100644 .pipelines/azdo-abtest-pipeline.yml create mode 100644 .pipelines/azdo-ci-image.yml create mode 100644 .pipelines/azdo-helm-install.yml create mode 100644 .pipelines/azdo-helm-upgrade.yml create mode 100644 charts/abtest-istio/Chart.yaml create mode 100644 charts/abtest-istio/templates/istio-canary.yaml create mode 100644 charts/abtest-istio/values.yaml create mode 100644 charts/abtest-model/Chart.yaml create mode 100644 charts/abtest-model/templates/deployment.yaml create mode 100644 charts/abtest-model/templates/service.yaml create mode 100644 charts/abtest-model/values.yaml create mode 100755 charts/load_test.sh create mode 100644 code/scoring/scoreA.py create mode 100644 code/scoring/scoreB.py create mode 100644 docs/canary_ab_deployment.md create mode 100644 docs/images/scoring_image.png diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/azdo-abtest-pipeline.yml new file mode 100644 index 00000000..a74cf330 --- /dev/null +++ b/.pipelines/azdo-abtest-pipeline.yml @@ -0,0 +1,162 @@ +pr: none +trigger: + branches: + include: + - master + paths: + exclude: + - docs/ + - environment_setup/ + - ml_service/util/create_scoring_image.* + - ml_service/util/smoke_test_scoring_service.py + +variables: +- group: 'devopsforai-aml-vg' +- name: 'helmVersion' + value: 'v3.0.1' +- name: 'helmDownloadURL' + value: 'https://get.helm.sh/helm-$HELM_VERSION-linux-amd64.tar.gz' +- name: 'blueReleaseName' + value: 'model-blue' +- name: 'greenReleaseName' + value: 'model-green' +- name: 'SCORE_SCRIPT' + value: 'scoreA.py' + + +stages: +- stage: 'Building' + jobs: + - job: "Build_Scoring_image" + timeoutInMinutes: 0 + pool: + vmImage: 'ubuntu-latest' + container: mcr.microsoft.com/mlops/python:latest + steps: + - task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python ml_service/util/create_scoring_image.py --output_image_location_file image_location.txt + displayName: 'Create Scoring Image' + name: 'buildscoringimage' + + - publish: image_location.txt + artifact: image_location + + - publish: $(System.DefaultWorkingDirectory)/charts + artifact: allcharts + + +- stage: 'Blue_Staging' + jobs: + - deployment: "Deploy_to_Staging" + timeoutInMinutes: 0 + environment: abtestenv + strategy: + runOnce: + deploy: + steps: + - script: | + IMAGE_LOCATION="$(cat $(Pipeline.Workspace)/image_location/image_location.txt)" + echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" + displayName: 'Get Image Location' + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(Pipeline.Workspace)/allcharts/abtest-model' + releaseName: $(blueReleaseName) + overrideValues: 'deployment.name=$(blueReleaseName),deployment.bluegreen=blue,deployment.image.name=$(IMAGE_LOCATION)' + +- stage: 'Blue_50' + jobs: + - job: 'Blue_Rollout_50' + displayName: 50 50 rollout to blue environment + timeoutInMinutes: 0 + steps: + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(System.DefaultWorkingDirectory)/charts/abtest-istio' + releaseName: 'abtest-istio' + overrideValues: 'weight.blue=50,weight.green=50' + +- stage: 'Blue_100' + jobs: + - deployment: 'blue_Rollout_100' + timeoutInMinutes: 0 + environment: abtestenv + strategy: + runOnce: + deploy: + steps: + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(Pipeline.Workspace)/allcharts/abtest-istio' + releaseName: 'abtest-istio' + overrideValues: 'weight.blue=100,weight.green=0' + +- stage: 'Rollback' + dependsOn: 'Blue_100' + condition: failed() + jobs: + - deployment: 'Roll_Back' + displayName: 'Roll Back after failure' + environment: abtestenv + strategy: + runOnce: + deploy: + steps: + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(Pipeline.Workspace)/allcharts/abtest-istio' + releaseName: 'abtest-istio' + overrideValues: 'weight.blue=0,weight.green=100' + +- stage: 'Set_Production_Tag' + dependsOn: 'Blue_100' + condition: succeeded() + jobs: + - deployment: 'green_blue_tagging' + timeoutInMinutes: 0 + environment: abtestenv + strategy: + runOnce: + deploy: + steps: + - script: | + IMAGE_LOCATION="$(cat $(Pipeline.Workspace)/image_location/image_location.txt)" + echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" + displayName: 'Get Image Location' + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(Pipeline.Workspace)/allcharts/abtest-model' + releaseName: $(greenReleaseName) + overrideValues: 'deployment.name=$(greenReleaseName),deployment.bluegreen=green,deployment.image.name=$(IMAGE_LOCATION)' + +- stage: 'Green_100' + jobs: + - job: 'Prod_Rollout_100' + timeoutInMinutes: 0 + steps: + - template: azdo-helm-upgrade.yml + parameters: + chartPath: '$(System.DefaultWorkingDirectory)/charts/abtest-istio' + releaseName: 'abtest-istio' + overrideValues: 'weight.blue=0,weight.green=100' + +- stage: 'Disable_blue' + condition: always() + jobs: + - job: 'blue_disable' + timeoutInMinutes: 0 + steps: + - template: azdo-helm-install.yml + - task: HelmDeploy@0 + displayName: 'helm uninstall blue' + inputs: + connectionType: 'Kubernetes Service Connection' + kubernetesServiceConnection: $(K8S_AB_SERVICE_CONNECTION) + command: delete + arguments: $(blueReleaseName) --namespace $(K8S_AB_NAMESPACE) diff --git a/.pipelines/azdo-ci-image.yml b/.pipelines/azdo-ci-image.yml new file mode 100644 index 00000000..b5375ad5 --- /dev/null +++ b/.pipelines/azdo-ci-image.yml @@ -0,0 +1,36 @@ +pr: none +trigger: + branches: + include: + - master + paths: + include: + - ml_service/util/create_scoring_image.py + - ml_service/util/Dockerfile + - code/scoring/ + exclude: + - code/scoring/deployment_config_aci.yml + - code/scoring/deployment_config_aks.yml + +pool: + vmImage: 'ubuntu-latest' + +container: mcr.microsoft.com/mlops/python:latest + +variables: +- group: devopsforai-aml-vg +- name: 'SCORE_SCRIPT' + value: 'scoreB.py' + +steps: + +- task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python3 $(Build.SourcesDirectory)/ml_service/util/create_scoring_image.py + displayName: 'Create Scoring Image' + diff --git a/.pipelines/azdo-helm-install.yml b/.pipelines/azdo-helm-install.yml new file mode 100644 index 00000000..fc5eac6f --- /dev/null +++ b/.pipelines/azdo-helm-install.yml @@ -0,0 +1,9 @@ +steps: +- task: Bash@3 + displayName: 'Install Helm $(helmVersion)' + inputs: + targetType: inline + script: wget -q $(helmDownloadURL) -O /tmp/$FILENAME && tar -zxvf /tmp/$FILENAME -C /tmp && sudo mv /tmp/linux-amd64/helm /usr/local/bin/helm + env: + HELM_VERSION: $(helmVersion) + FILENAME: helm-$(helmVersion)-linux-amd64.tar.gz diff --git a/.pipelines/azdo-helm-upgrade.yml b/.pipelines/azdo-helm-upgrade.yml new file mode 100644 index 00000000..949ddde7 --- /dev/null +++ b/.pipelines/azdo-helm-upgrade.yml @@ -0,0 +1,19 @@ +parameters: + chartPath: '' + releaseName: '' + overrideValues: '' + +steps: +- template: azdo-helm-install.yml +- task: HelmDeploy@0 + displayName: 'helm upgrade' + inputs: + connectionType: 'Kubernetes Service Connection' + kubernetesServiceConnection: $(K8S_AB_SERVICE_CONNECTION) + command: upgrade + chartType: FilePath + chartPath: ${{ parameters.chartPath }} + releaseName: ${{ parameters.releaseName }} + overrideValues: ${{ parameters.overrideValues }} + install: true + arguments: --namespace $(K8S_AB_NAMESPACE) diff --git a/.pipelines/azdo-variables.yml b/.pipelines/azdo-variables.yml index 5d7da750..fcf67c2b 100644 --- a/.pipelines/azdo-variables.yml +++ b/.pipelines/azdo-variables.yml @@ -37,4 +37,6 @@ variables: value: 'mltrained' # Optional. Used by a training pipeline with R on Databricks - name: DB_CLUSTER_ID - value: '' \ No newline at end of file + value: '' +- name: SCORE_SCRIPT + value: score.py \ No newline at end of file diff --git a/charts/abtest-istio/Chart.yaml b/charts/abtest-istio/Chart.yaml new file mode 100644 index 00000000..bfcf8584 --- /dev/null +++ b/charts/abtest-istio/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: A Helm chart for Kubernetes +name: abtest-istio +version: 0.1.0 diff --git a/charts/abtest-istio/templates/istio-canary.yaml b/charts/abtest-istio/templates/istio-canary.yaml new file mode 100644 index 00000000..a030fd0d --- /dev/null +++ b/charts/abtest-istio/templates/istio-canary.yaml @@ -0,0 +1,60 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: mlmodel-gateway + namespace: abtesting +spec: + selector: + istio: ingressgateway + servers: + - port: + number: {{ .Values.ingress.port }} + name: http + protocol: HTTP + hosts: + - "*" +--- +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: mlmodel-virtualservice + namespace: abtesting +spec: + gateways: + - mlmodel-gateway + hosts: + - '*' + http: + - match: + - uri: + prefix: /score + headers: + x-api-version: + exact: 'blue' + route: + - destination: + host: {{ .Values.svc.name }}-blue.abtesting.svc.cluster.local + port: + number: {{ .Values.svc.port }} + - match: + - uri: + prefix: /score + headers: + x-api-version: + exact: 'green' + route: + - destination: + host: {{ .Values.svc.name }}-green.abtesting.svc.cluster.local + port: + number: {{ .Values.svc.port }} + - route: + - destination: + host: {{ .Values.svc.name }}-green.abtesting.svc.cluster.local + port: + number: {{ .Values.svc.port }} + weight: {{ .Values.weight.green }} + - destination: + host: {{ .Values.svc.name }}-blue.abtesting.svc.cluster.local + port: + number: {{ .Values.svc.port }} + weight: {{ .Values.weight.blue }} \ No newline at end of file diff --git a/charts/abtest-istio/values.yaml b/charts/abtest-istio/values.yaml new file mode 100644 index 00000000..014845bc --- /dev/null +++ b/charts/abtest-istio/values.yaml @@ -0,0 +1,15 @@ +ingress: + port: 80 + +svc: + port: 5001 + name: model-svc + + +weight: + green: 50 + blue: 50 + +uri: + prefix: /score + diff --git a/charts/abtest-model/Chart.yaml b/charts/abtest-model/Chart.yaml new file mode 100644 index 00000000..eeaa24bf --- /dev/null +++ b/charts/abtest-model/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: "1.0" +description: A Helm chart for Kubernetes +name: abtest-model +version: 0.1.0 diff --git a/charts/abtest-model/templates/deployment.yaml b/charts/abtest-model/templates/deployment.yaml new file mode 100644 index 00000000..13572b36 --- /dev/null +++ b/charts/abtest-model/templates/deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Values.deployment.name }} + namespace: {{ .Values.namespace }} + labels: + app: {{ .Values.appname }} + model_version: {{ .Values.deployment.bluegreen }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ .Values.appname }} + model_version: {{ .Values.deployment.bluegreen }} + template: + metadata: + labels: + app: {{ .Values.appname }} + model_version: {{ .Values.deployment.bluegreen }} + spec: + containers: + - name: {{ .Values.deployment.container.name }} + image: "{{ .Values.deployment.image.name }}" + imagePullPolicy: Always + ports: + - name: http + containerPort: 5001 + - name: probe + containerPort: 8086 + imagePullSecrets: + - name: aks-secret diff --git a/charts/abtest-model/templates/service.yaml b/charts/abtest-model/templates/service.yaml new file mode 100644 index 00000000..a4a6ed8b --- /dev/null +++ b/charts/abtest-model/templates/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: "{{ .Values.svc.name }}-{{ .Values.deployment.bluegreen }}" + namespace: {{ .Values.namespace }} +spec: + selector: + app: {{ .Values.appname }} + model_version: {{ .Values.deployment.bluegreen }} + ports: + - port: {{ .Values.svc.port }} + targetPort: {{ .Values.deployment.container.port }} + \ No newline at end of file diff --git a/charts/abtest-model/values.yaml b/charts/abtest-model/values.yaml new file mode 100644 index 00000000..c3ab1b60 --- /dev/null +++ b/charts/abtest-model/values.yaml @@ -0,0 +1,13 @@ +namespace: abtesting +appname: model + +deployment: + name: model-green + bluegreen: green + container: + name: model + port: 5001 + +svc: + name: model-svc + port: 5001 \ No newline at end of file diff --git a/charts/load_test.sh b/charts/load_test.sh new file mode 100755 index 00000000..25a06452 --- /dev/null +++ b/charts/load_test.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +for ((i=1;i<=$1;i++)) +do + curl --header "x-api-version: $3" $2 + echo + sleep .2 +done \ No newline at end of file diff --git a/code/scoring/scoreA.py b/code/scoring/scoreA.py new file mode 100644 index 00000000..ac4a6100 --- /dev/null +++ b/code/scoring/scoreA.py @@ -0,0 +1,6 @@ +def init(): + global model + + +def run(raw_data): + return "New Model A" diff --git a/code/scoring/scoreB.py b/code/scoring/scoreB.py new file mode 100644 index 00000000..c0865269 --- /dev/null +++ b/code/scoring/scoreB.py @@ -0,0 +1,6 @@ +def init(): + global model + + +def run(raw_data): + return "New Model B" diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md new file mode 100644 index 00000000..b114a308 --- /dev/null +++ b/docs/canary_ab_deployment.md @@ -0,0 +1,106 @@ +## Model deployment to AKS cluster with Canary deployemnt + +[![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython-Canary?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=133&branchName=master) + +If your target deployment environment is a K8s cluster and you want to implement [Canary and/or A/B testing deployemnt strategies](http://adfpractice-fedor.blogspot.com/2019/04/deployment-strategies-with-kubernetes.html) you can follow this sample guidance. + +**Note:** It is assumed that you have an AKS instance and configured ***kubectl*** to communicate with the cluster. + +#### 1. Install Istio on a K8s cluster. + +This guidance uses [Istio](https://istio.io) service mesh implememtation to control traffic routing between model versions. The instruction on installing Istio is available [here](https://docs.microsoft.com/en-us/azure/aks/servicemesh-istio-install?pivots=client-operating-system-linux). + +Having the Istio installed, figure out the Istio gateway endpoint on your K8s cluster: + +```bash +GATEWAY_IP=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}') +``` + +#### 2. Set up variables + +There are some extra variables that you need to setup in ***devopsforai-aml-vg*** variable group (see [getting started](./getting_started.md)): + +| Variable Name | Suggested Value | +| --------------------------- | -----------------------------------------------------| +| K8S_AB_SERVICE_CONNECTION | AzDo service connection to a K8s cluster | +| K8S_AB_NAMESPACE | Namespace in a K8s cluster to deploy the model | +| IMAGE_REPO_NAME | Image reposiory name (e.g. mlopspyciamlcr.azurecr.io)| + + +#### 3. Configure a pipeline to build and deploy a scoring Image + +Import and run the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) multistage deployment pipeline. + +The result of the pipeline will be a registered Docker image in the ACR repository attached to the AML Service: + +![scoring image](./images/scoring_image.png) + +The pipeline will also deploy the scoring image to the Kubernetes cluster. + +```bash +kubectl get deployments --namespace abtesting +NAME READY UP-TO-DATE AVAILABLE AGE +model-green 1/1 1 1 19h +``` + +#### 4. Build a new Scoring Image. + +Change value of the ***SCORE_SCRIPT*** variable in the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) to point to ***scoreA.py*** and merge it to the master branch. + +**Note:** ***scoreA.py*** and ***scoreB.py*** files used in this tutorial are just mockups returning either "New Model A" or "New Model B" respectively. They are used to demonstrate the concept of testing two scoring images with different models or scoring code. In real life you would implement a scoring file similar to [score.py](./../code/scoring/score.py) (see [getting started](./getting_started.md)). + +It will automatically trigger the pipeline and deploy a new scoring image with the following stages implementing ***Canary*** deployment strategy: + +| Stage | Green Weight| Blue Weight| Description | +| ------------------- |-------------|------------|-----------------------------------------------------------------| +| Blue_0 |100 |0 |New image (blue) is deployed.
But all traffic (100%) is still routed to the old (green) image.| +| Blue_50 |50 |50 |Traffic is split between old (green) and new (blue) images 50/50.| +| Blue_100 |0 |100 |All traffic (100%) is routed to the blue image.| +| Blue_Green |0 |100 |Old green image is removed. The new blue image is copied as green.
Blue and Green images are equal.
All traffic (100%) is routed to the blue image.| +| Green_100 |100 |0 |All traffic (100%) is routed to the green image.
The blue image is removed + + +**Note:** The pipeline performs the rollout without any pausing. You may want to configure [Approvals and Checks](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass) for the stages on your environment for better experience of the model testing. The environment ***abtestenv*** will be added automatically to your AzDo project after the first pipeline run. + +At each stage you can verify how the traffic is routed sending requests to $GATEWAY_IP/score with ***Postman*** or with ***curl***: + +```bash +curl $GATEWAY_IP/score +``` + +You can also emulate a simple load test on the gateway with the ***load_test.sh***: + +```bash +./charts/load_test.sh 10 $GATEWAY_IP/score +``` + +The command above sends 10 requests to the gateway. So if the pipeline has completted stage Blue_50, the result will look like this: + +```bash +"New Model A" +"New Model A" +"New Model A" +"New Model B" +"New Model A" +"New Model B" +"New Model B" +"New Model A" +"New Model A" +"New Model A" +``` + +Despite what blue/green weights are configured now on the cluster, you can perform ***A/B testing*** and send requests directly to either blue or green images: + +```bash +curl --header "x-api-version: blue" $GATEWAY_IP/score +curl --header "x-api-version: green" $GATEWAY_IP/score +``` + +or with the load_test.sh: + +```bash +./charts/load_test.sh 10 $GATEWAY_IP/score blue +./charts/load_test.sh 10 $GATEWAY_IP/score green +``` + +In this case the Istio Virtual Service analyzes the request header and routes the traffic directly to the specified model version. diff --git a/docs/getting_started.md b/docs/getting_started.md index b5e92902..b24545f4 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -199,6 +199,8 @@ The final stage is to deploy the model to the production environment running on tutorial, but you can find set up information in the docs [here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). +**Note:** If your target deployment environment is a K8s cluster and you want to implement Canary and/or A/B testing deployemnt strategies check out this [tutorial](./canary_ab_deployment.md). + In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: | Variable Name | Suggested Value | diff --git a/docs/images/scoring_image.png b/docs/images/scoring_image.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb1c24546e381bff3d6ece9ba160edd29fd0489 GIT binary patch literal 91162 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

IR=Sa2e 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 Date: Mon, 16 Dec 2019 09:55:54 -0800 Subject: [PATCH 004/109] Deploy to ACI error fix (#126) --- code/scoring/conda_dependencies.yml | 2 +- docs/getting_started.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/scoring/conda_dependencies.yml b/code/scoring/conda_dependencies.yml index 41a05694..9c5505e2 100644 --- a/code/scoring/conda_dependencies.yml +++ b/code/scoring/conda_dependencies.yml @@ -28,7 +28,7 @@ dependencies: - azureml-model-management-sdk==1.0.1b6.post1 - azureml-sdk==1.0.74 - scipy==1.3.1 - - scikit-learn==0.21.3 + - scikit-learn==0.22 - pandas==0.25.3 - numpy==1.17.3 - joblib==0.14.0 diff --git a/docs/getting_started.md b/docs/getting_started.md index b24545f4..e6f544a1 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -182,6 +182,8 @@ specified). * The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, so it can wait for training completion for hours or even days without using agent resources. +**Note:** If the model evaluation determines that the new model does not perform better than the previous one then the new model will not be registered and the pipeline will be cancelled. + * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. Wait until the pipeline finished and make sure there is a new model in the **ML Workspace**: From d79338fb41f19a25e3772c31016bf5338a820441 Mon Sep 17 00:00:00 2001 From: jotaylo Date: Thu, 26 Dec 2019 13:38:19 -0800 Subject: [PATCH 005/109] Making clarifications in Getting Started guide (#131) --- docs/getting_started.md | 75 +++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index e6f544a1..6d03e5b8 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,18 +1,19 @@ # Getting Started with this Repo -## Clone or fork this repository - -## Create an Azure DevOps account +## Create an Azure DevOps organization We use Azure DevOps for running our multi-stage pipeline with build(CI), ML training and scoring service release -(CD) stages. If you don't already have an Azure DevOps account, create one by +(CD) stages. If you don't already have an Azure DevOps organization, create one by following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=azure-devops). -If you already have Azure DevOps account, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). +If you already have an Azure DevOps organization, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). + +## Clone or fork this repository +Fork this repository within GitHub, or clone it into your Azure DevOps project. ## Create an ARM Service Connection to deploy resources -The repository includes a DevOps pipeline to deploy the Azure ML workspace and associated resources through Azure Resource Manager. +This repository includes a YAML pipeline definition file for an Azure DevOps pipeline that will create the Azure ML workspace and associated resources through Azure Resource Manager. The pipeline requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). @@ -32,7 +33,7 @@ permissions on the subscription. ## Create a Variable Group for your Pipeline -We make use of variable group inside Azure DevOps to store variables and their +We make use of a variable group inside Azure DevOps to store variables and their values that we want to make available across multiple pipelines or pipeline stages. You can either store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) or connect to an Azure Key Vault in your subscription. Please refer to the @@ -43,8 +44,7 @@ Click on **Library** in the **Pipelines** section as indicated below: ![library_variable groups](./images/library_variable_groups.png) -Please name your variable group **``devopsforai-aml-vg``** as we are using this -name within our build yaml file. +Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline definitions in this repository refer to this variable group by name. The variable group should contain the following required variables: @@ -52,46 +52,48 @@ The variable group should contain the following required variables: | --------------------------- | -----------------------------------| | BASE_NAME | [unique base name] | | LOCATION | centralus | -| RESOURCE_GROUP | | +| RESOURCE_GROUP | mlops-RG | | WORKSPACE_NAME | mlops-AML-WS | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | | ACI_DEPLOYMENT_NAME | diabetes-aci | **Note:** -The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide here an existing AML Workspace if you have one. +The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide an existing AML Workspace here if you have one. The **BASE_NAME** parameter is used throughout the solution for naming Azure resources. When the solution is used in a shared subscription, there can be naming collisions with resources that require unique names like azure blob storage and registry DNS naming. Make sure to give a unique value to the BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have -unique names (e.g. MyUniqueML-AML-RG, MyUniqueML-AML-KV, etc.). The length of +unique names (e.g. MyUniqueMLamlcr, MyUniqueML-AML-KV, etc.). The length of the BASE_NAME value should not exceed 10 characters. +The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. + Make sure to select the **Allow access to all pipelines** checkbox in the variable group configuration. ## More variable options -There are more variables used in the project. They're defined in two places one for local execution one for using Azure DevOps Pipelines +There are more variables used in the project. They're defined in two places, one for local execution and one for using Azure DevOps Pipelines. ### Local configuration -In order to configure the project locally you have to create a copy from `.env.example` to the root and name it `.env`. Fill out all missing values and adjust the existing ones to your needs. +In order to configure the project locally, create a copy of `.env.example` in the root directory and name it `.env`. Fill out all missing values and adjust the existing ones to suit your requirements. -For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). Azure CLI will be used to log you in interactively. +For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). The Azure CLI will be used to log you in interactively. Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. ### Azure DevOps configuration -For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/azdo-variables.yml`. Adjust as needed the variables, also the defaults will give you an easy jump start. +For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/azdo-variables.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. Up until now you should have: * Forked (or cloned) the repo -* Created a devops account or use an existing one -* A variable group with all configuration values +* Configured an Azure DevOps project with a service connection to Azure Resource Manager +* Set up a variable group with all configuration values ## Create Resources with Azure Pipelines @@ -100,19 +102,13 @@ Container Registry, Storage Account, etc.) is to leverage an "Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment.yml). This **IaC** pipeline takes care of setting up all required resources based on these [ARM templates](../environment_setup/arm-templates/cloud-environment.json). -To set up this pipeline, you will need to do the following steps: - -1. Create an Azure Resource Manager Service Connection -1. Create a Build IaC Pipeline - ### Create a Build IaC Pipeline -In your DevOps project, create a build pipeline from your forked **GitHub** -repository: +In your Azure DevOps project, create a build pipeline from your forked repository: ![build connnect step](./images/build-connect.png) -Then, refer to an **Existing Azure Pipelines YAML file**: +Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment.yml](../environment_setup/iac-remove-environment.yml): ![configure step](./images/select-iac-pipeline.png) @@ -120,12 +116,11 @@ Having done that, run the pipeline: ![iac run](./images/run-iac-pipeline.png) -Check out created resources in the [Azure Portal](portal.azure.com): +Check out the newly created resources in the [Azure Portal](portal.azure.com): ![created resources](./images/created-resources.png) -Alternatively, you can also use a [cleaning pipeline](../environment_setup/iac-remove-environment.yml) that removes resources created for this project or -you can just delete a resource group in the [Azure Portal](portal.azure.com). +(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](portal.azure.com). ## Create an Azure DevOps Azure ML Workspace Service Connection Install the **Azure Machine Learning** extension to your organization from the @@ -147,7 +142,7 @@ you can set up the pipeline necessary for deploying your ML model to production. The pipeline has a sequence of stages for: 1. **Model Code Continuous Integration:** triggered on code change to master branch on GitHub, -performs linting, unit testing, publishing a training pipeline, and runs the published training pipeline to train, evaluate, and register a model. +performs linting, unit testing, publishes a training pipeline, and runs the published training pipeline to train, evaluate, and register a model. 1. **Train Model**: invokes the Azure ML service to trigger model training. 1. **Release Deployment:** deploys a model to QA (ACI) and Prod (AKS) environments, or alternatively to Azure App Service. @@ -156,7 +151,7 @@ environments, or alternatively to Azure App Service. In your [Azure DevOps](https://dev.azure.com) project create and run a new build pipeline referring to the [azdo-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) -pipeline in your forked **GitHub** repository: +pipeline definition in your forked repository: ![configure ci build pipeline](./images/ci-build-pipeline-configure.png) @@ -164,29 +159,29 @@ Once the pipeline is finished, explore the execution result: ![build](./images/multi-stage-aci.png) -and checkout a published training pipeline in the **mlops-AML-WS** workspace in +and check out the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://ms.portal.azure.com/): ![training pipeline](./images/training-pipeline.png) Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch. -* The first stage of the pipeline, **Model CI**, perform linting, unit testing, build and publishes an **ML Training Pipeline** in a **ML Workspace**. +* The first stage of the pipeline, **Model CI**, performs linting, unit testing, build and publishes an **ML Training Pipeline** in an **ML Workspace**. **Note:** The build pipeline also supports building and publishing ML pipelines using R to train a model. This is enabled -by changing the `build-train-script` pipeline variable to either `build_train_pipeline_with_r.py`, or `build_train_pipeline_with_r_on_dbricks.py`. For the pipeline training a model with R on Databricks you have +by changing the `build-train-script` pipeline variable to either `build_train_pipeline_with_r.py`, or `build_train_pipeline_with_r_on_dbricks.py`. For pipeline training a model with R on Databricks you'll need to manually create a Databricks cluster and attach it to the ML Workspace as a compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be specified). -* The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, so it can wait for training completion for hours or even days without using agent resources. +* The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, allowing the pipeline to wait for training completion for hours or even days without using agent resources. **Note:** If the model evaluation determines that the new model does not perform better than the previous one then the new model will not be registered and the pipeline will be cancelled. * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. -Wait until the pipeline finished and make sure there is a new model in the **ML Workspace**: +Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: ![trained model](./images/trained-model.png) @@ -197,11 +192,11 @@ To disable the automatic trigger of the training pipeline, change the `auto-trig The final stage is to deploy the model to the production environment running on [Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). -**Note:** Creating of a Kubernetes cluster on AKS is out of scope of this -tutorial, but you can find set up information in the docs +**Note:** Creating a Kubernetes cluster on AKS is out of scope of this +tutorial, but you can find set up information [here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). -**Note:** If your target deployment environment is a K8s cluster and you want to implement Canary and/or A/B testing deployemnt strategies check out this [tutorial](./canary_ab_deployment.md). +**Note:** If your target deployment environment is a K8s cluster and you want to implement Canary and/or A/B testing deployment strategies check out this [tutorial](./canary_ab_deployment.md). In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: @@ -265,4 +260,4 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta | project-away id1 * **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs this header. The query above shows how to surface this value. You can adapt this to your tracing framework. - * **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance, just as for any other container. \ No newline at end of file + * **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance, just as for any other container. From dc88c722a5009ad507adbd735119c1c2201ce4ca Mon Sep 17 00:00:00 2001 From: jotaylo Date: Tue, 7 Jan 2020 13:45:56 -0800 Subject: [PATCH 006/109] Tag the experiment runs and model with a link to the build ui (#132) --- code/evaluate/evaluate_model.py | 4 ++++ code/register/register_model.py | 16 ++++++++++++++-- code/training/train.py | 7 +++++++ ml_service/pipelines/build_train_pipeline.py | 7 +++++++ ml_service/util/env_variables.py | 10 ++++++++++ 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/code/evaluate/evaluate_model.py b/code/evaluate/evaluate_model.py index f59a87fd..3e9ac608 100644 --- a/code/evaluate/evaluate_model.py +++ b/code/evaluate/evaluate_model.py @@ -90,6 +90,10 @@ model_name = args.model_name metric_eval = "mse" run.tag("BuildId", value=build_id) +builduri_base = os.environ.get("BUILDURI_BASE") +if (builduri_base is not None): + build_uri = builduri_base + build_id + run.tag("BuildUri", value=build_uri) # Paramaterize the matrices on which the models should be compared # Add golden data set on which all the model performance can be evaluated diff --git a/code/register/register_model.py b/code/register/register_model.py index fff5c7b6..73b4792e 100644 --- a/code/register/register_model.py +++ b/code/register/register_model.py @@ -88,7 +88,11 @@ def main(): register_aml_model(model_name, exp, run_id) else: run.tag("BuildId", value=build_id) - register_aml_model(model_name, exp, run_id, build_id) + builduri_base = os.environ.get("BUILDURI_BASE") + if (builduri_base is not None): + build_uri = builduri_base + build_id + run.tag("BuildUri", value=build_uri) + register_aml_model(model_name, exp, run_id, build_id, build_uri) def model_already_registered(model_name, exp, run_id): @@ -102,7 +106,13 @@ def model_already_registered(model_name, exp, run_id): print("Model is not registered for this run.") -def register_aml_model(model_name, exp, run_id, build_id: str = 'none'): +def register_aml_model( + model_name, + exp, + run_id, + build_id: str = 'none', + build_uri=None +): try: if (build_id != 'none'): model_already_registered(model_name, exp, run_id) @@ -110,6 +120,8 @@ def register_aml_model(model_name, exp, run_id, build_id: str = 'none'): tagsValue = {"area": "diabetes", "type": "regression", "BuildId": build_id, "run_id": run_id, "experiment_name": exp.name} + if (build_uri is not None): + tagsValue["BuildUri"] = build_uri else: run = Run(experiment=exp, run_id=run_id) if (run is not None): diff --git a/code/training/train.py b/code/training/train.py index 05c58683..a04972dd 100644 --- a/code/training/train.py +++ b/code/training/train.py @@ -101,9 +101,16 @@ def main(): print("Following files are uploaded ") print(run.parent.get_file_names()) + run.parent.tag("BuildId", value=build_id) + # Add properties to identify this specific training run run.tag("BuildId", value=build_id) run.tag("run_type", value="train") + builduri_base = os.environ.get("BUILDURI_BASE") + if (builduri_base is not None): + build_uri = builduri_base + build_id + run.tag("BuildUri", value=build_uri) + run.parent.tag("BuildUri", value=build_uri) print(f"tags now present for run: {run.tags}") run.complete() diff --git a/ml_service/pipelines/build_train_pipeline.py b/ml_service/pipelines/build_train_pipeline.py index 4b0d775b..2b41f12c 100644 --- a/ml_service/pipelines/build_train_pipeline.py +++ b/ml_service/pipelines/build_train_pipeline.py @@ -39,6 +39,13 @@ def main(): ) run_config.environment.docker.enabled = True + config_envvar = {} + if (e.collection_uri is not None and e.teamproject_name is not None): + builduri_base = e.collection_uri + e.teamproject_name + builduri_base = builduri_base + "/_build/results?buildId=" + config_envvar["BUILDURI_BASE"] = builduri_base + run_config.environment.environment_variables = config_envvar + model_name_param = PipelineParameter( name="model_name", default_value=e.model_name) build_id_param = PipelineParameter( diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index ed7f25f3..ec13ac95 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -39,6 +39,8 @@ def __init__(self): self._model_path = os.environ.get('MODEL_PATH') self._db_cluster_id = os.environ.get("DB_CLUSTER_ID") self._score_script = os.environ.get("SCORE_SCRIPT") + self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI") + self._teamproject_name = os.environ.get("SYSTEM_TEAMPROJECT") @property def workspace_name(self): @@ -135,3 +137,11 @@ def model_path(self): @property def score_script(self): return self._score_script + + @property + def collection_uri(self): + return self._collection_uri + + @property + def teamproject_name(self): + return self._teamproject_name From cb27dd65ee22a1db04671fa9d4ed937af6223fa9 Mon Sep 17 00:00:00 2001 From: Daniel Heinze Date: Thu, 9 Jan 2020 21:06:35 +0100 Subject: [PATCH 007/109] Fixed assignment bug for build_uri (#133) If the builduri_base is None, the build_uri would never been instantiated causing an error when calling register_aml_model(model_name, exp, run_id, build_id, build_uri). By adding the else statement, this is prevented. --- code/register/register_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/register/register_model.py b/code/register/register_model.py index 73b4792e..b2d454bb 100644 --- a/code/register/register_model.py +++ b/code/register/register_model.py @@ -92,7 +92,9 @@ def main(): if (builduri_base is not None): build_uri = builduri_base + build_id run.tag("BuildUri", value=build_uri) - register_aml_model(model_name, exp, run_id, build_id, build_uri) + register_aml_model(model_name, exp, run_id, build_id, build_uri) + else: + register_aml_model(model_name, exp, run_id, build_id) def model_already_registered(model_name, exp, run_id): From da60ab116083d168a0c88d7c052b6a9338cfdd6c Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Mon, 13 Jan 2020 09:36:24 -0800 Subject: [PATCH 008/109] Use training data from a managed datasource (#134) * Data from managed datastore * merge with unassigned variable fix * bugfix * typo * linting * linting * linting * added a link to az cli * doc update * reregistering a dataset * typo * rephrasing * rephrasing * auth enabled * revert auth enabled --- .env.example | 3 +++ .pipelines/azdo-variables.yml | 4 +++- code/training/train.py | 18 +++++++++++++++++- docs/getting_started.md | 4 ++++ ml_service/pipelines/build_train_pipeline.py | 17 +++++++++++++++-- ml_service/util/env_variables.py | 15 +++++++++++++++ 6 files changed, 57 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index f6b2fe58..a3662d20 100644 --- a/.env.example +++ b/.env.example @@ -31,6 +31,9 @@ MODEL_PATH = '' EVALUATE_SCRIPT_PATH = 'evaluate/evaluate_model.py' REGISTER_SCRIPT_PATH = 'register/register_model.py' SOURCES_DIR_TRAIN = 'code' +DATASET_NAME = 'diabetes_ds' +DATASTORE_NAME = 'datablobstore' +DATAFILE_NAME = 'diabetes.csv' # Optional. Used by a training pipeline with R on Databricks DB_CLUSTER_ID = '' diff --git a/.pipelines/azdo-variables.yml b/.pipelines/azdo-variables.yml index fcf67c2b..0691e673 100644 --- a/.pipelines/azdo-variables.yml +++ b/.pipelines/azdo-variables.yml @@ -39,4 +39,6 @@ variables: - name: DB_CLUSTER_ID value: '' - name: SCORE_SCRIPT - value: score.py \ No newline at end of file + value: score.py +- name: DATASET_NAME + value: diabetes_ds diff --git a/code/training/train.py b/code/training/train.py index a04972dd..f56daa99 100644 --- a/code/training/train.py +++ b/code/training/train.py @@ -24,6 +24,7 @@ POSSIBILITY OF SUCH DAMAGE. """ from azureml.core.run import Run +from azureml.core import Dataset import os import argparse from sklearn.datasets import load_diabetes @@ -69,19 +70,34 @@ def main(): "must be a positive float.") ) + parser.add_argument( + "--dataset_name", + type=str, + help=("Dataset with the training data") + ) args = parser.parse_args() print("Argument [build_id]: %s" % args.build_id) print("Argument [model_name]: %s" % args.model_name) print("Argument [alpha]: %s" % args.alpha) + print("Argument [dataset_name]: %s" % args.dataset_name) model_name = args.model_name build_id = args.build_id alpha = args.alpha + dataset_name = args.dataset_name run = Run.get_context() + ws = run.experiment.workspace + + if (dataset_name): + dataset = Dataset.get_by_name(workspace=ws, name=dataset_name) + df = dataset.to_pandas_dataframe() + X = df.values + y = df.Y + else: + X, y = load_diabetes(return_X_y=True) - X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=0) data = {"train": {"X": X_train, "y": y_train}, diff --git a/docs/getting_started.md b/docs/getting_started.md index 6d03e5b8..a46d5304 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -122,6 +122,10 @@ Check out the newly created resources in the [Azure Portal](portal.azure.com): (Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](portal.azure.com). +**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). +You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. + + ## Create an Azure DevOps Azure ML Workspace Service Connection Install the **Azure Machine Learning** extension to your organization from the [marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), diff --git a/ml_service/pipelines/build_train_pipeline.py b/ml_service/pipelines/build_train_pipeline.py index 2b41f12c..0b86eb50 100644 --- a/ml_service/pipelines/build_train_pipeline.py +++ b/ml_service/pipelines/build_train_pipeline.py @@ -3,6 +3,7 @@ from azureml.pipeline.core import Pipeline from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration, CondaDependencies +from azureml.core import Dataset, Datastore import os import sys sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 @@ -35,10 +36,10 @@ def main(): 'scikit-learn', 'tensorflow', 'keras'], pip_packages=['azure', 'azureml-core', 'azure-storage', - 'azure-storage-blob']) + 'azure-storage-blob', + 'azureml-dataprep']) ) run_config.environment.docker.enabled = True - config_envvar = {} if (e.collection_uri is not None and e.teamproject_name is not None): builduri_base = e.collection_uri + e.teamproject_name @@ -53,6 +54,17 @@ def main(): hyperparameter_alpha_param = PipelineParameter( name="hyperparameter_alpha", default_value=0.5) + dataset_name = "" + if (e.datastore_name is not None and e.datafile_name is not None): + dataset_name = e.dataset_name + datastore = Datastore.get(aml_workspace, e.datastore_name) + data_path = [(datastore, e.datafile_name)] + dataset = Dataset.Tabular.from_delimited_files(path=data_path) + dataset.register(workspace=aml_workspace, + name=e.dataset_name, + description="dataset with training data", + create_new_version=True) + train_step = PythonScriptStep( name="Train Model", script_name=e.train_script_path, @@ -62,6 +74,7 @@ def main(): "--build_id", build_id_param, "--model_name", model_name_param, "--alpha", hyperparameter_alpha_param, + "--dataset_name", dataset_name, ], runconfig=run_config, allow_reuse=False, diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index ec13ac95..ed3be221 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -41,6 +41,9 @@ def __init__(self): self._score_script = os.environ.get("SCORE_SCRIPT") self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI") self._teamproject_name = os.environ.get("SYSTEM_TEAMPROJECT") + self._datastore_name = os.environ.get("DATASTORE_NAME") + self._datafile_name = os.environ.get("DATAFILE_NAME") + self._dataset_name = os.environ.get("DATASET_NAME") @property def workspace_name(self): @@ -145,3 +148,15 @@ def collection_uri(self): @property def teamproject_name(self): return self._teamproject_name + + @property + def datastore_name(self): + return self._datastore_name + + @property + def datafile_name(self): + return self._datafile_name + + @property + def dataset_name(self): + return self._dataset_name From e4a931ad1bea0e82927298357cf06d10f9e015a6 Mon Sep 17 00:00:00 2001 From: jotaylo Date: Wed, 22 Jan 2020 10:18:55 -0800 Subject: [PATCH 009/109] extending use of SOURCES_DIR_TRAIN variable (#143) --- .pipelines/azdo-ci-build-train.yml | 8 ++++---- code/evaluate/evaluate_model.py | 8 ++++++-- ml_service/pipelines/verify_train_pipeline.py | 8 ++++++-- ml_service/util/create_scoring_image.py | 9 +++++++-- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/.pipelines/azdo-ci-build-train.yml b/.pipelines/azdo-ci-build-train.yml index e1ed0dc6..e6a7ea18 100644 --- a/.pipelines/azdo-ci-build-train.yml +++ b/.pipelines/azdo-ci-build-train.yml @@ -115,10 +115,10 @@ stages: modelSourceType: manualSpec modelName: '$(MODEL_NAME)' modelVersion: $(MODEL_VERSION) - inferencePath: '$(Build.SourcesDirectory)/code/scoring/inference_config.yml' + inferencePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml' deploymentTarget: ACI deploymentName: $(ACI_DEPLOYMENT_NAME) - deployConfig: '$(Build.SourcesDirectory)/code/scoring/deployment_config_aci.yml' + deployConfig: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aci.yml' overwriteExistingDeployment: true - task: AzureCLI@1 displayName: 'Smoke test' @@ -150,11 +150,11 @@ stages: modelSourceType: manualSpec modelName: '$(MODEL_NAME)' modelVersion: $(MODEL_VERSION) - inferencePath: '$(Build.SourcesDirectory)/code/scoring/inference_config.yml' + inferencePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml' deploymentTarget: AKS aksCluster: $(AKS_COMPUTE_NAME) deploymentName: $(AKS_DEPLOYMENT_NAME) - deployConfig: '$(Build.SourcesDirectory)/code/scoring/deployment_config_aks.yml' + deployConfig: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aks.yml' overwriteExistingDeployment: true - task: AzureCLI@1 displayName: 'Smoke test' diff --git a/code/evaluate/evaluate_model.py b/code/evaluate/evaluate_model.py index 3e9ac608..640442a1 100644 --- a/code/evaluate/evaluate_model.py +++ b/code/evaluate/evaluate_model.py @@ -32,10 +32,14 @@ run = Run.get_context() if (run.id.startswith('OfflineRun')): from dotenv import load_dotenv - sys.path.append(os.path.abspath("./code/util")) # NOQA: E402 - from model_helper import get_model_by_tag # For local development, set values in this section load_dotenv() + sources_dir = os.environ.get("SOURCES_DIR_TRAIN") + if (sources_dir is None): + sources_dir = 'code' + path_to_util = os.path.join(".", sources_dir, "util") + sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 + from model_helper import get_model_by_tag workspace_name = os.environ.get("WORKSPACE_NAME") experiment_name = os.environ.get("EXPERIMENT_NAME") resource_group = os.environ.get("RESOURCE_GROUP") diff --git a/ml_service/pipelines/verify_train_pipeline.py b/ml_service/pipelines/verify_train_pipeline.py index db1725ba..e141b8ff 100644 --- a/ml_service/pipelines/verify_train_pipeline.py +++ b/ml_service/pipelines/verify_train_pipeline.py @@ -11,10 +11,14 @@ def main(): run = Run.get_context() if (run.id.startswith('OfflineRun')): from dotenv import load_dotenv - sys.path.append(os.path.abspath("./code/util")) # NOQA: E402 - from model_helper import get_model_by_tag # For local development, set values in this section load_dotenv() + sources_dir = os.environ.get("SOURCES_DIR_TRAIN") + if (sources_dir is None): + sources_dir = 'code' + path_to_util = os.path.join(".", sources_dir, "util") + sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 + from model_helper import get_model_by_tag workspace_name = os.environ.get("WORKSPACE_NAME") experiment_name = os.environ.get("EXPERIMENT_NAME") resource_group = os.environ.get("RESOURCE_GROUP") diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index edc57bf1..c985e933 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -26,7 +26,12 @@ args = parser.parse_args() model = Model(ws, name=e.model_name, version=e.model_version) -os.chdir("./code/scoring") +sources_dir = e.sources_dir +if (sources_dir is None): + sources_dir = 'code' +path_to_scoring = os.path.join(".", sources_dir, "scoring") +cwd = os.getcwd() +os.chdir(path_to_scoring) image_config = ContainerImage.image_configuration( execution_script=e.score_script, @@ -40,7 +45,7 @@ name=e.image_name, models=[model], image_config=image_config, workspace=ws ) -os.chdir("../..") +os.chdir(cwd) image.wait_for_creation(show_output=True) From faeeef98e01913c3a4962249e9f0fcc6bf4634bd Mon Sep 17 00:00:00 2001 From: Bryan J Smith Date: Wed, 22 Jan 2020 14:27:00 -0800 Subject: [PATCH 010/109] Added notebooks for training and scoring a Diabetes Ridge regression model (#145) * Added notebooks for training and scoring a Ridge regression model with the Diabetes dataset * Fixed joblib import and remove request headers Co-authored-by: David Tesar --- .../Diabetes Ridge Regression Scoring.ipynb | 114 ++++++++++++ .../Diabetes Ridge Regression Training.ipynb | 171 ++++++++++++++++++ 2 files changed, 285 insertions(+) create mode 100644 experimentation/Diabetes Ridge Regression Scoring.ipynb create mode 100644 experimentation/Diabetes Ridge Regression Training.ipynb diff --git a/experimentation/Diabetes Ridge Regression Scoring.ipynb b/experimentation/Diabetes Ridge Regression Scoring.ipynb new file mode 100644 index 00000000..9ac340ed --- /dev/null +++ b/experimentation/Diabetes Ridge Regression Scoring.ipynb @@ -0,0 +1,114 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Score Data with a Ridge Regression Model Trained on the Diabetes Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook loads the model trained in the Diabetes Ridge Regression Training notebook, prepares the data, and scores the data." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import numpy\n", + "from azureml.core.model import Model\n", + "import joblib" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load Model" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "model_path = Model.get_model_path(model_name=\"sklearn_regression_model.pkl\")\n", + "model = joblib.load(model_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prepare Data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "raw_data = '{\"data\":[[1,2,3,4,5,6,7,8,9,10],[10,9,8,7,6,5,4,3,2,1]]}'\n", + "\n", + "data = json.loads(raw_data)[\"data\"]\n", + "data = numpy.array(data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Score Data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test result: {'result': [5113.099642122813, 3713.6329271385353]}\n" + ] + } + ], + "source": [ + "request_headers = {}\n", + "\n", + "result = model.predict(data)\n", + "print(\"Test result: \", {\"result\": result.tolist()})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (storedna)", + "language": "python", + "name": "storedna" + }, + "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.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/experimentation/Diabetes Ridge Regression Training.ipynb b/experimentation/Diabetes Ridge Regression Training.ipynb new file mode 100644 index 00000000..7ae84e38 --- /dev/null +++ b/experimentation/Diabetes Ridge Regression Training.ipynb @@ -0,0 +1,171 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Train a Ridge Regression Model on the Diabetes Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook loads the Diabetes dataset from sklearn, splits the data into training and validation sets, trains a Ridge regression model, validates the model on the validation set, and saves the model." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_diabetes\n", + "from sklearn.linear_model import Ridge\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "import joblib" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X, y = load_diabetes(return_X_y=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Split Data into Training and Validation Sets" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + "data = {\"train\": {\"X\": X_train, \"y\": y_train},\n", + " \"test\": {\"X\": X_test, \"y\": y_test}}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train Model on Training Set" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,\n", + " normalize=False, random_state=None, solver='auto', tol=0.001)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alpha = 0.5\n", + "\n", + "reg = Ridge(alpha=alpha)\n", + "reg.fit(data[\"train\"][\"X\"], data[\"train\"][\"y\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Validate Model on Validation Set" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mse: 3298.9096058070622\n" + ] + } + ], + "source": [ + "preds = reg.predict(data[\"test\"][\"X\"])\n", + "print(\"mse: \", mean_squared_error(preds, y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Save Model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['sklearn_regression_model.pkl']" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_name = \"sklearn_regression_model.pkl\"\n", + "\n", + "joblib.dump(value=reg, filename=model_name)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (storedna)", + "language": "python", + "name": "storedna" + }, + "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.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 6cacc3c7f49036f3b72d507417fc572285ec752e Mon Sep 17 00:00:00 2001 From: jotaylo Date: Wed, 22 Jan 2020 16:52:40 -0800 Subject: [PATCH 011/109] fix sources_directory_train variable name (#146) --- ml_service/util/create_scoring_image.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index c985e933..dadaf12b 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -26,7 +26,7 @@ args = parser.parse_args() model = Model(ws, name=e.model_name, version=e.model_version) -sources_dir = e.sources_dir +sources_dir = e.sources_directory_train if (sources_dir is None): sources_dir = 'code' path_to_scoring = os.path.join(".", sources_dir, "scoring") From 65c07936f763bfb1e6fab9805c51af36447c5e22 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Fri, 24 Jan 2020 19:21:58 -0800 Subject: [PATCH 012/109] Change folder structure to support several training pipelines and models (#147) * change folder structure * rename variables file * fix linting * documentation fix * return model name due to a bug in scoring * make PR build working --- .env.example | 2 +- .pipelines/azdo-pr-build-train.yml | 2 +- ...=> diabetes_regression-ci-build-train.yml} | 12 ++++---- ...e.yml => diabetes_regression-ci-image.yml} | 6 ++-- ....yml => diabetes_regression-variables.yml} | 8 ++--- .../evaluate/evaluate_model.py | 2 +- .../register/register_model.py | 0 .../scoring/conda_dependencies.yml | 0 .../scoring/deployment_config_aci.yml | 0 .../scoring/deployment_config_aks.yml | 0 .../scoring/inference_config.yml | 0 .../scoring/score.py | 0 .../scoring/scoreA.py | 0 .../scoring/scoreB.py | 0 .../training/R/r_train.r | 0 .../training/R/train_with_r.py | 0 .../training/R/train_with_r_on_databricks.py | 0 .../training/R/weight_data.csv | 0 .../training/train.py | 0 .../util/model_helper.py | 0 docs/code_description.md | 30 +++++++++---------- docs/getting_started.md | 10 +++---- ...abetes_regression_build_train_pipeline.py} | 0 ...regression_build_train_pipeline_with_r.py} | 2 +- ...build_train_pipeline_with_r_on_dbricks.py} | 2 +- ml_service/pipelines/verify_train_pipeline.py | 2 +- ml_service/util/create_scoring_image.py | 2 +- tests/unit/code_test.py | 3 +- 28 files changed, 41 insertions(+), 42 deletions(-) rename .pipelines/{azdo-ci-build-train.yml => diabetes_regression-ci-build-train.yml} (96%) rename .pipelines/{azdo-ci-image.yml => diabetes_regression-ci-image.yml} (81%) rename .pipelines/{azdo-variables.yml => diabetes_regression-variables.yml} (87%) rename {code => diabetes_regression}/evaluate/evaluate_model.py (99%) rename {code => diabetes_regression}/register/register_model.py (100%) rename {code => diabetes_regression}/scoring/conda_dependencies.yml (100%) rename {code => diabetes_regression}/scoring/deployment_config_aci.yml (100%) rename {code => diabetes_regression}/scoring/deployment_config_aks.yml (100%) rename {code => diabetes_regression}/scoring/inference_config.yml (100%) rename {code => diabetes_regression}/scoring/score.py (100%) rename {code => diabetes_regression}/scoring/scoreA.py (100%) rename {code => diabetes_regression}/scoring/scoreB.py (100%) rename {code => diabetes_regression}/training/R/r_train.r (100%) rename {code => diabetes_regression}/training/R/train_with_r.py (100%) rename {code => diabetes_regression}/training/R/train_with_r_on_databricks.py (100%) rename {code => diabetes_regression}/training/R/weight_data.csv (100%) rename {code => diabetes_regression}/training/train.py (100%) rename {code => diabetes_regression}/util/model_helper.py (100%) rename ml_service/pipelines/{build_train_pipeline.py => diabetes_regression_build_train_pipeline.py} (100%) rename ml_service/pipelines/{build_train_pipeline_with_r.py => diabetes_regression_build_train_pipeline_with_r.py} (97%) rename ml_service/pipelines/{build_train_pipeline_with_r_on_dbricks.py => diabetes_regression_build_train_pipeline_with_r_on_dbricks.py} (96%) diff --git a/.env.example b/.env.example index a3662d20..d85e4586 100644 --- a/.env.example +++ b/.env.example @@ -30,7 +30,7 @@ TRAINING_PIPELINE_NAME = 'Training Pipeline' MODEL_PATH = '' EVALUATE_SCRIPT_PATH = 'evaluate/evaluate_model.py' REGISTER_SCRIPT_PATH = 'register/register_model.py' -SOURCES_DIR_TRAIN = 'code' +SOURCES_DIR_TRAIN = 'diabetes_regression' DATASET_NAME = 'diabetes_ds' DATASTORE_NAME = 'datablobstore' DATAFILE_NAME = 'diabetes.csv' diff --git a/.pipelines/azdo-pr-build-train.yml b/.pipelines/azdo-pr-build-train.yml index 24231b2a..76337ab5 100644 --- a/.pipelines/azdo-pr-build-train.yml +++ b/.pipelines/azdo-pr-build-train.yml @@ -11,7 +11,7 @@ container: mcr.microsoft.com/mlops/python:latest variables: -- template: azdo-variables.yml +- template: diabetes_regression-variables.yml - group: devopsforai-aml-vg diff --git a/.pipelines/azdo-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml similarity index 96% rename from .pipelines/azdo-ci-build-train.yml rename to .pipelines/diabetes_regression-ci-build-train.yml index e6a7ea18..b8889b87 100644 --- a/.pipelines/azdo-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -4,14 +4,14 @@ trigger: include: - master paths: - exclude: - - docs/ - - environment_setup/ - - ml_service/util/create_scoring_image.* - - ml_service/util/smoke_test_scoring_service.py + include: + - diabetes_regression/ + - ml_service/pipelines/diabetes_regression_build_train_pipeline.py + - ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py + - ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py variables: -- template: azdo-variables.yml +- template: diabetes_regression-variables.yml - group: devopsforai-aml-vg diff --git a/.pipelines/azdo-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml similarity index 81% rename from .pipelines/azdo-ci-image.yml rename to .pipelines/diabetes_regression-ci-image.yml index b5375ad5..04c02253 100644 --- a/.pipelines/azdo-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -7,10 +7,10 @@ trigger: include: - ml_service/util/create_scoring_image.py - ml_service/util/Dockerfile - - code/scoring/ + - diabetes_regression/scoring/ exclude: - - code/scoring/deployment_config_aci.yml - - code/scoring/deployment_config_aks.yml + - diabetes_regression/scoring/deployment_config_aci.yml + - diabetes_regression/scoring/deployment_config_aks.yml pool: vmImage: 'ubuntu-latest' diff --git a/.pipelines/azdo-variables.yml b/.pipelines/diabetes_regression-variables.yml similarity index 87% rename from .pipelines/azdo-variables.yml rename to .pipelines/diabetes_regression-variables.yml index 0691e673..0186de32 100644 --- a/.pipelines/azdo-variables.yml +++ b/.pipelines/diabetes_regression-variables.yml @@ -15,7 +15,7 @@ variables: value: lowpriority # Training Config - name: BUILD_TRAIN_SCRIPT - value: build_train_pipeline.py + value: diabetes_regression_build_train_pipeline.py - name: TRAIN_SCRIPT_PATH value: training/train.py - name: MODEL_NAME @@ -24,7 +24,7 @@ variables: value: '1' # AML Pipeline Config - name: TRAINING_PIPELINE_NAME - value: 'Training-Pipeline' + value: 'diabetes-Training-Pipeline' - name: MODEL_PATH value: '' - name: EVALUATE_SCRIPT_PATH @@ -32,9 +32,9 @@ variables: - name: REGISTER_SCRIPT_PATH value: register/register_model.py - name: SOURCES_DIR_TRAIN - value: code + value: diabetes_regression - name: IMAGE_NAME - value: 'mltrained' + value: 'diabetestrained' # Optional. Used by a training pipeline with R on Databricks - name: DB_CLUSTER_ID value: '' diff --git a/code/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py similarity index 99% rename from code/evaluate/evaluate_model.py rename to diabetes_regression/evaluate/evaluate_model.py index 640442a1..2218137f 100644 --- a/code/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -36,7 +36,7 @@ load_dotenv() sources_dir = os.environ.get("SOURCES_DIR_TRAIN") if (sources_dir is None): - sources_dir = 'code' + sources_dir = 'diabetes_regression' path_to_util = os.path.join(".", sources_dir, "util") sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 from model_helper import get_model_by_tag diff --git a/code/register/register_model.py b/diabetes_regression/register/register_model.py similarity index 100% rename from code/register/register_model.py rename to diabetes_regression/register/register_model.py diff --git a/code/scoring/conda_dependencies.yml b/diabetes_regression/scoring/conda_dependencies.yml similarity index 100% rename from code/scoring/conda_dependencies.yml rename to diabetes_regression/scoring/conda_dependencies.yml diff --git a/code/scoring/deployment_config_aci.yml b/diabetes_regression/scoring/deployment_config_aci.yml similarity index 100% rename from code/scoring/deployment_config_aci.yml rename to diabetes_regression/scoring/deployment_config_aci.yml diff --git a/code/scoring/deployment_config_aks.yml b/diabetes_regression/scoring/deployment_config_aks.yml similarity index 100% rename from code/scoring/deployment_config_aks.yml rename to diabetes_regression/scoring/deployment_config_aks.yml diff --git a/code/scoring/inference_config.yml b/diabetes_regression/scoring/inference_config.yml similarity index 100% rename from code/scoring/inference_config.yml rename to diabetes_regression/scoring/inference_config.yml diff --git a/code/scoring/score.py b/diabetes_regression/scoring/score.py similarity index 100% rename from code/scoring/score.py rename to diabetes_regression/scoring/score.py diff --git a/code/scoring/scoreA.py b/diabetes_regression/scoring/scoreA.py similarity index 100% rename from code/scoring/scoreA.py rename to diabetes_regression/scoring/scoreA.py diff --git a/code/scoring/scoreB.py b/diabetes_regression/scoring/scoreB.py similarity index 100% rename from code/scoring/scoreB.py rename to diabetes_regression/scoring/scoreB.py diff --git a/code/training/R/r_train.r b/diabetes_regression/training/R/r_train.r similarity index 100% rename from code/training/R/r_train.r rename to diabetes_regression/training/R/r_train.r diff --git a/code/training/R/train_with_r.py b/diabetes_regression/training/R/train_with_r.py similarity index 100% rename from code/training/R/train_with_r.py rename to diabetes_regression/training/R/train_with_r.py diff --git a/code/training/R/train_with_r_on_databricks.py b/diabetes_regression/training/R/train_with_r_on_databricks.py similarity index 100% rename from code/training/R/train_with_r_on_databricks.py rename to diabetes_regression/training/R/train_with_r_on_databricks.py diff --git a/code/training/R/weight_data.csv b/diabetes_regression/training/R/weight_data.csv similarity index 100% rename from code/training/R/weight_data.csv rename to diabetes_regression/training/R/weight_data.csv diff --git a/code/training/train.py b/diabetes_regression/training/train.py similarity index 100% rename from code/training/train.py rename to diabetes_regression/training/train.py diff --git a/code/util/model_helper.py b/diabetes_regression/util/model_helper.py similarity index 100% rename from code/util/model_helper.py rename to diabetes_regression/util/model_helper.py diff --git a/docs/code_description.md b/docs/code_description.md index 472e781b..5a1af307 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -15,31 +15,29 @@ ### Pipelines - `.pipelines/azdo-base-pipeline.yml` : a pipeline template used by ci-build-train pipeline and pr-build-train pipelines. It contains steps performing linting, data and unit testing. -- `.pipelines/azdo-ci-build-train.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. +- `.pipelines/diabetes_regression-ci-build-train.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. - `.pipelines/azdo-pr-build-train.yml` : a pipeline triggered when a **pull request** to the **master** branch is created. It performs linting, data integrity testing and unit testing only. ### ML Services -- `ml_service/pipelines/build_train_pipeline.py` : builds and publishes an ML training pipeline. It uses Python on ML Compute. -- `ml_service/pipelines/build_train_pipeline_with_r.py` : builds and publishes an ML training pipeline. It uses R on ML Compute. -- `ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py` : builds and publishes an ML training pipeline. It uses R on Databricks Compute. +- `ml_service/pipelines/diabetes_regression_build_train_pipeline.py` : builds and publishes an ML training pipeline. It uses Python on ML Compute. +- `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py` : builds and publishes an ML training pipeline. It uses R on ML Compute. +- `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` : builds and publishes an ML training pipeline. It uses R on Databricks Compute. - `ml_service/pipelines/run_train_pipeline.py` : invokes a published ML training pipeline (Python on ML Compute) via REST API. - `ml_service/pipelines/verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. - `ml_service/util` : contains common utility functions used to build and publish an ML training pipeline. ### Code -- `code/training/train.py` : a training step of an ML training pipeline. -- `code/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. -- `code/evaluate/register_model.py` : (LEGACY) registers a new trained model if evaluation shows the new model is more performant than the previous one. -- `code/training/R/r_train.r` : training a model with R basing on a sample dataset (weight_data.csv). -- `code/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute -- `code/training/R/train_with_r_on_databricks.py` : a python wrapper (ML Pipeline Step) invoking R training script on Databricks Compute -- `code/training/R/weight_data.csv` : a sample dataset used by R script (r_train.r) to train a model +- `diabetes_regression/training/train.py` : a training step of an ML training pipeline. +- `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. +- `diabetes_regression/evaluate/register_model.py` : (LEGACY) registers a new trained model if evaluation shows the new model is more performant than the previous one. +- `diabetes_regression/training/R/r_train.r` : training a model with R basing on a sample dataset (weight_data.csv). +- `diabetes_regression/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute +- `diabetes_regression/training/R/train_with_r_on_databricks.py` : a python wrapper (ML Pipeline Step) invoking R training script on Databricks Compute +- `diabetes_regression/training/R/weight_data.csv` : a sample dataset used by R script (r_train.r) to train a model ### Scoring -- code/scoring/score.py : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. -- code/scoring/conda_dependencies.yml : contains a list of dependencies required by score.py to be installed in a deployable Docker Image -- code/scoring/inference_config.yml, deployment_config_aci.yml, deployment_config_aks.yml : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. - - +- `diabetes_regression/scoring/score.py` : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. +- `diabetes_regression/scoring/conda_dependencies.yml` : contains a list of dependencies required by score.py to be installed in a deployable Docker Image +- `diabetes_regression/scoring/inference_config.yml`, deployment_config_aci.yml, deployment_config_aks.yml : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. diff --git a/docs/getting_started.md b/docs/getting_started.md index a46d5304..3d372ab3 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -87,7 +87,7 @@ Please be aware that the local environment also needs access to the Azure subscr ### Azure DevOps configuration -For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/azdo-variables.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. +For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/diabetes_regression-variables.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. Up until now you should have: @@ -131,7 +131,7 @@ Install the **Azure Machine Learning** extension to your organization from the [marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), so that you can set up a service connection to your AML workspace. -Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group below. +Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group above. **Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. You must also have sufficient permissions to register an application with @@ -154,7 +154,7 @@ environments, or alternatively to Azure App Service. ### Set up the Pipeline In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [azdo-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) +pipeline referring to the [diabetes_regression-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) pipeline definition in your forked repository: ![configure ci build pipeline](./images/ci-build-pipeline-configure.png) @@ -174,7 +174,7 @@ Great, you now have the build pipeline set up which automatically triggers every **Note:** The build pipeline also supports building and publishing ML pipelines using R to train a model. This is enabled -by changing the `build-train-script` pipeline variable to either `build_train_pipeline_with_r.py`, or `build_train_pipeline_with_r_on_dbricks.py`. For pipeline training a model with R on Databricks you'll need +by changing the `build-train-script` pipeline variable to either `diabetes_regression_build_train_pipeline_with_r.py`, or `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py`. For pipeline training a model with R on Databricks you'll need to manually create a Databricks cluster and attach it to the ML Workspace as a compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be specified). @@ -189,7 +189,7 @@ Wait until the pipeline finishes and verify that there is a new model in the **M ![trained model](./images/trained-model.png) -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\azdo-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. ### Deploy the Model to Azure Kubernetes Service diff --git a/ml_service/pipelines/build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py similarity index 100% rename from ml_service/pipelines/build_train_pipeline.py rename to ml_service/pipelines/diabetes_regression_build_train_pipeline.py diff --git a/ml_service/pipelines/build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py similarity index 97% rename from ml_service/pipelines/build_train_pipeline_with_r.py rename to ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index eea6d4c6..509224e7 100644 --- a/ml_service/pipelines/build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -43,7 +43,7 @@ def main(): name="Train Model", script_name="train_with_r.py", compute_target=aml_compute, - source_directory="code/training/R", + source_directory="diabetes_regression/training/R", runconfig=run_config, allow_reuse=False, ) diff --git a/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py similarity index 96% rename from ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py rename to ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py index 7d1891c7..7e435659 100644 --- a/ml_service/pipelines/build_train_pipeline_with_r_on_dbricks.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py @@ -32,7 +32,7 @@ def main(): name="DBPythonInLocalMachine", num_workers=1, python_script_name="train_with_r_on_databricks.py", - source_directory="code/training/R", + source_directory="diabetes_regression/training/R", run_name='DB_Python_R_demo', existing_cluster_id=e.db_cluster_id, compute_target=aml_compute, diff --git a/ml_service/pipelines/verify_train_pipeline.py b/ml_service/pipelines/verify_train_pipeline.py index e141b8ff..2824accb 100644 --- a/ml_service/pipelines/verify_train_pipeline.py +++ b/ml_service/pipelines/verify_train_pipeline.py @@ -15,7 +15,7 @@ def main(): load_dotenv() sources_dir = os.environ.get("SOURCES_DIR_TRAIN") if (sources_dir is None): - sources_dir = 'code' + sources_dir = 'diabetes_regression' path_to_util = os.path.join(".", sources_dir, "util") sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 from model_helper import get_model_by_tag diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index dadaf12b..4b3887fe 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -28,7 +28,7 @@ model = Model(ws, name=e.model_name, version=e.model_version) sources_dir = e.sources_directory_train if (sources_dir is None): - sources_dir = 'code' + sources_dir = 'diabetes_regression' path_to_scoring = os.path.join(".", sources_dir, "scoring") cwd = os.getcwd() os.chdir(path_to_scoring) diff --git a/tests/unit/code_test.py b/tests/unit/code_test.py index 06654b2f..c7b10182 100644 --- a/tests/unit/code_test.py +++ b/tests/unit/code_test.py @@ -3,7 +3,8 @@ import numpy as np from azureml.core.run import Run from unittest.mock import Mock -sys.path.append(os.path.abspath("./code/training")) # NOQA: E402 +sys.path.append(os.path.abspath( + "./diabetes_regression/training")) # NOQA: E402 from train import train_model From 45afe293ac5b30b7a76e002aea582360371e6dee Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Tue, 28 Jan 2020 01:01:31 +0100 Subject: [PATCH 013/109] Discover scoring model + Add Swagger endpoint to scoring container (#149) --- .../scoring/conda_dependencies.yml | 2 +- diabetes_regression/scoring/score.py | 38 +++++++++++++++---- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/diabetes_regression/scoring/conda_dependencies.yml b/diabetes_regression/scoring/conda_dependencies.yml index 9c5505e2..c97a2722 100644 --- a/diabetes_regression/scoring/conda_dependencies.yml +++ b/diabetes_regression/scoring/conda_dependencies.yml @@ -34,4 +34,4 @@ dependencies: - joblib==0.14.0 - gunicorn==19.9.0 - flask==1.1.1 - + - inference-schema[numpy-support] diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index b78a435c..10227fcc 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -23,24 +23,46 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -import json import numpy -from azureml.core.model import Model import joblib +import os +from inference_schema.schema_decorators \ + import input_schema, output_schema +from inference_schema.parameter_types.numpy_parameter_type \ + import NumpyParameterType def init(): + # load the model from file into a global object global model - # load the model from file into a global object - model_path = Model.get_model_path( - model_name="sklearn_regression_model.pkl") + # AZUREML_MODEL_DIR is an environment variable created during service + # deployment. It contains the path to the folder containing the model. + path = os.environ['AZUREML_MODEL_DIR'] + model_path = None + for root, dirs, files in os.walk(path): + for file in files: + if '.pkl' in file: + model_path = os.path.join(path, file) + if model_path is None: + raise ValueError(".pkl model not found") model = joblib.load(model_path) -def run(raw_data, request_headers): - data = json.loads(raw_data)["data"] - data = numpy.array(data) +input_sample = numpy.array([ + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], + [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]) +output_sample = numpy.array([ + 5021.509689995557, + 3693.645386402646]) + + +# Inference_schema generates a schema for your web service +# It then creates an OpenAPI (Swagger) specification for the web service +# at http:///swagger.json +@input_schema('data', NumpyParameterType(input_sample)) +@output_schema(NumpyParameterType(output_sample)) +def run(data, request_headers): result = model.predict(data) # Demonstrate how we can log custom data into the Application Insights From b3d598e60b57df74786230324b11b484e376523d Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Tue, 28 Jan 2020 17:06:46 -0800 Subject: [PATCH 014/109] added toggle for evaluation step (#152) # These are the default values set in ml_service\util\env_variables.py. Uncomment and override if desired. RUN_EVALUATION=true ALLOW_RUN_CANCEL=true --- .env.example | 8 +- .pipelines/diabetes_regression-variables.yml | 89 ++++++++++--------- README.md | 2 +- .../evaluate/evaluate_model.py | 16 +++- ...iabetes_regression_build_train_pipeline.py | 15 +++- ml_service/util/env_variables.py | 11 +++ 6 files changed, 89 insertions(+), 52 deletions(-) diff --git a/.env.example b/.env.example index d85e4586..af11a5a3 100644 --- a/.env.example +++ b/.env.example @@ -39,4 +39,10 @@ DATAFILE_NAME = 'diabetes.csv' DB_CLUSTER_ID = '' # Optional. Container Image name for image creation -IMAGE_NAME = 'mltrained' \ No newline at end of file +IMAGE_NAME = 'mltrained' + +# Run Evaluation Step in AML pipeline +RUN_EVALUATION = 'true' + +# Set to true cancels the Azure ML pipeline run when evaluation criteria are not met. +ALLOW_RUN_CANCEL = 'true' diff --git a/.pipelines/diabetes_regression-variables.yml b/.pipelines/diabetes_regression-variables.yml index 0186de32..5d7bc7ef 100644 --- a/.pipelines/diabetes_regression-variables.yml +++ b/.pipelines/diabetes_regression-variables.yml @@ -1,44 +1,49 @@ variables: # Azure ML Workspace Variables -- name: EXPERIMENT_NAME - value: mlopspython - # AML Compute Cluster Config -- name: AML_COMPUTE_CLUSTER_CPU_SKU - value: STANDARD_DS2_V2 -- name: AML_COMPUTE_CLUSTER_NAME - value: train-cluster -- name: AML_CLUSTER_MIN_NODES - value: 0 -- name: AML_CLUSTER_MAX_NODES - value: 4 -- name: AML_CLUSTER_PRIORITY - value: lowpriority - # Training Config -- name: BUILD_TRAIN_SCRIPT - value: diabetes_regression_build_train_pipeline.py -- name: TRAIN_SCRIPT_PATH - value: training/train.py -- name: MODEL_NAME - value: sklearn_regression_model.pkl -- name: MODEL_VERSION - value: '1' - # AML Pipeline Config -- name: TRAINING_PIPELINE_NAME - value: 'diabetes-Training-Pipeline' -- name: MODEL_PATH - value: '' -- name: EVALUATE_SCRIPT_PATH - value: evaluate/evaluate_model.py -- name: REGISTER_SCRIPT_PATH - value: register/register_model.py -- name: SOURCES_DIR_TRAIN - value: diabetes_regression -- name: IMAGE_NAME - value: 'diabetestrained' - # Optional. Used by a training pipeline with R on Databricks -- name: DB_CLUSTER_ID - value: '' -- name: SCORE_SCRIPT - value: score.py -- name: DATASET_NAME - value: diabetes_ds + - name: EXPERIMENT_NAME + value: mlopspython + # AML Compute Cluster Config + - name: AML_COMPUTE_CLUSTER_CPU_SKU + value: STANDARD_DS2_V2 + - name: AML_COMPUTE_CLUSTER_NAME + value: train-cluster + - name: AML_CLUSTER_MIN_NODES + value: 0 + - name: AML_CLUSTER_MAX_NODES + value: 4 + - name: AML_CLUSTER_PRIORITY + value: lowpriority + # Training Config + - name: BUILD_TRAIN_SCRIPT + value: diabetes_regression_build_train_pipeline.py + - name: TRAIN_SCRIPT_PATH + value: training/train.py + - name: MODEL_NAME + value: sklearn_regression_model.pkl + - name: MODEL_VERSION + value: "1" + # AML Pipeline Config + - name: TRAINING_PIPELINE_NAME + value: "diabetes-Training-Pipeline" + - name: MODEL_PATH + value: "" + - name: EVALUATE_SCRIPT_PATH + value: evaluate/evaluate_model.py + - name: REGISTER_SCRIPT_PATH + value: register/register_model.py + - name: SOURCES_DIR_TRAIN + value: diabetes_regression + - name: IMAGE_NAME + value: "diabetestrained" + # Optional. Used by a training pipeline with R on Databricks + - name: DB_CLUSTER_ID + value: "" + - name: SCORE_SCRIPT + value: score.py + - name: DATASET_NAME + value: diabetes_ds + # These are the default values set in ml_service\util\env_variables.py. Uncomment and override if desired. + # - name: RUN_EVALUATION + # value: "true" + # - name: ALLOW_RUN_CANCEL + # value: "true" diff --git a/README.md b/README.md index e622ba75..c0416cff 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ description: "Code which demonstrates how to set up and operationalize an MLOps # MLOps with Azure ML -[![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython-CI?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=127&branchName=master) +[![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=151&branchName=master) MLOps will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index 2218137f..cbac5bb9 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -83,6 +83,12 @@ help="Name of the Model", default="sklearn_regression_model.pkl", ) +parser.add_argument( + "--allow_run_cancel", + type=str, + help="Set this to false to avoid evaluation step from cancelling run after an unsuccessful evaluation", # NOQA: E501 + default="true", +) args = parser.parse_args() if (args.build_id is not None): @@ -98,8 +104,8 @@ if (builduri_base is not None): build_uri = builduri_base + build_id run.tag("BuildUri", value=build_uri) - -# Paramaterize the matrices on which the models should be compared +allow_run_cancel = args.allow_run_cancel +# Parameterize the matrices on which the models should be compared # Add golden data set on which all the model performance can be evaluated try: firstRegistration = False @@ -124,7 +130,8 @@ if (production_model_mse is None or new_model_mse is None): print("Unable to find", metric_eval, "metrics, " "exiting evaluation") - run.parent.cancel() + if((allow_run_cancel).lower() == 'true'): + run.parent.cancel() else: print( "Current Production model mse: {}, " @@ -139,7 +146,8 @@ else: print("New trained model metric is less than or equal to " "production model so skipping model registration.") - run.parent.cancel() + if((allow_run_cancel).lower() == 'true'): + run.parent.cancel() else: print("This is the first model, " "thus it should be registered") diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index 0b86eb50..0e963d96 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -89,6 +89,7 @@ def main(): arguments=[ "--build_id", build_id_param, "--model_name", model_name_param, + "--allow_run_cancel", e.allow_run_cancel, ], runconfig=run_config, allow_reuse=False, @@ -108,10 +109,16 @@ def main(): allow_reuse=False, ) print("Step Register created") - - evaluate_step.run_after(train_step) - register_step.run_after(evaluate_step) - steps = [train_step, evaluate_step, register_step] + # Check run_evaluation flag to include or exclude evaluation step. + if ((e.run_evaluation).lower() == 'true'): + print("Include evaluation step before register step.") + evaluate_step.run_after(train_step) + register_step.run_after(evaluate_step) + steps = [train_step, evaluate_step, register_step] + else: + print("Exclude evaluation step and directly run register step.") + register_step.run_after(train_step) + steps = [train_step, register_step] train_pipeline = Pipeline(workspace=aml_workspace, steps=steps) train_pipeline._set_experiment_name diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index ed3be221..c3f30e72 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -44,6 +44,9 @@ def __init__(self): self._datastore_name = os.environ.get("DATASTORE_NAME") self._datafile_name = os.environ.get("DATAFILE_NAME") self._dataset_name = os.environ.get("DATASET_NAME") + self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") + self._allow_run_cancel = os.environ.get( + "ALLOW_RUN_CANCEL", "true") @property def workspace_name(self): @@ -160,3 +163,11 @@ def datafile_name(self): @property def dataset_name(self): return self._dataset_name + + @property + def run_evaluation(self): + return self._run_evaluation + + @property + def allow_run_cancel(self): + return self._allow_run_cancel From ecad47f4753c8a51d52df64eb90feb77cf24d9fc Mon Sep 17 00:00:00 2001 From: jotaylo Date: Wed, 29 Jan 2020 11:16:43 -0800 Subject: [PATCH 015/109] always run the evaluation step (#154) Set the ci-build-train pipeline to always run the evaluation step (even if the pipeline is cancelled). This will cause the Azure Pipeline to log the reason for cancellation rather than just "silently failing". --- .pipelines/diabetes_regression-ci-build-train.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index b8889b87..45ecc244 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -88,6 +88,7 @@ stages: PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)", "hyperparameter_alpha": "$(ALPHA)"}' - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" + condition: always() displayName: "Determine if evaluation succeeded and new model is registered" pool: vmImage: 'ubuntu-latest' From 06c4ac7f562795bf7d8f457e6eea7624fa70e71a Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Thu, 30 Jan 2020 12:39:37 -0800 Subject: [PATCH 016/109] Typo (#161) --- docs/canary_ab_deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md index b114a308..7d132ad9 100644 --- a/docs/canary_ab_deployment.md +++ b/docs/canary_ab_deployment.md @@ -1,4 +1,4 @@ -## Model deployment to AKS cluster with Canary deployemnt +## Model deployment to AKS cluster with Canary deployment [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython-Canary?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=133&branchName=master) From ff95f0d5eb185ee0e41280c20bdaa396742d3934 Mon Sep 17 00:00:00 2001 From: Bryan J Smith Date: Thu, 30 Jan 2020 14:39:07 -0800 Subject: [PATCH 017/109] Adding nonessential code for MLOpsPython BYOC Azure doc (#163) --- .../Diabetes Ridge Regression Training.ipynb | 218 +++++++++++++++++- 1 file changed, 216 insertions(+), 2 deletions(-) diff --git a/experimentation/Diabetes Ridge Regression Training.ipynb b/experimentation/Diabetes Ridge Regression Training.ipynb index 7ae84e38..5e507f96 100644 --- a/experimentation/Diabetes Ridge Regression Training.ipynb +++ b/experimentation/Diabetes Ridge Regression Training.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -36,13 +36,227 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "X, y = load_diabetes(return_X_y=True)" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442, 10)\n" + ] + } + ], + "source": [ + "print(X.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442,)\n" + ] + } + ], + "source": [ + "print(y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789
count4.420000e+024.420000e+024.420000e+024.420000e+024.420000e+024.420000e+024.420000e+024.420000e+024.420000e+024.420000e+02
mean-3.639623e-161.309912e-16-8.013951e-161.289818e-16-9.042540e-171.301121e-16-4.563971e-163.863174e-16-3.848103e-16-3.398488e-16
std4.761905e-024.761905e-024.761905e-024.761905e-024.761905e-024.761905e-024.761905e-024.761905e-024.761905e-024.761905e-02
min-1.072256e-01-4.464164e-02-9.027530e-02-1.123996e-01-1.267807e-01-1.156131e-01-1.023071e-01-7.639450e-02-1.260974e-01-1.377672e-01
25%-3.729927e-02-4.464164e-02-3.422907e-02-3.665645e-02-3.424784e-02-3.035840e-02-3.511716e-02-3.949338e-02-3.324879e-02-3.317903e-02
50%5.383060e-03-4.464164e-02-7.283766e-03-5.670611e-03-4.320866e-03-3.819065e-03-6.584468e-03-2.592262e-03-1.947634e-03-1.077698e-03
75%3.807591e-025.068012e-023.124802e-023.564384e-022.835801e-022.984439e-022.931150e-023.430886e-023.243323e-022.791705e-02
max1.107267e-015.068012e-021.705552e-011.320442e-011.539137e-011.987880e-011.811791e-011.852344e-011.335990e-011.356118e-01
\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 \\\n", + "count 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 \n", + "mean -3.639623e-16 1.309912e-16 -8.013951e-16 1.289818e-16 -9.042540e-17 \n", + "std 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 \n", + "min -1.072256e-01 -4.464164e-02 -9.027530e-02 -1.123996e-01 -1.267807e-01 \n", + "25% -3.729927e-02 -4.464164e-02 -3.422907e-02 -3.665645e-02 -3.424784e-02 \n", + "50% 5.383060e-03 -4.464164e-02 -7.283766e-03 -5.670611e-03 -4.320866e-03 \n", + "75% 3.807591e-02 5.068012e-02 3.124802e-02 3.564384e-02 2.835801e-02 \n", + "max 1.107267e-01 5.068012e-02 1.705552e-01 1.320442e-01 1.539137e-01 \n", + "\n", + " 5 6 7 8 9 \n", + "count 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 \n", + "mean 1.301121e-16 -4.563971e-16 3.863174e-16 -3.848103e-16 -3.398488e-16 \n", + "std 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 \n", + "min -1.156131e-01 -1.023071e-01 -7.639450e-02 -1.260974e-01 -1.377672e-01 \n", + "25% -3.035840e-02 -3.511716e-02 -3.949338e-02 -3.324879e-02 -3.317903e-02 \n", + "50% -3.819065e-03 -6.584468e-03 -2.592262e-03 -1.947634e-03 -1.077698e-03 \n", + "75% 2.984439e-02 2.931150e-02 3.430886e-02 3.243323e-02 2.791705e-02 \n", + "max 1.987880e-01 1.811791e-01 1.852344e-01 1.335990e-01 1.356118e-01 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "features = pd.DataFrame(X)\n", + "features.describe()" + ] + }, { "cell_type": "markdown", "metadata": {}, From a24870ae1b60a39904f032537e73ff3910098923 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Thu, 30 Jan 2020 15:02:03 -0800 Subject: [PATCH 018/109] .amlignore example of usage (#155) --- diabetes_regression/.amlignore | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 diabetes_regression/.amlignore diff --git a/diabetes_regression/.amlignore b/diabetes_regression/.amlignore new file mode 100644 index 00000000..e8705e07 --- /dev/null +++ b/diabetes_regression/.amlignore @@ -0,0 +1,10 @@ +# To prevent unnecessary files from being included in +# the snapshot, make an ignore file (.gitignore or .amlignore). +# Place this file in the Snapshot directory and add the +# filenames to ignore in it. The .amlignore file uses +# the same syntax and patterns as the .gitignore file. +# If both files exist, the .amlignore file takes precedence. + +# We use yml files to configure deployment, +# but we are not deploying them to compute +*.yml From 57ef170fca17cfffc95294a4518992c8e64342b6 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Thu, 30 Jan 2020 15:05:33 -0800 Subject: [PATCH 019/109] Remove sys.path from everywhere to enable IntelliSense (#162) --- .pipelines/azdo-abtest-pipeline.yml | 2 +- .pipelines/azdo-base-pipeline.yml | 2 +- .../diabetes_regression-ci-build-train.yml | 22 +++--- .pipelines/diabetes_regression-ci-image.yml | 3 +- ...regression-template-get-model-version.yml} | 2 +- .../evaluate/evaluate_model.py | 79 ++++++++++--------- diabetes_regression/util/__init__.py | 0 docs/code_description.md | 2 +- ml_service/pipelines/__init__.py | 0 ...iabetes_regression_build_train_pipeline.py | 7 +- ..._regression_build_train_pipeline_with_r.py | 7 +- ..._build_train_pipeline_with_r_on_dbricks.py | 7 +- ...betes_regression_verify_train_pipeline.py} | 16 ++-- ml_service/pipelines/run_train_pipeline.py | 5 +- ml_service/util/__init__.py | 0 ml_service/util/attach_compute.py | 2 +- ml_service/util/create_scoring_image.py | 4 +- ml_service/util/smoke_test_scoring_service.py | 5 +- tests/unit/__init__.py | 0 tests/unit/code_test.py | 6 +- 20 files changed, 77 insertions(+), 94 deletions(-) rename .pipelines/{azdo-template-get-model-version.yml => diabetes_regression-template-get-model-version.yml} (75%) create mode 100644 diabetes_regression/util/__init__.py create mode 100644 ml_service/pipelines/__init__.py rename ml_service/pipelines/{verify_train_pipeline.py => diabetes_regression_verify_train_pipeline.py} (81%) create mode 100644 ml_service/util/__init__.py create mode 100644 tests/unit/__init__.py diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/azdo-abtest-pipeline.yml index a74cf330..9d2415a6 100644 --- a/.pipelines/azdo-abtest-pipeline.yml +++ b/.pipelines/azdo-abtest-pipeline.yml @@ -40,7 +40,7 @@ stages: inlineScript: | set -e export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python ml_service/util/create_scoring_image.py --output_image_location_file image_location.txt + python -m ml_service.util.create_scoring_image --output_image_location_file image_location.txt displayName: 'Create Scoring Image' name: 'buildscoringimage' diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/azdo-base-pipeline.yml index 926b404f..c45a7d23 100644 --- a/.pipelines/azdo-base-pipeline.yml +++ b/.pipelines/azdo-base-pipeline.yml @@ -10,7 +10,7 @@ steps: enabled: 'true' - script: | - pytest --junitxml=$(Build.BinariesDirectory)/unit-testresults.xml $(Build.SourcesDirectory)/tests/unit + python -m pytest --junitxml=$(Build.BinariesDirectory)/unit-testresults.xml $(Build.SourcesDirectory)/tests/unit displayName: 'Run unit tests' enabled: 'true' env: diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index 45ecc244..bcc1249c 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -31,11 +31,12 @@ stages: inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) # Invoke the Python building and publishing a training pipeline - python $(Build.SourcesDirectory)/ml_service/pipelines/${{ variables.BUILD_TRAIN_SCRIPT }} + python -m ml_service.pipelines.diabetes_regression_build_train_pipeline displayName: 'Publish Azure Machine Learning Pipeline' - stage: 'Trigger_AML_Pipeline' @@ -53,10 +54,11 @@ stages: inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python $(Build.SourcesDirectory)/ml_service/pipelines/run_train_pipeline.py --output_pipeline_id_file "pipeline_id.txt" --skip_train_execution + python -m ml_service.pipelines.run_train_pipeline --output_pipeline_id_file "pipeline_id.txt" --skip_train_execution # Set AMLPIPELINEID variable for next AML Pipeline task in next job AMLPIPELINEID="$(cat pipeline_id.txt)" echo "##vso[task.setvariable variable=AMLPIPELINEID;isOutput=true]$AMLPIPELINEID" @@ -95,7 +97,7 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - template: azdo-template-get-model-version.yml + - template: diabetes_regression-template-get-model-version.yml - stage: 'Deploy_ACI' displayName: 'Deploy to ACI' dependsOn: Trigger_AML_Pipeline @@ -108,7 +110,7 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - template: azdo-template-get-model-version.yml + - template: diabetes_regression-template-get-model-version.yml - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 displayName: 'Azure ML Model Deploy' inputs: @@ -129,7 +131,7 @@ stages: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python ml_service/util/smoke_test_scoring_service.py --type ACI --service "$(ACI_DEPLOYMENT_NAME)" + python -m ml_service.util.smoke_test_scoring_service --type ACI --service "$(ACI_DEPLOYMENT_NAME)" - stage: 'Deploy_AKS' displayName: 'Deploy to AKS' @@ -143,7 +145,7 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - template: azdo-template-get-model-version.yml + - template: diabetes_regression-template-get-model-version.yml - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 displayName: 'Azure ML Model Deploy' inputs: @@ -165,7 +167,7 @@ stages: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python ml_service/util/smoke_test_scoring_service.py --type AKS --service "$(AKS_DEPLOYMENT_NAME)" + python -m ml_service.util.smoke_test_scoring_service --type AKS --service "$(AKS_DEPLOYMENT_NAME)" - stage: 'Deploy_Webapp' displayName: 'Deploy to Webapp' @@ -179,7 +181,7 @@ stages: container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: - - template: azdo-template-get-model-version.yml + - template: diabetes_regression-template-get-model-version.yml - task: AzureCLI@1 displayName: 'Create scoring image and set IMAGE_LOCATION variable' inputs: @@ -188,7 +190,7 @@ stages: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python ml_service/util/create_scoring_image.py --output_image_location_file image_location.txt + python -m ml_service.util.create_scoring_image --output_image_location_file image_location.txt # Output image location to Azure DevOps job IMAGE_LOCATION="$(cat image_location.txt)" echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" @@ -207,4 +209,4 @@ stages: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python ml_service/util/smoke_test_scoring_service.py --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score" + python -m ml_service.util.smoke_test_scoring_service --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score" diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index 04c02253..0da7875e 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -28,9 +28,10 @@ steps: inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) inlineScript: | set -e export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python3 $(Build.SourcesDirectory)/ml_service/util/create_scoring_image.py + python3 -m ml_service.util.create_scoring_image displayName: 'Create Scoring Image' diff --git a/.pipelines/azdo-template-get-model-version.yml b/.pipelines/diabetes_regression-template-get-model-version.yml similarity index 75% rename from .pipelines/azdo-template-get-model-version.yml rename to .pipelines/diabetes_regression-template-get-model-version.yml index f69f3366..8fc29b2c 100644 --- a/.pipelines/azdo-template-get-model-version.yml +++ b/.pipelines/diabetes_regression-template-get-model-version.yml @@ -6,7 +6,7 @@ steps: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python $(Build.SourcesDirectory)/ml_service/pipelines/verify_train_pipeline.py --build_id $(Build.BuildId) --output_model_version_file "model_version.txt" + python -m ml_service.pipelines.diabetes_regression_verify_train_pipeline --build_id $(Build.BuildId) --output_model_version_file "model_version.txt" # Output model version to Azure DevOps job MODEL_VERSION="$(cat model_version.txt)" echo "##vso[task.setvariable variable=MODEL_VERSION]$MODEL_VERSION" diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index cbac5bb9..ed234b7a 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -24,47 +24,54 @@ POSSIBILITY OF SUCH DAMAGE. """ import os -import sys -from azureml.core import Run, Workspace, Experiment +from azureml.core import Run import argparse import traceback +from util.model_helper import get_model_by_tag run = Run.get_context() -if (run.id.startswith('OfflineRun')): - from dotenv import load_dotenv - # For local development, set values in this section - load_dotenv() - sources_dir = os.environ.get("SOURCES_DIR_TRAIN") - if (sources_dir is None): - sources_dir = 'diabetes_regression' - path_to_util = os.path.join(".", sources_dir, "util") - sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 - from model_helper import get_model_by_tag - workspace_name = os.environ.get("WORKSPACE_NAME") - experiment_name = os.environ.get("EXPERIMENT_NAME") - resource_group = os.environ.get("RESOURCE_GROUP") - subscription_id = os.environ.get("SUBSCRIPTION_ID") - tenant_id = os.environ.get("TENANT_ID") - model_name = os.environ.get("MODEL_NAME") - app_id = os.environ.get('SP_APP_ID') - app_secret = os.environ.get('SP_APP_SECRET') - build_id = os.environ.get('BUILD_BUILDID') - # run_id useful to query previous runs - run_id = "57fee47f-5ae8-441c-bc0c-d4c371f32d70" - aml_workspace = Workspace.get( - name=workspace_name, - subscription_id=subscription_id, - resource_group=resource_group - ) - ws = aml_workspace - exp = Experiment(ws, experiment_name) -else: - sys.path.append(os.path.abspath("./util")) # NOQA: E402 - from model_helper import get_model_by_tag - exp = run.experiment - ws = run.experiment.workspace - run_id = 'amlcompute' +# if you would like to run this script on a local computer +# the following code is a good starting point for you +# use +# python -m evaluate.evaluate_model +# in diabetes_regression folder context + +# if (run.id.startswith('OfflineRun')): +# from dotenv import load_dotenv +# # For local development, set values in this section +# load_dotenv() +# sources_dir = os.environ.get("SOURCES_DIR_TRAIN") +# if (sources_dir is None): +# sources_dir = 'diabetes_regression' +# path_to_util = os.path.join(".", sources_dir, "util") +# sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 +# from model_helper import get_model_by_tag +# workspace_name = os.environ.get("WORKSPACE_NAME") +# experiment_name = os.environ.get("EXPERIMENT_NAME") +# resource_group = os.environ.get("RESOURCE_GROUP") +# subscription_id = os.environ.get("SUBSCRIPTION_ID") +# tenant_id = os.environ.get("TENANT_ID") +# model_name = os.environ.get("MODEL_NAME") +# app_id = os.environ.get('SP_APP_ID') +# app_secret = os.environ.get('SP_APP_SECRET') +# build_id = os.environ.get('BUILD_BUILDID') +# # run_id useful to query previous runs +# run_id = "57fee47f-5ae8-441c-bc0c-d4c371f32d70" + +# aml_workspace = Workspace.get( +# name=workspace_name, +# subscription_id=subscription_id, +# resource_group=resource_group +# ) +# ws = aml_workspace +# exp = Experiment(ws, experiment_name) + +# comment the following three lines +# if you would like to use Offline mode +exp = run.experiment +ws = run.experiment.workspace +run_id = 'amlcompute' parser = argparse.ArgumentParser("evaluate") parser.add_argument( diff --git a/diabetes_regression/util/__init__.py b/diabetes_regression/util/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/docs/code_description.md b/docs/code_description.md index 5a1af307..5f323ad6 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -24,7 +24,7 @@ - `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py` : builds and publishes an ML training pipeline. It uses R on ML Compute. - `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` : builds and publishes an ML training pipeline. It uses R on Databricks Compute. - `ml_service/pipelines/run_train_pipeline.py` : invokes a published ML training pipeline (Python on ML Compute) via REST API. -- `ml_service/pipelines/verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. +- `ml_service/pipelines/diabetes_regression_verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. - `ml_service/util` : contains common utility functions used to build and publish an ML training pipeline. ### Code diff --git a/ml_service/pipelines/__init__.py b/ml_service/pipelines/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index 0e963d96..66913420 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -4,11 +4,8 @@ from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration, CondaDependencies from azureml.core import Dataset, Datastore -import os -import sys -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from attach_compute import get_compute -from env_variables import Env +from ml_service.util.attach_compute import get_compute +from ml_service.util.env_variables import Env def main(): diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index 509224e7..cb47cdf5 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -2,11 +2,8 @@ from azureml.pipeline.core import Pipeline from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration, CondaDependencies -import os -import sys -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from attach_compute import get_compute -from env_variables import Env +from ml_service.util.attach_compute import get_compute +from ml_service.util.env_variables import Env def main(): diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py index 7e435659..ae607b3b 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py @@ -1,11 +1,8 @@ from azureml.pipeline.core import Pipeline from azureml.core import Workspace -import os -import sys -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from attach_compute import get_compute +from ml_service.util.attach_compute import get_compute from azureml.pipeline.steps import DatabricksStep -from env_variables import Env +from ml_service.util.env_variables import Env def main(): diff --git a/ml_service/pipelines/verify_train_pipeline.py b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py similarity index 81% rename from ml_service/pipelines/verify_train_pipeline.py rename to ml_service/pipelines/diabetes_regression_verify_train_pipeline.py index 2824accb..f0a4c965 100644 --- a/ml_service/pipelines/verify_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py @@ -1,24 +1,21 @@ -import os -import sys import argparse +import sys +import os from azureml.core import Run, Experiment, Workspace -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from env_variables import Env +from ml_service.util.env_variables import Env +from diabetes_regression.util.model_helper import get_model_by_tag def main(): run = Run.get_context() + if (run.id.startswith('OfflineRun')): from dotenv import load_dotenv - # For local development, set values in this section load_dotenv() sources_dir = os.environ.get("SOURCES_DIR_TRAIN") if (sources_dir is None): sources_dir = 'diabetes_regression' - path_to_util = os.path.join(".", sources_dir, "util") - sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 - from model_helper import get_model_by_tag workspace_name = os.environ.get("WORKSPACE_NAME") experiment_name = os.environ.get("EXPERIMENT_NAME") resource_group = os.environ.get("RESOURCE_GROUP") @@ -32,9 +29,6 @@ def main(): ws = aml_workspace exp = Experiment(ws, experiment_name) else: - sys.path.append(os.path.abspath("./util")) # NOQA: E402 - from model_helper import get_model_by_tag - ws = run.experiment.workspace exp = run.experiment e = Env() diff --git a/ml_service/pipelines/run_train_pipeline.py b/ml_service/pipelines/run_train_pipeline.py index 50bf6e65..f5dba4fd 100644 --- a/ml_service/pipelines/run_train_pipeline.py +++ b/ml_service/pipelines/run_train_pipeline.py @@ -1,10 +1,7 @@ from azureml.pipeline.core import PublishedPipeline from azureml.core import Workspace -import os -import sys import argparse -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from env_variables import Env +from ml_service.util.env_variables import Env def main(): diff --git a/ml_service/util/__init__.py b/ml_service/util/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ml_service/util/attach_compute.py b/ml_service/util/attach_compute.py index cc88be95..bcff58da 100644 --- a/ml_service/util/attach_compute.py +++ b/ml_service/util/attach_compute.py @@ -2,7 +2,7 @@ from azureml.core.compute import AmlCompute from azureml.core.compute import ComputeTarget from azureml.exceptions import ComputeTargetException -from env_variables import Env +from ml_service.util.env_variables import Env def get_compute( diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index 4b3887fe..daa3878e 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -1,11 +1,9 @@ import os -import sys import argparse from azureml.core import Workspace from azureml.core.image import ContainerImage, Image from azureml.core.model import Model -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from env_variables import Env +from ml_service.util.env_variables import Env e = Env() diff --git a/ml_service/util/smoke_test_scoring_service.py b/ml_service/util/smoke_test_scoring_service.py index 753ef23e..58d075aa 100644 --- a/ml_service/util/smoke_test_scoring_service.py +++ b/ml_service/util/smoke_test_scoring_service.py @@ -1,12 +1,9 @@ -import os -import sys import argparse import requests import time from azureml.core import Workspace from azureml.core.webservice import AksWebservice, AciWebservice -sys.path.append(os.path.abspath("./ml_service/util")) # NOQA: E402 -from env_variables import Env +from ml_service.util.env_variables import Env import secrets diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/code_test.py b/tests/unit/code_test.py index c7b10182..6b6d60ac 100644 --- a/tests/unit/code_test.py +++ b/tests/unit/code_test.py @@ -1,11 +1,7 @@ -import sys -import os import numpy as np from azureml.core.run import Run from unittest.mock import Mock -sys.path.append(os.path.abspath( - "./diabetes_regression/training")) # NOQA: E402 -from train import train_model +from diabetes_regression.training.train import train_model def test_train_model(): From e0e6d220c079c7ff4d15b9ddb55c8c615cad7b00 Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Fri, 31 Jan 2020 18:07:49 +0100 Subject: [PATCH 020/109] Tox + code coverage (#150) --- .gitignore | 2 + .pipelines/azdo-base-pipeline.yml | 31 ++++++------- .pipelines/azdo-pr-build-train.yml | 4 +- .../diabetes_regression-ci-build-train.yml | 14 +----- README.md | 2 +- diabetes_regression/scoring/score.py | 2 +- .../training/R/train_with_r_on_databricks.py | 4 +- docs/development_setup.md | 44 +++++++++++++++++++ docs/getting_started.md | 5 +-- environment_setup/install_requirements.sh | 2 - environment_setup/requirements.txt | 4 +- lint-and-test.sh | 4 ++ ml_service/util/smoke_test_scoring_service.py | 2 +- tests/unit/code_test.py | 4 +- tests/unit/data_test.py | 8 ++-- tox.ini | 7 +++ 16 files changed, 88 insertions(+), 51 deletions(-) create mode 100644 docs/development_setup.md create mode 100755 lint-and-test.sh create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index 7bac8768..e0a583ec 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,8 @@ coverage.xml *.cover .hypothesis/ .pytest_cache/ +*-testresults.xml +test-output.xml # Translations *.mo diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/azdo-base-pipeline.yml index c45a7d23..ad0e4ad8 100644 --- a/.pipelines/azdo-base-pipeline.yml +++ b/.pipelines/azdo-base-pipeline.yml @@ -1,26 +1,21 @@ -# this pipeline should be ignored for now -parameters: - pipelineType: 'training' - steps: - script: | - flake8 --output-file=$(Build.BinariesDirectory)/lint-testresults.xml --format junit-xml - workingDirectory: '$(Build.SourcesDirectory)' - displayName: 'Run code quality tests' - enabled: 'true' - -- script: | - python -m pytest --junitxml=$(Build.BinariesDirectory)/unit-testresults.xml $(Build.SourcesDirectory)/tests/unit - displayName: 'Run unit tests' - enabled: 'true' - env: - SP_APP_SECRET: '$(SP_APP_SECRET)' + ./lint-and-test.sh + displayName: 'Linting & unit tests' - task: PublishTestResults@2 condition: succeededOrFailed() inputs: - testResultsFiles: '$(Build.BinariesDirectory)/*-testresults.xml' + testResultsFiles: '*-testresults.xml' testRunTitle: 'Linting & Unit tests' failTaskOnFailedTests: true - displayName: 'Publish linting and unit test results' - enabled: 'true' + displayName: 'Publish test results' + +- task: PublishCodeCoverageResults@1 + displayName: 'Publish coverage report' + condition: succeededOrFailed() + inputs: + codeCoverageTool: Cobertura + summaryFileLocation: 'coverage.xml' + reportDirectory: 'htmlcov' + failIfCoverageEmpty: true diff --git a/.pipelines/azdo-pr-build-train.yml b/.pipelines/azdo-pr-build-train.yml index 76337ab5..a9d3ce74 100644 --- a/.pipelines/azdo-pr-build-train.yml +++ b/.pipelines/azdo-pr-build-train.yml @@ -4,16 +4,14 @@ pr: include: - master -pool: +pool: vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest - variables: - template: diabetes_regression-variables.yml - group: devopsforai-aml-vg - steps: - template: azdo-base-pipeline.yml \ No newline at end of file diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index bcc1249c..b89eb30c 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -14,6 +14,8 @@ variables: - template: diabetes_regression-variables.yml - group: devopsforai-aml-vg +pool: + vmImage: ubuntu-latest stages: - stage: 'Model_CI' @@ -21,8 +23,6 @@ stages: jobs: - job: "Model_CI_Pipeline" displayName: "Model CI Pipeline" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: @@ -45,8 +45,6 @@ stages: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) displayName: "Get Pipeline ID for execution" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: @@ -92,8 +90,6 @@ stages: dependsOn: "Run_ML_Pipeline" condition: always() displayName: "Determine if evaluation succeeded and new model is registered" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: @@ -105,8 +101,6 @@ stages: jobs: - job: "Deploy_ACI" displayName: "Deploy to ACI" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: @@ -140,8 +134,6 @@ stages: jobs: - job: "Deploy_AKS" displayName: "Deploy to AKS" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: @@ -176,8 +168,6 @@ stages: jobs: - job: "Deploy_Webapp" displayName: "Deploy to Webapp" - pool: - vmImage: 'ubuntu-latest' container: mcr.microsoft.com/mlops/python:latest timeoutInMinutes: 0 steps: diff --git a/README.md b/README.md index c0416cff..ca441c71 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ This reference architecture shows how to implement continuous integration (CI), Once you have registered your ML model, you can use Azure ML + Azure DevOps to deploy it. -[Azure DevOps release pipeline](https://docs.microsoft.com/en-us/azure/devops/pipelines/release/?view=azure-devops) packages the new model along with the scoring file and its python dependencies into a [docker image](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#image) and pushes it to [Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro). This image is used to deploy the model as [web service](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#web-service) across QA and Prod environments. The QA environment is running on top of [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/) and the Prod environment is built with [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes). +The [Azure DevOps multi-stage pipeline](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/stages?view=azure-devops&tabs=yaml) packages the new model along with the scoring file and its python dependencies into a [docker image](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#image) and pushes it to [Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro). This image is used to deploy the model as [web service](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#web-service) across QA and Prod environments. The QA environment is running on top of [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/) and the Prod environment is built with [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes). ### Repo Details diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 10227fcc..4427af05 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -79,7 +79,7 @@ def run(data, request_headers): request_headers.get("X-Ms-Request-Id", ""), request_headers.get("Traceparent", ""), len(result) - )) + )) return {"result": result.tolist()} diff --git a/diabetes_regression/training/R/train_with_r_on_databricks.py b/diabetes_regression/training/R/train_with_r_on_databricks.py index 1a120bd0..c571d609 100644 --- a/diabetes_regression/training/R/train_with_r_on_databricks.py +++ b/diabetes_regression/training/R/train_with_r_on_databricks.py @@ -11,5 +11,5 @@ args, unknown = parser.parse_known_args() folder = args.AZUREML_SCRIPT_DIRECTORY_NAME -os.system("cd " + "/dbfs/" + folder + - " && Rscript r_train.r && ls -ltr model.rds") +os.system("cd " + "/dbfs/" + folder + + " && Rscript r_train.r && ls -ltr model.rds") diff --git a/docs/development_setup.md b/docs/development_setup.md new file mode 100644 index 00000000..8565ff04 --- /dev/null +++ b/docs/development_setup.md @@ -0,0 +1,44 @@ +## Development environment setup + +### Setup + +Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. + +In order to configure the project locally, create a copy of `.env.example` in the root directory and name it `.env`. Fill out all missing values and adjust the existing ones to suit your requirements. + +### Installation + +[Install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). The Azure CLI will be used to log you in interactively. + +Create a virtual environment using [venv](https://docs.python.org/3/library/venv.html), [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv). + +Here is an example for setting up and activating a `venv` environment with Python 3: + +``` +python3 -mvenv .venv +source .venv/bin/activate +``` + +Install the required Python modules in your virtual environment. + +``` +pip install -r environment_setup/requirements.txt +``` + +### Running local code + +To run your local ML pipeline code on Azure ML, run a command such as the following (in bash, all on one line): + +``` +export BUILD_BUILDID=$(uuidgen); python ml_service/pipelines/build_train_pipeline.py && python ml_service/pipelines/run_train_pipeline.py +``` + +BUILD_BUILDID is a variable used to uniquely identify the ML pipeline between the +`build_train_pipeline.py` and `run_train_pipeline.py` scripts. In Azure DevOps it is +set to the current build number. In a local environment, we can use a command such as +`uuidgen` so set a different random identifier on each run, ensuring there are +no collisions. + +### Local testing + +Before committing, run `tox` to execute linter and unit test checks. diff --git a/docs/getting_started.md b/docs/getting_started.md index 3d372ab3..bbd20506 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -80,10 +80,7 @@ There are more variables used in the project. They're defined in two places, one ### Local configuration -In order to configure the project locally, create a copy of `.env.example` in the root directory and name it `.env`. Fill out all missing values and adjust the existing ones to suit your requirements. - -For local development, you will also need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). The Azure CLI will be used to log you in interactively. -Please be aware that the local environment also needs access to the Azure subscription so you have to have Contributor access on the Azure ML Workspace. +For instructions on how to set up a local development environment, refer to the [Development environment setup instructions](development_setup.md). ### Azure DevOps configuration diff --git a/environment_setup/install_requirements.sh b/environment_setup/install_requirements.sh index 1bdd081d..930514a6 100644 --- a/environment_setup/install_requirements.sh +++ b/environment_setup/install_requirements.sh @@ -26,6 +26,4 @@ python --version -pip install azure-cli==2.0.46 -pip install --upgrade azureml-sdk[cli] pip install -r requirements.txt \ No newline at end of file diff --git a/environment_setup/requirements.txt b/environment_setup/requirements.txt index f99e7f4b..babb1ddc 100644 --- a/environment_setup/requirements.txt +++ b/environment_setup/requirements.txt @@ -1,4 +1,5 @@ pytest>=5.3 +pytest-cov>=2.8.1 requests>=2.22 numpy>=1.17 pandas>=0.25 @@ -6,5 +7,6 @@ scikit-learn>=0.21.3 azureml-sdk>=1.0 python-dotenv>=0.10.3 flake8>=3.7 -flake8_formatter_junit_xml +flake8_formatter_junit_xml>=0.0.6 +tox>=3.14.3 azure-cli==2.0.76 diff --git a/lint-and-test.sh b/lint-and-test.sh new file mode 100755 index 00000000..77c646ba --- /dev/null +++ b/lint-and-test.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -eux +flake8 --output-file=lint-testresults.xml --format junit-xml +python -m pytest tests/unit --cov=diabetes_regression --cov-report=html --cov-report=xml --junitxml=unit-testresults.xml diff --git a/ml_service/util/smoke_test_scoring_service.py b/ml_service/util/smoke_test_scoring_service.py index 58d075aa..0fa34b1e 100644 --- a/ml_service/util/smoke_test_scoring_service.py +++ b/ml_service/util/smoke_test_scoring_service.py @@ -49,7 +49,7 @@ def call_web_app(url, headers): response.raise_for_status() return response.json() except requests.exceptions.HTTPError as e: - if i == retries-1: + if i == retries - 1: raise e print(e) print("Retrying...") diff --git a/tests/unit/code_test.py b/tests/unit/code_test.py index 6b6d60ac..e8457f95 100644 --- a/tests/unit/code_test.py +++ b/tests/unit/code_test.py @@ -5,9 +5,9 @@ def test_train_model(): - X_train = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) + X_train = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) y_train = np.array([10, 9, 8, 8, 6, 5]) - X_test = np.array([3, 4]).reshape(-1, 1) + X_test = np.array([3, 4]).reshape(-1, 1) y_test = np.array([8, 7]) data = {"train": {"X": X_train, "y": y_train}, "test": {"X": X_test, "y": y_test}} diff --git a/tests/unit/data_test.py b/tests/unit/data_test.py index 8b40b8bc..4148f029 100644 --- a/tests/unit/data_test.py +++ b/tests/unit/data_test.py @@ -120,8 +120,8 @@ def test_check_distribution(): mean = np.mean(dataset.values, axis=0) std = np.mean(dataset.values, axis=0) assert ( - np.sum(abs(mean - historical_mean) > - shift_tolerance * abs(historical_mean)) - or np.sum(abs(std - historical_std) > - shift_tolerance * abs(historical_std)) > 0 + np.sum(abs(mean - historical_mean) + > shift_tolerance * abs(historical_mean)) + or np.sum(abs(std - historical_std) + > shift_tolerance * abs(historical_std)) > 0 ) diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..e24d8ae1 --- /dev/null +++ b/tox.ini @@ -0,0 +1,7 @@ +[flake8] +# ignore obsolete warning +ignore = W503 +exclude = .git,__pycache__,.venv,.tox,**/site-packages/**/*.py,**/lib/**.py,**/bin/**.py + +[pytest] +junit_family = legacy From 0b4f23332e18e8f339c8814c877b9177f1b8dd18 Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Fri, 31 Jan 2020 18:22:02 +0100 Subject: [PATCH 021/109] Update diabetes_regression_build_train_pipeline_with_r.py (#167) Co-authored-by: Eugene Fedorenko --- .../diabetes_regression_build_train_pipeline_with_r.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index cb47cdf5..25537424 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -51,7 +51,7 @@ def main(): train_pipeline = Pipeline(workspace=aml_workspace, steps=steps) train_pipeline.validate() published_pipeline = train_pipeline.publish( - name=e.pipeline_name + "_with_R", + name=e.pipeline_name, description="Model training/retraining pipeline", version=e.build_id ) From 962778c82fd83363465ebc37ce05caf6e652597f Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Fri, 31 Jan 2020 23:15:22 +0100 Subject: [PATCH 022/109] Manage environments in conda YAML files (#158) * . * . * Update code_test.py * . * Update Dockerfile * Do not use conda-merge * Move all 3 conda files to a single dir * Do not use conda-merge * Pin package versions * PR review fixes * Update Dockerfile * PR review fixes * Update training_dependencies.yml * Update code_test.py --- .gitignore | 1 + diabetes_regression/ci_dependencies.yml | 28 +++++++++++++++++++ .../scoring/inference_config.yml | 4 +-- ...endencies.yml => scoring_dependencies.yml} | 25 ++++++++--------- diabetes_regression/training_dependencies.yml | 17 +++++++++++ docs/code_description.md | 11 +++++--- docs/getting_started.md | 9 +++++- environment_setup/Dockerfile | 17 +++++++---- environment_setup/install_requirements.sh | 6 ++-- environment_setup/requirements.txt | 12 -------- ...iabetes_regression_build_train_pipeline.py | 12 +++----- ..._regression_build_train_pipeline_with_r.py | 12 +++----- 12 files changed, 98 insertions(+), 56 deletions(-) create mode 100644 diabetes_regression/ci_dependencies.yml rename diabetes_regression/{scoring/conda_dependencies.yml => scoring_dependencies.yml} (71%) create mode 100644 diabetes_regression/training_dependencies.yml mode change 100644 => 100755 environment_setup/install_requirements.sh delete mode 100644 environment_setup/requirements.txt diff --git a/.gitignore b/.gitignore index e0a583ec..3ab04e2f 100644 --- a/.gitignore +++ b/.gitignore @@ -93,6 +93,7 @@ ENV/ env.bak/ venv.bak/ *.vscode +condaenv.* # Spyder project settings .spyderproject diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml new file mode 100644 index 00000000..a61731c4 --- /dev/null +++ b/diabetes_regression/ci_dependencies.yml @@ -0,0 +1,28 @@ +name: mlopspython_ci + +dependencies: + + # The python interpreter version. +- python=3.7.5 + +- r=3.6.0 +- r-essentials=3.6.0 +- numpy=1.18.1 +- pandas=1.0.0 +- scikit-learn=0.22.1 + +- pip=20.0.2 +- pip: + + # dependencies shared with other environment .yml files. + - azureml-sdk==1.0.79 + + # Additional pip dependencies for the CI environment. + - pytest==5.3.1 + - pytest-cov==2.8.1 + - requests==2.22.0 + - python-dotenv==0.10.3 + - flake8==3.7.9 + - flake8_formatter_junit_xml==0.0.6 + - azure-cli==2.0.77 + - tox==3.14.3 diff --git a/diabetes_regression/scoring/inference_config.yml b/diabetes_regression/scoring/inference_config.yml index 3f65cf33..42947da8 100644 --- a/diabetes_regression/scoring/inference_config.yml +++ b/diabetes_regression/scoring/inference_config.yml @@ -1,9 +1,9 @@ entryScript: score.py runtime: python -condaFile: conda_dependencies.yml +condaFile: ../scoring_dependencies.yml extraDockerfileSteps: schemaFile: sourceDirectory: enableGpu: False baseImage: -baseImageRegistry: \ No newline at end of file +baseImageRegistry: diff --git a/diabetes_regression/scoring/conda_dependencies.yml b/diabetes_regression/scoring_dependencies.yml similarity index 71% rename from diabetes_regression/scoring/conda_dependencies.yml rename to diabetes_regression/scoring_dependencies.yml index c97a2722..26ce3622 100644 --- a/diabetes_regression/scoring/conda_dependencies.yml +++ b/diabetes_regression/scoring_dependencies.yml @@ -14,24 +14,23 @@ # This directive is stored in a comment to preserve the Conda file structure. # [AzureMlVersion] = 2 -name: project_environment +name: diabetes_scoring + dependencies: + # The python interpreter version. - # Currently Azure ML Workbench only supports 3.5.2 and later. - python=3.7.5 + # Required by azureml-defaults, installed separately through Conda to # get a prebuilt version and not require build tools for the install. - psutil=5.6 #latest +- numpy=1.18.1 +- pandas=1.0.0 +- scikit-learn=0.22.1 + +- pip=20.0.2 - pip: - # Required packages for AzureML execution, history, and data preparation. - - azureml-model-management-sdk==1.0.1b6.post1 - - azureml-sdk==1.0.74 - - scipy==1.3.1 - - scikit-learn==0.22 - - pandas==0.25.3 - - numpy==1.17.3 - - joblib==0.14.0 - - gunicorn==19.9.0 - - flask==1.1.1 - - inference-schema[numpy-support] + # You must list azureml-defaults as a pip dependency + - azureml-defaults==1.0.85 + - inference-schema[numpy-support]==1.0.1 diff --git a/diabetes_regression/training_dependencies.yml b/diabetes_regression/training_dependencies.yml new file mode 100644 index 00000000..4d7a42a7 --- /dev/null +++ b/diabetes_regression/training_dependencies.yml @@ -0,0 +1,17 @@ +name: diabetes_training + +dependencies: + + # The python interpreter version. +- python=3.7.5 + +- numpy=1.18.1 +- pandas=1.0.0 +- scikit-learn=0.22.1 +#- r-essentials +#- tensorflow +#- keras + +- pip=20.0.2 +- pip: + - azureml-core==1.0.79 diff --git a/docs/code_description.md b/docs/code_description.md index 5f323ad6..d69a6f30 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -2,9 +2,7 @@ ### Environment Setup -- `environment_setup/requirements.txt` : It consists of a list of python packages which are needed by the train.py to run successfully on host agent (locally). - -- `environment_setup/install_requirements.sh` : This script prepares the python environment i.e. install the Azure ML SDK and the packages specified in requirements.txt +- `environment_setup/install_requirements.sh` : This script prepares a local conda environment i.e. install the Azure ML SDK and the packages specified in environment definitions. - `environment_setup/iac-*.yml, arm-templates` : Infrastructure as Code piplines to create and delete required resources along with corresponding arm-templates. @@ -27,6 +25,12 @@ - `ml_service/pipelines/diabetes_regression_verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. - `ml_service/util` : contains common utility functions used to build and publish an ML training pipeline. +### Environment Definitions + +- `diabetes_regression/training_dependencies.yml` : Conda environment definition for the training environment (Docker image in which train.py is run). +- `diabetes_regression/scoring_dependencies.yml` : Conda environment definition for the scoring environment (Docker image in which score.py is run). +- `diabetes_regression/ci_dependencies.yml` : Conda environment definition for the CI environment. + ### Code - `diabetes_regression/training/train.py` : a training step of an ML training pipeline. @@ -39,5 +43,4 @@ ### Scoring - `diabetes_regression/scoring/score.py` : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. -- `diabetes_regression/scoring/conda_dependencies.yml` : contains a list of dependencies required by score.py to be installed in a deployable Docker Image - `diabetes_regression/scoring/inference_config.yml`, deployment_config_aci.yml, deployment_config_aks.yml : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. diff --git a/docs/getting_started.md b/docs/getting_started.md index bbd20506..8b3167e4 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -171,7 +171,13 @@ Great, you now have the build pipeline set up which automatically triggers every **Note:** The build pipeline also supports building and publishing ML pipelines using R to train a model. This is enabled -by changing the `build-train-script` pipeline variable to either `diabetes_regression_build_train_pipeline_with_r.py`, or `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py`. For pipeline training a model with R on Databricks you'll need +by changing the `build-train-script` pipeline variable to either of: +* `diabetes_regression_build_train_pipeline_with_r.py` to train a model +with R on Azure ML Compute. You will also need to add the +`r-essentials` Conda packages into `diabetes_regression/scoring_dependencies.yml` +and `diabetes_regression/training_dependencies.yml`. +* `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` +to train a model with R on Databricks. You will need to manually create a Databricks cluster and attach it to the ML Workspace as a compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be specified). @@ -243,6 +249,7 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta * You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. * The sample pipeline generates a random value for a model hyperparameter (ridge regression [*alpha*](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html)) to generate 'interesting' charts when testing the sample. In a real application you should use fixed hyperparameter values. You can [tune hyperparameter values using Azure ML](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-tune-hyperparameters), and manage their values in Azure DevOps Variable Groups. * You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. +* You can install additional Conda or pip packages by modifying the YAML environment configurations under the `diabetes_regression` directory. Make sure to use fixed version numbers for all packages to ensure reproducibility, and use the same versions across environments. * You can explore aspects of model observability in the solution, such as: * **Logging**: navigate to the Application Insights instance linked to the Azure ML Portal, then to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs diff --git a/environment_setup/Dockerfile b/environment_setup/Dockerfile index 5e7b7581..4137967a 100644 --- a/environment_setup/Dockerfile +++ b/environment_setup/Dockerfile @@ -4,11 +4,16 @@ LABEL org.label-schema.vendor = "Microsoft" \ org.label-schema.url = "https://hub.docker.com/r/microsoft/mlopspython" \ org.label-schema.vcs-url = "https://github.com/microsoft/MLOpsPython" - +COPY diabetes_regression/ci_dependencies.yml /setup/ -COPY environment_setup/requirements.txt /setup/ - -RUN apt-get update && apt-get install gcc -y && pip install --upgrade -r /setup/requirements.txt && \ - conda install -c r r-essentials +RUN conda env create -f /setup/ci_dependencies.yml -CMD ["python"] \ No newline at end of file +# activate environment +ENV PATH /usr/local/envs/mlopspython_ci/bin:$PATH +RUN /bin/bash -c "source activate mlopspython_ci" + +# Verify conda installation. +# This serves as workaround for https://github.com/conda/conda/issues/8537 (conda env create doesn't fail +# if pip installation fails, for example due to a wrong package version). +# The `az` command is not available if pip has not run (and installed azure-cli). +RUN az --version diff --git a/environment_setup/install_requirements.sh b/environment_setup/install_requirements.sh old mode 100644 new mode 100755 index 930514a6..989e8b1e --- a/environment_setup/install_requirements.sh +++ b/environment_setup/install_requirements.sh @@ -24,6 +24,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +set -eux -python --version -pip install -r requirements.txt \ No newline at end of file +conda env create -f diabetes_regression/ci_dependencies.yml + +conda activate mlopspython_ci diff --git a/environment_setup/requirements.txt b/environment_setup/requirements.txt deleted file mode 100644 index babb1ddc..00000000 --- a/environment_setup/requirements.txt +++ /dev/null @@ -1,12 +0,0 @@ -pytest>=5.3 -pytest-cov>=2.8.1 -requests>=2.22 -numpy>=1.17 -pandas>=0.25 -scikit-learn>=0.21.3 -azureml-sdk>=1.0 -python-dotenv>=0.10.3 -flake8>=3.7 -flake8_formatter_junit_xml>=0.0.6 -tox>=3.14.3 -azure-cli==2.0.76 diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index 66913420..b127d9ee 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -28,14 +28,10 @@ def main(): print("aml_compute:") print(aml_compute) - run_config = RunConfiguration(conda_dependencies=CondaDependencies.create( - conda_packages=['numpy', 'pandas', - 'scikit-learn', 'tensorflow', 'keras'], - pip_packages=['azure', 'azureml-core', - 'azure-storage', - 'azure-storage-blob', - 'azureml-dataprep']) - ) + # Create a run configuration environment + conda_deps_file = "diabetes_regression/training_dependencies.yml" + conda_deps = CondaDependencies(conda_deps_file) + run_config = RunConfiguration(conda_dependencies=conda_deps) run_config.environment.docker.enabled = True config_envvar = {} if (e.collection_uri is not None and e.teamproject_name is not None): diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index 25537424..1c383d50 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -26,15 +26,11 @@ def main(): print("aml_compute:") print(aml_compute) - run_config = RunConfiguration(conda_dependencies=CondaDependencies.create( - conda_packages=['numpy', 'pandas', - 'scikit-learn', 'tensorflow', 'keras'], - pip_packages=['azure', 'azureml-core', - 'azure-storage', - 'azure-storage-blob']) - ) + # Create a run configuration environment + conda_deps_file = "diabetes_regression/training_dependencies.yml" + conda_deps = CondaDependencies(conda_deps_file) + run_config = RunConfiguration(conda_dependencies=conda_deps) run_config.environment.docker.enabled = True - run_config.environment.docker.base_image = "mcr.microsoft.com/mlops/python" train_step = PythonScriptStep( name="Train Model", From 8ae670191c9197139c44e3aede8f396177225e94 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Fri, 31 Jan 2020 15:38:33 -0800 Subject: [PATCH 023/109] No pkl extension requirement for model name (#164) --- diabetes_regression/scoring/score.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index 4427af05..e6c77aa8 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -26,6 +26,7 @@ import numpy import joblib import os +from azureml.core.model import Model from inference_schema.schema_decorators \ import input_schema, output_schema from inference_schema.parameter_types.numpy_parameter_type \ @@ -36,16 +37,13 @@ def init(): # load the model from file into a global object global model - # AZUREML_MODEL_DIR is an environment variable created during service - # deployment. It contains the path to the folder containing the model. - path = os.environ['AZUREML_MODEL_DIR'] - model_path = None - for root, dirs, files in os.walk(path): - for file in files: - if '.pkl' in file: - model_path = os.path.join(path, file) - if model_path is None: - raise ValueError(".pkl model not found") + # we assume that we have just one model + # AZUREML_MODEL_DIR is an environment variable created during deployment. + # It is the path to the model folder + # (./azureml-models/$MODEL_NAME/$VERSION) + model_path = Model.get_model_path( + os.getenv("AZUREML_MODEL_DIR").split('/')[-2]) + model = joblib.load(model_path) From 312dfdf416ea195ed98d46a4b0d320f026282ea9 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Fri, 31 Jan 2020 23:09:14 -0800 Subject: [PATCH 024/109] remove alpha from pipeline parameters (#169) --- .../diabetes_regression-ci-build-train.yml | 12 +---------- diabetes_regression/config.json | 14 +++++++++++++ diabetes_regression/training/train.py | 21 +++++++++++-------- docs/getting_started.md | 7 ++++--- ...iabetes_regression_build_train_pipeline.py | 3 --- 5 files changed, 31 insertions(+), 26 deletions(-) create mode 100644 diabetes_regression/config.json diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index b89eb30c..9d9ed3b1 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -62,22 +62,12 @@ stages: echo "##vso[task.setvariable variable=AMLPIPELINEID;isOutput=true]$AMLPIPELINEID" name: 'getpipelineid' displayName: 'Get Pipeline ID' - - bash: | - # Generate a hyperparameter value as a random number between 0 and 1. - # A random value is used here to make the Azure ML dashboards "interesting" when testing - # the solution sample. - alpha=$(printf "0.%03d\n" $((($RANDOM*1000)/32767))) - echo "Alpha: $alpha" - echo "##vso[task.setvariable variable=ALPHA;isOutput=true]$alpha" - name: 'getalpha' - displayName: 'Generate random value for hyperparameter alpha' - job: "Run_ML_Pipeline" dependsOn: "Get_Pipeline_ID" displayName: "Trigger ML Training Pipeline" pool: server variables: AMLPIPELINE_ID: $[ dependencies.Get_Pipeline_ID.outputs['getpipelineid.AMLPIPELINEID'] ] - ALPHA: $[ dependencies.Get_Pipeline_ID.outputs['getalpha.ALPHA'] ] steps: - task: ms-air-aiagility.vss-services-azureml.azureml-restApi-task.MLPublishedPipelineRestAPITask@0 displayName: 'Invoke ML pipeline' @@ -85,7 +75,7 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' PipelineId: '$(AMLPIPELINE_ID)' ExperimentName: '$(EXPERIMENT_NAME)' - PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)", "hyperparameter_alpha": "$(ALPHA)"}' + PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)"}' - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" condition: always() diff --git a/diabetes_regression/config.json b/diabetes_regression/config.json new file mode 100644 index 00000000..859fd84d --- /dev/null +++ b/diabetes_regression/config.json @@ -0,0 +1,14 @@ +{ + "training": + { + "alpha": 0.4 + }, + "evaluation": + { + + }, + "scoring": + { + + } +} diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index f56daa99..fcec4f65 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -32,6 +32,7 @@ from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split from sklearn.externals import joblib +import json def train_model(run, data, alpha): @@ -62,13 +63,6 @@ def main(): help="Name of the Model", default="sklearn_regression_model.pkl", ) - parser.add_argument( - "--alpha", - type=float, - default=0.5, - help=("Ridge regression regularization strength hyperparameter; " - "must be a positive float.") - ) parser.add_argument( "--dataset_name", @@ -79,14 +73,23 @@ def main(): print("Argument [build_id]: %s" % args.build_id) print("Argument [model_name]: %s" % args.model_name) - print("Argument [alpha]: %s" % args.alpha) print("Argument [dataset_name]: %s" % args.dataset_name) model_name = args.model_name build_id = args.build_id - alpha = args.alpha dataset_name = args.dataset_name + print("Getting training parameters") + + with open("config.json") as f: + pars = json.load(f) + try: + alpha = pars["training"]["alpha"] + except KeyError: + alpha = 0.5 + + print("Parameter alpha: %s" % alpha) + run = Run.get_context() ws = run.experiment.workspace diff --git a/docs/getting_started.md b/docs/getting_started.md index 8b3167e4..1d75bc05 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -86,6 +86,8 @@ For instructions on how to set up a local development environment, refer to the For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/diabetes_regression-variables.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. +**Note:** In `diabetes_regression` folder you can find `config.json` file that we would recommend to use in order to provide parameters for training, evaluation and scoring scripts. An example of a such parameter is a hyperparameter of a training algorithm: in our case it's the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any special serializers for this config file. So, it's up to you which template to support there. + Up until now you should have: * Forked (or cloned) the repo @@ -120,7 +122,7 @@ Check out the newly created resources in the [Azure Portal](portal.azure.com): (Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](portal.azure.com). **Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). -You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. +You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. ## Create an Azure DevOps Azure ML Workspace Service Connection @@ -187,7 +189,7 @@ specified). **Note:** If the model evaluation determines that the new model does not perform better than the previous one then the new model will not be registered and the pipeline will be cancelled. * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. - + Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: ![trained model](./images/trained-model.png) @@ -247,7 +249,6 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta * The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. * You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. -* The sample pipeline generates a random value for a model hyperparameter (ridge regression [*alpha*](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html)) to generate 'interesting' charts when testing the sample. In a real application you should use fixed hyperparameter values. You can [tune hyperparameter values using Azure ML](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-tune-hyperparameters), and manage their values in Azure DevOps Variable Groups. * You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. * You can install additional Conda or pip packages by modifying the YAML environment configurations under the `diabetes_regression` directory. Make sure to use fixed version numbers for all packages to ensure reproducibility, and use the same versions across environments. * You can explore aspects of model observability in the solution, such as: diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index b127d9ee..c828c55c 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -44,8 +44,6 @@ def main(): name="model_name", default_value=e.model_name) build_id_param = PipelineParameter( name="build_id", default_value=e.build_id) - hyperparameter_alpha_param = PipelineParameter( - name="hyperparameter_alpha", default_value=0.5) dataset_name = "" if (e.datastore_name is not None and e.datafile_name is not None): @@ -66,7 +64,6 @@ def main(): arguments=[ "--build_id", build_id_param, "--model_name", model_name_param, - "--alpha", hyperparameter_alpha_param, "--dataset_name", dataset_name, ], runconfig=run_config, From 424c317b6be258c47e5b9735c2f65935111898ce Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Tue, 4 Feb 2020 18:49:49 +0100 Subject: [PATCH 025/109] Update train.py (#174) --- diabetes_regression/training/train.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index fcec4f65..a79d5e24 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -31,7 +31,7 @@ from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split -from sklearn.externals import joblib +import joblib import json From 9e3b007cf8c63b71028b5335f5a46cb8b7a126ae Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Tue, 4 Feb 2020 19:21:43 +0100 Subject: [PATCH 026/109] Fail on R error (#173) --- diabetes_regression/training/R/train_with_r.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diabetes_regression/training/R/train_with_r.py b/diabetes_regression/training/R/train_with_r.py index e2c7d295..b8a0a2c3 100644 --- a/diabetes_regression/training/R/train_with_r.py +++ b/diabetes_regression/training/R/train_with_r.py @@ -1,3 +1,3 @@ -import os +import subprocess -os.system("Rscript r_train.r && ls -ltr model.rds") +subprocess.check_call(["bash", "-c", "Rscript r_train.r && ls -ltr model.rds"]) From 8174d987492a66806ab26ded49600fcd3f5e6c12 Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Tue, 4 Feb 2020 20:37:39 +0100 Subject: [PATCH 027/109] Manage AML environments from conda YAML files (#168) * PR review fixes * Update Dockerfile * . * Update deploy_web_service.py * Update deploy_web_service.py * PR review fixes * PR review fixes * PR review fixes * Update training_dependencies.yml * Linting fixes * Fixed merge * Update code_test.py * Simplified environment management, restored deploy task * Simplified environment management, restored deploy task * Fixed doc for new file path * Added comments Co-authored-by: Sushant Divate --- diabetes_regression/azureml_environment.json | 39 +++++++++++++++++++ diabetes_regression/ci_dependencies.yml | 9 +++-- diabetes_regression/conda_dependencies.yml | 33 ++++++++++++++++ .../scoring/deployment_config_aci.yml | 3 +- .../scoring/inference_config.yml | 2 +- diabetes_regression/scoring_dependencies.yml | 36 ----------------- diabetes_regression/training_dependencies.yml | 17 -------- docs/code_description.md | 4 +- docs/getting_started.md | 6 +-- ...iabetes_regression_build_train_pipeline.py | 20 +++++----- ..._regression_build_train_pipeline_with_r.py | 22 +++++++---- 11 files changed, 110 insertions(+), 81 deletions(-) create mode 100644 diabetes_regression/azureml_environment.json create mode 100644 diabetes_regression/conda_dependencies.yml delete mode 100644 diabetes_regression/scoring_dependencies.yml delete mode 100644 diabetes_regression/training_dependencies.yml diff --git a/diabetes_regression/azureml_environment.json b/diabetes_regression/azureml_environment.json new file mode 100644 index 00000000..8a81614e --- /dev/null +++ b/diabetes_regression/azureml_environment.json @@ -0,0 +1,39 @@ +{ + "name": "diabetes_regression_sklearn", + "version": null, + "environmentVariables": { + "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE" + }, + "python": { + "userManagedDependencies": false, + "interpreterPath": "python", + "condaDependenciesFile": null, + "baseCondaEnvironment": null + }, + "docker": { + "enabled": true, + "baseImage": "mcr.microsoft.com/azureml/base:intelmpi2018.3-ubuntu16.04", + "baseDockerfile": null, + "sharedVolumes": true, + "shmSize": "2g", + "arguments": [], + "baseImageRegistry": { + "address": null, + "username": null, + "password": null + } + }, + "spark": { + "repositories": [], + "packages": [], + "precachePackages": true + }, + "databricks": { + "mavenLibraries": [], + "pypiLibraries": [], + "rcranLibraries": [], + "jarLibraries": [], + "eggLibraries": [] + }, + "inferencingStackVersion": null +} diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index a61731c4..a5ee8db7 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -5,16 +5,19 @@ dependencies: # The python interpreter version. - python=3.7.5 -- r=3.6.0 -- r-essentials=3.6.0 + # dependencies with versions aligned with conda_dependencies.yml. - numpy=1.18.1 - pandas=1.0.0 - scikit-learn=0.22.1 + # dependencies for MLOps with R. +- r=3.6.0 +- r-essentials=3.6.0 + - pip=20.0.2 - pip: - # dependencies shared with other environment .yml files. + # dependencies with versions aligned with conda_dependencies.yml. - azureml-sdk==1.0.79 # Additional pip dependencies for the CI environment. diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml new file mode 100644 index 00000000..741f55c7 --- /dev/null +++ b/diabetes_regression/conda_dependencies.yml @@ -0,0 +1,33 @@ +# Details about the Conda environment file format: +# https://conda.io/docs/using/envs.html#create-environment-file-by-hand + +name: diabetes_regression_sklearn + +dependencies: + + # The python interpreter version. +- python=3.7.5 + + # Required by azureml-defaults, installed separately through Conda to + # get a prebuilt version and not require build tools for the install. +- psutil=5.6 #latest + +- numpy=1.18.1 +- pandas=1.0.0 +- scikit-learn=0.22.1 +#- r-essentials +#- tensorflow +#- keras + +- pip=20.0.2 +- pip: + + # Dependencies for training environment. + + - azureml-core==1.0.79 + + # Dependencies for scoring environment. + + # You must list azureml-defaults as a pip dependency + - azureml-defaults==1.0.79 + - inference-schema[numpy-support]==1.0.1 diff --git a/diabetes_regression/scoring/deployment_config_aci.yml b/diabetes_regression/scoring/deployment_config_aci.yml index 939483b5..d2e0ba12 100644 --- a/diabetes_regression/scoring/deployment_config_aci.yml +++ b/diabetes_regression/scoring/deployment_config_aci.yml @@ -1,5 +1,4 @@ ---- +computeType: ACI containerResourceRequirements: cpu: 1 memoryInGB: 4 -computeType: ACI \ No newline at end of file diff --git a/diabetes_regression/scoring/inference_config.yml b/diabetes_regression/scoring/inference_config.yml index 42947da8..52017bae 100644 --- a/diabetes_regression/scoring/inference_config.yml +++ b/diabetes_regression/scoring/inference_config.yml @@ -1,6 +1,6 @@ entryScript: score.py runtime: python -condaFile: ../scoring_dependencies.yml +condaFile: ../conda_dependencies.yml extraDockerfileSteps: schemaFile: sourceDirectory: diff --git a/diabetes_regression/scoring_dependencies.yml b/diabetes_regression/scoring_dependencies.yml deleted file mode 100644 index 26ce3622..00000000 --- a/diabetes_regression/scoring_dependencies.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Conda environment specification. The dependencies defined in this file will -# be automatically provisioned for managed runs. These include runs against -# the localdocker, remotedocker, and cluster compute targets. - -# Note that this file is NOT used to automatically manage dependencies for the -# local compute target. To provision these dependencies locally, run: -# conda env update --file conda_dependencies.yml - -# Details about the Conda environment file format: -# https://conda.io/docs/using/envs.html#create-environment-file-by-hand - -# For managing Spark packages and configuration, see spark_dependencies.yml. -# Version of this configuration file's structure and semantics in AzureML. -# This directive is stored in a comment to preserve the Conda file structure. -# [AzureMlVersion] = 2 - -name: diabetes_scoring - -dependencies: - - # The python interpreter version. -- python=3.7.5 - - # Required by azureml-defaults, installed separately through Conda to - # get a prebuilt version and not require build tools for the install. -- psutil=5.6 #latest - -- numpy=1.18.1 -- pandas=1.0.0 -- scikit-learn=0.22.1 - -- pip=20.0.2 -- pip: - # You must list azureml-defaults as a pip dependency - - azureml-defaults==1.0.85 - - inference-schema[numpy-support]==1.0.1 diff --git a/diabetes_regression/training_dependencies.yml b/diabetes_regression/training_dependencies.yml deleted file mode 100644 index 4d7a42a7..00000000 --- a/diabetes_regression/training_dependencies.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: diabetes_training - -dependencies: - - # The python interpreter version. -- python=3.7.5 - -- numpy=1.18.1 -- pandas=1.0.0 -- scikit-learn=0.22.1 -#- r-essentials -#- tensorflow -#- keras - -- pip=20.0.2 -- pip: - - azureml-core==1.0.79 diff --git a/docs/code_description.md b/docs/code_description.md index d69a6f30..d60df616 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -27,8 +27,8 @@ ### Environment Definitions -- `diabetes_regression/training_dependencies.yml` : Conda environment definition for the training environment (Docker image in which train.py is run). -- `diabetes_regression/scoring_dependencies.yml` : Conda environment definition for the scoring environment (Docker image in which score.py is run). +- `diabetes_regression/azureml_environment.json` : Azure ML environment definition for the training environment, including base Docker image and a reference to `conda_dependencies.yml` Conda environment file. +- `diabetes_regression/conda_dependencies.yml` : Conda environment definition for the environment used for both training and scoring (Docker image in which train.py and score.py are run). - `diabetes_regression/ci_dependencies.yml` : Conda environment definition for the CI environment. ### Code diff --git a/docs/getting_started.md b/docs/getting_started.md index 1d75bc05..805db267 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -175,9 +175,9 @@ Great, you now have the build pipeline set up which automatically triggers every pipelines using R to train a model. This is enabled by changing the `build-train-script` pipeline variable to either of: * `diabetes_regression_build_train_pipeline_with_r.py` to train a model -with R on Azure ML Compute. You will also need to add the -`r-essentials` Conda packages into `diabetes_regression/scoring_dependencies.yml` -and `diabetes_regression/training_dependencies.yml`. +with R on Azure ML Compute. You will also need to uncomment (i.e. include) the +`r-essentials` Conda packages in the environment definition +`diabetes_regression/conda_dependencies.yml`. * `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` to train a model with R on Databricks. You will need to manually create a Databricks cluster and attach it to the ML Workspace as a diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index c828c55c..b7d32f99 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -1,8 +1,8 @@ from azureml.pipeline.core.graph import PipelineParameter from azureml.pipeline.steps import PythonScriptStep from azureml.pipeline.core import Pipeline -from azureml.core import Workspace -from azureml.core.runconfig import RunConfiguration, CondaDependencies +from azureml.core import Workspace, Environment +from azureml.core.runconfig import RunConfiguration from azureml.core import Dataset, Datastore from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env @@ -28,17 +28,17 @@ def main(): print("aml_compute:") print(aml_compute) - # Create a run configuration environment - conda_deps_file = "diabetes_regression/training_dependencies.yml" - conda_deps = CondaDependencies(conda_deps_file) - run_config = RunConfiguration(conda_dependencies=conda_deps) - run_config.environment.docker.enabled = True - config_envvar = {} + # Create a reusable run configuration environment + # Read definition from diabetes_regression/azureml_environment.json + environment = Environment.load_from_directory(e.sources_directory_train) if (e.collection_uri is not None and e.teamproject_name is not None): builduri_base = e.collection_uri + e.teamproject_name builduri_base = builduri_base + "/_build/results?buildId=" - config_envvar["BUILDURI_BASE"] = builduri_base - run_config.environment.environment_variables = config_envvar + environment.environment_variables["BUILDURI_BASE"] = builduri_base + environment.register(aml_workspace) + + run_config = RunConfiguration() + run_config.environment = environment model_name_param = PipelineParameter( name="model_name", default_value=e.model_name) diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index 1c383d50..96ddf2cf 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -1,7 +1,7 @@ from azureml.pipeline.steps import PythonScriptStep from azureml.pipeline.core import Pipeline -from azureml.core import Workspace -from azureml.core.runconfig import RunConfiguration, CondaDependencies +from azureml.core import Workspace, Environment +from azureml.core.runconfig import RunConfiguration from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env @@ -26,11 +26,19 @@ def main(): print("aml_compute:") print(aml_compute) - # Create a run configuration environment - conda_deps_file = "diabetes_regression/training_dependencies.yml" - conda_deps = CondaDependencies(conda_deps_file) - run_config = RunConfiguration(conda_dependencies=conda_deps) - run_config.environment.docker.enabled = True + # Create a reusable run configuration environment + # Read definition from diabetes_regression/azureml_environment.json + # Make sure to include `r-essentials' + # in diabetes_regression/conda_dependencies.yml + environment = Environment.load_from_directory(e.sources_directory_train) + if (e.collection_uri is not None and e.teamproject_name is not None): + builduri_base = e.collection_uri + e.teamproject_name + builduri_base = builduri_base + "/_build/results?buildId=" + environment.environment_variables["BUILDURI_BASE"] = builduri_base + environment.register(aml_workspace) + + run_config = RunConfiguration() + run_config.environment = environment train_step = PythonScriptStep( name="Train Model", From 275ba5c213b9cccf533b4067acf75f534dfa4d8a Mon Sep 17 00:00:00 2001 From: timpoth <34710498+timpoth@users.noreply.github.com> Date: Tue, 4 Feb 2020 18:51:13 -0500 Subject: [PATCH 028/109] fixed link to point to create not remove yml file (#176) --- docs/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 805db267..cae68e5b 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -107,7 +107,7 @@ In your Azure DevOps project, create a build pipeline from your forked repositor ![build connnect step](./images/build-connect.png) -Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment.yml](../environment_setup/iac-remove-environment.yml): +Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment.yml](../environment_setup/iac-create-environment.yml): ![configure step](./images/select-iac-pipeline.png) From 08bc547121d195548bb68953b579a4aa16aebb55 Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Wed, 5 Feb 2020 16:29:47 -0800 Subject: [PATCH 029/109] Sudivate/fixdeployaci (#178) --- diabetes_regression/ci_dependencies.yml | 43 ++++++++++------------ diabetes_regression/conda_dependencies.yml | 34 ++++++++--------- environment_setup/Dockerfile | 17 ++++----- ml_service/util/create_scoring_image.py | 8 +++- tests/unit/code_test.py | 2 +- 5 files changed, 50 insertions(+), 54 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index a5ee8db7..c5463456 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -1,31 +1,28 @@ name: mlopspython_ci dependencies: - # The python interpreter version. -- python=3.7.5 + - python=3.7.5 # dependencies with versions aligned with conda_dependencies.yml. -- numpy=1.18.1 -- pandas=1.0.0 -- scikit-learn=0.22.1 - - # dependencies for MLOps with R. -- r=3.6.0 -- r-essentials=3.6.0 + - numpy=1.18.1 + - pandas=1.0.0 + - scikit-learn=0.22.1 + # dependencies for MLOps with R. + - r=3.6.0 + - r-essentials=3.6.0 -- pip=20.0.2 -- pip: - - # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.0.79 + - pip=20.0.2 + - pip: + # dependencies with versions aligned with conda_dependencies.yml. + - azureml-sdk==1.0.85 - # Additional pip dependencies for the CI environment. - - pytest==5.3.1 - - pytest-cov==2.8.1 - - requests==2.22.0 - - python-dotenv==0.10.3 - - flake8==3.7.9 - - flake8_formatter_junit_xml==0.0.6 - - azure-cli==2.0.77 - - tox==3.14.3 + # Additional pip dependencies for the CI environment. + - pytest==5.3.1 + - pytest-cov==2.8.1 + - requests==2.22.0 + - python-dotenv==0.10.3 + - flake8==3.7.9 + - flake8_formatter_junit_xml==0.0.6 + - azure-cli==2.0.81 + - tox==3.14.3 diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 741f55c7..7b4f5120 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -4,30 +4,28 @@ name: diabetes_regression_sklearn dependencies: - # The python interpreter version. -- python=3.7.5 + - python=3.7.5 # Required by azureml-defaults, installed separately through Conda to # get a prebuilt version and not require build tools for the install. -- psutil=5.6 #latest - -- numpy=1.18.1 -- pandas=1.0.0 -- scikit-learn=0.22.1 -#- r-essentials -#- tensorflow -#- keras + - psutil=5.6 #latest -- pip=20.0.2 -- pip: + - numpy=1.18.1 + - pandas=1.0.0 + - scikit-learn=0.22.1 + #- r-essentials + #- tensorflow + #- keras - # Dependencies for training environment. + - pip=20.0.2 + - pip: + # Dependencies for training environment. - - azureml-core==1.0.79 + - azureml-core==1.0.85 - # Dependencies for scoring environment. + # Dependencies for scoring environment. - # You must list azureml-defaults as a pip dependency - - azureml-defaults==1.0.79 - - inference-schema[numpy-support]==1.0.1 + # You must list azureml-defaults as a pip dependency + - azureml-defaults==1.0.85 + - inference-schema[numpy-support]==1.0.1 diff --git a/environment_setup/Dockerfile b/environment_setup/Dockerfile index 4137967a..c3ae104b 100644 --- a/environment_setup/Dockerfile +++ b/environment_setup/Dockerfile @@ -1,19 +1,16 @@ FROM conda/miniconda3 LABEL org.label-schema.vendor = "Microsoft" \ - org.label-schema.url = "https://hub.docker.com/r/microsoft/mlopspython" \ - org.label-schema.vcs-url = "https://github.com/microsoft/MLOpsPython" + org.label-schema.url = "https://hub.docker.com/r/microsoft/mlopspython" \ + org.label-schema.vcs-url = "https://github.com/microsoft/MLOpsPython" COPY diabetes_regression/ci_dependencies.yml /setup/ -RUN conda env create -f /setup/ci_dependencies.yml - # activate environment ENV PATH /usr/local/envs/mlopspython_ci/bin:$PATH -RUN /bin/bash -c "source activate mlopspython_ci" -# Verify conda installation. -# This serves as workaround for https://github.com/conda/conda/issues/8537 (conda env create doesn't fail -# if pip installation fails, for example due to a wrong package version). -# The `az` command is not available if pip has not run (and installed azure-cli). -RUN az --version +RUN conda update -n base -c defaults conda && \ + conda install python=3.7.5 && \ + conda env create -f /setup/ci_dependencies.yml && \ + /bin/bash -c "source activate mlopspython_ci" && \ + az --version diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index daa3878e..cc6fc2ee 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -3,6 +3,7 @@ from azureml.core import Workspace from azureml.core.image import ContainerImage, Image from azureml.core.model import Model +import shutil from ml_service.util.env_variables import Env e = Env() @@ -29,8 +30,10 @@ sources_dir = 'diabetes_regression' path_to_scoring = os.path.join(".", sources_dir, "scoring") cwd = os.getcwd() +# Copy conda_dependencies.yml into scoring as this method does not accept relative paths. # NOQA: E501 +shutil.copy(os.path.join(".", sources_dir, + "conda_dependencies.yml"), path_to_scoring) os.chdir(path_to_scoring) - image_config = ContainerImage.image_configuration( execution_script=e.score_script, runtime="python", @@ -40,7 +43,8 @@ ) image = Image.create( - name=e.image_name, models=[model], image_config=image_config, workspace=ws + name=e.image_name, models=[ + model], image_config=image_config, workspace=ws ) os.chdir(cwd) diff --git a/tests/unit/code_test.py b/tests/unit/code_test.py index e8457f95..1b133766 100644 --- a/tests/unit/code_test.py +++ b/tests/unit/code_test.py @@ -15,7 +15,7 @@ def test_train_model(): run = Mock(Run) reg = train_model(run, data, alpha=1.2) - run.log.assert_called_with("mse", 0.029843893480256872, + run.log.assert_called_with("mse", 0.029843893480257067, description='Mean squared error metric') preds = reg.predict([[1], [2]]) From a39a4533ade493a0b19ba441b5854f9025c94fed Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Wed, 5 Feb 2020 16:32:57 -0800 Subject: [PATCH 030/109] Fixed links and typos (#175) --- README.md | 2 +- docs/getting_started.md | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ca441c71..64ab49bc 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ This reference architecture shows how to implement continuous integration (CI), 2. Once the Azure DevOps build pipeline is triggered, it performs code quality checks, data sanity tests, unit tests, builds an [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) and publishes it in an [Azure ML Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace). 3. The [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) is triggered once the Azure DevOps build pipeline completes. All the tasks in this pipeline runs on Azure ML Compute. Following are the tasks in this pipeline: - - **Train Model** task executes model training script on Azure ML Compute. It outputs a [model](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#model) file which is stored in the [run history](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#run). + - **Train Model** task executes model training script on Azure ML Compute. It outputs a [model](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#models) file which is stored in the [run history](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#runs). - **Evaluate Model** task evaluates the performance of the newly trained model with the model in production. If the new model performs better than the production model, the following steps are executed. If not, they will be skipped. diff --git a/docs/getting_started.md b/docs/getting_started.md index cae68e5b..009ae6c0 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -67,7 +67,7 @@ be naming collisions with resources that require unique names like azure blob storage and registry DNS naming. Make sure to give a unique value to the BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have unique names (e.g. MyUniqueMLamlcr, MyUniqueML-AML-KV, etc.). The length of -the BASE_NAME value should not exceed 10 characters. +the BASE_NAME value should not exceed 10 characters and it should contain numbers and letters only. The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. @@ -115,11 +115,11 @@ Having done that, run the pipeline: ![iac run](./images/run-iac-pipeline.png) -Check out the newly created resources in the [Azure Portal](portal.azure.com): +Check out the newly created resources in the [Azure Portal](https://portal.azure.com): ![created resources](./images/created-resources.png) -(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](portal.azure.com). +(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). **Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. @@ -162,8 +162,7 @@ Once the pipeline is finished, explore the execution result: ![build](./images/multi-stage-aci.png) -and check out the published training pipeline in the **mlops-AML-WS** workspace in -[Azure Portal](https://ms.portal.azure.com/): +and check out the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): ![training pipeline](./images/training-pipeline.png) From fb1d951023e69b7cb3575aa18573403beea6e0b3 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Thu, 6 Feb 2020 19:17:59 -0800 Subject: [PATCH 031/109] azureml-dataprep package (#182) --- diabetes_regression/conda_dependencies.yml | 1 + environment_setup/Dockerfile | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 7b4f5120..add251f7 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -29,3 +29,4 @@ dependencies: # You must list azureml-defaults as a pip dependency - azureml-defaults==1.0.85 - inference-schema[numpy-support]==1.0.1 + - azureml-dataprep==1.1.38 diff --git a/environment_setup/Dockerfile b/environment_setup/Dockerfile index c3ae104b..0dfa36b6 100644 --- a/environment_setup/Dockerfile +++ b/environment_setup/Dockerfile @@ -13,4 +13,5 @@ RUN conda update -n base -c defaults conda && \ conda install python=3.7.5 && \ conda env create -f /setup/ci_dependencies.yml && \ /bin/bash -c "source activate mlopspython_ci" && \ - az --version + az --version && \ + chmod -R 777 /usr/local/envs/mlopspython_ci/lib/python3.7 From 6efc12c3e2991582d343eaedfa35e1a967b7de52 Mon Sep 17 00:00:00 2001 From: Bryan J Smith Date: Mon, 10 Feb 2020 12:35:20 -0800 Subject: [PATCH 032/109] Fixed and rearranged unit tests (#184) * Fixed test_train_model test in code_test.py * Renamed code_test.py to train_test.py * Moved train_test.py under diabetes_regression directory * Moved data_test.py under data directory * Added lint and unit test tasks to azdo-base-pipeline.yml * Deleted lint-and-test.sh and tox.ini * Removed test/unit directory Co-authored-by: David Tesar --- .pipelines/azdo-base-pipeline.yml | 10 +++++++--- {tests/unit => data}/data_test.py | 2 +- diabetes_regression/ci_dependencies.yml | 1 - .../training/test_train.py | 9 +++++++-- docs/development_setup.md | 4 ---- lint-and-test.sh | 4 ---- tests/unit/__init__.py | 0 tox.ini | 7 ------- 8 files changed, 15 insertions(+), 22 deletions(-) rename {tests/unit => data}/data_test.py (98%) rename tests/unit/code_test.py => diabetes_regression/training/test_train.py (67%) delete mode 100755 lint-and-test.sh delete mode 100644 tests/unit/__init__.py delete mode 100644 tox.ini diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/azdo-base-pipeline.yml index ad0e4ad8..479596f1 100644 --- a/.pipelines/azdo-base-pipeline.yml +++ b/.pipelines/azdo-base-pipeline.yml @@ -1,7 +1,11 @@ steps: -- script: | - ./lint-and-test.sh - displayName: 'Linting & unit tests' +- script: | + flake8 --output-file=lint-testresults.xml --format junit-xml + displayName: 'Run lint tests' + +- script: | + python -m pytest . --cov=diabetes_regression --cov-report=html --cov-report=xml --junitxml=unit-testresults.xml + displayName: 'Run unit tests' - task: PublishTestResults@2 condition: succeededOrFailed() diff --git a/tests/unit/data_test.py b/data/data_test.py similarity index 98% rename from tests/unit/data_test.py rename to data/data_test.py index 4148f029..6d7d2ddf 100644 --- a/tests/unit/data_test.py +++ b/data/data_test.py @@ -35,7 +35,7 @@ def get_absPath(filename): path = os.path.abspath( os.path.join( os.path.dirname( - __file__), os.path.pardir, os.path.pardir, "data", filename + __file__), os.path.pardir, "data", filename ) ) return path diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index c5463456..d6a52ed0 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -25,4 +25,3 @@ dependencies: - flake8==3.7.9 - flake8_formatter_junit_xml==0.0.6 - azure-cli==2.0.81 - - tox==3.14.3 diff --git a/tests/unit/code_test.py b/diabetes_regression/training/test_train.py similarity index 67% rename from tests/unit/code_test.py rename to diabetes_regression/training/test_train.py index 1b133766..155d367a 100644 --- a/tests/unit/code_test.py +++ b/diabetes_regression/training/test_train.py @@ -15,8 +15,13 @@ def test_train_model(): run = Mock(Run) reg = train_model(run, data, alpha=1.2) - run.log.assert_called_with("mse", 0.029843893480257067, - description='Mean squared error metric') + _, call2 = run.log.call_args_list + nameValue, descriptionDict = call2 + name, value = nameValue + description = descriptionDict['description'] + assert (name == 'mse') + np.testing.assert_almost_equal(value, 0.029843893480257067) + assert (description == 'Mean squared error metric') preds = reg.predict([[1], [2]]) np.testing.assert_equal(preds, [9.93939393939394, 9.03030303030303]) diff --git a/docs/development_setup.md b/docs/development_setup.md index 8565ff04..68e6b6bf 100644 --- a/docs/development_setup.md +++ b/docs/development_setup.md @@ -38,7 +38,3 @@ BUILD_BUILDID is a variable used to uniquely identify the ML pipeline between th set to the current build number. In a local environment, we can use a command such as `uuidgen` so set a different random identifier on each run, ensuring there are no collisions. - -### Local testing - -Before committing, run `tox` to execute linter and unit test checks. diff --git a/lint-and-test.sh b/lint-and-test.sh deleted file mode 100755 index 77c646ba..00000000 --- a/lint-and-test.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -eux -flake8 --output-file=lint-testresults.xml --format junit-xml -python -m pytest tests/unit --cov=diabetes_regression --cov-report=html --cov-report=xml --junitxml=unit-testresults.xml diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tox.ini b/tox.ini deleted file mode 100644 index e24d8ae1..00000000 --- a/tox.ini +++ /dev/null @@ -1,7 +0,0 @@ -[flake8] -# ignore obsolete warning -ignore = W503 -exclude = .git,__pycache__,.venv,.tox,**/site-packages/**/*.py,**/lib/**.py,**/bin/**.py - -[pytest] -junit_family = legacy From e187158d40d7257c01d8fc95c7b23c8b9ddee71f Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Mon, 10 Feb 2020 14:22:02 -0800 Subject: [PATCH 033/109] Clarifying comments (#187) --- docs/canary_ab_deployment.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md index 7d132ad9..fb2b38ec 100644 --- a/docs/canary_ab_deployment.md +++ b/docs/canary_ab_deployment.md @@ -16,6 +16,8 @@ Having the Istio installed, figure out the Istio gateway endpoint on your K8s cl GATEWAY_IP=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}') ``` +You don't need to create any Istio resources (e.g. Gateway or VirtualService) at this point. It will be handled by the AzDo pipeline that builds and deploys a scoring image. + #### 2. Set up variables There are some extra variables that you need to setup in ***devopsforai-aml-vg*** variable group (see [getting started](./getting_started.md)): @@ -35,7 +37,7 @@ The result of the pipeline will be a registered Docker image in the ACR reposito ![scoring image](./images/scoring_image.png) -The pipeline will also deploy the scoring image to the Kubernetes cluster. +The pipeline creates Istio Gateway and VirtualService and deploys the scoring image to the Kubernetes cluster. ```bash kubectl get deployments --namespace abtesting From 977593a79c9bf88a404ecd5185b6aeeb0b4f16bf Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Tue, 11 Feb 2020 10:24:54 -0800 Subject: [PATCH 034/109] Add Bootstrap code (#186) -bootstrap script -directory structure --- README.md | 17 ++--- bootstrap/README.md | 9 +++ bootstrap/bootstrap.py | 135 +++++++++++++++++++++++++++++++++++++++ docs/code_description.md | 34 +++++++++- docs/getting_started.md | 48 +++++++------- 5 files changed, 209 insertions(+), 34 deletions(-) create mode 100644 bootstrap/README.md create mode 100644 bootstrap/bootstrap.py diff --git a/README.md b/README.md index 64ab49bc..324f3249 100644 --- a/README.md +++ b/README.md @@ -11,36 +11,33 @@ description: "Code which demonstrates how to set up and operationalize an MLOps # MLOps with Azure ML - [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=151&branchName=master) - -MLOps will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. +MLOps will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. ![ML lifecycle](/docs/images/ml-lifecycle.png) This template contains code and pipeline definition for a machine learning project demonstrating how to automate an end to end ML/AI workflow. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod and integration testing. - ## Prerequisite + - Active Azure subscription - At least contributor access to Azure subscription -## Getting Started: +## Getting Started To deploy this solution in your subscription, follow the manual instructions in the [getting started](docs/getting_started.md) doc - ## Architecture Diagram -This reference architecture shows how to implement continuous integration (CI), continuous delivery (CD), and retraining pipeline for an AI application using Azure DevOps and Azure Machine Learning. The solution is built on the scikit-learn diabetes dataset but can be easily adapted for any AI scenario and other popular build systems such as Jenkins and Travis. +This reference architecture shows how to implement continuous integration (CI), continuous delivery (CD), and retraining pipeline for an AI application using Azure DevOps and Azure Machine Learning. The solution is built on the scikit-learn diabetes dataset but can be easily adapted for any AI scenario and other popular build systems such as Jenkins and Travis. ![Architecture](/docs/images/main-flow.png) - ## Architecture Flow ### Train Model + 1. Data Scientist writes/updates the code and push it to git repo. This triggers the Azure DevOps build pipeline (continuous integration). 2. Once the Azure DevOps build pipeline is triggered, it performs code quality checks, data sanity tests, unit tests, builds an [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) and publishes it in an [Azure ML Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace). 3. The [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) is triggered once the Azure DevOps build pipeline completes. All the tasks in this pipeline runs on Azure ML Compute. Following are the tasks in this pipeline: @@ -56,13 +53,13 @@ This reference architecture shows how to implement continuous integration (CI), Once you have registered your ML model, you can use Azure ML + Azure DevOps to deploy it. The [Azure DevOps multi-stage pipeline](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/stages?view=azure-devops&tabs=yaml) packages the new model along with the scoring file and its python dependencies into a [docker image](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#image) and pushes it to [Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro). This image is used to deploy the model as [web service](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#web-service) across QA and Prod environments. The QA environment is running on top of [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/) and the Prod environment is built with [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes). - ### Repo Details You can find the details of the code and scripts in the repository [here](/docs/code_description.md) ### References + - [Azure Machine Learning(Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) - [Azure ML CLI](https://docs.microsoft.com/en-us/azure/machine-learning/service/reference-azure-machine-learning-cli) - [Azure ML Samples](https://docs.microsoft.com/en-us/azure/machine-learning/service/samples-notebooks) @@ -73,7 +70,7 @@ You can find the details of the code and scripts in the repository [here](/docs/ This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.microsoft.com. +the rights to use your contribution. For details, visit When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions diff --git a/bootstrap/README.md b/bootstrap/README.md new file mode 100644 index 00000000..bbbbff09 --- /dev/null +++ b/bootstrap/README.md @@ -0,0 +1,9 @@ +# Bootstrap from MLOpsPython repository + +To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstraping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. + +To bootstrap from the existing MLOpsPython repository clone this repository and run bootstrap.py script as below + +>python bootstrap.py --d [dirpath] --n [projectname] + +Where [dirpath] is the absolute path to the root of your directory where MLOps repo is cloned and [projectname] is the name of your ML project diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py new file mode 100644 index 00000000..d796f6df --- /dev/null +++ b/bootstrap/bootstrap.py @@ -0,0 +1,135 @@ +import os +import sys +import argparse +# from git import Repo + + +class Helper: + + def __init__(self, project_directory, project_name): + self._project_directory = project_directory + self._project_name = project_name + self._git_repo = "https://github.com/microsoft/MLOpsPython.git" + + @property + def project_directory(self): + return self._project_directory + + @property + def project_name(self): + return self._project_name + + @property + def git_repo(self): + return self._git_repo + + # def clonerepo(self): + # # Download MLOpsPython repo from git + # Repo.clone_from( + # self._git_repo, self._project_directory, branch="master", depth=1) # NOQA: E501 + # print(self._project_directory) + + def renamefiles(self): + # Rename all files starting with diabetes_regression with project name + strtoreplace = "diabetes_regression" + dirs = [".pipelines", r"ml_service\pipelines"] + for dir in dirs: + dirpath = os.path.join(self._project_directory, dir) + for filename in os.listdir(dirpath): + if(filename.find(strtoreplace) != -1): + src = os.path.join(self._project_directory, dir, filename) + dst = os.path.join(self._project_directory, + dir, filename.replace(strtoreplace, self._project_name, 1)) # NOQA: E501 + os.rename(src, dst) + + def renamedir(self): + # Rename any directory with diabetes_regression with project name + dirs = ["diabetes_regression"] + for dir in dirs: + src = os.path.join(self._project_directory, dir) + dst = os.path.join(self._project_directory, self._project_name) + os.rename(src, dst) + + def deletedir(self): + # Delete unwanted directories + dirs = ["docs", r"diabetes_regression\training\R"] + for dir in dirs: + os.system( + 'rmdir /S /Q "{}"'.format(os.path.join(self._project_directory, dir))) # NOQA: E501 + + def replaceprojectname(self): + # Replace instances of diabetes_regression within files + dirs = [r".env.example", + r".pipelines\azdo-base-pipeline.yml", + r".pipelines\azdo-pr-build-train.yml", + r".pipelines\diabetes_regression-ci-build-train.yml", + r".pipelines\diabetes_regression-ci-image.yml", + r".pipelines\diabetes_regression-template-get-model-version.yml", # NOQA: E501 + r".pipelines\diabetes_regression-variables.yml", + r"environment_setup\Dockerfile", + r"environment_setup\install_requirements.sh", + r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_build_train_pipeline.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_verify_train_pipeline.py", # NOQA: E501 + r"ml_service\util\create_scoring_image.py", + r"diabetes_regression\azureml_environment.json", + r"diabetes_regression\conda_dependencies.yml", + r"diabetes_regression\evaluate\evaluate_model.py", + r"diabetes_regression\training\test_train.py"] # NOQA: E501 + + for file in dirs: + fin = open(os.path.join(self._project_directory, file), + "rt", encoding="utf8") + data = fin.read() + data = data.replace("diabetes_regression", self.project_name) + fin.close() + fin = open(os.path.join(self._project_directory, file), + "wt", encoding="utf8") + fin.write(data) + fin.close() + + def cleandir(self): + # Clean up directories + dirs = ["data", "experimentation"] + for dir in dirs: + for root, dirs, files in os.walk(os.path.join(self._project_directory, dir)): # NOQA: E501 + for file in files: + os.remove(os.path.join(root, file)) + + def validateargs(self): + # Validate arguments + if (os.path.isdir(self._project_directory) is False): + raise Exception( + "Not a valid directory. Please provide absolute directory path") # NOQA: E501 + # if (len(os.listdir(self._project_directory)) > 0): + # raise Exception("Directory not empty. PLease empty directory") + if(len(self._project_name) < 3 or len(self._project_name) > 15): + raise Exception("Project name should be 3 to 15 chars long") + + +def main(args): + parser = argparse.ArgumentParser(description='New Template') + parser.add_argument("--d", type=str, + help="Absolute path to new project direcory") + parser.add_argument( + "--n", type=str, help="Name of the project[3-15 chars] ") + try: + args = parser.parse_args() + project_directory = args.d + project_name = args.n + helper = Helper(project_directory, project_name) + helper.validateargs() + # helper.clonerepo() + helper.cleandir() + helper.replaceprojectname() + helper.deletedir() + helper.renamefiles() + helper.renamedir() + except Exception as e: + print(e) + return 0 + + +if '__main__' == __name__: + sys.exit(main(sys.argv)) diff --git a/docs/code_description.md b/docs/code_description.md index d60df616..1b0b710d 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -1,5 +1,34 @@ ## Repo Details +### Directory Structure + +High level directory structure for this repository: + +```bash +├── .pipelines <- Azure DevOps YAML pipelines for CI, PR and model training and deployment. +├── bootstrap <- Python script to initialize this repository with a custom project name. +├── charts <- Helm charts to deploy resources on Azure Kubernetes Service(AKS). +├── data <- Initial set of data to train and evaluate model. +├── diabetes_regression <- The top-level folder for the ML project. +│ ├── evaluate <- Python script to evaluate trained ML model. +│ ├── register <- Python script to register trained ML model with Azure Machine Learning Service. +│ ├── scoring <- Python score.py to deploy trained ML model. +│ ├── training <- Python script to train ML model. +│ ├── R <- R script to train R based ML model. +│ ├── util <- Python script for various utility operations specific to this ML project. +├── docs <- Extensive markdown documentation for entire project. +├── environment_setup <- The top-level folder for everything related to infrastructure. +│ ├── arm-templates <- Azure Resource Manager(ARM) templates to build infrastructure needed for this project. +├── experimentation <- Jupyter notebooks with ML experimentation code. +├── ml_service <- The top-level folder for all Azure Machine Learning resources. +│ ├── pipelines <- Python script that builds Azure Machine Learning pipelines. +│ ├── util <- Python script for various utility operations specific to Azure Machine Learning. +├── .env.example <- Example .env file with environment for local development experience. +├── .gitignore <- A gitignore file specifies intentionally un-tracked files that Git should ignore. +├── LICENSE <- License document for this project. +├── README.md <- The top-level README for developers using this project. +``` + ### Environment Setup - `environment_setup/install_requirements.sh` : This script prepares a local conda environment i.e. install the Azure ML SDK and the packages specified in environment definitions. @@ -8,7 +37,7 @@ - `environment_setup/Dockerfile` : Dockerfile of a build agent containing Python 3.6 and all required packages. -- `environment_setup/docker-image-pipeline.yml` : An AzDo pipeline for building and pushing [microsoft/mlopspython](https://hub.docker.com/_/microsoft-mlops-python) image. +- `environment_setup/docker-image-pipeline.yml` : An AzDo pipeline for building and pushing [microsoft/mlopspython](https://hub.docker.com/_/microsoft-mlops-python) image. ### Pipelines @@ -37,10 +66,11 @@ - `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. - `diabetes_regression/evaluate/register_model.py` : (LEGACY) registers a new trained model if evaluation shows the new model is more performant than the previous one. - `diabetes_regression/training/R/r_train.r` : training a model with R basing on a sample dataset (weight_data.csv). -- `diabetes_regression/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute +- `diabetes_regression/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute - `diabetes_regression/training/R/train_with_r_on_databricks.py` : a python wrapper (ML Pipeline Step) invoking R training script on Databricks Compute - `diabetes_regression/training/R/weight_data.csv` : a sample dataset used by R script (r_train.r) to train a model ### Scoring + - `diabetes_regression/scoring/score.py` : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. - `diabetes_regression/scoring/inference_config.yml`, deployment_config_aci.yml, deployment_config_aks.yml : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. diff --git a/docs/getting_started.md b/docs/getting_started.md index 009ae6c0..0b4b8379 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -8,8 +8,12 @@ following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/ If you already have an Azure DevOps organization, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). -## Clone or fork this repository -Fork this repository within GitHub, or clone it into your Azure DevOps project. +## Decide best option to copy repository code + +* Fork this repository if there is a desire to contribute back to the repository else +* Use this [code template](https://github.com/microsoft/MLOpsPython/generate) which copies the entire code base to your own GitHub location with the git commit history restarted. This can be used for learning and following the guide. + +If the desire is to use this project for your machine learning code, follow the [bootstrap instructions](../bootstrap/README.md) after the code template is complete. ## Create an ARM Service Connection to deploy resources @@ -48,16 +52,16 @@ Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline defi The variable group should contain the following required variables: -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------| -| BASE_NAME | [unique base name] | -| LOCATION | centralus | -| RESOURCE_GROUP | mlops-RG | -| WORKSPACE_NAME | mlops-AML-WS | -| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | -| ACI_DEPLOYMENT_NAME | diabetes-aci | +| Variable Name | Suggested Value | +| ------------------------ | ------------------------ | +| BASE_NAME | [unique base name] | +| LOCATION | centralus | +| RESOURCE_GROUP | mlops-RG | +| WORKSPACE_NAME | mlops-AML-WS | +| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | +| ACI_DEPLOYMENT_NAME | diabetes-aci | -**Note:** +**Note:** The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide an existing AML Workspace here if you have one. @@ -67,7 +71,7 @@ be naming collisions with resources that require unique names like azure blob storage and registry DNS naming. Make sure to give a unique value to the BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have unique names (e.g. MyUniqueMLamlcr, MyUniqueML-AML-KV, etc.). The length of -the BASE_NAME value should not exceed 10 characters and it should contain numbers and letters only. +the BASE_NAME value should not exceed 10 characters and it should contain numbers and letters only. The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. @@ -121,11 +125,11 @@ Check out the newly created resources in the [Azure Portal](https://portal.azure (Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). -**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). +**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. - ## Create an Azure DevOps Azure ML Workspace Service Connection + Install the **Azure Machine Learning** extension to your organization from the [marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), so that you can set up a service connection to your AML workspace. @@ -201,17 +205,17 @@ The final stage is to deploy the model to the production environment running on [Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). **Note:** Creating a Kubernetes cluster on AKS is out of scope of this -tutorial, but you can find set up information +tutorial, but you can find set up information [here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). **Note:** If your target deployment environment is a K8s cluster and you want to implement Canary and/or A/B testing deployment strategies check out this [tutorial](./canary_ab_deployment.md). In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------| -| AKS_COMPUTE_NAME | aks | -| AKS_DEPLOYMENT_NAME | diabetes-aks | +| Variable Name | Suggested Value | +| ------------------- | --------------- | +| AKS_COMPUTE_NAME | aks | +| AKS_DEPLOYMENT_NAME | diabetes-aks | Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster referencing your AKS cluster in your Azure ML Workspace. @@ -226,9 +230,9 @@ scoring service on Azure App Service](https://docs.microsoft.com/en-us/azure/mac In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variable: -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------| -| WEBAPP_DEPLOYMENT_NAME | mlopswebapp | +| Variable Name | Suggested Value | +| ---------------------- | --------------- | +| WEBAPP_DEPLOYMENT_NAME | mlopswebapp | Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. Delete the **ACI_DEPLOYMENT_NAME** variable. From 22d2526b9b3e1f80d0fc05b0d943220a8e167aeb Mon Sep 17 00:00:00 2001 From: David Tesar Date: Wed, 12 Feb 2020 09:43:06 -0800 Subject: [PATCH 035/109] bootstrap diabetes cleanup (#189) --- bootstrap/README.md | 8 ++- bootstrap/bootstrap.py | 70 ++++++++++--------- .../register/register_model.py | 4 +- ml_service/util/create_scoring_image.py | 2 +- 4 files changed, 45 insertions(+), 39 deletions(-) diff --git a/bootstrap/README.md b/bootstrap/README.md index bbbbff09..1a4551a9 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -2,8 +2,10 @@ To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstraping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. -To bootstrap from the existing MLOpsPython repository clone this repository and run bootstrap.py script as below +To bootstrap from the existing MLOpsPython repository clone this repository, ensure Python is installed locally, and run bootstrap.py script as below ->python bootstrap.py --d [dirpath] --n [projectname] +`python bootstrap.py --d [dirpath] --n [projectname]` -Where [dirpath] is the absolute path to the root of your directory where MLOps repo is cloned and [projectname] is the name of your ML project +Where `[dirpath]` is the absolute path to the root of your directory where MLOps repo is cloned and `[projectname]` is the name of your ML project. + +[This article](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) will also assist to use this code template for your own ML project. diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index d796f6df..0aa7c2e6 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -57,38 +57,6 @@ def deletedir(self): os.system( 'rmdir /S /Q "{}"'.format(os.path.join(self._project_directory, dir))) # NOQA: E501 - def replaceprojectname(self): - # Replace instances of diabetes_regression within files - dirs = [r".env.example", - r".pipelines\azdo-base-pipeline.yml", - r".pipelines\azdo-pr-build-train.yml", - r".pipelines\diabetes_regression-ci-build-train.yml", - r".pipelines\diabetes_regression-ci-image.yml", - r".pipelines\diabetes_regression-template-get-model-version.yml", # NOQA: E501 - r".pipelines\diabetes_regression-variables.yml", - r"environment_setup\Dockerfile", - r"environment_setup\install_requirements.sh", - r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_build_train_pipeline.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_verify_train_pipeline.py", # NOQA: E501 - r"ml_service\util\create_scoring_image.py", - r"diabetes_regression\azureml_environment.json", - r"diabetes_regression\conda_dependencies.yml", - r"diabetes_regression\evaluate\evaluate_model.py", - r"diabetes_regression\training\test_train.py"] # NOQA: E501 - - for file in dirs: - fin = open(os.path.join(self._project_directory, file), - "rt", encoding="utf8") - data = fin.read() - data = data.replace("diabetes_regression", self.project_name) - fin.close() - fin = open(os.path.join(self._project_directory, file), - "wt", encoding="utf8") - fin.write(data) - fin.close() - def cleandir(self): # Clean up directories dirs = ["data", "experimentation"] @@ -108,6 +76,40 @@ def validateargs(self): raise Exception("Project name should be 3 to 15 chars long") +def replaceprojectname(project_dir, project_name, rename_name): + # Replace instances of rename_name within files with project_name + dirs = [r".env.example", + r".pipelines\azdo-base-pipeline.yml", + r".pipelines\azdo-pr-build-train.yml", + r".pipelines\diabetes_regression-ci-build-train.yml", + r".pipelines\diabetes_regression-ci-image.yml", + r".pipelines\diabetes_regression-template-get-model-version.yml", # NOQA: E501 + r".pipelines\diabetes_regression-variables.yml", + r"environment_setup\Dockerfile", + r"environment_setup\install_requirements.sh", + r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_build_train_pipeline.py", # NOQA: E501 + r"ml_service\pipelines\diabetes_regression_verify_train_pipeline.py", # NOQA: E501 + r"ml_service\util\create_scoring_image.py", + r"diabetes_regression\azureml_environment.json", + r"diabetes_regression\conda_dependencies.yml", + r"diabetes_regression\evaluate\evaluate_model.py", + r"diabetes_regression\register\register_model.py", + r"diabetes_regression\training\test_train.py"] # NOQA: E501 + + for file in dirs: + fin = open(os.path.join(project_dir, file), + "rt", encoding="utf8") + data = fin.read() + data = data.replace(rename_name, project_name) + fin.close() + fin = open(os.path.join(project_dir, file), + "wt", encoding="utf8") + fin.write(data) + fin.close() + + def main(args): parser = argparse.ArgumentParser(description='New Template') parser.add_argument("--d", type=str, @@ -122,7 +124,9 @@ def main(args): helper.validateargs() # helper.clonerepo() helper.cleandir() - helper.replaceprojectname() + replaceprojectname(project_directory, project_name, + "diabetes_regression") + replaceprojectname(project_directory, project_name, "diabetes") helper.deletedir() helper.renamefiles() helper.renamedir() diff --git a/diabetes_regression/register/register_model.py b/diabetes_regression/register/register_model.py index b2d454bb..95b9e897 100644 --- a/diabetes_regression/register/register_model.py +++ b/diabetes_regression/register/register_model.py @@ -119,7 +119,7 @@ def register_aml_model( if (build_id != 'none'): model_already_registered(model_name, exp, run_id) run = Run(experiment=exp, run_id=run_id) - tagsValue = {"area": "diabetes", "type": "regression", + tagsValue = {"area": "diabetes_regression", "BuildId": build_id, "run_id": run_id, "experiment_name": exp.name} if (build_uri is not None): @@ -127,7 +127,7 @@ def register_aml_model( else: run = Run(experiment=exp, run_id=run_id) if (run is not None): - tagsValue = {"area": "diabetes", "type": "regression", + tagsValue = {"area": "diabetes_regression", "run_id": run_id, "experiment_name": exp.name} else: print("A model run for experiment", exp.name, diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index cc6fc2ee..41ff635c 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -39,7 +39,7 @@ runtime="python", conda_file="conda_dependencies.yml", description="Image with ridge regression model", - tags={"area": "diabetes", "type": "regression"}, + tags={"area": "diabetes_regression"}, ) image = Image.create( From e108e07e377e43732f00cfa2b58a2d4c61480e20 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Wed, 12 Feb 2020 14:38:47 -0800 Subject: [PATCH 036/109] bootstrap (#190) --- bootstrap/bootstrap.py | 83 ++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 0aa7c2e6..571d3443 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -1,6 +1,8 @@ import os import sys +import platform import argparse +# import shutil # from git import Repo @@ -32,30 +34,39 @@ def git_repo(self): def renamefiles(self): # Rename all files starting with diabetes_regression with project name strtoreplace = "diabetes_regression" - dirs = [".pipelines", r"ml_service\pipelines"] + dirs = [".pipelines", r"ml_service/pipelines"] for dir in dirs: - dirpath = os.path.join(self._project_directory, dir) + normDir = os.path.normpath(dir) + dirpath = os.path.join(self._project_directory, normDir) for filename in os.listdir(dirpath): if(filename.find(strtoreplace) != -1): - src = os.path.join(self._project_directory, dir, filename) + src = os.path.join(self._project_directory, normDir, filename) # NOQA: E501 dst = os.path.join(self._project_directory, - dir, filename.replace(strtoreplace, self._project_name, 1)) # NOQA: E501 + normDir, filename.replace(strtoreplace, self._project_name, 1)) # NOQA: E501 os.rename(src, dst) def renamedir(self): - # Rename any directory with diabetes_regression with project name - dirs = ["diabetes_regression"] - for dir in dirs: - src = os.path.join(self._project_directory, dir) - dst = os.path.join(self._project_directory, self._project_name) - os.rename(src, dst) + dir = "diabetes_regression" + src = os.path.join(self._project_directory, dir) + for path, subdirs, files in os.walk(src): + for name in files: + newPath = path.replace(dir, self._project_name) + if (not (os.path.exists(newPath))): + os.mkdir(newPath) + file_path = os.path.join(path, name) + new_name = os.path.join(newPath, name) + os.rename(file_path, new_name) def deletedir(self): # Delete unwanted directories - dirs = ["docs", r"diabetes_regression\training\R"] + dirs = ["docs", r"diabetes_regression"] + if (platform.system() == "Windows"): + cmd = 'rmdir /S /Q "{}"' + else: + cmd = 'rm -r "{}"' for dir in dirs: os.system( - 'rmdir /S /Q "{}"'.format(os.path.join(self._project_directory, dir))) # NOQA: E501 + cmd.format(os.path.join(self._project_directory, os.path.normpath(dir)))) # NOQA: E501 def cleandir(self): # Clean up directories @@ -79,33 +90,33 @@ def validateargs(self): def replaceprojectname(project_dir, project_name, rename_name): # Replace instances of rename_name within files with project_name dirs = [r".env.example", - r".pipelines\azdo-base-pipeline.yml", - r".pipelines\azdo-pr-build-train.yml", - r".pipelines\diabetes_regression-ci-build-train.yml", - r".pipelines\diabetes_regression-ci-image.yml", - r".pipelines\diabetes_regression-template-get-model-version.yml", # NOQA: E501 - r".pipelines\diabetes_regression-variables.yml", - r"environment_setup\Dockerfile", - r"environment_setup\install_requirements.sh", - r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_build_train_pipeline.py", # NOQA: E501 - r"ml_service\pipelines\diabetes_regression_verify_train_pipeline.py", # NOQA: E501 - r"ml_service\util\create_scoring_image.py", - r"diabetes_regression\azureml_environment.json", - r"diabetes_regression\conda_dependencies.yml", - r"diabetes_regression\evaluate\evaluate_model.py", - r"diabetes_regression\register\register_model.py", - r"diabetes_regression\training\test_train.py"] # NOQA: E501 - - for file in dirs: - fin = open(os.path.join(project_dir, file), + r".pipelines/azdo-base-pipeline.yml", + r".pipelines/azdo-pr-build-train.yml", + r".pipelines/diabetes_regression-ci-build-train.yml", + r".pipelines/diabetes_regression-ci-image.yml", + r".pipelines/diabetes_regression-template-get-model-version.yml", # NOQA: E501 + r".pipelines/diabetes_regression-variables.yml", + r"environment_setup/Dockerfile", + r"environment_setup/install_requirements.sh", + r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 + r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 + r"ml_service/pipelines/diabetes_regression_build_train_pipeline.py", # NOQA: E501 + r"ml_service/pipelines/diabetes_regression_verify_train_pipeline.py", # NOQA: E501 + r"ml_service/util/create_scoring_image.py", + r"diabetes_regression/azureml_environment.json", + r"diabetes_regression/conda_dependencies.yml", + r"diabetes_regression/evaluate/evaluate_model.py", + r"diabetes_regression/register/register_model.py", + r"diabetes_regression/training/test_train.py"] # NOQA: E501 + + for dir in dirs: + file = os.path.join(project_dir, os.path.normpath(dir)) + fin = open(file, "rt", encoding="utf8") data = fin.read() data = data.replace(rename_name, project_name) fin.close() - fin = open(os.path.join(project_dir, file), - "wt", encoding="utf8") + fin = open(os.path.join(project_dir, file), "wt", encoding="utf8") # NOQA: E501 fin.write(data) fin.close() @@ -127,9 +138,9 @@ def main(args): replaceprojectname(project_directory, project_name, "diabetes_regression") replaceprojectname(project_directory, project_name, "diabetes") - helper.deletedir() helper.renamefiles() helper.renamedir() + helper.deletedir() except Exception as e: print(e) return 0 From 88636dffa17b8bb7bd53547e11d2323d5768e816 Mon Sep 17 00:00:00 2001 From: Graeme Malcolm Date: Fri, 14 Feb 2020 09:06:31 -0800 Subject: [PATCH 037/109] Modified to use dataset and pipelinedata (#193) * Modified to use dataset and pipelinedata * Create diabetes dataset if no dataset specified * Reverted null build_id check * Added MSE tag * Reverted logic for NULL Build ID * Force new model if previous onehas no metric tag * Removed unused DATA variables * Removed unused DATA vars * Updated workaround for non-metric-tagged models * tidied up code --- .env.example | 2 - .../evaluate/evaluate_model.py | 19 ++--- .../register/register_model.py | 83 ++++++++++++------- diabetes_regression/training/train.py | 42 +++++----- docs/getting_started.md | 7 +- ...iabetes_regression_build_train_pipeline.py | 64 +++++++++++--- ml_service/util/env_variables.py | 10 --- 7 files changed, 137 insertions(+), 90 deletions(-) diff --git a/.env.example b/.env.example index af11a5a3..68bab62c 100644 --- a/.env.example +++ b/.env.example @@ -32,8 +32,6 @@ EVALUATE_SCRIPT_PATH = 'evaluate/evaluate_model.py' REGISTER_SCRIPT_PATH = 'register/register_model.py' SOURCES_DIR_TRAIN = 'diabetes_regression' DATASET_NAME = 'diabetes_ds' -DATASTORE_NAME = 'datablobstore' -DATAFILE_NAME = 'diabetes.csv' # Optional. Used by a training pipeline with R on Databricks DB_CLUSTER_ID = '' diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index ed234b7a..57685b3d 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -90,6 +90,7 @@ help="Name of the Model", default="sklearn_regression_model.pkl", ) + parser.add_argument( "--allow_run_cancel", type=str, @@ -122,18 +123,10 @@ model_name, tag_name, exp.name, ws) if (model is not None): - - production_model_run_id = model.run_id - - # Get the run history for both production model and - # newly trained model and compare mse - production_model_run = Run(exp, run_id=production_model_run_id) - new_model_run = run.parent - print("Production model run is", production_model_run) - - production_model_mse = \ - production_model_run.get_metrics().get(metric_eval) - new_model_mse = new_model_run.get_metrics().get(metric_eval) + production_model_mse = 10000 + if (metric_eval in model.tags): + production_model_mse = float(model.tags[metric_eval]) + new_model_mse = float(run.parent.get_metrics().get(metric_eval)) if (production_model_mse is None or new_model_mse is None): print("Unable to find", metric_eval, "metrics, " "exiting evaluation") @@ -151,7 +144,7 @@ print("New trained model performs better, " "thus it should be registered") else: - print("New trained model metric is less than or equal to " + print("New trained model metric is worse than or equal to " "production model so skipping model registration.") if((allow_run_cancel).lower() == 'true'): run.parent.cancel() diff --git a/diabetes_regression/register/register_model.py b/diabetes_regression/register/register_model.py index 95b9e897..3fc89495 100644 --- a/diabetes_regression/register/register_model.py +++ b/diabetes_regression/register/register_model.py @@ -27,6 +27,7 @@ import sys import argparse import traceback +import joblib from azureml.core import Run, Experiment, Workspace from azureml.core.model import Model as AMLModel @@ -63,17 +64,24 @@ def main(): type=str, help="The Build ID of the build triggering this pipeline run", ) + parser.add_argument( "--run_id", type=str, help="Training run ID", ) + parser.add_argument( "--model_name", type=str, help="Name of the Model", default="sklearn_regression_model.pkl", ) + parser.add_argument( + "--step_input", + type=str, + help=("input from previous steps") + ) args = parser.parse_args() if (args.build_id is not None): @@ -83,18 +91,42 @@ def main(): if (run_id == 'amlcompute'): run_id = run.parent.id model_name = args.model_name + model_path = args.step_input - if (build_id is None): - register_aml_model(model_name, exp, run_id) - else: - run.tag("BuildId", value=build_id) - builduri_base = os.environ.get("BUILDURI_BASE") - if (builduri_base is not None): - build_uri = builduri_base + build_id - run.tag("BuildUri", value=build_uri) - register_aml_model(model_name, exp, run_id, build_id, build_uri) + # load the model + print("Loading model from " + model_path) + model_file = os.path.join(model_path, model_name) + model = joblib.load(model_file) + model_mse = run.parent.get_metrics()["mse"] + + if (model is not None): + if (build_id is None): + register_aml_model(model_file, model_name, exp, run_id) else: - register_aml_model(model_name, exp, run_id, build_id) + run.tag("BuildId", value=build_id) + builduri_base = os.environ.get("BUILDURI_BASE") + if (builduri_base is not None): + build_uri = builduri_base + build_id + run.tag("BuildUri", value=build_uri) + register_aml_model( + model_file, + model_name, + model_mse, + exp, + run_id, + build_id, + build_uri) + else: + register_aml_model( + model_file, + model_name, + model_mse, + exp, + run_id, + build_id) + else: + print("Model not found. Skipping model registration.") + sys.exit(0) def model_already_registered(model_name, exp, run_id): @@ -109,35 +141,30 @@ def model_already_registered(model_name, exp, run_id): def register_aml_model( + model_path, model_name, + model_mse, exp, run_id, build_id: str = 'none', build_uri=None ): try: + tagsValue = {"area": "diabetes_regression", + "run_id": run_id, + "experiment_name": exp.name, + "mse": model_mse} if (build_id != 'none'): model_already_registered(model_name, exp, run_id) - run = Run(experiment=exp, run_id=run_id) - tagsValue = {"area": "diabetes_regression", - "BuildId": build_id, "run_id": run_id, - "experiment_name": exp.name} + tagsValue["BuildId"] = build_id if (build_uri is not None): tagsValue["BuildUri"] = build_uri - else: - run = Run(experiment=exp, run_id=run_id) - if (run is not None): - tagsValue = {"area": "diabetes_regression", - "run_id": run_id, "experiment_name": exp.name} - else: - print("A model run for experiment", exp.name, - "matching properties run_id =", run_id, - "was not found. Skipping model registration.") - sys.exit(0) - - model = run.register_model(model_name=model_name, - model_path="./outputs/" + model_name, - tags=tagsValue) + + model = AMLModel.register( + workspace=exp.workspace, + model_name=model_name, + model_path=model_path, + tags=tagsValue) os.chdir("..") print( "Model registered: {} \nModel Description: {} " diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index a79d5e24..e3bdca27 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -24,10 +24,8 @@ POSSIBILITY OF SUCH DAMAGE. """ from azureml.core.run import Run -from azureml.core import Dataset import os import argparse -from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split @@ -65,19 +63,20 @@ def main(): ) parser.add_argument( - "--dataset_name", + "--step_output", type=str, - help=("Dataset with the training data") + help=("output for passing data to next step") ) + args = parser.parse_args() print("Argument [build_id]: %s" % args.build_id) print("Argument [model_name]: %s" % args.model_name) - print("Argument [dataset_name]: %s" % args.dataset_name) + print("Argument [step_output]: %s" % args.step_output) model_name = args.model_name build_id = args.build_id - dataset_name = args.dataset_name + step_output_path = args.step_output print("Getting training parameters") @@ -91,15 +90,17 @@ def main(): print("Parameter alpha: %s" % alpha) run = Run.get_context() - ws = run.experiment.workspace - if (dataset_name): - dataset = Dataset.get_by_name(workspace=ws, name=dataset_name) + # Get the dataset + dataset = run.input_datasets['training_data'] + if (dataset): df = dataset.to_pandas_dataframe() X = df.values y = df.Y else: - X, y = load_diabetes(return_X_y=True) + e = ("No dataset provided") + print(e) + raise Exception(e) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=0) @@ -108,21 +109,18 @@ def main(): reg = train_model(run, data, alpha) - joblib.dump(value=reg, filename=model_name) - - # upload model file explicitly into artifacts for parent run - run.parent.upload_file(name="./outputs/" + model_name, - path_or_stream=model_name) - print("Uploaded the model {} to experiment {}".format( - model_name, run.experiment.name)) - dirpath = os.getcwd() - print(dirpath) - print("Following files are uploaded ") - print(run.parent.get_file_names()) + # Pass model file to next step + os.makedirs(step_output_path, exist_ok=True) + model_output_path = os.path.join(step_output_path, model_name) + joblib.dump(value=reg, filename=model_output_path) - run.parent.tag("BuildId", value=build_id) + # Also upload model file to run outputs for history + os.makedirs('outputs', exist_ok=True) + output_path = os.path.join('outputs', model_name) + joblib.dump(value=reg, filename=output_path) # Add properties to identify this specific training run + run.parent.tag("BuildId", value=build_id) run.tag("BuildId", value=build_id) run.tag("run_type", value="train") builduri_base = os.environ.get("BUILDURI_BASE") diff --git a/docs/getting_started.md b/docs/getting_started.md index 0b4b8379..01352484 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -75,6 +75,10 @@ the BASE_NAME value should not exceed 10 characters and it should contain number The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. +The **WORKSPACE_SVC_CONNECTION** parameter is used to reference a service connection for the Azure ML workspace. You will create this after provisioning the workspace (we recommend using the IaC pipeline as described below), and installing the Azure ML extension in your Azure DevOps project. + +Optionally, a **DATASET_NAME** parameter can be used to reference a training dataset that you have registered in your Azure ML workspace (more details below). + Make sure to select the **Allow access to all pipelines** checkbox in the variable group configuration. @@ -125,8 +129,7 @@ Check out the newly created resources in the [Azure Portal](https://portal.azure (Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). -**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. If you want to use your own dataset, you need to [create and register a datastore](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-access-data#azure-machine-learning-studio) in your ML workspace and upload the datafile (e.g. [diabetes.csv](./data/diabetes.csv)) to the corresponding blob container. You can also define a datastore in the ML Workspace with [az cli](https://docs.microsoft.com/en-us/cli/azure/ext/azure-cli-ml/ml/datastore?view=azure-cli-latest#ext-azure-cli-ml-az-ml-datastore-attach-blob). -You'll also need to configure DATASTORE_NAME and DATAFILE_NAME variables in ***devopsforai-aml-vg*** variable group. +**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. To use your own data, you need to [create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your workspace and specify its name in a DATASET_NAME variable in the ***devopsforai-aml-vg*** variable group. You will also need to modify the test cases in the **ml_service/util/smoke_test_scoring_service.py** script to match the schema of the training features in your dataset. ## Create an Azure DevOps Azure ML Workspace Service Connection diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index b7d32f99..f382a476 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -1,11 +1,14 @@ from azureml.pipeline.core.graph import PipelineParameter from azureml.pipeline.steps import PythonScriptStep -from azureml.pipeline.core import Pipeline +from azureml.pipeline.core import Pipeline, PipelineData from azureml.core import Workspace, Environment from azureml.core.runconfig import RunConfiguration -from azureml.core import Dataset, Datastore +from azureml.core import Dataset from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env +from sklearn.datasets import load_diabetes +import pandas as pd +import os def main(): @@ -45,26 +48,59 @@ def main(): build_id_param = PipelineParameter( name="build_id", default_value=e.build_id) - dataset_name = "" - if (e.datastore_name is not None and e.datafile_name is not None): - dataset_name = e.dataset_name - datastore = Datastore.get(aml_workspace, e.datastore_name) - data_path = [(datastore, e.datafile_name)] - dataset = Dataset.Tabular.from_delimited_files(path=data_path) - dataset.register(workspace=aml_workspace, - name=e.dataset_name, - description="dataset with training data", - create_new_version=True) + # Get dataset name + dataset_name = e.dataset_name + + # Check to see if dataset exists + if (dataset_name not in aml_workspace.datasets): + # Create dataset from diabetes sample data + sample_data = load_diabetes() + df = pd.DataFrame( + data=sample_data.data, + columns=sample_data.feature_names) + df['Y'] = sample_data.target + file_name = 'diabetes.csv' + df.to_csv(file_name, index=False) + + # Upload file to default datastore in workspace + default_ds = aml_workspace.get_default_datastore() + target_path = 'training-data/' + default_ds.upload_files( + files=[file_name], + target_path=target_path, + overwrite=True, + show_progress=False) + + # Register dataset + path_on_datastore = os.path.join(target_path, file_name) + dataset = Dataset.Tabular.from_delimited_files( + path=(default_ds, path_on_datastore)) + dataset = dataset.register( + workspace=aml_workspace, + name=dataset_name, + description='diabetes training data', + tags={'format': 'CSV'}, + create_new_version=True) + + # Get the dataset + dataset = Dataset.get_by_name(aml_workspace, dataset_name) + + # Create a PipelineData to pass data between steps + pipeline_data = PipelineData( + 'pipeline_data', + datastore=aml_workspace.get_default_datastore()) train_step = PythonScriptStep( name="Train Model", script_name=e.train_script_path, compute_target=aml_compute, source_directory=e.sources_directory_train, + inputs=[dataset.as_named_input('training_data')], + outputs=[pipeline_data], arguments=[ "--build_id", build_id_param, "--model_name", model_name_param, - "--dataset_name", dataset_name, + "--step_output", pipeline_data ], runconfig=run_config, allow_reuse=False, @@ -91,9 +127,11 @@ def main(): script_name=e.register_script_path, compute_target=aml_compute, source_directory=e.sources_directory_train, + inputs=[pipeline_data], arguments=[ "--build_id", build_id_param, "--model_name", model_name_param, + "--step_input", pipeline_data, ], runconfig=run_config, allow_reuse=False, diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index c3f30e72..2386a5b3 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -41,8 +41,6 @@ def __init__(self): self._score_script = os.environ.get("SCORE_SCRIPT") self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI") self._teamproject_name = os.environ.get("SYSTEM_TEAMPROJECT") - self._datastore_name = os.environ.get("DATASTORE_NAME") - self._datafile_name = os.environ.get("DATAFILE_NAME") self._dataset_name = os.environ.get("DATASET_NAME") self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") self._allow_run_cancel = os.environ.get( @@ -152,14 +150,6 @@ def collection_uri(self): def teamproject_name(self): return self._teamproject_name - @property - def datastore_name(self): - return self._datastore_name - - @property - def datafile_name(self): - return self._datafile_name - @property def dataset_name(self): return self._dataset_name From b97140c5a68e092ce100d0d62ec22ccafe924163 Mon Sep 17 00:00:00 2001 From: sbaidachni Date: Thu, 20 Feb 2020 10:14:51 -0800 Subject: [PATCH 038/109] run unit tests in any case (#199) --- .pipelines/azdo-base-pipeline.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/azdo-base-pipeline.yml index 479596f1..03eb2517 100644 --- a/.pipelines/azdo-base-pipeline.yml +++ b/.pipelines/azdo-base-pipeline.yml @@ -5,6 +5,7 @@ steps: - script: | python -m pytest . --cov=diabetes_regression --cov-report=html --cov-report=xml --junitxml=unit-testresults.xml + condition: succeededOrFailed() displayName: 'Run unit tests' - task: PublishTestResults@2 From 171a27f33457daec66e388b3d755e6fcdb9da231 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Thu, 20 Feb 2020 13:02:01 -0800 Subject: [PATCH 039/109] Getting started refactoring (#197) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * State explicitly the flow order (Template as it is with Diabetes-> Bootstrap with your project code) * Fix “multistage pipeline structure” explanation * Clarify the R approach. It has only the model training. There is no evaluation/registration * Fix the confusion with AzureResourceConnection and WORKSPACE_SVC_CONNECTION * Explain using of a Docker image in the pipeline * Link to bring-your-own-code (Bryan’s) article * Fix broken links (e.g. diabetes_regression-ci-build-train.yml) * Provide ML Service connection screenshot * Explain explicit "diabetes" names. (e.g. The repo contains a sample “diabetes regression” project so here and there all names contain "diabetes") * Clarify the folder structure (Common folders (e.g. .pipelines, ml_service) vs Project folders (e.g. diabetes_regression)) --- bootstrap/README.md | 4 +- docs/code_description.md | 25 +++++++-- docs/getting_started.md | 53 ++++++++++--------- docs/images/ml-ws-svc-connection.png | Bin 0 -> 61526 bytes environment_setup/iac-create-environment.yml | 2 +- environment_setup/iac-remove-environment.yml | 2 +- 6 files changed, 54 insertions(+), 32 deletions(-) create mode 100644 docs/images/ml-ws-svc-connection.png diff --git a/bootstrap/README.md b/bootstrap/README.md index 1a4551a9..438c4d02 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -1,6 +1,6 @@ # Bootstrap from MLOpsPython repository -To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstraping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. +To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstrapping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. To bootstrap from the existing MLOpsPython repository clone this repository, ensure Python is installed locally, and run bootstrap.py script as below @@ -8,4 +8,6 @@ To bootstrap from the existing MLOpsPython repository clone this repository, ens Where `[dirpath]` is the absolute path to the root of your directory where MLOps repo is cloned and `[projectname]` is the name of your ML project. +The script renames folders, files and files' content from the base project name `diabetes` to your project name. However, you might need to manually rename variables defined in a variable group and their values. + [This article](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) will also assist to use this code template for your own ML project. diff --git a/docs/code_description.md b/docs/code_description.md index 1b0b710d..3ef54603 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -29,6 +29,8 @@ High level directory structure for this repository: ├── README.md <- The top-level README for developers using this project. ``` +The repository provides a template with folders structure suitable for maintaining multiple ML projects. There are common folders such as ***.pipelines***, ***environment_setup***, ***ml_service*** and folders containing the code base for each ML project. This repository contains a single sample ML project in the ***diabetes_regression*** folder. This folder is going to be automatically renamed to your project name if you follow the [bootstrap procedure](../bootstrap/README.md). + ### Environment Setup - `environment_setup/install_requirements.sh` : This script prepares a local conda environment i.e. install the Azure ML SDK and the packages specified in environment definitions. @@ -44,6 +46,12 @@ High level directory structure for this repository: - `.pipelines/azdo-base-pipeline.yml` : a pipeline template used by ci-build-train pipeline and pr-build-train pipelines. It contains steps performing linting, data and unit testing. - `.pipelines/diabetes_regression-ci-build-train.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. - `.pipelines/azdo-pr-build-train.yml` : a pipeline triggered when a **pull request** to the **master** branch is created. It performs linting, data integrity testing and unit testing only. +- `.pipelines/diabetes_regression-ci-image.yml` : a pipeline building a scoring image for the diabetes regression model. +- `.pipelines/diabetes_regression-template-get-model-version.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci-build-train.yml` pipeline. It finds out if a new model was registered and retrieves a version of the new model. +- `.pipelines/azdo-abtest-pipeline.yml` : a pipeline demonstrating [Canary deployment strategy](./docs/canary_ab_deployment.md). +- `.pipelines/azdo-helm-*.yml` : pipeline templates used by the `.pipelines/azdo-abtest-pipeline.yml` pipeline. + + ### ML Services @@ -60,17 +68,26 @@ High level directory structure for this repository: - `diabetes_regression/conda_dependencies.yml` : Conda environment definition for the environment used for both training and scoring (Docker image in which train.py and score.py are run). - `diabetes_regression/ci_dependencies.yml` : Conda environment definition for the CI environment. -### Code +### Training Step - `diabetes_regression/training/train.py` : a training step of an ML training pipeline. -- `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. -- `diabetes_regression/evaluate/register_model.py` : (LEGACY) registers a new trained model if evaluation shows the new model is more performant than the previous one. - `diabetes_regression/training/R/r_train.r` : training a model with R basing on a sample dataset (weight_data.csv). - `diabetes_regression/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute - `diabetes_regression/training/R/train_with_r_on_databricks.py` : a python wrapper (ML Pipeline Step) invoking R training script on Databricks Compute - `diabetes_regression/training/R/weight_data.csv` : a sample dataset used by R script (r_train.r) to train a model +- `diabetes_regression/training/R/test_train.py` : a unit test for the training script(s) + +### Evaluation Step + +- `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. + +### Registering Step + +- `diabetes_regression/evaluate/register_model.py` : registers a new trained model if evaluation shows the new model is more performant than the previous one. ### Scoring - `diabetes_regression/scoring/score.py` : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. -- `diabetes_regression/scoring/inference_config.yml`, deployment_config_aci.yml, deployment_config_aks.yml : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. +- `diabetes_regression/scoring/inference_config.yml`, `deployment_config_aci.yml`, `deployment_config_aks.yml` : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. +- `diabetes_regression/scoring/scoreA.py`, `diabetes_regression/scoring/scoreB.py` : simplified scoring files for the [Canary deployment sample](./docs/canary_ab_deployment.md). + diff --git a/docs/getting_started.md b/docs/getting_started.md index 01352484..cb249d48 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -13,27 +13,10 @@ If you already have an Azure DevOps organization, create a [new project](https:/ * Fork this repository if there is a desire to contribute back to the repository else * Use this [code template](https://github.com/microsoft/MLOpsPython/generate) which copies the entire code base to your own GitHub location with the git commit history restarted. This can be used for learning and following the guide. -If the desire is to use this project for your machine learning code, follow the [bootstrap instructions](../bootstrap/README.md) after the code template is complete. +This repository contains a template and demonstrates how to apply it to a sample ML project ***diabetes_regression*** that creates a linear regression model to predict the diabetes. -## Create an ARM Service Connection to deploy resources +If the desire is to adopt this template for your project and to use it with your machine learning code, it is recommended to go through this guide as it is first. This ensures everything is working on your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into your project starting point. -This repository includes a YAML pipeline definition file for an Azure DevOps pipeline that will create the Azure ML workspace and associated resources through Azure Resource Manager. - -The pipeline requires an **Azure Resource Manager** -[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). -Given this service connection, you will be able to run the IaC pipeline -and have the required permissions to generate resources. - -![create service connection](./images/create-rm-service-connection.png) - -Use **``AzureResourceConnection``** as the connection name, since it is used -in the IaC pipeline definition. Leave the **``Resource Group``** field empty. - -**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. -You must also have sufficient permissions to register an application with -your Azure AD tenant, or receive the ID and secret of a service principal -from your Azure AD Administrator. That principal must have 'Contributor' -permissions on the subscription. ## Create a Variable Group for your Pipeline @@ -58,6 +41,7 @@ The variable group should contain the following required variables: | LOCATION | centralus | | RESOURCE_GROUP | mlops-RG | | WORKSPACE_NAME | mlops-AML-WS | +| AZURE_RM_SVC_CONNECTION | azure-resource-connection| | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | | ACI_DEPLOYMENT_NAME | diabetes-aci | @@ -75,6 +59,19 @@ the BASE_NAME value should not exceed 10 characters and it should contain number The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. +The **AZURE_RM_SVC_CONNECTION** parameter is used by the [Azure DevOps pipeline]((../environment_setup/iac-create-environment.yml)) that creates the Azure ML workspace and associated resources through Azure Resource Manager. The pipeline requires an **Azure Resource Manager** +[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). + +![create service connection](./images/create-rm-service-connection.png) + +Leave the **``Resource Group``** field empty. + +**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. +You must also have sufficient permissions to register an application with +your Azure AD tenant, or receive the ID and secret of a service principal +from your Azure AD Administrator. That principal must have 'Contributor' +permissions on the subscription. + The **WORKSPACE_SVC_CONNECTION** parameter is used to reference a service connection for the Azure ML workspace. You will create this after provisioning the workspace (we recommend using the IaC pipeline as described below), and installing the Azure ML extension in your Azure DevOps project. Optionally, a **DATASET_NAME** parameter can be used to reference a training dataset that you have registered in your Azure ML workspace (more details below). @@ -139,6 +136,8 @@ so that you can set up a service connection to your AML workspace. Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group above. +![created resources](./images/ml-ws-svc-connection.png) + **Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. You must also have sufficient permissions to register an application with your Azure AD tenant, or receive the ID and secret of a service principal @@ -152,15 +151,14 @@ you can set up the pipeline necessary for deploying your ML model to production. The pipeline has a sequence of stages for: 1. **Model Code Continuous Integration:** triggered on code change to master branch on GitHub, -performs linting, unit testing, publishes a training pipeline, and runs the published training pipeline to train, evaluate, and register a model. -1. **Train Model**: invokes the Azure ML service to trigger model training. -1. **Release Deployment:** deploys a model to QA (ACI) and Prod (AKS) -environments, or alternatively to Azure App Service. +performs linting, unit testing and publishes a training pipeline. +1. **Train Model**: invokes the Azure ML service to trigger the published training pipeline to train, evaluate, and register a model. +1. **Release Deployment:** deploys a model to ACI, AKS and Azure App Service environments. ### Set up the Pipeline In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [diabetes_regression-ci-build-train.yml](../.pipelines/azdo-ci-build-train.yml) +pipeline referring to the [diabetes_regression-ci-build-train.yml](./.pipelines/azdo-ci-build-train.yml) pipeline definition in your forked repository: ![configure ci build pipeline](./images/ci-build-pipeline-configure.png) @@ -175,6 +173,7 @@ and check out the published training pipeline in the **mlops-AML-WS** workspace Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch. + * The first stage of the pipeline, **Model CI**, performs linting, unit testing, build and publishes an **ML Training Pipeline** in an **ML Workspace**. **Note:** The build pipeline also supports building and publishing ML @@ -188,7 +187,7 @@ with R on Azure ML Compute. You will also need to uncomment (i.e. include) the to train a model with R on Databricks. You will need to manually create a Databricks cluster and attach it to the ML Workspace as a compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be -specified). +specified). Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. * The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, allowing the pipeline to wait for training completion for hours or even days without using agent resources. @@ -196,6 +195,8 @@ specified). * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. +The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](./environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. + Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: ![trained model](./images/trained-model.png) @@ -253,6 +254,8 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta # Next steps +* You may wish to follow the [bootstrap instructions](../bootstrap/README.md) to create a starting point for your project use case. +* Use the [Convert ML experimental code to production code](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) tutorial which explains how to bring your machine learning code on top of this template. * The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. * You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. * You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. diff --git a/docs/images/ml-ws-svc-connection.png b/docs/images/ml-ws-svc-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..66c3b3f1a0760dab5bfa89a2c0cffab70ca96cc8 GIT binary patch literal 61526 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 a0B`*3!?9XZ(UxQI-)*_OvUxIwf&T-2%kCur literal 0 HcmV?d00001 diff --git a/environment_setup/iac-create-environment.yml b/environment_setup/iac-create-environment.yml index f4c08ddf..c63789b4 100644 --- a/environment_setup/iac-create-environment.yml +++ b/environment_setup/iac-create-environment.yml @@ -23,7 +23,7 @@ variables: steps: - task: AzureResourceGroupDeployment@2 inputs: - azureSubscription: 'AzureResourceConnection' + azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' action: 'Create Or Update Resource Group' resourceGroupName: '$(RESOURCE_GROUP)' location: $(LOCATION) diff --git a/environment_setup/iac-remove-environment.yml b/environment_setup/iac-remove-environment.yml index 2892bf5c..a3ea5cc2 100644 --- a/environment_setup/iac-remove-environment.yml +++ b/environment_setup/iac-remove-environment.yml @@ -11,7 +11,7 @@ variables: steps: - task: AzureResourceGroupDeployment@2 inputs: - azureSubscription: 'AzureResourceConnection' + azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' action: 'DeleteRG' resourceGroupName: '$(RESOURCE_GROUP)' location: $(LOCATION) From 07da4efa5089de3a2135c1d42a21ea3bc57ac792 Mon Sep 17 00:00:00 2001 From: Roman Lytvyn Date: Thu, 20 Feb 2020 22:15:57 +0100 Subject: [PATCH 040/109] fix model input features (#198) Co-authored-by: Eugene Fedorenko --- diabetes_regression/scoring/score.py | 4 ++-- diabetes_regression/training/train.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/diabetes_regression/scoring/score.py b/diabetes_regression/scoring/score.py index e6c77aa8..4acd5c8d 100644 --- a/diabetes_regression/scoring/score.py +++ b/diabetes_regression/scoring/score.py @@ -48,8 +48,8 @@ def init(): input_sample = numpy.array([ - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]) + [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], + [10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0]]) output_sample = numpy.array([ 5021.509689995557, 3693.645386402646]) diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index e3bdca27..6e40c2b7 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -95,8 +95,8 @@ def main(): dataset = run.input_datasets['training_data'] if (dataset): df = dataset.to_pandas_dataframe() - X = df.values - y = df.Y + X = df.drop('Y', axis=1).values + y = df['Y'].values else: e = ("No dataset provided") print(e) From eb3dc02ea7175f1f1771ed0ac2f21231ecf1556b Mon Sep 17 00:00:00 2001 From: Tom Care Date: Fri, 21 Feb 2020 12:17:27 -0800 Subject: [PATCH 041/109] Add basic descriptions to YAML pipelines (#200) * Add basic descriptions to YAML pipelines * Updated comments to address review feedback * Add missing feedback fix --- .pipelines/azdo-abtest-pipeline.yml | 3 +-- .pipelines/azdo-base-pipeline.yml | 1 + .pipelines/azdo-helm-install.yml | 3 ++- .pipelines/azdo-helm-upgrade.yml | 3 ++- .pipelines/azdo-pr-build-train.yml | 1 + .pipelines/diabetes_regression-ci-build-train.yml | 2 ++ .pipelines/diabetes_regression-ci-image.yml | 6 +++--- .../diabetes_regression-template-get-model-version.yml | 1 + .pipelines/diabetes_regression-variables.yml | 6 +++++- environment_setup/docker-image-pipeline.yml | 1 + environment_setup/iac-create-environment.yml | 1 + environment_setup/iac-remove-environment.yml | 1 + 12 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/azdo-abtest-pipeline.yml index 9d2415a6..2a395594 100644 --- a/.pipelines/azdo-abtest-pipeline.yml +++ b/.pipelines/azdo-abtest-pipeline.yml @@ -1,3 +1,4 @@ +# Pipeline for the canary deployment workflow. pr: none trigger: branches: @@ -23,7 +24,6 @@ variables: - name: 'SCORE_SCRIPT' value: 'scoreA.py' - stages: - stage: 'Building' jobs: @@ -50,7 +50,6 @@ stages: - publish: $(System.DefaultWorkingDirectory)/charts artifact: allcharts - - stage: 'Blue_Staging' jobs: - deployment: "Deploy_to_Staging" diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/azdo-base-pipeline.yml index 03eb2517..afaf7a9a 100644 --- a/.pipelines/azdo-base-pipeline.yml +++ b/.pipelines/azdo-base-pipeline.yml @@ -1,3 +1,4 @@ +# Pipeline template to run linting, unit tests with code coverage, and publish the results. steps: - script: | flake8 --output-file=lint-testresults.xml --format junit-xml diff --git a/.pipelines/azdo-helm-install.yml b/.pipelines/azdo-helm-install.yml index fc5eac6f..a4dbd581 100644 --- a/.pipelines/azdo-helm-install.yml +++ b/.pipelines/azdo-helm-install.yml @@ -1,9 +1,10 @@ +# Pipeline template for installing helm on the agent. steps: - task: Bash@3 displayName: 'Install Helm $(helmVersion)' inputs: targetType: inline - script: wget -q $(helmDownloadURL) -O /tmp/$FILENAME && tar -zxvf /tmp/$FILENAME -C /tmp && sudo mv /tmp/linux-amd64/helm /usr/local/bin/helm + script: wget -q $(helmDownloadURL) -O /tmp/$FILENAME && tar -zxvf /tmp/$FILENAME -C /tmp && sudo mv /tmp/linux-amd64/helm /usr/local/bin/helm env: HELM_VERSION: $(helmVersion) FILENAME: helm-$(helmVersion)-linux-amd64.tar.gz diff --git a/.pipelines/azdo-helm-upgrade.yml b/.pipelines/azdo-helm-upgrade.yml index 949ddde7..11b9616b 100644 --- a/.pipelines/azdo-helm-upgrade.yml +++ b/.pipelines/azdo-helm-upgrade.yml @@ -1,8 +1,9 @@ +# Pipeline template for deploying / upgrading using Helm. parameters: chartPath: '' releaseName: '' overrideValues: '' - + steps: - template: azdo-helm-install.yml - task: HelmDeploy@0 diff --git a/.pipelines/azdo-pr-build-train.yml b/.pipelines/azdo-pr-build-train.yml index a9d3ce74..ef00f2eb 100644 --- a/.pipelines/azdo-pr-build-train.yml +++ b/.pipelines/azdo-pr-build-train.yml @@ -1,3 +1,4 @@ +# Pipeline to run basic code quality tests as part of pull requests to the master branch. trigger: none pr: branches: diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index 9d9ed3b1..1b143907 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -1,3 +1,4 @@ +# Continuous Integration (CI) pipeline that orchestrates the training, evaluation, registration, deployment, and testing of the diabetes_regression model. pr: none trigger: branches: @@ -84,6 +85,7 @@ stages: timeoutInMinutes: 0 steps: - template: diabetes_regression-template-get-model-version.yml + - stage: 'Deploy_ACI' displayName: 'Deploy to ACI' dependsOn: Trigger_AML_Pipeline diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index 0da7875e..3b112d5a 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -1,3 +1,4 @@ +# Builds the container image that is used by other pipelines for scoring. pr: none trigger: branches: @@ -10,7 +11,7 @@ trigger: - diabetes_regression/scoring/ exclude: - diabetes_regression/scoring/deployment_config_aci.yml - - diabetes_regression/scoring/deployment_config_aks.yml + - diabetes_regression/scoring/deployment_config_aks.yml pool: vmImage: 'ubuntu-latest' @@ -23,7 +24,6 @@ variables: value: 'scoreB.py' steps: - - task: AzureCLI@1 inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' @@ -32,6 +32,6 @@ steps: inlineScript: | set -e export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python3 -m ml_service.util.create_scoring_image + python3 -m ml_service.util.create_scoring_image displayName: 'Create Scoring Image' diff --git a/.pipelines/diabetes_regression-template-get-model-version.yml b/.pipelines/diabetes_regression-template-get-model-version.yml index 8fc29b2c..90f684f7 100644 --- a/.pipelines/diabetes_regression-template-get-model-version.yml +++ b/.pipelines/diabetes_regression-template-get-model-version.yml @@ -1,3 +1,4 @@ +# Pipeline template that attempts to get the latest model version and adds it to the environment for subsequent tasks to use. steps: - task: AzureCLI@1 inputs: diff --git a/.pipelines/diabetes_regression-variables.yml b/.pipelines/diabetes_regression-variables.yml index 5d7bc7ef..4423cc60 100644 --- a/.pipelines/diabetes_regression-variables.yml +++ b/.pipelines/diabetes_regression-variables.yml @@ -1,8 +1,10 @@ +# Pipeline template that defines common runtime environment variables. variables: # Azure ML Workspace Variables - name: EXPERIMENT_NAME value: mlopspython - # AML Compute Cluster Config + + # AML Compute Cluster Config - name: AML_COMPUTE_CLUSTER_CPU_SKU value: STANDARD_DS2_V2 - name: AML_COMPUTE_CLUSTER_NAME @@ -13,6 +15,7 @@ variables: value: 4 - name: AML_CLUSTER_PRIORITY value: lowpriority + # Training Config - name: BUILD_TRAIN_SCRIPT value: diabetes_regression_build_train_pipeline.py @@ -22,6 +25,7 @@ variables: value: sklearn_regression_model.pkl - name: MODEL_VERSION value: "1" + # AML Pipeline Config - name: TRAINING_PIPELINE_NAME value: "diabetes-Training-Pipeline" diff --git a/environment_setup/docker-image-pipeline.yml b/environment_setup/docker-image-pipeline.yml index 7678d96d..f15ff290 100644 --- a/environment_setup/docker-image-pipeline.yml +++ b/environment_setup/docker-image-pipeline.yml @@ -1,3 +1,4 @@ +# Pipeline that builds and pushes the microsoft/mlopspython image. resources: - repo: self diff --git a/environment_setup/iac-create-environment.yml b/environment_setup/iac-create-environment.yml index c63789b4..f21c6eab 100644 --- a/environment_setup/iac-create-environment.yml +++ b/environment_setup/iac-create-environment.yml @@ -1,3 +1,4 @@ +# CI/PR Pipeline that deploys an ARM template to create or update the resources needed by the other pipelines. trigger: branches: include: diff --git a/environment_setup/iac-remove-environment.yml b/environment_setup/iac-remove-environment.yml index a3ea5cc2..39ff9e7a 100644 --- a/environment_setup/iac-remove-environment.yml +++ b/environment_setup/iac-remove-environment.yml @@ -1,3 +1,4 @@ +# Pipeline that removes the resources created by the IaC Create Environment pipeline. pr: none trigger: none From 9e199bf3c5580424176b01a550c7d25f159831c2 Mon Sep 17 00:00:00 2001 From: Steve Haigh Date: Fri, 21 Feb 2020 20:44:05 +0000 Subject: [PATCH 042/109] Clarify that web app must exist for the deploy to work (#201) --- docs/getting_started.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index cb249d48..a93b9fa5 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -234,11 +234,13 @@ scoring service on Azure App Service](https://docs.microsoft.com/en-us/azure/mac In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variable: -| Variable Name | Suggested Value | -| ---------------------- | --------------- | -| WEBAPP_DEPLOYMENT_NAME | mlopswebapp | +| Variable Name | Suggested Value | +| ---------------------- | ---------------------- | +| WEBAPP_DEPLOYMENT_NAME | _name of your web app_ | -Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. Delete the **ACI_DEPLOYMENT_NAME** variable. +Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must exist before you can deploy the model to it. + +Delete the **ACI_DEPLOYMENT_NAME** variable. The pipeline uses the [Create Image Script](../ml_service/util/create_scoring_image.py) to create a scoring image. The image From d7c71bb680ee10d70e433347fe0d8f7b84915d83 Mon Sep 17 00:00:00 2001 From: Steve Haigh Date: Sat, 22 Feb 2020 00:24:40 +0000 Subject: [PATCH 043/109] Use correct parameter names in web app deploy (#202) --- .pipelines/diabetes_regression-ci-build-train.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index 1b143907..ce9ced1d 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -182,7 +182,8 @@ stages: inputs: azureSubscription: 'AzureResourceConnection' appName: '$(WEBAPP_DEPLOYMENT_NAME)' - containers: '$(IMAGE_LOCATION)' + resourceGroupName: '$(RESOURCE_GROUP)' + imageName: '$(IMAGE_LOCATION)' - task: AzureCLI@1 displayName: 'Smoke test' inputs: From 02f6d4e33924f66e106932c127d9ef05e6a18a79 Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Mon, 24 Feb 2020 20:37:33 +0100 Subject: [PATCH 044/109] Remove 60 minute job timeout #203 --- .pipelines/diabetes_regression-ci-build-train.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index ce9ced1d..b9283d0a 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -66,6 +66,7 @@ stages: - job: "Run_ML_Pipeline" dependsOn: "Get_Pipeline_ID" displayName: "Trigger ML Training Pipeline" + timeoutInMinutes: 0 pool: server variables: AMLPIPELINE_ID: $[ dependencies.Get_Pipeline_ID.outputs['getpipelineid.AMLPIPELINEID'] ] From 166c6549cdede7a09245704eb7a45fc7371ae6c9 Mon Sep 17 00:00:00 2001 From: jotaylo Date: Mon, 24 Feb 2020 12:08:46 -0800 Subject: [PATCH 045/109] fix hard coded subscription reference (#205) --- .pipelines/diabetes_regression-ci-build-train.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index b9283d0a..f60d11db 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -181,7 +181,7 @@ stages: name: WebAppDeploy displayName: 'Azure Web App on Container Deploy' inputs: - azureSubscription: 'AzureResourceConnection' + azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' appName: '$(WEBAPP_DEPLOYMENT_NAME)' resourceGroupName: '$(RESOURCE_GROUP)' imageName: '$(IMAGE_LOCATION)' From b0da6451c1aa51a8754e16a73e2f657201427fbb Mon Sep 17 00:00:00 2001 From: jotaylo Date: Tue, 25 Feb 2020 09:15:50 -0800 Subject: [PATCH 046/109] Enable deploy of model registered by previous build (#207) Allows you to skip the first two stages of the pipeline and deploy a model registered by a previous build by setting the variable MODEL_BUILD_ID to the previous build's id when queuing the pipeline. This speeds up the process of fixing issues with the scoring or deployment configuration. --- .pipelines/diabetes_regression-ci-build-train.yml | 6 ++++-- ...betes_regression-template-get-model-version.yml | 2 +- .pipelines/diabetes_regression-variables.yml | 5 +++++ README.md | 2 +- docs/getting_started.md | 14 +++++++------- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index f60d11db..9c653978 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -21,6 +21,7 @@ pool: stages: - stage: 'Model_CI' displayName: 'Model CI' + condition: not(variables['MODEL_BUILD_ID']) jobs: - job: "Model_CI_Pipeline" displayName: "Model CI Pipeline" @@ -42,6 +43,7 @@ stages: - stage: 'Trigger_AML_Pipeline' displayName: 'Train model' + condition: not(variables['MODEL_BUILD_ID']) jobs: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) @@ -90,7 +92,7 @@ stages: - stage: 'Deploy_ACI' displayName: 'Deploy to ACI' dependsOn: Trigger_AML_Pipeline - condition: and(succeeded(), variables['ACI_DEPLOYMENT_NAME']) + condition: and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['ACI_DEPLOYMENT_NAME']) jobs: - job: "Deploy_ACI" displayName: "Deploy to ACI" @@ -157,7 +159,7 @@ stages: - stage: 'Deploy_Webapp' displayName: 'Deploy to Webapp' dependsOn: Trigger_AML_Pipeline - condition: and(succeeded(), variables['WEBAPP_DEPLOYMENT_NAME']) + condition: and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['WEBAPP_DEPLOYMENT_NAME']) jobs: - job: "Deploy_Webapp" displayName: "Deploy to Webapp" diff --git a/.pipelines/diabetes_regression-template-get-model-version.yml b/.pipelines/diabetes_regression-template-get-model-version.yml index 90f684f7..870985a6 100644 --- a/.pipelines/diabetes_regression-template-get-model-version.yml +++ b/.pipelines/diabetes_regression-template-get-model-version.yml @@ -7,7 +7,7 @@ steps: inlineScript: | set -e # fail on error export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.pipelines.diabetes_regression_verify_train_pipeline --build_id $(Build.BuildId) --output_model_version_file "model_version.txt" + python -m ml_service.pipelines.diabetes_regression_verify_train_pipeline --build_id $(modelbuildid) --output_model_version_file "model_version.txt" # Output model version to Azure DevOps job MODEL_VERSION="$(cat model_version.txt)" echo "##vso[task.setvariable variable=MODEL_VERSION]$MODEL_VERSION" diff --git a/.pipelines/diabetes_regression-variables.yml b/.pipelines/diabetes_regression-variables.yml index 4423cc60..ef27bf5a 100644 --- a/.pipelines/diabetes_regression-variables.yml +++ b/.pipelines/diabetes_regression-variables.yml @@ -51,3 +51,8 @@ variables: # value: "true" # - name: ALLOW_RUN_CANCEL # value: "true" + + # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time + # to skip training and deploy a model registered by a previous build. + - name: modelbuildid + value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] \ No newline at end of file diff --git a/README.md b/README.md index 324f3249..77d9024f 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ You can find the details of the code and scripts in the repository [here](/docs/ - [Azure ML Python SDK Quickstart](https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-create-workspace-with-python) - [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/?view=vsts) -# Contributing +## Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us diff --git a/docs/getting_started.md b/docs/getting_started.md index a93b9fa5..936b01c3 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -17,7 +17,6 @@ This repository contains a template and demonstrates how to apply it to a sample If the desire is to adopt this template for your project and to use it with your machine learning code, it is recommended to go through this guide as it is first. This ensures everything is working on your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into your project starting point. - ## Create a Variable Group for your Pipeline We make use of a variable group inside Azure DevOps to store variables and their @@ -173,7 +172,6 @@ and check out the published training pipeline in the **mlops-AML-WS** workspace Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch. - * The first stage of the pipeline, **Model CI**, performs linting, unit testing, build and publishes an **ML Training Pipeline** in an **ML Workspace**. **Note:** The build pipeline also supports building and publishing ML @@ -187,7 +185,7 @@ with R on Azure ML Compute. You will also need to uncomment (i.e. include) the to train a model with R on Databricks. You will need to manually create a Databricks cluster and attach it to the ML Workspace as a compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be -specified). Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. +specified). Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. * The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, allowing the pipeline to wait for training completion for hours or even days without using agent resources. @@ -195,7 +193,7 @@ specified). Example ML pipelines using R have a single step to train a model. Th * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. -The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](./environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. +The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](./environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: @@ -203,6 +201,8 @@ Wait until the pipeline finishes and verify that there is a new model in the **M To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. +To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the id of the previous build. + ### Deploy the Model to Azure Kubernetes Service The final stage is to deploy the model to the production environment running on @@ -238,7 +238,7 @@ In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the va | ---------------------- | ---------------------- | | WEBAPP_DEPLOYMENT_NAME | _name of your web app_ | -Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must exist before you can deploy the model to it. +Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must exist before you can deploy the model to it. Delete the **ACI_DEPLOYMENT_NAME** variable. @@ -254,10 +254,10 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta ![build](./images/multi-stage-webapp.png) -# Next steps +## Next steps * You may wish to follow the [bootstrap instructions](../bootstrap/README.md) to create a starting point for your project use case. -* Use the [Convert ML experimental code to production code](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) tutorial which explains how to bring your machine learning code on top of this template. +* Use the [Convert ML experimental code to production code](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) tutorial which explains how to bring your machine learning code on top of this template. * The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. * You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. * You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. From 1dbb72c400eed6920254c81ff6e3747a0f4f65a1 Mon Sep 17 00:00:00 2001 From: jotaylo Date: Tue, 25 Feb 2020 15:57:46 -0800 Subject: [PATCH 047/109] fixing pipeline condition (#209) Fixing regression introduced in #207 - don't continue pipeline on lint/unit test errors. --- .pipelines/diabetes_regression-ci-build-train.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index 9c653978..afb69c5e 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -43,7 +43,7 @@ stages: - stage: 'Trigger_AML_Pipeline' displayName: 'Train model' - condition: not(variables['MODEL_BUILD_ID']) + condition: and(succeeded(), not(variables['MODEL_BUILD_ID'])) jobs: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) From 73602bd78c734799cd6faa39dc514a7eaeb3a48a Mon Sep 17 00:00:00 2001 From: Alexandre Gattiker Date: Wed, 26 Feb 2020 17:48:37 +0100 Subject: [PATCH 048/109] Configuration for environment customization (#206) --- .pipelines/azdo-abtest-pipeline.yml | 8 +- .pipelines/azdo-pr-build-train.yml | 10 +- .../diabetes_regression-ci-build-train.yml | 18 ++-- .pipelines/diabetes_regression-ci-image.yml | 8 +- bootstrap/README.md | 10 ++ docs/custom_container.md | 99 +++++++++++++++++++ docs/getting_started.md | 5 +- 7 files changed, 146 insertions(+), 12 deletions(-) create mode 100644 docs/custom_container.md diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/azdo-abtest-pipeline.yml index 2a395594..f532c33c 100644 --- a/.pipelines/azdo-abtest-pipeline.yml +++ b/.pipelines/azdo-abtest-pipeline.yml @@ -1,4 +1,10 @@ # Pipeline for the canary deployment workflow. + +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + pr: none trigger: branches: @@ -31,7 +37,7 @@ stages: timeoutInMinutes: 0 pool: vmImage: 'ubuntu-latest' - container: mcr.microsoft.com/mlops/python:latest + container: mlops steps: - task: AzureCLI@1 inputs: diff --git a/.pipelines/azdo-pr-build-train.yml b/.pipelines/azdo-pr-build-train.yml index ef00f2eb..9c48202a 100644 --- a/.pipelines/azdo-pr-build-train.yml +++ b/.pipelines/azdo-pr-build-train.yml @@ -1,4 +1,10 @@ # Pipeline to run basic code quality tests as part of pull requests to the master branch. + +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + trigger: none pr: branches: @@ -8,11 +14,11 @@ pr: pool: vmImage: 'ubuntu-latest' -container: mcr.microsoft.com/mlops/python:latest +container: mlops variables: - template: diabetes_regression-variables.yml - group: devopsforai-aml-vg steps: -- template: azdo-base-pipeline.yml \ No newline at end of file +- template: azdo-base-pipeline.yml diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci-build-train.yml index afb69c5e..96cf1d26 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci-build-train.yml @@ -1,4 +1,10 @@ # Continuous Integration (CI) pipeline that orchestrates the training, evaluation, registration, deployment, and testing of the diabetes_regression model. + +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + pr: none trigger: branches: @@ -25,7 +31,7 @@ stages: jobs: - job: "Model_CI_Pipeline" displayName: "Model CI Pipeline" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - template: azdo-base-pipeline.yml @@ -48,7 +54,7 @@ stages: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) displayName: "Get Pipeline ID for execution" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - task: AzureCLI@1 @@ -84,7 +90,7 @@ stages: dependsOn: "Run_ML_Pipeline" condition: always() displayName: "Determine if evaluation succeeded and new model is registered" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - template: diabetes_regression-template-get-model-version.yml @@ -96,7 +102,7 @@ stages: jobs: - job: "Deploy_ACI" displayName: "Deploy to ACI" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - template: diabetes_regression-template-get-model-version.yml @@ -129,7 +135,7 @@ stages: jobs: - job: "Deploy_AKS" displayName: "Deploy to AKS" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - template: diabetes_regression-template-get-model-version.yml @@ -163,7 +169,7 @@ stages: jobs: - job: "Deploy_Webapp" displayName: "Deploy to Webapp" - container: mcr.microsoft.com/mlops/python:latest + container: mlops timeoutInMinutes: 0 steps: - template: diabetes_regression-template-get-model-version.yml diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index 3b112d5a..a3ab2937 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -1,4 +1,10 @@ # Builds the container image that is used by other pipelines for scoring. + +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + pr: none trigger: branches: @@ -16,7 +22,7 @@ trigger: pool: vmImage: 'ubuntu-latest' -container: mcr.microsoft.com/mlops/python:latest +container: mlops variables: - group: devopsforai-aml-vg diff --git a/bootstrap/README.md b/bootstrap/README.md index 438c4d02..bf7842db 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -2,6 +2,8 @@ To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstrapping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. +## Generating the project structure + To bootstrap from the existing MLOpsPython repository clone this repository, ensure Python is installed locally, and run bootstrap.py script as below `python bootstrap.py --d [dirpath] --n [projectname]` @@ -11,3 +13,11 @@ Where `[dirpath]` is the absolute path to the root of your directory where MLOps The script renames folders, files and files' content from the base project name `diabetes` to your project name. However, you might need to manually rename variables defined in a variable group and their values. [This article](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) will also assist to use this code template for your own ML project. + +## Customizing the CI and AML environments + +In your project you will want to customize your own Docker image and Conda environment to use only the dependencies and tools required for your use case. This requires you to edit the following environment definition files: +- The Azure ML training and scoring Conda environment defined in [conda_dependencies.yml](diabetes_regression/conda_dependencies.yml). +- The CI Docker image and Conda environment used by the Azure DevOps build agent. See [instructions for customizing the Azure DevOps job container](../docs/custom_container.md). + +You will want to synchronize dependency versions as appropriate between both environment definitions (for example, ML libraries used both in training and in unit tests). \ No newline at end of file diff --git a/docs/custom_container.md b/docs/custom_container.md new file mode 100644 index 00000000..fcc0e449 --- /dev/null +++ b/docs/custom_container.md @@ -0,0 +1,99 @@ +# Customizing the Azure DevOps job container + +The Model training and deployment pipeline uses a Docker container +on the Azure Pipelines agents to provide a reproducible environment +to run test and deployment code. + The image of the container +`mcr.microsoft.com/mlops/python:latest` is built with this +[Dockerfile](../environment_setup/Dockerfile). + +In your project you will want to build your own +Docker image that only contains the dependencies and tools required for your +use case. This image will be more likely smaller and therefore faster, and it +will be totally maintained by your team. + +## Provision an Azure Container Registry + +An Azure Container Registry is deployed along your Azure ML Workspace to manage models. +You can use that registry instance to store your MLOps container image as well, or +provision a separate instance. + +## Create a Registry Service Connection + +[Create a service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#sep-docreg) to your Azure Container Registry: +- As *Connection type*, select *Docker Registry* +- As *Registry type*, select *Azure Container Registry* +- As *Azure container registry*, select your Container registry instance +- As *Service connection name*, enter `acrconnection` + +## Update the environment definition + +Modify the [Dockerfile](../environment_setup/Dockerfile) and/or the +[ci_dependencies.yml](../diabetes_regression/ci_dependencies.yml) CI Conda +environment definition to tailor your environment. +Conda provides a [reusable environment for training and deployment with Azure Machine Learning](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-use-environments). +The Conda environment used for CI should use the same package versions as the Conda environment +used for the Azure ML training and scoring environments (defined in [conda_dependencies.yml](../diabetes_regression/conda_dependencies.yml)). +This enables you to run unit and integration tests using the exact same dependencies as used in the ML pipeline. + +If a package is available in a Conda package repository, then we recommend that +you use the Conda installation rather than the pip installation. Conda packages +typically come with prebuilt binaries that make installation more reliable. + +## Create a container build pipeline + +In your [Azure DevOps](https://dev.azure.com) project create a new build +pipeline referring to the +[environment_setup/docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) +pipeline definition in your forked repository. + +Edit the [environment_setup/docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) file +and modify the string `'public/mlops/python'` with an name suitable to describe your environment, +e.g. `'mlops/diabetes_regression'`. + +Save and run the pipeline. This will build and push a container image to your Azure Container Registry with +the name you have just edited. The next step is to modify the build pipeline to run the CI job on a container +run from that image. + +## Modify the model pipeline + +Modify the model pipeline file [diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml) by replacing this section: + +``` +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest +``` + +with (using the image name previously defined): + +``` +resources: + containers: + - container: mlops + image: mlops/diabetes_regression + endpoint: acrconnection +``` + +Run the pipeline and ensure your container has been used. + +## Addressing conflicting dependencies + +Especially when working in a team, it's possible for environment changes across branches to interfere with one another. + +For example, if the master branch is using scikit-learn and you create a branch to use Tensorflow instead, and you +decide to remove scikit-learn from the +[ci_dependencies.yml](../diabetes_regression/ci_dependencies.yml) Conda environment definition +and run the [docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) Docker image, +then the master branch will stop building. + +You could leave scikit-learn in addition to Tensorflow in the environment, but that is not ideal, as you would have to take an extra step to remove scikit-learn after merging your branch to master. + +A better approach would be to use a distinct name for your modified environment, such as `mlops/diabetes_regression/tensorflow`. +By changing the name of the image in your branch in both the container build pipeline +[environment_setup/docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) +and the model pipeline file +[diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml), +and running both pipelines in sequence on your branch, +you avoid any branch conflicts, and the name does not have to be changed after merging to master. diff --git a/docs/getting_started.md b/docs/getting_started.md index 936b01c3..472a7a3f 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -157,7 +157,7 @@ performs linting, unit testing and publishes a training pipeline. ### Set up the Pipeline In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [diabetes_regression-ci-build-train.yml](./.pipelines/azdo-ci-build-train.yml) +pipeline referring to the [diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml) pipeline definition in your forked repository: ![configure ci build pipeline](./images/ci-build-pipeline-configure.png) @@ -193,7 +193,7 @@ specified). Example ML pipelines using R have a single step to train a model. Th * The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. -The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](./environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. +The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](../environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: @@ -261,6 +261,7 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta * The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. * You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. * You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. +* You may want to use [Azure DevOps self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your ML pipeline execution. The Docker container image for the ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. * You can install additional Conda or pip packages by modifying the YAML environment configurations under the `diabetes_regression` directory. Make sure to use fixed version numbers for all packages to ensure reproducibility, and use the same versions across environments. * You can explore aspects of model observability in the solution, such as: * **Logging**: navigate to the Application Insights instance linked to the Azure ML Portal, From 56eb992991bb5755307abc0e5afe5d672f7c3764 Mon Sep 17 00:00:00 2001 From: jotaylo Date: Wed, 26 Feb 2020 14:25:12 -0800 Subject: [PATCH 049/109] Pipeline variables comments and clean up (#211) * adding comments for variables * update default model name --- .env.example | 2 +- .pipelines/azdo-abtest-pipeline.yml | 2 +- .pipelines/diabetes_regression-ci-image.yml | 2 +- .pipelines/diabetes_regression-variables.yml | 60 +++++++++++--------- docs/canary_ab_deployment.md | 10 ++-- ml_service/util/create_scoring_image.py | 6 +- ml_service/util/env_variables.py | 5 -- 7 files changed, 43 insertions(+), 44 deletions(-) diff --git a/.env.example b/.env.example index 68bab62c..892ecb2b 100644 --- a/.env.example +++ b/.env.example @@ -13,7 +13,6 @@ BUILD_BUILDID = '001' # Azure ML Workspace Variables WORKSPACE_NAME = 'aml-workspace' EXPERIMENT_NAME = '' -SCRIPT_FOLDER = './' # AML Compute Cluster Config AML_COMPUTE_CLUSTER_NAME = 'train-cluster' @@ -32,6 +31,7 @@ EVALUATE_SCRIPT_PATH = 'evaluate/evaluate_model.py' REGISTER_SCRIPT_PATH = 'register/register_model.py' SOURCES_DIR_TRAIN = 'diabetes_regression' DATASET_NAME = 'diabetes_ds' +SCORE_SCRIPT = 'scoring/score.py' # Optional. Used by a training pipeline with R on Databricks DB_CLUSTER_ID = '' diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/azdo-abtest-pipeline.yml index f532c33c..d6728d81 100644 --- a/.pipelines/azdo-abtest-pipeline.yml +++ b/.pipelines/azdo-abtest-pipeline.yml @@ -28,7 +28,7 @@ variables: - name: 'greenReleaseName' value: 'model-green' - name: 'SCORE_SCRIPT' - value: 'scoreA.py' + value: 'scoring/scoreA.py' stages: - stage: 'Building' diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index a3ab2937..63041db5 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -27,7 +27,7 @@ container: mlops variables: - group: devopsforai-aml-vg - name: 'SCORE_SCRIPT' - value: 'scoreB.py' + value: 'scoring/scoreB.py' steps: - task: AzureCLI@1 diff --git a/.pipelines/diabetes_regression-variables.yml b/.pipelines/diabetes_regression-variables.yml index ef27bf5a..af32282e 100644 --- a/.pipelines/diabetes_regression-variables.yml +++ b/.pipelines/diabetes_regression-variables.yml @@ -1,8 +1,32 @@ # Pipeline template that defines common runtime environment variables. variables: - # Azure ML Workspace Variables + + # Source Config + # The directory containing the scripts for training, evaluating, and registering the model + - name: SOURCES_DIR_TRAIN + value: diabetes_regression + # The path to the model training script under SOURCES_DIR_TRAIN + - name: TRAIN_SCRIPT_PATH + value: training/train.py + # The path to the model evaluation script under SOURCES_DIR_TRAIN + - name: EVALUATE_SCRIPT_PATH + value: evaluate/evaluate_model.py + # The path to the model registration script under SOURCES_DIR_TRAIN + - name: REGISTER_SCRIPT_PATH + value: register/register_model.py + # The path to the model scoring script relative to SOURCES_DIR_TRAIN + - name: SCORE_SCRIPT + value: scoring/score.py + + # Azure ML Variables - name: EXPERIMENT_NAME value: mlopspython + - name: DATASET_NAME + value: diabetes_ds + - name: TRAINING_PIPELINE_NAME + value: "diabetes-Training-Pipeline" + - name: MODEL_NAME + value: diabetes_regression_model.pkl # AML Compute Cluster Config - name: AML_COMPUTE_CLUSTER_CPU_SKU @@ -16,43 +40,23 @@ variables: - name: AML_CLUSTER_PRIORITY value: lowpriority - # Training Config - - name: BUILD_TRAIN_SCRIPT - value: diabetes_regression_build_train_pipeline.py - - name: TRAIN_SCRIPT_PATH - value: training/train.py - - name: MODEL_NAME - value: sklearn_regression_model.pkl - - name: MODEL_VERSION - value: "1" - - # AML Pipeline Config - - name: TRAINING_PIPELINE_NAME - value: "diabetes-Training-Pipeline" - - name: MODEL_PATH - value: "" - - name: EVALUATE_SCRIPT_PATH - value: evaluate/evaluate_model.py - - name: REGISTER_SCRIPT_PATH - value: register/register_model.py - - name: SOURCES_DIR_TRAIN - value: diabetes_regression + # The name for the (docker/webapp) scoring image - name: IMAGE_NAME value: "diabetestrained" + # Optional. Used by a training pipeline with R on Databricks - name: DB_CLUSTER_ID value: "" - - name: SCORE_SCRIPT - value: score.py - - name: DATASET_NAME - value: diabetes_ds + # These are the default values set in ml_service\util\env_variables.py. Uncomment and override if desired. + # Set to false to disable the evaluation step in the ML pipeline and register the newly trained model unconditionally. # - name: RUN_EVALUATION # value: "true" + # Set to false to register the model regardless of the outcome of the evaluation step in the ML pipeline. # - name: ALLOW_RUN_CANCEL # value: "true" - # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time - # to skip training and deploy a model registered by a previous build. + # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time + # to skip training and deploy a model registered by a previous build. - name: modelbuildid value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] \ No newline at end of file diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md index fb2b38ec..7e5703b4 100644 --- a/docs/canary_ab_deployment.md +++ b/docs/canary_ab_deployment.md @@ -6,7 +6,7 @@ If your target deployment environment is a K8s cluster and you want to implement **Note:** It is assumed that you have an AKS instance and configured ***kubectl*** to communicate with the cluster. -#### 1. Install Istio on a K8s cluster. +#### 1. Install Istio on a K8s cluster. This guidance uses [Istio](https://istio.io) service mesh implememtation to control traffic routing between model versions. The instruction on installing Istio is available [here](https://docs.microsoft.com/en-us/azure/aks/servicemesh-istio-install?pivots=client-operating-system-linux). @@ -28,7 +28,6 @@ There are some extra variables that you need to setup in ***devopsforai-aml-vg** | K8S_AB_NAMESPACE | Namespace in a K8s cluster to deploy the model | | IMAGE_REPO_NAME | Image reposiory name (e.g. mlopspyciamlcr.azurecr.io)| - #### 3. Configure a pipeline to build and deploy a scoring Image Import and run the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) multistage deployment pipeline. @@ -37,7 +36,7 @@ The result of the pipeline will be a registered Docker image in the ACR reposito ![scoring image](./images/scoring_image.png) -The pipeline creates Istio Gateway and VirtualService and deploys the scoring image to the Kubernetes cluster. +The pipeline creates Istio Gateway and VirtualService and deploys the scoring image to the Kubernetes cluster. ```bash kubectl get deployments --namespace abtesting @@ -45,9 +44,9 @@ NAME READY UP-TO-DATE AVAILABLE AGE model-green 1/1 1 1 19h ``` -#### 4. Build a new Scoring Image. +#### 4. Build a new Scoring Image -Change value of the ***SCORE_SCRIPT*** variable in the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) to point to ***scoreA.py*** and merge it to the master branch. +Change value of the ***SCORE_SCRIPT*** variable in the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) to point to ***scoring/scoreA.py*** and merge it to the master branch. **Note:** ***scoreA.py*** and ***scoreB.py*** files used in this tutorial are just mockups returning either "New Model A" or "New Model B" respectively. They are used to demonstrate the concept of testing two scoring images with different models or scoring code. In real life you would implement a scoring file similar to [score.py](./../code/scoring/score.py) (see [getting started](./getting_started.md)). @@ -61,7 +60,6 @@ It will automatically trigger the pipeline and deploy a new scoring image with t | Blue_Green |0 |100 |Old green image is removed. The new blue image is copied as green.
Blue and Green images are equal.
All traffic (100%) is routed to the blue image.| | Green_100 |100 |0 |All traffic (100%) is routed to the green image.
The blue image is removed - **Note:** The pipeline performs the rollout without any pausing. You may want to configure [Approvals and Checks](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass) for the stages on your environment for better experience of the model testing. The environment ***abtestenv*** will be added automatically to your AzDo project after the first pipeline run. At each stage you can verify how the traffic is routed sending requests to $GATEWAY_IP/score with ***Postman*** or with ***curl***: diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index 41ff635c..0177ee72 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -28,14 +28,16 @@ sources_dir = e.sources_directory_train if (sources_dir is None): sources_dir = 'diabetes_regression' -path_to_scoring = os.path.join(".", sources_dir, "scoring") +score_script = os.path.join(".", sources_dir, e.score_script) +score_file = os.path.basename(score_script) +path_to_scoring = os.path.dirname(score_script) cwd = os.getcwd() # Copy conda_dependencies.yml into scoring as this method does not accept relative paths. # NOQA: E501 shutil.copy(os.path.join(".", sources_dir, "conda_dependencies.yml"), path_to_scoring) os.chdir(path_to_scoring) image_config = ContainerImage.image_configuration( - execution_script=e.score_script, + execution_script=score_file, runtime="python", conda_file="conda_dependencies.yml", description="Image with ridge regression model", diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index 2386a5b3..1bd69529 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -36,7 +36,6 @@ def __init__(self): self._experiment_name = os.environ.get("EXPERIMENT_NAME") self._model_version = os.environ.get('MODEL_VERSION') self._image_name = os.environ.get('IMAGE_NAME') - self._model_path = os.environ.get('MODEL_PATH') self._db_cluster_id = os.environ.get("DB_CLUSTER_ID") self._score_script = os.environ.get("SCORE_SCRIPT") self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI") @@ -134,10 +133,6 @@ def model_version(self): def image_name(self): return self._image_name - @property - def model_path(self): - return self._model_path - @property def score_script(self): return self._score_script From 4529c18d65457d1754f3fc39ea50783e4994182a Mon Sep 17 00:00:00 2001 From: Tom Care Date: Thu, 27 Feb 2020 11:19:26 -0800 Subject: [PATCH 050/109] Rename pipeline YAMLs for clarity (#212) * Rename pipeline and pipeline template YAMLs to new convention * Rename references to pipelines and pipeline templates * Sort pipeline entries in code_description.md --- .../{azdo-abtest-pipeline.yml => abtest.yml} | 14 +++++++------- ...e-pipeline.yml => code-quality-template.yml} | 0 .pipelines/diabetes_regression-ci-image.yml | 2 +- ...ild-train.yml => diabetes_regression-ci.yml} | 12 ++++++------ ...s_regression-get-model-version-template.yml} | 0 ... diabetes_regression-variables-template.yml} | 0 ...lm-install.yml => helm-install-template.yml} | 0 ...lm-upgrade.yml => helm-upgrade-template.yml} | 2 +- .pipelines/{azdo-pr-build-train.yml => pr.yml} | 4 ++-- bootstrap/bootstrap.py | 10 +++++----- docs/canary_ab_deployment.md | 4 ++-- docs/code_description.md | 17 +++++++---------- docs/custom_container.md | 4 ++-- docs/getting_started.md | 14 +++++++------- ....yml => iac-create-environment-pipeline.yml} | 0 ....yml => iac-remove-environment-pipeline.yml} | 0 16 files changed, 40 insertions(+), 43 deletions(-) rename .pipelines/{azdo-abtest-pipeline.yml => abtest.yml} (93%) rename .pipelines/{azdo-base-pipeline.yml => code-quality-template.yml} (100%) rename .pipelines/{diabetes_regression-ci-build-train.yml => diabetes_regression-ci.yml} (95%) rename .pipelines/{diabetes_regression-template-get-model-version.yml => diabetes_regression-get-model-version-template.yml} (100%) rename .pipelines/{diabetes_regression-variables.yml => diabetes_regression-variables-template.yml} (100%) rename .pipelines/{azdo-helm-install.yml => helm-install-template.yml} (100%) rename .pipelines/{azdo-helm-upgrade.yml => helm-upgrade-template.yml} (93%) rename .pipelines/{azdo-pr-build-train.yml => pr.yml} (78%) rename environment_setup/{iac-create-environment.yml => iac-create-environment-pipeline.yml} (100%) rename environment_setup/{iac-remove-environment.yml => iac-remove-environment-pipeline.yml} (100%) diff --git a/.pipelines/azdo-abtest-pipeline.yml b/.pipelines/abtest.yml similarity index 93% rename from .pipelines/azdo-abtest-pipeline.yml rename to .pipelines/abtest.yml index d6728d81..0d64e8c8 100644 --- a/.pipelines/azdo-abtest-pipeline.yml +++ b/.pipelines/abtest.yml @@ -69,7 +69,7 @@ stages: IMAGE_LOCATION="$(cat $(Pipeline.Workspace)/image_location/image_location.txt)" echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" displayName: 'Get Image Location' - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(Pipeline.Workspace)/allcharts/abtest-model' releaseName: $(blueReleaseName) @@ -81,7 +81,7 @@ stages: displayName: 50 50 rollout to blue environment timeoutInMinutes: 0 steps: - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(System.DefaultWorkingDirectory)/charts/abtest-istio' releaseName: 'abtest-istio' @@ -96,7 +96,7 @@ stages: runOnce: deploy: steps: - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(Pipeline.Workspace)/allcharts/abtest-istio' releaseName: 'abtest-istio' @@ -113,7 +113,7 @@ stages: runOnce: deploy: steps: - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(Pipeline.Workspace)/allcharts/abtest-istio' releaseName: 'abtest-istio' @@ -134,7 +134,7 @@ stages: IMAGE_LOCATION="$(cat $(Pipeline.Workspace)/image_location/image_location.txt)" echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" displayName: 'Get Image Location' - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(Pipeline.Workspace)/allcharts/abtest-model' releaseName: $(greenReleaseName) @@ -145,7 +145,7 @@ stages: - job: 'Prod_Rollout_100' timeoutInMinutes: 0 steps: - - template: azdo-helm-upgrade.yml + - template: helm-upgrade-template.yml parameters: chartPath: '$(System.DefaultWorkingDirectory)/charts/abtest-istio' releaseName: 'abtest-istio' @@ -157,7 +157,7 @@ stages: - job: 'blue_disable' timeoutInMinutes: 0 steps: - - template: azdo-helm-install.yml + - template: helm-install-template.yml - task: HelmDeploy@0 displayName: 'helm uninstall blue' inputs: diff --git a/.pipelines/azdo-base-pipeline.yml b/.pipelines/code-quality-template.yml similarity index 100% rename from .pipelines/azdo-base-pipeline.yml rename to .pipelines/code-quality-template.yml diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index 63041db5..6282fd31 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -1,4 +1,4 @@ -# Builds the container image that is used by other pipelines for scoring. +# Pipeline for building the container image that is used by other pipelines for scoring. resources: containers: diff --git a/.pipelines/diabetes_regression-ci-build-train.yml b/.pipelines/diabetes_regression-ci.yml similarity index 95% rename from .pipelines/diabetes_regression-ci-build-train.yml rename to .pipelines/diabetes_regression-ci.yml index 96cf1d26..b3504dfe 100644 --- a/.pipelines/diabetes_regression-ci-build-train.yml +++ b/.pipelines/diabetes_regression-ci.yml @@ -18,7 +18,7 @@ trigger: - ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py variables: -- template: diabetes_regression-variables.yml +- template: diabetes_regression-variables-template.yml - group: devopsforai-aml-vg pool: @@ -34,7 +34,7 @@ stages: container: mlops timeoutInMinutes: 0 steps: - - template: azdo-base-pipeline.yml + - template: code-quality-template.yml - task: AzureCLI@1 inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' @@ -93,7 +93,7 @@ stages: container: mlops timeoutInMinutes: 0 steps: - - template: diabetes_regression-template-get-model-version.yml + - template: diabetes_regression-get-model-version-template.yml - stage: 'Deploy_ACI' displayName: 'Deploy to ACI' @@ -105,7 +105,7 @@ stages: container: mlops timeoutInMinutes: 0 steps: - - template: diabetes_regression-template-get-model-version.yml + - template: diabetes_regression-get-model-version-template.yml - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 displayName: 'Azure ML Model Deploy' inputs: @@ -138,7 +138,7 @@ stages: container: mlops timeoutInMinutes: 0 steps: - - template: diabetes_regression-template-get-model-version.yml + - template: diabetes_regression-get-model-version-template.yml - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 displayName: 'Azure ML Model Deploy' inputs: @@ -172,7 +172,7 @@ stages: container: mlops timeoutInMinutes: 0 steps: - - template: diabetes_regression-template-get-model-version.yml + - template: diabetes_regression-get-model-version-template.yml - task: AzureCLI@1 displayName: 'Create scoring image and set IMAGE_LOCATION variable' inputs: diff --git a/.pipelines/diabetes_regression-template-get-model-version.yml b/.pipelines/diabetes_regression-get-model-version-template.yml similarity index 100% rename from .pipelines/diabetes_regression-template-get-model-version.yml rename to .pipelines/diabetes_regression-get-model-version-template.yml diff --git a/.pipelines/diabetes_regression-variables.yml b/.pipelines/diabetes_regression-variables-template.yml similarity index 100% rename from .pipelines/diabetes_regression-variables.yml rename to .pipelines/diabetes_regression-variables-template.yml diff --git a/.pipelines/azdo-helm-install.yml b/.pipelines/helm-install-template.yml similarity index 100% rename from .pipelines/azdo-helm-install.yml rename to .pipelines/helm-install-template.yml diff --git a/.pipelines/azdo-helm-upgrade.yml b/.pipelines/helm-upgrade-template.yml similarity index 93% rename from .pipelines/azdo-helm-upgrade.yml rename to .pipelines/helm-upgrade-template.yml index 11b9616b..4f75c8ed 100644 --- a/.pipelines/azdo-helm-upgrade.yml +++ b/.pipelines/helm-upgrade-template.yml @@ -5,7 +5,7 @@ parameters: overrideValues: '' steps: -- template: azdo-helm-install.yml +- template: helm-install-template.yml - task: HelmDeploy@0 displayName: 'helm upgrade' inputs: diff --git a/.pipelines/azdo-pr-build-train.yml b/.pipelines/pr.yml similarity index 78% rename from .pipelines/azdo-pr-build-train.yml rename to .pipelines/pr.yml index 9c48202a..765a5fef 100644 --- a/.pipelines/azdo-pr-build-train.yml +++ b/.pipelines/pr.yml @@ -17,8 +17,8 @@ pool: container: mlops variables: -- template: diabetes_regression-variables.yml +- template: diabetes_regression-variables-template.yml - group: devopsforai-aml-vg steps: -- template: azdo-base-pipeline.yml +- template: code-quality-template.yml diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 571d3443..92af061b 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -90,12 +90,12 @@ def validateargs(self): def replaceprojectname(project_dir, project_name, rename_name): # Replace instances of rename_name within files with project_name dirs = [r".env.example", - r".pipelines/azdo-base-pipeline.yml", - r".pipelines/azdo-pr-build-train.yml", - r".pipelines/diabetes_regression-ci-build-train.yml", + r".pipelines/code-quality-template.yml", + r".pipelines/pr.yml", + r".pipelines/diabetes_regression-ci.yml", r".pipelines/diabetes_regression-ci-image.yml", - r".pipelines/diabetes_regression-template-get-model-version.yml", # NOQA: E501 - r".pipelines/diabetes_regression-variables.yml", + r".pipelines/diabetes_regression-get-model-version-template.yml", # NOQA: E501 + r".pipelines/diabetes_regression-variables-template.yml", r"environment_setup/Dockerfile", r"environment_setup/install_requirements.sh", r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md index 7e5703b4..4a85ea15 100644 --- a/docs/canary_ab_deployment.md +++ b/docs/canary_ab_deployment.md @@ -30,7 +30,7 @@ There are some extra variables that you need to setup in ***devopsforai-aml-vg** #### 3. Configure a pipeline to build and deploy a scoring Image -Import and run the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) multistage deployment pipeline. +Import and run the [abtest.yml](./.pipelines/abtest.yml) multistage deployment pipeline. The result of the pipeline will be a registered Docker image in the ACR repository attached to the AML Service: @@ -46,7 +46,7 @@ model-green 1/1 1 1 19h #### 4. Build a new Scoring Image -Change value of the ***SCORE_SCRIPT*** variable in the [azdo-abtest-pipeline.yml](./.pipelines/azdo-abtest-pipeline.yml) to point to ***scoring/scoreA.py*** and merge it to the master branch. +Change value of the ***SCORE_SCRIPT*** variable in the [abtest.yml](./.pipelines/abtest.yml) to point to ***scoring/scoreA.py*** and merge it to the master branch. **Note:** ***scoreA.py*** and ***scoreB.py*** files used in this tutorial are just mockups returning either "New Model A" or "New Model B" respectively. They are used to demonstrate the concept of testing two scoring images with different models or scoring code. In real life you would implement a scoring file similar to [score.py](./../code/scoring/score.py) (see [getting started](./getting_started.md)). diff --git a/docs/code_description.md b/docs/code_description.md index 3ef54603..b09cf0a1 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -43,15 +43,13 @@ The repository provides a template with folders structure suitable for maintaini ### Pipelines -- `.pipelines/azdo-base-pipeline.yml` : a pipeline template used by ci-build-train pipeline and pr-build-train pipelines. It contains steps performing linting, data and unit testing. -- `.pipelines/diabetes_regression-ci-build-train.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. -- `.pipelines/azdo-pr-build-train.yml` : a pipeline triggered when a **pull request** to the **master** branch is created. It performs linting, data integrity testing and unit testing only. -- `.pipelines/diabetes_regression-ci-image.yml` : a pipeline building a scoring image for the diabetes regression model. -- `.pipelines/diabetes_regression-template-get-model-version.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci-build-train.yml` pipeline. It finds out if a new model was registered and retrieves a version of the new model. -- `.pipelines/azdo-abtest-pipeline.yml` : a pipeline demonstrating [Canary deployment strategy](./docs/canary_ab_deployment.md). -- `.pipelines/azdo-helm-*.yml` : pipeline templates used by the `.pipelines/azdo-abtest-pipeline.yml` pipeline. - - +- `.pipelines/abtest.yml` : a pipeline demonstrating [Canary deployment strategy](./docs/canary_ab_deployment.md). +- `.pipelines/code-quality-template.yml` : a pipeline template used by the CI and PR pipelines. It contains steps performing linting, data and unit testing. +- `.pipelines/diabetes_regression-ci-image.yml` : a pipeline building a scoring image for the diabetes regression model. +- `.pipelines/diabetes_regression-ci.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. +- `.pipelines/diabetes_regression-get-model-version-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci.yml` pipeline. It finds out if a new model was registered and retrieves a version of the new model. +- `.pipelines/helm-*.yml` : pipeline templates used by the `.pipelines/abtest.yml` pipeline. +- `.pipelines/pr.yml` : a pipeline triggered when a **pull request** to the **master** branch is created. It performs linting, data integrity testing and unit testing only. ### ML Services @@ -90,4 +88,3 @@ The repository provides a template with folders structure suitable for maintaini - `diabetes_regression/scoring/score.py` : a scoring script which is about to be packed into a Docker Image along with a model while being deployed to QA/Prod environment. - `diabetes_regression/scoring/inference_config.yml`, `deployment_config_aci.yml`, `deployment_config_aks.yml` : configuration files for the [AML Model Deploy](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.private-vss-services-azureml&ssr=false#overview) pipeline task for ACI and AKS deployment targets. - `diabetes_regression/scoring/scoreA.py`, `diabetes_regression/scoring/scoreB.py` : simplified scoring files for the [Canary deployment sample](./docs/canary_ab_deployment.md). - diff --git a/docs/custom_container.md b/docs/custom_container.md index fcc0e449..94851d84 100644 --- a/docs/custom_container.md +++ b/docs/custom_container.md @@ -57,7 +57,7 @@ run from that image. ## Modify the model pipeline -Modify the model pipeline file [diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml) by replacing this section: +Modify the model pipeline file [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) by replacing this section: ``` resources: @@ -94,6 +94,6 @@ A better approach would be to use a distinct name for your modified environment, By changing the name of the image in your branch in both the container build pipeline [environment_setup/docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) and the model pipeline file -[diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml), +[diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml), and running both pipelines in sequence on your branch, you avoid any branch conflicts, and the name does not have to be changed after merging to master. diff --git a/docs/getting_started.md b/docs/getting_started.md index 472a7a3f..5bbfe0bb 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -58,7 +58,7 @@ the BASE_NAME value should not exceed 10 characters and it should contain number The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. -The **AZURE_RM_SVC_CONNECTION** parameter is used by the [Azure DevOps pipeline]((../environment_setup/iac-create-environment.yml)) that creates the Azure ML workspace and associated resources through Azure Resource Manager. The pipeline requires an **Azure Resource Manager** +The **AZURE_RM_SVC_CONNECTION** parameter is used by the [Azure DevOps pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) that creates the Azure ML workspace and associated resources through Azure Resource Manager. The pipeline requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). ![create service connection](./images/create-rm-service-connection.png) @@ -88,7 +88,7 @@ For instructions on how to set up a local development environment, refer to the ### Azure DevOps configuration -For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/diabetes_regression-variables.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. +For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. **Note:** In `diabetes_regression` folder you can find `config.json` file that we would recommend to use in order to provide parameters for training, evaluation and scoring scripts. An example of a such parameter is a hyperparameter of a training algorithm: in our case it's the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any special serializers for this config file. So, it's up to you which template to support there. @@ -102,7 +102,7 @@ Up until now you should have: The easiest way to create all required resources (Resource Group, ML Workspace, Container Registry, Storage Account, etc.) is to leverage an -"Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment.yml). This **IaC** pipeline takes care of setting up +"Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment-pipeline.yml). This **IaC** pipeline takes care of setting up all required resources based on these [ARM templates](../environment_setup/arm-templates/cloud-environment.json). ### Create a Build IaC Pipeline @@ -111,7 +111,7 @@ In your Azure DevOps project, create a build pipeline from your forked repositor ![build connnect step](./images/build-connect.png) -Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment.yml](../environment_setup/iac-create-environment.yml): +Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline.yml](../environment_setup/iac-create-environment-pipeline.yml): ![configure step](./images/select-iac-pipeline.png) @@ -123,7 +123,7 @@ Check out the newly created resources in the [Azure Portal](https://portal.azure ![created resources](./images/created-resources.png) -(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment.yml](../environment_setup/iac-remove-environment.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). +(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment-pipeline.yml](../environment_setup/iac-remove-environment-pipeline.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). **Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. To use your own data, you need to [create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your workspace and specify its name in a DATASET_NAME variable in the ***devopsforai-aml-vg*** variable group. You will also need to modify the test cases in the **ml_service/util/smoke_test_scoring_service.py** script to match the schema of the training features in your dataset. @@ -157,7 +157,7 @@ performs linting, unit testing and publishes a training pipeline. ### Set up the Pipeline In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [diabetes_regression-ci-build-train.yml](../.pipelines/diabetes_regression-ci-build-train.yml) +pipeline referring to the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) pipeline definition in your forked repository: ![configure ci build pipeline](./images/ci-build-pipeline-configure.png) @@ -199,7 +199,7 @@ Wait until the pipeline finishes and verify that there is a new model in the **M ![trained model](./images/trained-model.png) -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci-build-train.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the id of the previous build. diff --git a/environment_setup/iac-create-environment.yml b/environment_setup/iac-create-environment-pipeline.yml similarity index 100% rename from environment_setup/iac-create-environment.yml rename to environment_setup/iac-create-environment-pipeline.yml diff --git a/environment_setup/iac-remove-environment.yml b/environment_setup/iac-remove-environment-pipeline.yml similarity index 100% rename from environment_setup/iac-remove-environment.yml rename to environment_setup/iac-remove-environment-pipeline.yml From c773db995958799710d4f4c16fa3cc581ac4b84c Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Sun, 1 Mar 2020 22:32:52 -0800 Subject: [PATCH 051/109] Sudivate/environment (#217) reusable aml enviroment --- .env.example | 1 + ...diabetes_regression-variables-template.yml | 2 + bootstrap/bootstrap.py | 1 - diabetes_regression/azureml_environment.json | 39 --------------- diabetes_regression/conda_dependencies.yml | 48 +++++++++++-------- .../scoring/inference_config.yml | 2 +- docs/code_description.md | 1 - ...iabetes_regression_build_train_pipeline.py | 18 +++---- ..._regression_build_train_pipeline_with_r.py | 17 ++++--- ml_service/util/env_variables.py | 5 ++ ml_service/util/manage_environment.py | 29 +++++++++++ 11 files changed, 83 insertions(+), 80 deletions(-) delete mode 100644 diabetes_regression/azureml_environment.json create mode 100644 ml_service/util/manage_environment.py diff --git a/.env.example b/.env.example index 892ecb2b..cb991043 100644 --- a/.env.example +++ b/.env.example @@ -15,6 +15,7 @@ WORKSPACE_NAME = 'aml-workspace' EXPERIMENT_NAME = '' # AML Compute Cluster Config +AML_ENV_NAME='diabetes_regression_training_env' AML_COMPUTE_CLUSTER_NAME = 'train-cluster' AML_COMPUTE_CLUSTER_CPU_SKU = 'STANDARD_DS2_V2' AML_CLUSTER_MAX_NODES = '4' diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index af32282e..a12fe67e 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -29,6 +29,8 @@ variables: value: diabetes_regression_model.pkl # AML Compute Cluster Config + - name: AML_ENV_NAME + value: diabetes_regression_training_env - name: AML_COMPUTE_CLUSTER_CPU_SKU value: STANDARD_DS2_V2 - name: AML_COMPUTE_CLUSTER_NAME diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 92af061b..71c1549b 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -103,7 +103,6 @@ def replaceprojectname(project_dir, project_name, rename_name): r"ml_service/pipelines/diabetes_regression_build_train_pipeline.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_verify_train_pipeline.py", # NOQA: E501 r"ml_service/util/create_scoring_image.py", - r"diabetes_regression/azureml_environment.json", r"diabetes_regression/conda_dependencies.yml", r"diabetes_regression/evaluate/evaluate_model.py", r"diabetes_regression/register/register_model.py", diff --git a/diabetes_regression/azureml_environment.json b/diabetes_regression/azureml_environment.json deleted file mode 100644 index 8a81614e..00000000 --- a/diabetes_regression/azureml_environment.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "diabetes_regression_sklearn", - "version": null, - "environmentVariables": { - "EXAMPLE_ENV_VAR": "EXAMPLE_VALUE" - }, - "python": { - "userManagedDependencies": false, - "interpreterPath": "python", - "condaDependenciesFile": null, - "baseCondaEnvironment": null - }, - "docker": { - "enabled": true, - "baseImage": "mcr.microsoft.com/azureml/base:intelmpi2018.3-ubuntu16.04", - "baseDockerfile": null, - "sharedVolumes": true, - "shmSize": "2g", - "arguments": [], - "baseImageRegistry": { - "address": null, - "username": null, - "password": null - } - }, - "spark": { - "repositories": [], - "packages": [], - "precachePackages": true - }, - "databricks": { - "mavenLibraries": [], - "pypiLibraries": [], - "rcranLibraries": [], - "jarLibraries": [], - "eggLibraries": [] - }, - "inferencingStackVersion": null -} diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index add251f7..76350a01 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -1,32 +1,40 @@ +# Conda environment specification. The dependencies defined in this file will +# be automatically provisioned for managed runs. These include runs against +# the localdocker, remotedocker, and cluster compute targets. + +# Note that this file is NOT used to automatically manage dependencies for the +# local compute target. To provision these dependencies locally, run: +# conda env update --file conda_dependencies.yml + # Details about the Conda environment file format: # https://conda.io/docs/using/envs.html#create-environment-file-by-hand -name: diabetes_regression_sklearn +# For managing Spark packages and configuration, see spark_dependencies.yml. +# Version of this configuration file's structure and semantics in AzureML. +# This directive is stored in a comment to preserve the Conda file structure. +# [AzureMlVersion] = 2 +name: diabetes_regression_training_env dependencies: # The python interpreter version. + # Currently Azure ML Workbench only supports 3.5.2 and later. - python=3.7.5 - # Required by azureml-defaults, installed separately through Conda to # get a prebuilt version and not require build tools for the install. - psutil=5.6 #latest - - numpy=1.18.1 - - pandas=1.0.0 - - scikit-learn=0.22.1 - #- r-essentials - #- tensorflow - #- keras - - - pip=20.0.2 - pip: - # Dependencies for training environment. - - - azureml-core==1.0.85 - - # Dependencies for scoring environment. - - # You must list azureml-defaults as a pip dependency - - azureml-defaults==1.0.85 - - inference-schema[numpy-support]==1.0.1 - - azureml-dataprep==1.1.38 + # Required packages for AzureML execution, history, and data preparation. + - azureml-model-management-sdk==1.0.1b6.post1 + - azureml-sdk==1.0.74 + - scipy==1.3.1 + - scikit-learn==0.22 + - pandas==0.25.3 + - numpy==1.17.3 + - joblib==0.14.0 + - gunicorn==19.9.0 + - flask==1.1.1 + - inference-schema[numpy-support] + - azure + - azure-storage-blob + - azureml-dataprep diff --git a/diabetes_regression/scoring/inference_config.yml b/diabetes_regression/scoring/inference_config.yml index 52017bae..3fc86686 100644 --- a/diabetes_regression/scoring/inference_config.yml +++ b/diabetes_regression/scoring/inference_config.yml @@ -6,4 +6,4 @@ schemaFile: sourceDirectory: enableGpu: False baseImage: -baseImageRegistry: +baseImageRegistry: \ No newline at end of file diff --git a/docs/code_description.md b/docs/code_description.md index b09cf0a1..22bfe793 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -62,7 +62,6 @@ The repository provides a template with folders structure suitable for maintaini ### Environment Definitions -- `diabetes_regression/azureml_environment.json` : Azure ML environment definition for the training environment, including base Docker image and a reference to `conda_dependencies.yml` Conda environment file. - `diabetes_regression/conda_dependencies.yml` : Conda environment definition for the environment used for both training and scoring (Docker image in which train.py and score.py are run). - `diabetes_regression/ci_dependencies.yml` : Conda environment definition for the CI environment. diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index f382a476..c78465dd 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -1,11 +1,12 @@ from azureml.pipeline.core.graph import PipelineParameter from azureml.pipeline.steps import PythonScriptStep from azureml.pipeline.core import Pipeline, PipelineData -from azureml.core import Workspace, Environment +from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration from azureml.core import Dataset from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env +from ml_service.util.manage_environment import get_environment from sklearn.datasets import load_diabetes import pandas as pd import os @@ -31,17 +32,16 @@ def main(): print("aml_compute:") print(aml_compute) - # Create a reusable run configuration environment - # Read definition from diabetes_regression/azureml_environment.json - environment = Environment.load_from_directory(e.sources_directory_train) - if (e.collection_uri is not None and e.teamproject_name is not None): - builduri_base = e.collection_uri + e.teamproject_name - builduri_base = builduri_base + "/_build/results?buildId=" - environment.environment_variables["BUILDURI_BASE"] = builduri_base - environment.register(aml_workspace) + # Create a reusable Azure ML environment + environment = get_environment( + aml_workspace, e.aml_env_name, create_new=False) # NOQA: E501 run_config = RunConfiguration() run_config.environment = environment + if (e.collection_uri is not None and e.teamproject_name is not None): + builduri_base = e.collection_uri + e.teamproject_name + builduri_base = builduri_base + "/_build/results?buildId=" + run_config.environment.environment_variables["BUILDURI_BASE"] = builduri_base # NOQA: E501 model_name_param = PipelineParameter( name="model_name", default_value=e.model_name) diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index 96ddf2cf..a41b0c2e 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -1,9 +1,10 @@ from azureml.pipeline.steps import PythonScriptStep from azureml.pipeline.core import Pipeline -from azureml.core import Workspace, Environment +from azureml.core import Workspace from azureml.core.runconfig import RunConfiguration from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env +from ml_service.util.manage_environment import get_environment def main(): @@ -26,19 +27,17 @@ def main(): print("aml_compute:") print(aml_compute) - # Create a reusable run configuration environment - # Read definition from diabetes_regression/azureml_environment.json + # Create a reusable Azure ML environment # Make sure to include `r-essentials' # in diabetes_regression/conda_dependencies.yml - environment = Environment.load_from_directory(e.sources_directory_train) + environment = get_environment( + aml_workspace, e.aml_env_name, create_new=False) # NOQA: E501 + run_config = RunConfiguration() + run_config.environment = environment if (e.collection_uri is not None and e.teamproject_name is not None): builduri_base = e.collection_uri + e.teamproject_name builduri_base = builduri_base + "/_build/results?buildId=" - environment.environment_variables["BUILDURI_BASE"] = builduri_base - environment.register(aml_workspace) - - run_config = RunConfiguration() - run_config.environment = environment + run_config.environment.environment_variables["BUILDURI_BASE"] = builduri_base # NOQA: E501 train_step = PythonScriptStep( name="Train Model", diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index 1bd69529..7729b82c 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -44,6 +44,7 @@ def __init__(self): self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") self._allow_run_cancel = os.environ.get( "ALLOW_RUN_CANCEL", "true") + self._aml_env_name = os.environ.get("AML_ENV_NAME") @property def workspace_name(self): @@ -156,3 +157,7 @@ def run_evaluation(self): @property def allow_run_cancel(self): return self._allow_run_cancel + + @property + def aml_env_name(self): + return self._aml_env_name diff --git a/ml_service/util/manage_environment.py b/ml_service/util/manage_environment.py new file mode 100644 index 00000000..43749f3f --- /dev/null +++ b/ml_service/util/manage_environment.py @@ -0,0 +1,29 @@ +from azureml.core import Workspace, Environment +from ml_service.util.env_variables import Env +import os + + +def get_environment( + workspace: Workspace, + environment_name: str, + create_new: bool = False +): + try: + e = Env() + environments = Environment.list(workspace=workspace) + restored_environment = None + for env in environments: + if env == environment_name: + restored_environment = environments[environment_name] + + if restored_environment is None or create_new: + new_env = Environment.from_conda_specification(environment_name, os.path.join(e.sources_directory_train, "conda_dependencies.yml")) # NOQA: E501 + restored_environment = new_env + restored_environment.register(workspace) + + if restored_environment is not None: + print(restored_environment) + return restored_environment + except Exception as e: + print(e) + exit(1) From 4de475ad87b1881cb91a89486b5c33050b403e3a Mon Sep 17 00:00:00 2001 From: jotaylo Date: Mon, 2 Mar 2020 11:04:00 -0800 Subject: [PATCH 052/109] Remove BuildId parameter (#214) Remove the need to add the BuildId parameter and tagging logic to the train/evaluate scripts. The tags are instead specified when the experiment is submitted. The register script pulls the BuildId from the tag. --- .pipelines/diabetes_regression-ci.yml | 4 +- .../evaluate/evaluate_model.py | 15 +---- .../register/register_model.py | 60 +++++++++---------- diabetes_regression/training/train.py | 16 +---- ...iabetes_regression_build_train_pipeline.py | 9 --- ..._regression_build_train_pipeline_with_r.py | 4 -- ml_service/pipelines/run_train_pipeline.py | 16 +++-- ml_service/util/env_variables.py | 11 +--- 8 files changed, 50 insertions(+), 85 deletions(-) diff --git a/.pipelines/diabetes_regression-ci.yml b/.pipelines/diabetes_regression-ci.yml index b3504dfe..56258d50 100644 --- a/.pipelines/diabetes_regression-ci.yml +++ b/.pipelines/diabetes_regression-ci.yml @@ -50,6 +50,8 @@ stages: - stage: 'Trigger_AML_Pipeline' displayName: 'Train model' condition: and(succeeded(), not(variables['MODEL_BUILD_ID'])) + variables: + BUILD_URI: '$(SYSTEM.COLLECTIONURI)$(SYSTEM.TEAMPROJECT)/_build/results?buildId=$(BUILD.BUILDID)' jobs: - job: "Get_Pipeline_ID" condition: and(succeeded(), eq(coalesce(variables['auto-trigger-training'], 'true'), 'true')) @@ -85,7 +87,7 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' PipelineId: '$(AMLPIPELINE_ID)' ExperimentName: '$(EXPERIMENT_NAME)' - PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)"}' + PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)"}, "tags": {"BuildId": "$(Build.BuildId)", "BuildUri": "$(BUILD_URI)"}, "StepTags": {"BuildId": "$(Build.BuildId)", "BuildUri": "$(BUILD_URI)"}' - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" condition: always() diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index 57685b3d..f4d4c6db 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -23,7 +23,6 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -import os from azureml.core import Run import argparse import traceback @@ -74,11 +73,7 @@ run_id = 'amlcompute' parser = argparse.ArgumentParser("evaluate") -parser.add_argument( - "--build_id", - type=str, - help="The Build ID of the build triggering this pipeline run", -) + parser.add_argument( "--run_id", type=str, @@ -99,19 +94,13 @@ ) args = parser.parse_args() -if (args.build_id is not None): - build_id = args.build_id if (args.run_id is not None): run_id = args.run_id if (run_id == 'amlcompute'): run_id = run.parent.id model_name = args.model_name metric_eval = "mse" -run.tag("BuildId", value=build_id) -builduri_base = os.environ.get("BUILDURI_BASE") -if (builduri_base is not None): - build_uri = builduri_base + build_id - run.tag("BuildUri", value=build_uri) + allow_run_cancel = args.allow_run_cancel # Parameterize the matrices on which the models should be compared # Add golden data set on which all the model performance can be evaluated diff --git a/diabetes_regression/register/register_model.py b/diabetes_regression/register/register_model.py index 3fc89495..8c63506c 100644 --- a/diabetes_regression/register/register_model.py +++ b/diabetes_regression/register/register_model.py @@ -43,7 +43,6 @@ def main(): experiment_name = os.environ.get("EXPERIMENT_NAME") resource_group = os.environ.get("RESOURCE_GROUP") subscription_id = os.environ.get("SUBSCRIPTION_ID") - build_id = os.environ.get('BUILD_BUILDID') # run_id useful to query previous runs run_id = "bd184a18-2ac8-4951-8e78-e290bef3b012" aml_workspace = Workspace.get( @@ -59,11 +58,6 @@ def main(): run_id = 'amlcompute' parser = argparse.ArgumentParser("register") - parser.add_argument( - "--build_id", - type=str, - help="The Build ID of the build triggering this pipeline run", - ) parser.add_argument( "--run_id", @@ -84,8 +78,6 @@ def main(): ) args = parser.parse_args() - if (args.build_id is not None): - build_id = args.build_id if (args.run_id is not None): run_id = args.run_id if (run_id == 'amlcompute'): @@ -98,32 +90,40 @@ def main(): model_file = os.path.join(model_path, model_name) model = joblib.load(model_file) model_mse = run.parent.get_metrics()["mse"] + parent_tags = run.parent.get_tags() + try: + build_id = parent_tags["BuildId"] + except KeyError: + build_id = None + print("BuildId tag not found on parent run.") + print("Tags present: {parent_tags}") + try: + build_uri = parent_tags["BuildUri"] + except KeyError: + build_uri = None + print("BuildUri tag not found on parent run.") + print("Tags present: {parent_tags}") if (model is not None): if (build_id is None): - register_aml_model(model_file, model_name, exp, run_id) + register_aml_model(model_file, model_name, model_mse, exp, run_id) + elif (build_uri is None): + register_aml_model( + model_file, + model_name, + model_mse, + exp, + run_id, + build_id) else: - run.tag("BuildId", value=build_id) - builduri_base = os.environ.get("BUILDURI_BASE") - if (builduri_base is not None): - build_uri = builduri_base + build_id - run.tag("BuildUri", value=build_uri) - register_aml_model( - model_file, - model_name, - model_mse, - exp, - run_id, - build_id, - build_uri) - else: - register_aml_model( - model_file, - model_name, - model_mse, - exp, - run_id, - build_id) + register_aml_model( + model_file, + model_name, + model_mse, + exp, + run_id, + build_id, + build_uri) else: print("Model not found. Skipping model registration.") sys.exit(0) diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index 6e40c2b7..c3f1203c 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -50,11 +50,7 @@ def main(): print("Running train.py") parser = argparse.ArgumentParser("train") - parser.add_argument( - "--build_id", - type=str, - help="The build ID of the build triggering this pipeline run", - ) + parser.add_argument( "--model_name", type=str, @@ -70,12 +66,10 @@ def main(): args = parser.parse_args() - print("Argument [build_id]: %s" % args.build_id) print("Argument [model_name]: %s" % args.model_name) print("Argument [step_output]: %s" % args.step_output) model_name = args.model_name - build_id = args.build_id step_output_path = args.step_output print("Getting training parameters") @@ -119,15 +113,7 @@ def main(): output_path = os.path.join('outputs', model_name) joblib.dump(value=reg, filename=output_path) - # Add properties to identify this specific training run - run.parent.tag("BuildId", value=build_id) - run.tag("BuildId", value=build_id) run.tag("run_type", value="train") - builduri_base = os.environ.get("BUILDURI_BASE") - if (builduri_base is not None): - build_uri = builduri_base + build_id - run.tag("BuildUri", value=build_uri) - run.parent.tag("BuildUri", value=build_uri) print(f"tags now present for run: {run.tags}") run.complete() diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index c78465dd..7192d308 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -38,15 +38,9 @@ def main(): run_config = RunConfiguration() run_config.environment = environment - if (e.collection_uri is not None and e.teamproject_name is not None): - builduri_base = e.collection_uri + e.teamproject_name - builduri_base = builduri_base + "/_build/results?buildId=" - run_config.environment.environment_variables["BUILDURI_BASE"] = builduri_base # NOQA: E501 model_name_param = PipelineParameter( name="model_name", default_value=e.model_name) - build_id_param = PipelineParameter( - name="build_id", default_value=e.build_id) # Get dataset name dataset_name = e.dataset_name @@ -98,7 +92,6 @@ def main(): inputs=[dataset.as_named_input('training_data')], outputs=[pipeline_data], arguments=[ - "--build_id", build_id_param, "--model_name", model_name_param, "--step_output", pipeline_data ], @@ -113,7 +106,6 @@ def main(): compute_target=aml_compute, source_directory=e.sources_directory_train, arguments=[ - "--build_id", build_id_param, "--model_name", model_name_param, "--allow_run_cancel", e.allow_run_cancel, ], @@ -129,7 +121,6 @@ def main(): source_directory=e.sources_directory_train, inputs=[pipeline_data], arguments=[ - "--build_id", build_id_param, "--model_name", model_name_param, "--step_input", pipeline_data, ], diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index a41b0c2e..ef42d63e 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -34,10 +34,6 @@ def main(): aml_workspace, e.aml_env_name, create_new=False) # NOQA: E501 run_config = RunConfiguration() run_config.environment = environment - if (e.collection_uri is not None and e.teamproject_name is not None): - builduri_base = e.collection_uri + e.teamproject_name - builduri_base = builduri_base + "/_build/results?buildId=" - run_config.environment.environment_variables["BUILDURI_BASE"] = builduri_base # NOQA: E501 train_step = PythonScriptStep( name="Train Model", diff --git a/ml_service/pipelines/run_train_pipeline.py b/ml_service/pipelines/run_train_pipeline.py index f5dba4fd..b68b9a15 100644 --- a/ml_service/pipelines/run_train_pipeline.py +++ b/ml_service/pipelines/run_train_pipeline.py @@ -1,5 +1,5 @@ from azureml.pipeline.core import PublishedPipeline -from azureml.core import Workspace +from azureml.core import Experiment, Workspace import argparse from ml_service.util.env_variables import Env @@ -55,10 +55,16 @@ def main(): if(args.skip_train_execution is False): pipeline_parameters = {"model_name": e.model_name} - run = published_pipeline.submit( - aml_workspace, - e.experiment_name, - pipeline_parameters) + tags = {"BuildId": e.build_id} + if (e.build_uri is not None): + tags["BuildUri"] = e.build_uri + experiment = Experiment( + workspace=aml_workspace, + name=e.experiment_name) + run = experiment.submit( + published_pipeline, + tags=tags, + pipeline_parameters=pipeline_parameters) print("Pipeline run initiated ", run.id) diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index 7729b82c..90bc906e 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -38,8 +38,7 @@ def __init__(self): self._image_name = os.environ.get('IMAGE_NAME') self._db_cluster_id = os.environ.get("DB_CLUSTER_ID") self._score_script = os.environ.get("SCORE_SCRIPT") - self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI") - self._teamproject_name = os.environ.get("SYSTEM_TEAMPROJECT") + self._build_uri = os.environ.get("BUILD_URI") self._dataset_name = os.environ.get("DATASET_NAME") self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") self._allow_run_cancel = os.environ.get( @@ -139,12 +138,8 @@ def score_script(self): return self._score_script @property - def collection_uri(self): - return self._collection_uri - - @property - def teamproject_name(self): - return self._teamproject_name + def build_uri(self): + return self._build_uri @property def dataset_name(self): From 466800e04f65d268f44f9fb3da3f982cdcc1c616 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Mon, 2 Mar 2020 14:07:43 -0800 Subject: [PATCH 053/109] Dataset versioning (#218) --- .env.example | 3 + ...diabetes_regression-variables-template.yml | 5 ++ .../register/register_model.py | 18 ++++- diabetes_regression/training/train.py | 71 +++++++++++++++++-- ...iabetes_regression_build_train_pipeline.py | 31 +++++--- ml_service/util/env_variables.py | 10 +++ 6 files changed, 120 insertions(+), 18 deletions(-) diff --git a/.env.example b/.env.example index cb991043..d68b73c5 100644 --- a/.env.example +++ b/.env.example @@ -32,6 +32,9 @@ EVALUATE_SCRIPT_PATH = 'evaluate/evaluate_model.py' REGISTER_SCRIPT_PATH = 'register/register_model.py' SOURCES_DIR_TRAIN = 'diabetes_regression' DATASET_NAME = 'diabetes_ds' +DATASET_VERSION = 'latest' +# Optional. Set it if you have configured non default datastore to point to your data +DATASTORE_NAME = '' SCORE_SCRIPT = 'scoring/score.py' # Optional. Used by a training pipeline with R on Databricks diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index a12fe67e..6d4d9797 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -23,6 +23,11 @@ variables: value: mlopspython - name: DATASET_NAME value: diabetes_ds + # Uncomment DATASTORE_NAME if you have configured non default datastore to point to your data + # - name: DATASTORE_NAME + # value: datablobstore + - name: DATASET_VERSION + value: latest - name: TRAINING_PIPELINE_NAME value: "diabetes-Training-Pipeline" - name: MODEL_NAME diff --git a/diabetes_regression/register/register_model.py b/diabetes_regression/register/register_model.py index 8c63506c..3376285e 100644 --- a/diabetes_regression/register/register_model.py +++ b/diabetes_regression/register/register_model.py @@ -28,7 +28,7 @@ import argparse import traceback import joblib -from azureml.core import Run, Experiment, Workspace +from azureml.core import Run, Experiment, Workspace, Dataset from azureml.core.model import Model as AMLModel @@ -105,8 +105,15 @@ def main(): print("Tags present: {parent_tags}") if (model is not None): + dataset_id = parent_tags["dataset_id"] if (build_id is None): - register_aml_model(model_file, model_name, model_mse, exp, run_id) + register_aml_model( + model_file, + model_name, + model_mse, + exp, + run_id, + dataset_id) elif (build_uri is None): register_aml_model( model_file, @@ -114,6 +121,7 @@ def main(): model_mse, exp, run_id, + dataset_id, build_id) else: register_aml_model( @@ -122,6 +130,7 @@ def main(): model_mse, exp, run_id, + dataset_id, build_id, build_uri) else: @@ -146,6 +155,7 @@ def register_aml_model( model_mse, exp, run_id, + dataset_id, build_id: str = 'none', build_uri=None ): @@ -164,7 +174,9 @@ def register_aml_model( workspace=exp.workspace, model_name=model_name, model_path=model_path, - tags=tagsValue) + tags=tagsValue, + datasets=[('training data', + Dataset.get_by_id(exp.workspace, dataset_id))]) os.chdir("..") print( "Model registered: {} \nModel Description: {} " diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index c3f1203c..66dbc20f 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -31,6 +31,22 @@ from sklearn.model_selection import train_test_split import joblib import json +from azureml.core import Dataset, Datastore, Workspace + + +def register_dataset( + aml_workspace: Workspace, + dataset_name: str, + datastore_name: str, + file_path: str +) -> Dataset: + datastore = Datastore.get(aml_workspace, datastore_name) + dataset = Dataset.Tabular.from_delimited_files(path=(datastore, file_path)) + dataset = dataset.register(workspace=aml_workspace, + name=dataset_name, + create_new_version=True) + + return dataset def train_model(run, data, alpha): @@ -64,13 +80,47 @@ def main(): help=("output for passing data to next step") ) + parser.add_argument( + "--dataset_version", + type=str, + help=("dataset version") + ) + + parser.add_argument( + "--data_file_path", + type=str, + help=("data file path, if specified,\ + a new version of the dataset will be registered") + ) + + parser.add_argument( + "--caller_run_id", + type=str, + help=("caller run id, for example ADF pipeline run id") + ) + + parser.add_argument( + "--dataset_name", + type=str, + help=("Dataset name. Dataset must be passed by name\ + to always get the desired dataset version\ + rather than the one used while the pipeline creation") + ) + args = parser.parse_args() print("Argument [model_name]: %s" % args.model_name) print("Argument [step_output]: %s" % args.step_output) + print("Argument [dataset_version]: %s" % args.dataset_version) + print("Argument [data_file_path]: %s" % args.data_file_path) + print("Argument [caller_run_id]: %s" % args.caller_run_id) + print("Argument [dataset_name]: %s" % args.dataset_name) model_name = args.model_name step_output_path = args.step_output + dataset_version = args.dataset_version + data_file_path = args.data_file_path + dataset_name = args.dataset_name print("Getting training parameters") @@ -86,16 +136,27 @@ def main(): run = Run.get_context() # Get the dataset - dataset = run.input_datasets['training_data'] - if (dataset): - df = dataset.to_pandas_dataframe() - X = df.drop('Y', axis=1).values - y = df['Y'].values + if (dataset_name): + if (data_file_path == 'none'): + dataset = Dataset.get_by_name(run.experiment.workspace, dataset_name, dataset_version) # NOQA: E402, E501 + else: + dataset = register_dataset(run.experiment.workspace, + dataset_name, + os.environ.get("DATASTORE_NAME"), + data_file_path) else: e = ("No dataset provided") print(e) raise Exception(e) + # Link dataset to the step run so it is trackable in the UI + run.input_datasets['training_data'] = dataset + run.parent.tag("dataset_id", value=dataset.id) + + df = dataset.to_pandas_dataframe() + X = df.drop('Y', axis=1).values + y = df['Y'].values + X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=0) data = {"train": {"X": X_train, "y": y_train}, diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index 7192d308..f0e7bf3a 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -1,9 +1,8 @@ from azureml.pipeline.core.graph import PipelineParameter from azureml.pipeline.steps import PythonScriptStep from azureml.pipeline.core import Pipeline, PipelineData -from azureml.core import Workspace +from azureml.core import Workspace, Dataset, Datastore from azureml.core.runconfig import RunConfiguration -from azureml.core import Dataset from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env from ml_service.util.manage_environment import get_environment @@ -39,8 +38,20 @@ def main(): run_config = RunConfiguration() run_config.environment = environment + if (e.datastore_name): + datastore_name = e.datastore_name + else: + datastore_name = aml_workspace.get_default_datastore().name + run_config.environment.environment_variables["DATASTORE_NAME"] = datastore_name # NOQA: E501 + model_name_param = PipelineParameter( name="model_name", default_value=e.model_name) + dataset_version_param = PipelineParameter( + name="dataset_version", default_value=e.dataset_version) + data_file_path_param = PipelineParameter( + name="data_file_path", default_value="none") + caller_run_id_param = PipelineParameter( + name="caller_run_id", default_value="none") # Get dataset name dataset_name = e.dataset_name @@ -57,9 +68,9 @@ def main(): df.to_csv(file_name, index=False) # Upload file to default datastore in workspace - default_ds = aml_workspace.get_default_datastore() + datatstore = Datastore.get(aml_workspace, datastore_name) target_path = 'training-data/' - default_ds.upload_files( + datatstore.upload_files( files=[file_name], target_path=target_path, overwrite=True, @@ -68,7 +79,7 @@ def main(): # Register dataset path_on_datastore = os.path.join(target_path, file_name) dataset = Dataset.Tabular.from_delimited_files( - path=(default_ds, path_on_datastore)) + path=(datatstore, path_on_datastore)) dataset = dataset.register( workspace=aml_workspace, name=dataset_name, @@ -76,9 +87,6 @@ def main(): tags={'format': 'CSV'}, create_new_version=True) - # Get the dataset - dataset = Dataset.get_by_name(aml_workspace, dataset_name) - # Create a PipelineData to pass data between steps pipeline_data = PipelineData( 'pipeline_data', @@ -89,11 +97,14 @@ def main(): script_name=e.train_script_path, compute_target=aml_compute, source_directory=e.sources_directory_train, - inputs=[dataset.as_named_input('training_data')], outputs=[pipeline_data], arguments=[ "--model_name", model_name_param, - "--step_output", pipeline_data + "--step_output", pipeline_data, + "--dataset_version", dataset_version_param, + "--data_file_path", data_file_path_param, + "--caller_run_id", caller_run_id_param, + "--dataset_name", dataset_name, ], runconfig=run_config, allow_reuse=False, diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index 90bc906e..c00ee603 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -40,6 +40,8 @@ def __init__(self): self._score_script = os.environ.get("SCORE_SCRIPT") self._build_uri = os.environ.get("BUILD_URI") self._dataset_name = os.environ.get("DATASET_NAME") + self._datastore_name = os.environ.get("DATASTORE_NAME") + self._dataset_version = os.environ.get("DATASET_VERSION") self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") self._allow_run_cancel = os.environ.get( "ALLOW_RUN_CANCEL", "true") @@ -145,6 +147,14 @@ def build_uri(self): def dataset_name(self): return self._dataset_name + @property + def datastore_name(self): + return self._datastore_name + + @property + def dataset_version(self): + return self._dataset_version + @property def run_evaluation(self): return self._run_evaluation From e856a4f7da3d7f6d635dfa620ce8decd13923ce4 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Tue, 3 Mar 2020 12:10:50 -0800 Subject: [PATCH 054/109] Getting started refactor (#216) To address feedback about some confusion when following the guide (especially to do with service connections) I have refactored the document structure. - Optional tasks / extra info has been moved down to either 'Further Exploration' (directly for getting started) or 'Next Steps' (specifically for integrating ML code.) - Grammar fixes and simplified wording in parts - Removed manual word wrapping to let autoformat do its thing - Added a table of contents - Update ARM service connection screenshot. Fixes #215 - Replace some outdated guide images. Fixes #210 --- bootstrap/README.md | 11 +- docs/getting_started.md | 348 +++++++++---------- docs/images/ci-build-pipeline-configure.png | Bin 69008 -> 146742 bytes docs/images/create-rm-service-connection.png | Bin 311731 -> 181470 bytes docs/images/ml-ws-svc-connection.png | Bin 61526 -> 183467 bytes docs/images/run-iac-pipeline.png | Bin 76748 -> 79081 bytes docs/images/select-iac-pipeline.png | Bin 69549 -> 148551 bytes 7 files changed, 176 insertions(+), 183 deletions(-) diff --git a/bootstrap/README.md b/bootstrap/README.md index bf7842db..443f926a 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -1,6 +1,6 @@ # Bootstrap from MLOpsPython repository -To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstrapping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. +To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstrapping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. ## Generating the project structure @@ -10,14 +10,19 @@ To bootstrap from the existing MLOpsPython repository clone this repository, ens Where `[dirpath]` is the absolute path to the root of your directory where MLOps repo is cloned and `[projectname]` is the name of your ML project. -The script renames folders, files and files' content from the base project name `diabetes` to your project name. However, you might need to manually rename variables defined in a variable group and their values. +The script renames folders, files and files' content from the base project name `diabetes` to your project name. However, you might need to manually rename variables defined in a variable group and their values. [This article](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) will also assist to use this code template for your own ML project. +### Using an existing dataset + +The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. To use your own data, you need to [create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your workspace and add a DATASET_NAME variable in the ***devopsforai-aml-vg*** variable group with the Dataset name. You'll also need to modify the test cases in the **ml_service/util/smoke_test_scoring_service.py** script to match the schema of the training features in your dataset. + ## Customizing the CI and AML environments In your project you will want to customize your own Docker image and Conda environment to use only the dependencies and tools required for your use case. This requires you to edit the following environment definition files: + - The Azure ML training and scoring Conda environment defined in [conda_dependencies.yml](diabetes_regression/conda_dependencies.yml). - The CI Docker image and Conda environment used by the Azure DevOps build agent. See [instructions for customizing the Azure DevOps job container](../docs/custom_container.md). -You will want to synchronize dependency versions as appropriate between both environment definitions (for example, ML libraries used both in training and in unit tests). \ No newline at end of file +You will want to synchronize dependency versions as appropriate between both environment definitions (for example, ML libraries used both in training and in unit tests). diff --git a/docs/getting_started.md b/docs/getting_started.md index 5bbfe0bb..0638e21c 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,238 +1,206 @@ -# Getting Started with this Repo -## Create an Azure DevOps organization +# Getting Started with MLOpsPython -We use Azure DevOps for running our multi-stage pipeline with build(CI), ML training and scoring service release -(CD) stages. If you don't already have an Azure DevOps organization, create one by -following the instructions [here](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=azure-devops). +This guide shows how to get MLOpsPython working with a sample ML project ***diabetes_regression***. The project creates a linear regression model to predict diabetes. You can adapt this example to use with your own project. -If you already have an Azure DevOps organization, create a [new project](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). +We recommend working through this guide completely to ensure everything is working in your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into a starting point for your project. -## Decide best option to copy repository code +- [Setting up Azure DevOps](#setting-up-azure-devops) +- [Get the code](#get-the-code) +- [Create a Variable Group for your Pipeline](#create-a-variable-group-for-your-pipeline) + - [Variable Descriptions](#variable-descriptions) +- [Provisioning resources using Azure Pipelines](#provisioning-resources-using-azure-pipelines) + - [Create an Azure DevOps Service Connection for the Azure Resource Manager](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) + - [Create the IaC Pipeline](#create-the-iac-pipeline) +- [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) +- [Set up Build, Release Trigger, and Release Multi-Stage Pipeline](#set-up-build-release-trigger-and-release-multi-stage-pipeline) + - [Set up the Pipeline](#set-up-the-pipeline) +- [Further Exploration](#further-exploration) + - [Deploy the model to Azure Kubernetes Service](#deploy-the-model-to-azure-kubernetes-service) + - [Deploy the model to Azure App Service (Azure Web App for containers)](#deploy-the-model-to-azure-app-service-azure-web-app-for-containers) + - [Example pipelines using R](#example-pipelines-using-r) + - [Observability and Monitoring](#observability-and-monitoring) + - [Clean up the example resources](#clean-up-the-example-resources) +- [Next Steps: Integrating your project](#next-steps-integrating-your-project) + - [Additional Variables and Configuration](#additional-variables-and-configuration) + - [More variable options](#more-variable-options) + - [Local configuration](#local-configuration) -* Fork this repository if there is a desire to contribute back to the repository else -* Use this [code template](https://github.com/microsoft/MLOpsPython/generate) which copies the entire code base to your own GitHub location with the git commit history restarted. This can be used for learning and following the guide. +## Setting up Azure DevOps -This repository contains a template and demonstrates how to apply it to a sample ML project ***diabetes_regression*** that creates a linear regression model to predict the diabetes. +You'll use Azure DevOps for running the multi-stage pipeline with build, model training, and scoring service release stages. If you don't already have an Azure DevOps organization, create one by following the instructions at [Quickstart: Create an organization or project collection](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=azure-devops). -If the desire is to adopt this template for your project and to use it with your machine learning code, it is recommended to go through this guide as it is first. This ensures everything is working on your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into your project starting point. +If you already have an Azure DevOps organization, create a new project using the guide at [Create a project in Azure DevOps and TFS](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). -## Create a Variable Group for your Pipeline - -We make use of a variable group inside Azure DevOps to store variables and their -values that we want to make available across multiple pipelines or pipeline stages. You can either -store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) -or connect to an Azure Key Vault in your subscription. Please refer to the -documentation [here](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) to -learn more about how to create a variable group and -[link](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#use-a-variable-group) it to your pipeline. -Click on **Library** in the **Pipelines** section as indicated below: +## Get the code -![library_variable groups](./images/library_variable_groups.png) +We recommend using the [repository template](https://github.com/microsoft/MLOpsPython/generate), which effectively forks the repository to your own GitHub location and squashes the history. You can use the resulting repository for this guide and for your own experimentation. -Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline definitions in this repository refer to this variable group by name. - -The variable group should contain the following required variables: +## Create a Variable Group for your Pipeline -| Variable Name | Suggested Value | -| ------------------------ | ------------------------ | -| BASE_NAME | [unique base name] | -| LOCATION | centralus | -| RESOURCE_GROUP | mlops-RG | -| WORKSPACE_NAME | mlops-AML-WS | -| AZURE_RM_SVC_CONNECTION | azure-resource-connection| -| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | -| ACI_DEPLOYMENT_NAME | diabetes-aci | +MLOpsPython requires some variables to be set before you can run any pipelines. You'll need to create a *variable group* in Azure DevOps to store values that are reused across multiple pipelines or pipeline stages. Either store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) or connect to an Azure Key Vault in your subscription. Check out the [Add & use variable groups](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml#use-a-variable-group) documentation to learn more about how to create a variable group and link it to your pipeline. -**Note:** +Navigate to **Library** in the **Pipelines** section as indicated below: -The **WORKSPACE_NAME** parameter is used for the Azure Machine Learning Workspace creation. You can provide an existing AML Workspace here if you have one. +![Library Variable Groups](./images/library_variable_groups.png) -The **BASE_NAME** parameter is used throughout the solution for naming -Azure resources. When the solution is used in a shared subscription, there can -be naming collisions with resources that require unique names like azure blob -storage and registry DNS naming. Make sure to give a unique value to the -BASE_NAME variable (e.g. MyUniqueML), so that the created resources will have -unique names (e.g. MyUniqueMLamlcr, MyUniqueML-AML-KV, etc.). The length of -the BASE_NAME value should not exceed 10 characters and it should contain numbers and letters only. +Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline definitions in this repository refer to this variable group by name. -The **RESOURCE_GROUP** parameter is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing AML Workspace, set this value to the corresponding resource group name. +The variable group should contain the following required variables: -The **AZURE_RM_SVC_CONNECTION** parameter is used by the [Azure DevOps pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) that creates the Azure ML workspace and associated resources through Azure Resource Manager. The pipeline requires an **Azure Resource Manager** -[service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). +| Variable Name | Suggested Value | Short description | +| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| BASE_NAME | [your project name] | Unique naming prefix for created resources - max 10 chars, letters and numbers only | +| LOCATION | centralus | Azure location | +| RESOURCE_GROUP | mlops-RG | Azure Resource Group | +| WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | +| AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | +| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | +| ACI_DEPLOYMENT_NAME | diabetes-aci | Azure Container Interface | -![create service connection](./images/create-rm-service-connection.png) +Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. -Leave the **``Resource Group``** field empty. +More variables are available for further tweaking, but the above variables are all you need to get started with this example. For more information, see the [Additional Variables and Configuration](#additional-variables-and-configuration) section. -**Note:** Creating the ARM service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. -You must also have sufficient permissions to register an application with -your Azure AD tenant, or receive the ID and secret of a service principal -from your Azure AD Administrator. That principal must have 'Contributor' -permissions on the subscription. +### Variable Descriptions -The **WORKSPACE_SVC_CONNECTION** parameter is used to reference a service connection for the Azure ML workspace. You will create this after provisioning the workspace (we recommend using the IaC pipeline as described below), and installing the Azure ML extension in your Azure DevOps project. +**WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. You can provide an existing Azure ML Workspace here if you've got one. -Optionally, a **DATASET_NAME** parameter can be used to reference a training dataset that you have registered in your Azure ML workspace (more details below). +**BASE_NAME** is used as a prefix for naming Azure resources. When sharing an Azure subscription, the prefix allows you to avoid naming collisions for resources that require unique names, for example, Azure Blob Storage and Registry DNS. Make sure to set BASE_NAME to a unique name so that created resources will have unique names, for example, MyUniqueMLamlcr, MyUniqueML-AML-KV, and so on. The length of the BASE_NAME value shouldn't exceed 10 characters and must contain letters and numbers only. -Make sure to select the **Allow access to all pipelines** checkbox in the -variable group configuration. +**RESOURCE_GROUP** is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing Azure ML Workspace, set this value to the corresponding resource group name. -## More variable options +**AZURE_RM_SVC_CONNECTION** is used by the [Azure Pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) in Azure DevOps that creates the Azure ML workspace and associated resources through Azure Resource Manager. You'll create the connection in a [step below](#create-an-azure-devops-service-connection-for-the-azure-resource-manager). -There are more variables used in the project. They're defined in two places, one for local execution and one for using Azure DevOps Pipelines. +**WORKSPACE_SVC_CONNECTION** is used to reference a [service connection for the Azure ML workspace](#create-an-azure-devops-azure-ml-workspace-service-connection). You'll create the connection after [provisioning the workspace](#provisioning-resources-using-azure-pipelines) in the [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) section below. -### Local configuration +## Provisioning resources using Azure Pipelines -For instructions on how to set up a local development environment, refer to the [Development environment setup instructions](development_setup.md). +The easiest way to create all required Azure resources (Resource Group, Azure ML Workspace, Container Registry, and others) is to use the **Infrastructure as Code (IaC)** [pipeline in this repository](../environment_setup/iac-create-environment-pipeline.yml). The pipeline takes care of setting up all required resources based on these [Azure Resource Manager templates](../environment_setup/arm-templates/cloud-environment.json). -### Azure DevOps configuration +### Create an Azure DevOps Service Connection for the Azure Resource Manager -For using Azure DevOps Pipelines all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. +The [IaC provisioning pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). -**Note:** In `diabetes_regression` folder you can find `config.json` file that we would recommend to use in order to provide parameters for training, evaluation and scoring scripts. An example of a such parameter is a hyperparameter of a training algorithm: in our case it's the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any special serializers for this config file. So, it's up to you which template to support there. +![Create service connection](./images/create-rm-service-connection.png) -Up until now you should have: - -* Forked (or cloned) the repo -* Configured an Azure DevOps project with a service connection to Azure Resource Manager -* Set up a variable group with all configuration values - -## Create Resources with Azure Pipelines +Leave the **``Resource Group``** field empty. -The easiest way to create all required resources (Resource Group, ML Workspace, -Container Registry, Storage Account, etc.) is to leverage an -"Infrastructure as Code" [pipeline in this repository](../environment_setup/iac-create-environment-pipeline.yml). This **IaC** pipeline takes care of setting up -all required resources based on these [ARM templates](../environment_setup/arm-templates/cloud-environment.json). +**Note:** Creating the Azure Resource Manager service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. +You'll also need sufficient permissions to register an application with your Azure AD tenant, or you can get the ID and secret of a service principal from your Azure AD Administrator. That principal must have 'Contributor' permissions on the subscription. -### Create a Build IaC Pipeline +### Create the IaC Pipeline In your Azure DevOps project, create a build pipeline from your forked repository: -![build connnect step](./images/build-connect.png) +![Build connect step](./images/build-connect.png) Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline.yml](../environment_setup/iac-create-environment-pipeline.yml): -![configure step](./images/select-iac-pipeline.png) +![Configure step](./images/select-iac-pipeline.png) Having done that, run the pipeline: -![iac run](./images/run-iac-pipeline.png) +![IaC run](./images/run-iac-pipeline.png) -Check out the newly created resources in the [Azure Portal](https://portal.azure.com): +Check that the newly created resources appear in the [Azure Portal](https://portal.azure.com): -![created resources](./images/created-resources.png) +![Created resources](./images/created-resources.png) -(Optional) To remove the resources created for this project you can use the [/environment_setup/iac-remove-environment-pipeline.yml](../environment_setup/iac-remove-environment-pipeline.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). +## Create an Azure DevOps Service Connection for the Azure ML Workspace -**Note:** The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. To use your own data, you need to [create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your workspace and specify its name in a DATASET_NAME variable in the ***devopsforai-aml-vg*** variable group. You will also need to modify the test cases in the **ml_service/util/smoke_test_scoring_service.py** script to match the schema of the training features in your dataset. +At this point, you should have an Azure ML Workspace created. Similar to the Azure Resource Manager service connection, you need to create an additional one for the Azure ML Workspace. -## Create an Azure DevOps Azure ML Workspace Service Connection +Install the **Azure Machine Learning** extension to your Azure DevOps organization from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml). The extension is required for the service connection. -Install the **Azure Machine Learning** extension to your organization from the -[marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml), -so that you can set up a service connection to your AML workspace. +Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above. -Create a service connection to your ML workspace via the [Azure DevOps Azure ML task instructions](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) to be able to execute the Azure ML training pipeline. The connection name specified here needs to be used for the value of the `WORKSPACE_SVC_CONNECTION` set in the variable group above. +![Created resources](./images/ml-ws-svc-connection.png) -![created resources](./images/ml-ws-svc-connection.png) - -**Note:** Creating service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. -You must also have sufficient permissions to register an application with -your Azure AD tenant, or receive the ID and secret of a service principal -from your Azure AD Administrator. That principal must have Contributor -permissions on the Azure ML Workspace. +**Note:** Similar to the Azure Resource Manager service connection you created earlier, creating a service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. +You'll need sufficient permissions to register an application with your Azure AD tenant, or you can get the ID and secret of a service principal from your Azure AD Administrator. That principal must have Contributor permissions on the Azure ML Workspace. ## Set up Build, Release Trigger, and Release Multi-Stage Pipeline -Now that you have all the required resources created from the IaC pipeline, -you can set up the pipeline necessary for deploying your ML model -to production. The pipeline has a sequence of stages for: +Now that you've provisioned all the required Azure resources and service connections, you can set up the pipeline for deploying your machine learning model to production. The pipeline has a sequence of stages for: -1. **Model Code Continuous Integration:** triggered on code change to master branch on GitHub, -performs linting, unit testing and publishes a training pipeline. +1. **Model Code Continuous Integration:** triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage and publishes a training pipeline. 1. **Train Model**: invokes the Azure ML service to trigger the published training pipeline to train, evaluate, and register a model. -1. **Release Deployment:** deploys a model to ACI, AKS and Azure App Service environments. +1. **Release Deployment:** deploys a model to either [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/), [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service), or [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) environments. For simplicity, you're going to initially focus on Azure Container Instances. See [Further Exploration](#further-exploration) for other deployment types. + 1. **Note:** Edit the pipeline definition to remove unused stages. For example, if you're deploying to Azure Container Instances and Azure Kubernetes Service only, delete the unused `Deploy_Webapp` stage. ### Set up the Pipeline -In your [Azure DevOps](https://dev.azure.com) project create and run a new build -pipeline referring to the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) -pipeline definition in your forked repository: +In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) +pipeline definition in your forked repository. + +![Configure CI build pipeline](./images/ci-build-pipeline-configure.png) -![configure ci build pipeline](./images/ci-build-pipeline-configure.png) +Once the pipeline is finished, check the execution result: -Once the pipeline is finished, explore the execution result: +![Build](./images/multi-stage-aci.png) -![build](./images/multi-stage-aci.png) +Also check the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): -and check out the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): +![Training pipeline](./images/training-pipeline.png) -![training pipeline](./images/training-pipeline.png) +Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch! -Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch. +* The first stage of the pipeline, **Model CI**, does linting, unit testing, code coverage, building, and publishes an **ML Training Pipeline** in an **ML Workspace**. -* The first stage of the pipeline, **Model CI**, performs linting, unit testing, build and publishes an **ML Training Pipeline** in an **ML Workspace**. +* The second stage of the pipeline, **Train model**, triggers the run of the Azure ML training pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation happens on an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, the stage runs an agentless job that waits for the completion of the Azure ML job. This allows the pipeline to wait for training completion for hours or even days without using agent resources. - **Note:** The build pipeline also supports building and publishing ML -pipelines using R to train a model. This is enabled -by changing the `build-train-script` pipeline variable to either of: -* `diabetes_regression_build_train_pipeline_with_r.py` to train a model -with R on Azure ML Compute. You will also need to uncomment (i.e. include) the -`r-essentials` Conda packages in the environment definition -`diabetes_regression/conda_dependencies.yml`. -* `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` -to train a model with R on Databricks. You will need -to manually create a Databricks cluster and attach it to the ML Workspace as a -compute (Values DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables should be -specified). Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. +* **Note:** If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the pipeline will be **canceled**. + * In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' + * See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the pipeline reporting logic. + * [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. -* The second stage of the pipeline, **Train model**, triggers the run of the ML Training Pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation is performed in an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, this stage runs an agentless job that waits for the completion of the Azure ML job, allowing the pipeline to wait for training completion for hours or even days without using agent resources. +* The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). After deployment, it runs a *smoke test* for validation. The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. -**Note:** If the model evaluation determines that the new model does not perform better than the previous one then the new model will not be registered and the pipeline will be cancelled. +The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. -* The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). It then runs a *smoke test* to validate the deployment, i.e. sends a sample query to the scoring web service and verifies that it returns a response in the expected format. +After the pipeline is finished, you'll see a new model in the **ML Workspace**: -The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The image of the container ***mcr.microsoft.com/mlops/python:latest*** is built with this [Dockerfile](../environment_setup/Dockerfile) and it has all necessary dependencies installed for the purposes of this repository. This image serves as an example of using a custom Docker image that provides a pre-baked environment. This environment is guaranteed to be the same on any building agent, VM or local machine. In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it will be totally maintained by your team. +![Trained model](./images/trained-model.png) -Wait until the pipeline finishes and verify that there is a new model in the **ML Workspace**: +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. You can also override the variable at runtime execution of the pipeline. -![trained model](./images/trained-model.png) +To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the ID of the previous build. -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. This can also be overridden at runtime execution of the pipeline. +## Further Exploration -To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the id of the previous build. +You should now have a working pipeline that can get you started with MLOpsPython. Below are some additional features offered that might suit your scenario. -### Deploy the Model to Azure Kubernetes Service +### Deploy the model to Azure Kubernetes Service -The final stage is to deploy the model to the production environment running on -[Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). +MLOpsPython also can deploy to [Azure Kubernetes Service](https://azure.microsoft.com/en-us/services/kubernetes-service). -**Note:** Creating a Kubernetes cluster on AKS is out of scope of this -tutorial, but you can find set up information -[here](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster). +Creating a cluster on Azure Kubernetes Service is out of scope of this tutorial, but you can find set up information on the [Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster) page. -**Note:** If your target deployment environment is a K8s cluster and you want to implement Canary and/or A/B testing deployment strategies check out this [tutorial](./canary_ab_deployment.md). +**Note:** If your target deployment environment is a Kubernetes cluster and you want to implement Canary and/or A/B testing deployment strategies, check out this [tutorial](./canary_ab_deployment.md). -In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variables: +Keep the Azure Container Instances deployment active because it's a lightweight way to validate changes before deploying to Azure Kubernetes Service. + +In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add these variables: | Variable Name | Suggested Value | | ------------------- | --------------- | | AKS_COMPUTE_NAME | aks | | AKS_DEPLOYMENT_NAME | diabetes-aks | -Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster referencing your AKS cluster in your Azure ML Workspace. +Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. After successfully deploying to Azure Container Instances, the next stage will deploy the model to Kubernetes and run a smoke test. ![build](./images/multi-stage-aci-aks.png) -## Deploy the Model to Azure App Service (Azure Web App for containers) +Consider enabling [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. + +### Deploy the model to Azure App Service (Azure Web App for containers) -Note: This is an optional step and can be used only if you are [deploying your -scoring service on Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service). +If you want to deploy your scoring service as an [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) instead of Azure Container Instances and Azure Kubernetes Service, follow these additional steps. -In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add the following variable: +In the Variables tab, edit your variable group (`devopsforai-aml-vg`) and add a variable: | Variable Name | Suggested Value | | ---------------------- | ---------------------- | @@ -242,43 +210,63 @@ Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must Delete the **ACI_DEPLOYMENT_NAME** variable. -The pipeline uses the [Create Image Script](../ml_service/util/create_scoring_image.py) -to create a scoring image. The image -created by this script will be registered under Azure Container Registry (ACR) -instance that belongs to Azure Machine Learning Service. Any dependencies that -scoring file depends on can also be packaged with the container with Image -config. -[Learn more on how to create a container with AML SDK](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-). +The pipeline uses the [Create Image Script](../ml_service/util/create_scoring_image.py) to create a scoring image. The image will be registered under an Azure Container Registry instance that belongs to the Azure Machine Learning Service. Any dependencies that the scoring file depends on can also be packaged with the container with an image config. Learn more about how to create a container using the Azure ML SDK with the [Image class](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-) API documentation. -Make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. You could do this by following the instructions in the section [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app). Note that you must have run the pipeline once (including the Deploy to Webapp stage up to the `Create scoring image` step) so that an image is present in the registry, before you can connect the Webapp to the Azure Container Registry in the Azure Portal. +Make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. Instructions can be found on the [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app) page. You'll need to run the pipeline once (including the Deploy to Webapp stage up to the `Create scoring image` step) so an image is present in the registry. After that, you can connect the Webapp to the Azure Container Registry in the Azure Portal. ![build](./images/multi-stage-webapp.png) -## Next steps - -* You may wish to follow the [bootstrap instructions](../bootstrap/README.md) to create a starting point for your project use case. -* Use the [Convert ML experimental code to production code](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) tutorial which explains how to bring your machine learning code on top of this template. -* The provided pipeline definition YAML file is a sample starting point, which you should tailor to your processes and environment. -* You should edit the pipeline definition to remove unused stages. For example, if you are deploying to ACI and AKS, you should delete the unused `Deploy_Webapp` stage. -* You may wish to enable [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. -* You may want to use [Azure DevOps self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your ML pipeline execution. The Docker container image for the ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. -* You can install additional Conda or pip packages by modifying the YAML environment configurations under the `diabetes_regression` directory. Make sure to use fixed version numbers for all packages to ensure reproducibility, and use the same versions across environments. -* You can explore aspects of model observability in the solution, such as: - * **Logging**: navigate to the Application Insights instance linked to the Azure ML Portal, - then to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs - generated in `score.py`, and can be used for example to analyze query duration vs. scoring batch size: - - let Traceinfo=traces - | extend d=parse_json(tostring(customDimensions.Content)) - | project workspace=customDimensions.["Workspace Name"], - service=customDimensions.["Service Name"], - NumberOfPredictions=tostring(d.NumberOfPredictions), - id=tostring(d.RequestId), - TraceParent=tostring(d.TraceParent); - requests - | project timestamp, id, success, resultCode, duration - | join kind=fullouter Traceinfo on id - | project-away id1 - - * **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs this header. The query above shows how to surface this value. You can adapt this to your tracing framework. - * **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance, just as for any other container. +### Example pipelines using R + +The build pipeline also supports building and publishing Azure ML pipelines using R to train a model. You can enable it by changing the `build-train-script` pipeline variable to either of the following values: + +* `diabetes_regression_build_train_pipeline_with_r.py` to train a model with R on Azure ML Compute. You'll also need to uncomment (include) the `r-essentials` Conda packages in the environment definition YAML `diabetes_regression/conda_dependencies.yml`. +* `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` to train a model with R on Databricks. You'll need to manually create a Databricks cluster and attach it to the Azure ML Workspace as a compute resource. Set the DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables in your variable group. + +Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. + +### Observability and Monitoring + +You can explore aspects of model observability in the solution, such as: + +* **Logging**: Navigate to the Application Insights instance linked to the Azure ML Portal, then go to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs generated in `score.py`. This can be used, for example, to analyze query duration vs. scoring batch size: + + ``` + let Traceinfo=traces + | extend d=parse_json(tostring(customDimensions.Content)) + | project workspace=customDimensions.["Workspace Name"], + service=customDimensions.["Service Name"], + NumberOfPredictions=tostring(d.NumberOfPredictions), + id=tostring(d.RequestId), + TraceParent=tostring(d.TraceParent); + requests + | project timestamp, id, success, resultCode, duration + | join kind=fullouter Traceinfo on id + | project-away id1 + ``` + +* **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs the header. The query above shows how to surface this value. You can adapt it to your tracing framework. +* **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance. + +### Clean up the example resources + +To remove the resources created for this project, use the [/environment_setup/iac-remove-environment-pipeline.yml](../environment_setup/iac-remove-environment-pipeline.yml) definition or you can just delete the resource group in the [Azure Portal](https://portal.azure.com). + +## Next Steps: Integrating your project + +* Follow the [bootstrap instructions](../bootstrap/README.md) to create a starting point for your project use case. This guide includes information on bringing your own code to this repository template. +* Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. + +### Additional Variables and Configuration + +#### More variable options + +There are more variables used in the project. They're defined in two places: one for local execution and one for using Azure DevOps Pipelines. + +For using Azure Pipelines, all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. + +In that folder, you'll also find the `config.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. + +#### Local configuration + +For instructions on how to set up a local development environment, refer to the [Development environment setup instructions](development_setup.md). diff --git a/docs/images/ci-build-pipeline-configure.png b/docs/images/ci-build-pipeline-configure.png index d593d1dc69359c6a0374a582df165c2b8af2fc4a..62953b53bb0dddb9dc8d285c3d3b6c23790f55f3 100644 GIT binary patch literal 146742 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%0ANwaSNkvkvF#z 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�>K(2ZuNkfC+$1&C@UA=6H7BlyH9B@&UJVm3E6DWgCJ%K|1_;)@utKxosyScM z{M5My-vN?yy^o4@azjMjD9M&t2};s#w@e<4CpIl&{-87bO+0_d`3VDrkDH9eF(mpd z1LbD>F!Ij|(+_+3=giju>GALOI=b>f!>Lhj;51M>4@U>5ziA>a8kU>Herg0%m) z-Q{P1X@BGnm>=y(_5W^P{(mz8j5U8})miJzcu@*} zThW!X@ZJ^>X(|HJEkH!7p!A|3BA`S?=~X~F1nDKPl_nrHD4_HzAYFQi6s1Y;1c;#p z2oPElNCd#8**KU4Vgz0J<+NnnL?SC9PjNh)L$m{lj1DRJ?3vehKj7I0R-+ z0-(QZTpEd;r!H##04n@egZOLV=(~sC&-CB(_Gy(#nt^ELN@c^kO8?Z}{2yGq!y)vo z|JT#g|KEkw|1QgaMl}65&)WZcqNV0&qZ>}e+iLfrK6%2B5r8g~P5h+5`$r=2Ob3t$ zon%vtV4;#P2IXTM^IXlNBZ><^+cyC%f`9H2{6Lue$albjoO(WUfNBeJTkD?cud7B8p=E4$J=O_-y?KHW8A!;6JhVIpwu~Qx2!jNBJ7v5GOB$bJcgC z1IM8U;QwPzcA+MsW_uv1G};09QAE=hRNJMa<=+~cydG;z*Jtz5iFtH?dP5EHD1e{x zFFuJQ|E9`T*oo_ntDD6rIdo^(2gpS{F@O5Ojm>_S+VzGe??a&1MW^_m^rrq)h6KPV zj`L4Ln5IGP3!CV^j-CbZ)L8ZCWJ_3|qG9Yno_k^*bvC+un>gq$z_lC`YKWx|eICB} z!3I{0DlCsTkwOht#&LRYncFsks~=!rkE+R9F1;;+acSw94Q}OdCpA6Zo3y6QYWDZ+ zBnuDtV;y^Jx^L<35?k|F<|_DZUNgy+P91Tfz_>JtskK;~+yqH#JrD%^MHwrB6!_Fte=lNE_+bm?kNR)VH4c zW@0;Cq3dI^L^CB=KPMw-z|8?ktBBR{$x3!dz0j`9quGMiCI& zx9wi0-&7ggDM!&(n485K&=;O7IBkmJFS(!uhO-eB7L*4%U;; zsr%^Q^;ny{U?$(m?CaxCWgC?MD3#oupUiW{{QzIM=v0c{K|5t1xhXiYpP)pd^(O8b z)!fTM1%)tR{dT|$*6^$BPTLFCqMcGc)+#&!=DD1Y+@J)Ny&=jDdQ-_ z7I=_gwcAq9?1(VJ(1IA2>Z0jCV?@-K)rD8F_l_}+Xz}=;*UM9_6ZzaNLg+Z!>_6D5 zvd7;NW_Z)kFc5BijEUXH%@(q0<$O+HL`Ihu6bB9jGSE!MPcr)9vIHq!&p_RJkU{PP zVmy9*h}L{lkK(|a+%Kk_cH{C%u4^SVEUVgqf4C+D_)g#aFD}2GHX%aaJnv^ENdVnU3& znUwv_h|K@y6i`&YL#12r4$3mgS+13$6+}1SN`YW=HX%J zm*Kqz0Q)W+NTWG0vZBEu$0{P=3Hs6{e98SFMxj&r3%2yMs)K74c+6GGY`}g=>39)l zNj#-umLvfeR@$prX=zf-*z8myT1+4VvgEUe$4rxB3zdj@%qX>iTASZzPA*e62$Yol z$S9tUPrKzD=}Y3!dk8|O(*7JoZram8AvcZ=bTAaKhus1nd;_=Q?I`x|w^O7N=D`Q# zv|vo`z(M1lT)-n2e_6{n`1XMP&VYz9gG&?9ve91*v1D>7#Vx7#XgQ}5VMkk7)dp!p z!pYmA4#V(l2-{@n5BM++0Nh93`*-lt`WH_F;%Jl|^;0mA(pN`|&D;dAV ztPOVskb=}Swwh{&F_4~K?ciH9MZ3Wx2$#i>;rJBnL}v~HYE(_AdoiuxH$`%jQA zSUkBjkLjA<27lTph;v7s8rpSHU)mHbZQeeT>07j4@oiUjESRN{9udv5>)w%P*&j=H z;o6DPPYY?3Ldv<+_WX#~VCf~;?*Y5cl#2a6%3}nKi832avCz9Ura083{n6QtY#4ww z4ORjTWY)9n;g*@Q-T-U`4tl+7Q(`;U>1B5GI!kZ&sf9imbo?mXxjnRPx)&P28A8vl zxRlHog3D^cuSW-z%nH!Z7rE6km|LOsX@RxqG*b>_cKo5ObOQ>YYb6>X>H2n;H@^-% z*aLvGh|!*kH;^al{4IGb29|{Ut{WHLo~q|V3%tZU+s`ngbmj@_+_oy=uDDJKi|7~* z8ZWf}UA0cw-qmdQYVGy!P-xY^C%B~V-l9G2;e!T2x;uzXgYnV4vvD@DhUlzP^VjTv zcx`&B$Ol#w^Hvd=cxH+k3;+5LgVT z%)@V?mZu9&gr&74>1;%T=R+8ytOH`h@(q0%; zk<+I{_8c^ZKvJ&)_5%)(3!rhxR@(e8Vh{ z>a5)Q>rn;YId3j}*Lt5CSbB98zX(j9ReUr1E!v^=*>h&sc-m&vunBL>l6t_X5T=#L z-zT`ZD<0Q%&w${tzX&@11`TR*kUcv6rt!93|QSU3o#}SxY{kE${+)#g6 zzlX{y99&mc+TrBTbz(T{sU_IuNe_ikUI6-N!Xr3SH7Ug|Z}VGhaJBIRB_F6>kQ0nq z%knr=xT5~ngc7;>arfb^;XFr6nByXVFRBB8{S*6n{KL}8cM8ovU*Z~cwNqw!wg|gi zFD-mDbkfrL+?_TAb~)~OSVJZy&Pd7gmTc46<7e0{r%GV@jHdVG@5P?hI#&FZ+m!Y) zzs?mC!*jHF(w)L7jx=yL+EW8D)NZvC*o8Z6FKs#j7IXilizUfZa+!=hXiZZ`pgg-& zjxO&r$ug=wd!K&0l}0eenqFz%oaqTD;s8SrI?L6xloEYlyL&5eeNH!(WbQ3)m-WU~ z-GXcdgpFxV+U*Ao>7Vq#(ivby2LeR7gwUUZd=^Nfir()BdBwFpIsEB|>ZypY|0bs) zS~p%xNgxCK(59Khb8rBU7_*U2F72$wos%8#IL*$xvkxUq>;`{sTRijh}ET5ng!7pR{9z7 zRXH;jhmSY4b{NC|CVj%MJbX~+{@BI(kR!{^WGQy7%LX^bP+6%8drkZ8lr7|J&WMfI z29QogjR-}A1OLy-^rQaR{9~UNeJ=Yb1AJ?A`j_inkVYBf799_XFwE_!8tI2B~qJ<)Qxc=oEK23|BCBz_^|l3 z0O-AY0hoYGK;{eSMW$m`c&C8NAUQPr+sy$e{Paf^m7~xj7rAcek#O$xVsS7-Ow3JL zw-}aL_b8e&|ppGFl!}@XWa|ZGRX^F?ojs%9gAqeiR2u#b}*7KLt_d~&1%ZU z@OIWS0+=Hpg8o>e2iPi)(o)C6!^&{yjvY23#_#_9P6HTA0OYvsPC*Sr7o$)<4Q);7 z*c{!`0~kt_y@0(9ITPf#$(BpCQ$ zfJfJ{aQg-)Pb1s9Y4r%M(hOUKxFc<@BIJ$II^#&FM!q}}4&3&R>l0G|&-24+k(*X% zZ4NTQ)OTST0xviq8$c8(YoZ0MM}9o~_gyInp?W9N0MlwHy71D|0qBah75yxAq`%C} z^pO|{Yr39%M@t?ml>ywrZpmW5tSB8wU6+%gME_tHtpovFpL(|6gB67{fH8Kv3h;qb zc0XB=BjMx4s2~RVob9_dKn}S-6$$(^_Eh1AT2{k$suL)UQPM1GdUIY z_o@NVQ3eJiXUmLRX;S_$47C|luWAe{{objOJOgw(+B9{Q=v2ae7BjsX?Db4Y2Mc1~ zHt=DGd*tx*N76#I9lrQG?3HTx$QIQtW|>*oX^7$vRm+|b$gJd}P~X8)<-pKODhXXH zu+w$PVux)#XV#y8o)aoaYpICI0n;{h>^o1e^zr}Te8BMuq0?n=>-kMWC9Z%pMD{6} zPU-E|1Lv*EUFDPN?q19uo)Lk;yGa8`l8L+aN(-sC&yLYc@)iS*7b6U#1aGSIsW9#xvYp6ZLb zDUPGUs5TuRxnL&GcipZQ;tyL*8ny=RefIG_q9ALsoB`C!L4b*}K+e5XCw?=Q6wU&J9Or5=b zcnXT`yK&gbb%V)|PIHjVYr3_5xXDt^lW!P}Op5hp5`&lw1yF5x_rl_ymDN%=52|+k zVPAaAs|IX|r*G{QSL^z~0|bc7%4#`bY+d*PE3t+bX8=WM=_pj1!Fi&LCyUWgkZHn~ zpN{_yAN6pcRi!7q?%A+I7LyjkS*P$^1g>(M$TvwPbfyL43B*OllI}hQmxhL@11Qif zLD>^sWs|+g`*&-!+BMN#-3`zsabM#xa&Vqj*Fl!Wg8Oh}>ZL4)+tOt+$Guv@isB(p zNOjl8o<4pWDx0&tYP3PHN|GHA3GMC68?7Z9(JNLkRC;!mb>5?Mw8yX0fmRz3t-gZf zNsk!FMet8L3qKb4kp4zHV%DPkhcz(Xip|hOrFFi57w0tx9gwX9-QAV#jr&qR+@U&h z$o8voKx>0q-2wQ!NCi|+I+hNQoABMb;LIbLRK#zU$j zS|^P}4~0di7D*t(5ZTyNl@ua5?c(!F91Z&#gAq|7-6o-7QPoZO`dRCT|-fFB>x z%<5)tFJ6=2?`WFGDKCEBA|G$X`k}FD|E>;evTLd#0zG-~#>)Iz=@i@_X<5TrSudYU zIdEE5Qc56J`H;y5R$e?hCKyW+y4Mi7rnxFnE59^kaY@|M-jTHBzr)TQi8zZV10Y&y zSHod%p4((+(llrqq#?erCS|+NeUc<@`?-?7c+5?m=sQc&LQD;b<}4rAzqel4VW>Tr z=EW!qCQy%A>OCD&*=$Suy(vW;!dIue*h{5^K3gC-!|0*FievxW+V`3tS>4@MlUdO4bSN4jWoP}s*s~eBDeJ>suh0WAATMu?075BenqdT6b3Rl}w zB5jp)Paf#7@>^{zEKMe}u`yt2DeBFtYymRki*1i!X@e8eKg;aj11KGE;SnBw@e=4B zGk4>x1rIQN#P}CfOf2UUJJ;M3`N*UM0;3Myz*&ZRH(cum7GJ06Von+}YaZ=Ego+G} zxp4vgK7><&mULNz7+>r3+F;S~&9U9~ETP}ZCWey3Znpro#^2ShAr@^|l{1AQbn z4tgrqN#*tuf`j{1tgS8a4%KdH;eGaXyp0C$SG9WPPOW>IW@6{IvGQ-;!qS^a_u-Am zA~NL3+RQnbg5ciu{S26nb5}!ZJ6lS&?9vzn@#(l=xJcJ9%``Z(XA{bb_a!PMS&Rqt z@ewc42__#|Eed{5uP#bWPLiGRX$gA{Yqnl`y+djv)&WTRK+HK#=f&CdonvDq+w*t* zfA@0Np$fFfiJ09R9m?DEU3;Xip`ak{H83f4$^>h9xx68rM6-U{u`g*iH7OCBpp5*ar{%m* zQXs)~cjD28Z}zteQA%AKN$%?Tqo6NV8Jv>KQ$o$pum`k(L@l;d;S=1>mwp{uk5s6I ziM}QJ=hB=1I9OJAZC0`@rYXA`cc37%|Ih%cU@LpJ47ybMkll>8G9z!N^W=|kGH=$P zRaR%zz}D*5CLM(QAfCNeCH8~SR=h%wM$Tw`?bsc8)a-6`n`+0X_YsdN?GP*?%-wzW z-4HtqUB@ft!dX{bc=I;ey@4d#5(W@3{e+Fj!{L$dE_3S=GW4etw$UFOTSqYb#rhwW z(430wjI@2Bx5GnrYXu}&t+hYbJx-FzLC4E`aFO3y8A%s0fF^UQGfx$5)7$8!tIl+W zJNJcxsj}1XwO9G(mYtnMU#Wvjp~$vLe+jILU^YLZie1Q8WC{Llrl3KJB@6TDks0IH zy3wSy6R%FTRQ7V5o;H2mDlOdowKE+WjQlOS#L%<9sjYe+!wA|p&(3tEBUa3s>V-sx>Td`ZuxSxDByJ>$y98S@kdl1hJebkgHeJW>2g zw!5Z)wO8(kix9mUMWb4{j}W%n&)5z-b{7y6T5;4ZVW8?xIpXeT91e1cMi?qmY69#V z7_;UGHQ>}+7@x7yhZKYMF+K_T6O%k zuJUUN_n7FJ<4H|jdvsex)!;c_)a$Nqg4b4uc4TDGsn%1X_G=~n&Im<&Z>14;(WfRb zp}8ts!!z9S;{4nB{W*A#TjUhxn6D`V7Q9GS4C!#?WyYkMs)>0pQsgAUw=5OpUIqW< z*p{V0)t~-EoXX{V$%eS&tSDrfl6F~C!OftiTyvEz>@x1_yrLs{e$##;bn*ivvu>O< zV6M{lE{nrNNGQ`lpT5e+N36}R!x^^x|H0wYe|M>w1~jGoq=2VI+2QtkGxB|-m{+7v z0^%XLQOm3!9_NYbE?Nn3iu19TKv%n72<4@^h2hbDt>bt!%Uf;#Iw9H$n7D_(9#s?- z*?_x3$@}~2x8kmpxIYcBT$7lq``|Axs?DlqIqwGFIYtPHbcK(m;if|e`Zg7fBCz_D zsV&5VCMV|BBYRK%5%o5D*&7JVf#nc}Z8TptK715M60Vw+xU|qCAj9$j=C{I!^dSv< zmn5x|7m|G^9@p+Qg*09g_qynX<*ceb7e^@eY)FRIrLhetLYW9p7O!`f6J4KpJMnTV zIwJGC@&fIg)TTo9!A(H~y#Z`2yCSKaBsP;qO5*IZj*~`?=%++v?vnlLe+It&QE~w_ ztwRP2)l%Cq(bHIx*vhdGR&MNhk9&1ImTV4EoBhng1C>j#||GAixA5o$j8hYCOw zKNx%-YUgUWgsEJ=R2#KsJ=Ak$hblLs9Drb2GP4&(rJ-hX4oa8uV3`c5Jh7XQS9mtI zfjn_`8c>7tSOG4CN&oZcMxs5^sbpP6!dIyq3-0XboO!=g3pdR@6WrcHW)5bG&>k!a z_DeZN+IjiP=+zhJG?}y}kxGJnu8#CQBg|L4^;*SB-G{CznH1d{pl0qE)V77VH(!m^ z;+L!o@Gi1G5_*oDoG6;vRq0J#zSAdcr`C#UTlqleNrhRKdAiJ?%|xH0BLixAi#Z7@ zn5iGAn^u8o!9Tx2BR5{5sV;NA?fOs+cAcpJdJeLjz#T0JrkBR~CU(H4IHER!IIprb zgNsTi17CN?j{P_x2 zsfYd@?fOr6v?@LN6W7f8pTP5#^3Z|(GN3rjd$}}O{i{MSDmoTU-VrO}Te3ne(06pR zd2fKvz>H%$$qohj!84!S9*myUY!`XV+OycZ0z0Xyn&Z}dS>#%sN`oJN1ncbPglmLt zv!Z)qj6|;ONO?A{Ah`l@O5c_^hmG3buuevo*~#haDBY^?9L-#@}7!4<~}pJ9AV`#Um~| zFI8W(&+SDx+P+NwL$pNbtx6o;R%>%ouJ4sEe19UzUjsD>DV6uej&8{$iT$FQt#g>ycyI>n}J!LVq{^-9?27P<1*}fgQ>y?-F|2cs!e@c$#}iiUz~H|TE)pm zfLfWTHJ;2lD!_dvSHf7&h~|yGOZ7UWMVUVDWwksLwjw?8&GoOE^2@G{#|uBXDIHV7 zY^aU|uURG0fO2}q!ND#(9|>LK$}5#MeX>kUqqkKTdJ8Uq-MppaAC`+2hFql~K5Vxy zv3{`zxGd7fG|N5)M+@C%^42vJrceUl~SRctTV)MNbt@ zFHIE$zHeypy~cXW^B`zI^4h)87)!f-OI39LBuV=1D_QtAp5SXEt`BZ8spb{KT@`vD z9RejK_U`VAZ?hXJbZ~U83uIzY#RB2%ynsPBGkC_nFSw;p* z(W`dI)tx(2@b)XT9~Uw)lXcozs^YSO48L}rk{mjn$Cn9t$4Mx; zG}CEozul@dPmM||w?q>-7#Z5qj?&4cs7T;4Da5%VxYV}|eYP=wL+?&ejT8oWfoFQu zugV#OhlHObSwH-u#RKz4cV=D*bnRcuLPb8cT#aLXz-lGlfW@mLCu)#^g!ys%fsIEq zMyHs+sLrjLzq*)pUo3TFx|iIh=f*9->hRFZ&^aLORhvrQJqBD?(@-EvOrLoSS(|F* z-jTJdh~v|Q=h8X zBVYnp8aMcFm~an~%*1z%=%P628P6Ia)4^GUrTACJ(zuR-NUf62deW!$wi^>Y?-^|? zf>u474NA4`<#e3m0nw6@Sty%dFK#D3+wF>;2~di^>1+CcnI(93Z72*2Pd6+0%A@nn!hb%e;q^(5OX1i1)tH-AVK{Q*ZRtB@$)wH=-*IAWDTK=n*qWh;eJuVdC@4}jtV zYdm&E*UEoKZ%?n0mE}x{aQ8kCl9(uda%I)s(f#-v^sSf%rHg>j2jSj9$k*iXb*vDK zYy_xup)Dus4|;JQAl^W8p?KP`t|T=}w$^1qAsJgPbT_)=(?Dfd?ntk-Z#KH^<=4-x zITLl2I3RDzVxT+?)zqd@c*NeSnfzTufzVxsH%fA{*XK|677=HP=3F24)DZ0JSR;zn zUms6n!naLz+k=+@WlTNe#JD(UFP|c#eUfV?uxIxPb@N8Z^35T&UTtO1@L!d8$7YSK zgoDMV)^EEyc)315KYN>

;>Q_~Mdu!S2r7#}p3hmv5 zbOx!!_+~k2hL&OiS_9sA)s*ZVDW96-IDY`f|675CTa5oZq7Q)nf+^ELjqAPE#X}-6 zV@L&Ohenhg0~e(hi{k5Q+G`rkPyi>8$g@{PCH~JhQ^19CFK97z&?u;lP$a4h8IWgu zVKL_DcJ#mt;3W%7s-vk6#71}YOhZN4eIxl6c^l<$i0Y` zrT;GzZ~+`LL>9?(V~^y^k^YAK0IRwXKkrJcXk>-z_+0UhzJ9PqL0ro6wRg!{*D_1F zjZ%>Q*yA7btd#CuieFs9%^ET9-ezpMlDxKB1i(F-tpYc-#Vgg#-Vc#$6|~b7ITfok(LDNKHRjlyoGkHkF z2k1=>8j=JAC(6BB+yX?y7*bF{KZpf@4B@ROTsa)*CS1wUoF+oQ`oWGXh_tQygiXjC z?Mg9p9}lQoG{~Yh2!B*Np=F;eVKZvC>IH;$^37w%=X+JBj&FVfP0r)~1}i@U_HQ8? zHGl5SwHROfj#bbX`2n)nhylqE7A#$7C8h(G43K-Utd*akNLD5S7zpO8u^MNPZUrQesG-dskg=U z3aZ;j+PGoG%D;2C0xQzPFX_hU&GXI0x7?iN$S3udLE~&@`t7jubNfS%#wNk;mNtiWQ`)o>)aI@p>k0 z@&i5k4Zd|oZsRTsZcj1y#5wn84FaOJBP_tkOkRoHrLzh3d1&f`bCwr6pQD+gBKJq6u*2>BxKl=B1eEkQu#^9^aYzMQ{YH_S51yq$6jm>D9s)kh zmfZ@P1;CvGkRPZ~30V+e8_1az%i3d(C~5j9C;JT@q?*!?PQnin%#r6`f`@QN&FF_H zki!(1lLHmPd&m@vDy&?!Db0yPaGISYuvIbJLN~QpTlP>8c=6vLg=Co-Z2(db$?;Li zo!s-J+?f`ASJ|WP{`P9TVotqo12li%zw;mVkESgGaFr*4zYSneopE~ZBPs_9)dpzA z4|d}H3r@eSpeWKH+A2@#wg~gljE4*>3UXr=CMFy_aTK@Faz32M5Fcwez>j$&fB)oe ztgtP?l)^mStH55+Z;Yp<8{EdTnS?ci|mS&*`z7EIEYdddfJ8&w;Ma9Ha6%~Udh$>njA7LLPl;J*_?@j7P((sNO>esDb z?2L|#aGupwtuY-?!M|Q%ai;AN$E8FZec~xCii&SI^_zoboz`f!0JpofBzV)utB6ir z1%Gpf*KkcK_r3c7)yWFZul~aTnza@h*QiZ-0;UBzSfThgFEWh;UL@@VI`itduNA=- zu2G5ErFr=Deq3>!4x&h5n7^H6!?4XDpYDSk*4EJho%lNgUWEw2;4v{w{J>hr{q4@mC%hrU}vD&9=fy94B=`DfmS7t}zwlL>9e!$5A4RDNx}G z)?GA#OGW&G3zc;?Hh(9*H+nkhNP-%O@Q|jt3e*Lq2g8kT^nc@=suP0>&q%GXX?Hxq zS_%h|D_BY7RSppj)NF;KO{lw}I_tTH6=h{CbW6C57aX&5H9MT)j!QX-DT7~dXPqJw zZ3%cy{0U~|jT-e=DPQaxczD1rO02D|EeIGL1{-RYON?y#wuth&_b^|0gyJ!*c>C%z z&a8Zt!mXQe%{wKZv*J-{0wN;TAohA6<4X@A4(k5Y`J|{F<1$O-&b4=_hCdpO(zt@FB1k6i~{x~TEw}+ z)f<;T+6If-u{haBHe<#>JoAF`Ql&w)UgmUyLhXRbL%$(=O%m2oN~29lOMI|p3=3QgiKS@BZjHi;+KU{xUbsIt$<#Vj6( zX@|{h(@uU-QO}Evb+0E!yGsiV#G>m5N|AK7zVsNum7sVr_K*UxOx(6TzIP4dgqyOOW?F%<#~Y z5@HTi9oU(orbTMD+qt^PjNI+3rf8TVrs?@En7Y$Hacn1iv?S0rE^8PE{kWD`MR<8y zu?E`y`{=I$B5rE^_=feOZc7QY!d4>|ufG z>9N!JtBfl_rIC?Cl|I~mov=4}CCbAA5=gwx$#2**cD7yx%u2@W!J`9ia%dA(e z-|EowNkXGNptaf6or#T$VNEM(k7rkxBmx+E3=M<1zFuzFL`4y<>5q7|w_4L+P8L){ zL(v4MY)=nPZZ!jwGoacaIdkl|x1Q?s7=#wjdWHN`89F;sq>(E1Lu48%}5q$(?G%VQh^*}y^ANaZPod-b>7Q!9@ZV3rwiW-uGu1mw~5c4 zJKa^jb>m)9Nzt`{^)Fy{EL^C`QA>?ILdwmQ!?y3Xis2mhu;Ag~#h%?y#u@d6C`e^$ zY=%|;fWNqC>(i2lY9smq?U;gT3w`ws4Ab3}pbwzApE2EmP~?otF%<~rYQL<)FP4Zu z@qGAZxRhzKS1K#g-^V;vsDs!Y?XZ#y{Bw}cNl|UdW)!xbzaiEL%rc zw`8%GjJMzI?E^~u*6eVRw`WMe@hj?kKXPq>44#EW?n|z_%HYUI(@XOO3La}<-{NTI z@E*FMdG=-N9+e8O!l}jj0@yYsGb%cLh>w>v{j^V~UxFS*RPBNU&gvA+#0PRrrRdCP zI6g32o?rJ|dR^C&l~dU%EDnxzEj#=b`{sA%cjiiSv^@N71le$%8ZUdsRyRz}R1F_` z=vcj~bwSPd4sSlCG1!lzdEn7dD}fR`BV)QzdlCE*s%ukU4F3q#Gx`{}SQJwMgbUB>N6tE>v0C3H=)s79hr^WWQCdgxxhX5YTMlcLgoNGMjU3~w+I@CSL z{DPq90Tn>wHu0i94uj`vq(7PPJI6@0K|N+>6##ha_hJ)EN6~Oi*i#rgM-SsoD2X17 zTiMtM_Yi*{9{52=M@JWG0tX~7+>~ak50{C+Z_Fa^e(K77OQ2aGZHL0tTVVchR=>t= zL$rs!sKkf+TQJOV0b#J)H{b%zpBYphe>h*wyp1PO>*U{TQl(jMWB@u|Zb9YjEY*O$ zTHc23O(!TbgFDPE5vWkRn1-@?hDjUG+w~JworgyShg6aFu+>2enIA`M3(p+0u)hY|%A8m{SgYhA#(pi1*5;P@H8);L_gY++U2I}-V1@_PLGj2v#jM3uTl{9~Wh_k!bi{nNFftWs7 zp_;9q&I64eGls=vqx*b}OT%#%2hqjnQF{)NLFUMnU%r)zd!mdt zQ-r`PbA9G3*;PE|mhG?D?ZmWJ(??aidfw}$v2JwL+>9uA@VJoEI@!s>8{O>M6_Ki{ znJAXe*7li)E4%bjw9V-(js+c*wvR8SJAOYEK3QuEwQ&Sk{X^X}ass$v%GB0(&!`gz z3Sw{nQfP)v-vZ7sgO@>Nh9u+Wz^P=BT#wSqzYE_87FZR`5O5)2%h;)n)#90Nt!dv! z>-AQq0>AG^)~=PX%K;1^5Z<+0%rtoL56B_n2_ey{ZQG_`LTvzW#JV6)z7sv3#(iW&PK`4|m9pER8k zA*b1yPc%(vi)ByU!QVow^3`S6(|xPxwdqkJJeP8Ltj!nWnP*HyZdPa<>GqEI^(699 zKbdP9SqeFqpugblw^?G)d)S{26>`$ppUr8Av4D4xYQ_@N*BGDlZr6r@QrV_TOeIV; zW7h^V?deW8x1>5fyFzToXBGZ5Y_Ekd!`2(|DCIZg491vwf;Ubqo_hg|Jik6S^kKtK z^HB^YD+hiBCRe-pEv;T!hVx2xUrfCSq=3e%N@*fhN@U)#%J0!FSwqjnGGjSO7lS1$ zs7Irflf#nqVZ|N}B!8ZKagm2~Hqt)B=&STetwFsV8ot3* z3VxTs>ogV@z~b<1`wts(->S=Z0J;cfc#7I1xP0S*_b_FXR(DmGQUX>b4<3DuVukv; zNyQozv!_Ak`&cX6kokU=wzK+2s>6cQiO|zmhI4$Q*TDPlNx^*wI_d;XgJSj#oznHE zACoO)3L@851^&oV7+6p1M@B5S*lw?4rx<;IbD ztJmdtmIjn_ADr}#nH7>>M2XQr3&j@=oO**+Pcw_1@($lx?&%ixqM z;!7wRkl`?GxX))lX~4##cWN?G>jU*JFPV_82aP-~H7PBXttf>*6|e#ko~gyeWIXq7 z|25AKFpb<6 znwx!Y7ss5xEpjeS59e%VYuv(mjO-gZpf1N8y{j+IRV>A1cC3)S&Yq1n zoacL=A7fW{JP5_{?=+a4nE19*enQy%0gnKVV@m@fP&8EM3e$Z?BZ-u!WTzv79!a%g zx%Xr}=GbPXbSdD8%r7NGBTr$%rbjym?_&>kJC;CmQ@yb5MO!YNnIY2$*T5_DmI!i7 zV^Rd$@t6ees;q4NA7lK#3aY>e+ZZz!Y09=#jhC1=_UNP^K&;Y*)sWrww`6NiCE+h> zWguZT>bFXGW;GHPLUP+z29Hf9k|8kfBen8lj}-{VBZ61l6-dWJ=izav?Y337D|?5i zr58$ET(nu7pUt-525`~;sT}hM7zs#4DT9cW9Cr3`QQ5wPUQ-UicBY=XL*Rej4gbr$Tg44rlvBS(tnXN9EZN`8qtm7+dC2Jr?ZHSW{Ilf=1I(mb50F092Yh9j1oKezdq_Mx5PGUm5rz)2sh?Zi-U28iYjMPM={(fkr*6Z}pEa{#EcGVdsq3~iej4MJ z`};^}|1AAjClE;T|0XmA23#bq(zwko;#6IA$YW-c(Yh@-DZp;<_BXG|+i!nm4z&9L-W$Qq*MD&Hrb zdgmIPK)nLC{5EW(hu*~ZYTv(Z$a~~Ayj)PzHO!{C+JkzY`@s!*5JhTNgms>5fD(48Yl&dQp)lf$7*uk*xZkF{fZYBBLi zKcsegvxy;Nk*P<5O})d5VKyJR8!i8qD1KLnA1N`6?#9^EJ-+i2I1RTR>$^^Rhd8ed zb8k#Y8H-*$O|_9cg|`yEK2?{b%VahcDT<*T%wSICJ1F_%Audz6P$H{>!swJ)v)9gV z;n~7Te_uVni`#Q2&qFPYezAbHkod3e<#!8K>iHtKuMG1a!J&@34HD#tqZ!8SE~Loz z{E_Fd>u?dcv~)cI-!H8sldkTLM`yHuXA#d8!XOrJr|7HU%L*9n($#qKy`(tYe~qu# z^1)SKc+3VD1WwtC()U4!;1(YX?UTriYQqY3G_W!yw29t(-Z?4tNnQ1tvha9c_2ClO zhZ#HBbk@HB&>KRztI|7E0EjB{CphGv$J1+#)vA>zhT|mFhHA$ix>Sob?9|pX7i+m5 zFSlXDb-FjPvfVK0V;r&Wu1h5Cn`l%0HTyuayE++lf%p5JzAhFJsf4@_xpU(>x8fJu z-W(qL!g$12tVQV{7UAsMBb)lfqiOn}Uhys})2cg9T%9>OG;9BT%mvT$c6BXMAlQr; zMP1+43P93;{V1Teaw-z))!MQ>lEk=`4^ML`v&GPm8#w(}A9o%z0`AGK8~e9#p$8>5 zBUrWlAQ%=BzrZZ&p`H?k+Hn7f4E)9n|CI=uV$RPno^z;2{`g?YGe zB${~m*{686nZbpf%Wb|a)JjqrC}u0C=6!bpy~t$wf#+u5>QMkxF(8On!toUHAO?j{ zXTS%P>~)KH*t;$aq2&WAV53+4yHEVmd-Zq4T2AA_#p;hADUpZ8ln79 zS28E7;SGF?vwG~kV1+A}l(Gdn;tf2=5CCl@xB9rbUH(n}Pc+jQ?vi*CmVsYg%a!On zYh!b7yP}u3L-va8js#0<%T2P(6$P)pBJ8oc^D6FMzlx6Kh-U~I{3Phjz*~<3)R?OZ zTHKaeX@3mRAwFq6XjI5~TX6e<*??yWk(JTa=opd^;&T^*%)chR=ofXvQ%gd-tox2j z&nCO3MbBRWm=YPNxJ9IKuCQ*R>U7kB0RHVb)vnuU3BSo6|A}aq;u}D zMf>S>QcmZJr3ur5a^8AxLAwC4JgSC9rS;VPdbrx-4~UrLP5` z7xP-l?!Q%yQ4y=ru#i`mw6nRY-;OBOiD4mv{_On7d-79r!qdVdw~j4p&aJ&$Z#3j48ebnpS`=ZzJEzAxLC{OzWz#- zWOI!}jxehU9K0#H8?h=Ea}6Ue__^-#`!pq>2Wsd#0{{jp+$^7Y;eN+-sbO~hbC-sV zCo!C){ZF#H9t>7kt2f)|)v}1JrbWrSR^4bXIe9Eaw|9TP9ojjVUFlx{QZAta9p?4t z*Hzmlj%ane0{Y8kD4nLX7}}$1mMcDZZml3>2dpUccSQLoVIvvESS761y5{??@^;?J zdSUc*H%Kv5XIAfJ$?Xt^0X4fjArAm-fe|@fvO7vFBQwU!W4)YHQLVx>`!f5w^E%O~hN>HcEBCE3LH1~nI{aC8UUt$v z(h8Z%D+CdNZM6eNxnv3}0+v16JY{F{X2qA&@}onlDCjtIAPMai3ZCaylz+Ti|L&J? zw)O#`&y4F1Txj*E`@sa6UqNLBUw43fusN5CI=9neQ|~~Fq&v4Mw!x^;`K)Q}QYl;G zmV>p(M;sZWEa@D2?yyRJIxmJ$q=OXaYN@=%YD_nv`lk^RCONs3J$GWf{r(DIMe`3% zFqqHBmWg6Cs$zTHI?eX(T6A@R+k$M=qpba-=JyE~)RwEIve;_fC(MSwu*AD-kcD%^ z&Sk!kU!YS!-Rr(5l})4<@@^}y2#dr!2#9LvPHzu?TlNrx6Ccn}mXo&k$7lYcSQ?F#+ zPlgssDW6`5R6ZKiO?iauM0JsNhi{AVOdorn zg0bm&!REpW9E;G{_=8Ne8B0R0bkFm z03eiPY1D7i_ZhDM)FxYv5l$Al8=!j#Oy^e6f;YUwX&PD8(S-L{`_i zUdZi#-*)q?v-7g_FBNx1IawiI+=xIeXH#}GDQZX9THMO{NGR7{vnQWWD&_uZ5$D{sg{*96TKW z>5z$TTP^JxMf6DcyA{`hk^w61>+@gKdzWldZHWY>H<0G>+R`jrX-b32US`RQwvo?A zvwbySS6MTpWX+*(xjFaV11r{tAyl~|>qT6cGy9@uE#1C-l)`C_(!a;d!;9b?Go9-TaZK zKvRks+tCWvfp0p*z&YlB;m3E-+A(+mv>4LJ=EFs~Qx1$|>3BC+E*_(gNyGnEUb*Aj z_-8%VkI4}_7R?j&%PlCtZfPU-J5azVORq#;`SzFFg#SX}pC>Ak$KAvflbtt@?W>pA zAk=IF7^Oq)!A$4^I*DkYCCwsflwf5B_{oVUCYjC-z9b6{qwE8K{1B~2CFff!EGE_= zcd`}P{J^mo{q^(f`4Q_Pk&Q0rvc>0n#j+JmUS=H$JWfYTxgA!y=@uqR6g1Y~MT)GM z%=NdKNOn$&KccJvSw-8Tp1%Hd43TC7HSu(>gto%1hZGsQpCM&|N}EQD+6?h0OSu(# zm;mkO1sAPH%B&XLMsY@^k2jkHo#yV8PWl}t`bE#onCY|O3^H8AkDF>C~SQYlBZ@P?Eg~u437}KY0<=9T^wP*P&m&=MXG0dWZ=Ps9DUCt}! zlbe!xarp&k#%LyO#vN#}o`6v!3IhK11^%l*JwFcU!JT6J%13r=i!p7wwx$Og)l$6# zD(lgVk`IQwlvs5j^7KTX#qXWT4}XrG;~QhtfFx}N_l&zig>X^=XifRK86FE%q#l<| zFcd%b1ZTV$>q1y-nk7Xb@%hVRF~hyRW^_#}CMG7l4X5ahE{U>_uySmIZYpHxWiXz^ z(|w$0RIPnOLqNB@AuOt_&&?sE^8oWvIYjh=OL=*@1we?)TOY*PNC)^u*Fl{_@Rwv< zo$loaNkkEm4A1u*C)T*;9f-#D6M3TIq1NPZfBisJZ0urvjO{@d9_EE0>jHQudpdoTI zrG~+C3aO+v5xE#o)Qx9GFz~V3?n7g|s=IBe|GDS+zg`}6-Iz#s7bZ*dGujKB3f?Dm z*r#WSn%)8$D9EwSo!gg)i;qv<&!iaQ%lgzBPE8u=9I!tJ$br&aY((vx8_B#5d^F%b z>%&+E6+6heSk08hkWp%pO(~aQ^TZtQ%K=`#&(1?_7Oy_^revSc`Ik@lgCN#KcxQ9G_G+?&h)xgsmD;dA4}9t(yd!D`0@;z{KKO0jZ)FX3%UDVpl^&BfQIm0D;iA~ z<&aNb7<}{G$9VA4Bb**;NX#Q@K9bLyDd*A*-RyYA%$`R*gFK#Hr?`Rlh@E2EltCtW*cxA+cwlI# zeqG^0<67!L*=@IVKDP!yIBSkCpOlE-BjeLu=)9Q$S=?`|D%&|n?>_a*j_)?ssAWwS zA($Fcp^r1R^^GYKNZ<{;sFy7&aT~s@@ML%S{R{BOPv7l3d5m@#D_O>>R;D3=TB5Mq zDKv*3BLiGmXsj2rpRl2WfFcHY5~^-q(o-4E%p2Bm_E;+)^rS_MJq)z1bJ&kvBk!1) zqU%FD1UNfrIN0^VSIH2YHQ|QxUezsE^ooXW6zA>)>&)xncFP3mLc>81;t*Jj-=R26M;mI}K25XqAjHUHk=?0<7B64#z$}CQBbXN#gG19bWVu<(%eYya(Tc8u%#&k& zwj%l9#iyW0nJ;A4ZGWAjKRtL3(6D(AkH_S5!l_nfIE8DGGXDE~c5*H5j$Zj_=}nXR zg%s<~ov*eGOFeK08`fqL%_2zfaLyPK<9%M{z1{tAp-OoenW+Lo5>`(RIbf4U9w+oeWK`M2F z=vmDSylK4*_14_~u=W5t$h`jDrEd*m)TcoMusx>67@kZmvq}>`eF$}!zDastLvo1) zHlJXqb_dg`tV>sEBv&osnn?Tks|9X5U1IDCl-)J>S(k4TF0eN_ofr3N0Md3JD3#il zKO?`We#9o=Trhti>{D+h{X`S+`wxxQ@$l1J1`I4#0j^CVK5x~B^BlF^45LXUz=e%m}4F`Ywh9TQG`t;|EYN;P+&&1Yj+Fa_%Ks`*nzJEEJp4;wcV_K z#2qQU{lZfX;5y~!<*CWHNVuBf(@=vDuJ{~hVsi;mTyF*in$bgKqTtGjLfa=YF}nJ8 zd%5f8l|C#wmh@4Gu}Gl1b7T&50R%f)kDP0ll8xig#Y;1%SM_MG7=HpMV8Tw;jI2-| zk0D>`P0;cT!F?t1$I;+U87QyQ5G^b>OMybcq zQ$tm(Bn@~YN$B%}PxrTKJ$5>+1JP!ulp6rIyflJ%!^Mr;eN9D0rBl~qIARG`kQ?s# zB4oX!m|j}!?DXm6O}Xj6+7uvQaBtG85Xspvj{G&Q>qP&}J)i4(6OQuhCfhLS!|g%n za(M$HH1(9JV~{Q$l}Mkk^hJO1sexNwsrs@kB|_t^(rC7Yn*L4ZylmDt+_}4ynBDrj z3U=hoF%4svX1_TBH?lUNH;b}f{a&!r;Kr7W^6{9n_9$7xfA_-IY$k!{+2Fh`efyjt zvLk@2K5kJA4HzmNiY|pZ>{M~CVJmYTq5e~f& z1IL1;;yv*kpSM4`vAz&ne|~L>v)D%O^Zd2%%H1)6U$KWLh$9d#JF?M&=Szfh$B@x# z87}e`JV(ue{Cpc8NBFSX<)^bsg62p#2kLVKHDDhAe~od0ycZm-u#gaQ_d2%%`|X@p zj`c+>w01isYR+@4UiDQ6AYR)~gc%njt=HDr_n$_bHzs!|OdjhpYp? zT-q%ex+bVMAOXcB78W;*N%XHwboHLQFD*#nCk}^fRFE&O$<7_WzzUXU3p7&pUWH|D z0ri~|E)UVWnV`LpHLxwFvt0=*p9IYeqA&)Qaaz|wB8TAO?P@P zcjClBhFU$DUWhq`zs*c1T6=FQ_sP}L78-C;C%wPT_IvuARVB>$m@`05k|KNt8TSB_ zZ>b3$sK?(*1}RnCmgSi0Q|$Ge!F*`S=&M(9hII^ zWTGAPZ)_5@V#V4N2kSXvEpl!b*pWu|9O<)-Ka)TZAr4ZJZLbLhtcG3~a_HDPc;{_V zha4|4C-XxZ;v`4aG)5~$7Z`}D~(Cfb1T{dsb~c+{=z+OD4Wo0C>zt8DyJs-*|9MUEtr$1 z@FYW$TeJQ+TzYVqg0v%{!Sf!Sk>f49wPKG<^0@_V zBGjh4qzo>1!WrChRl3*s3t;!$`XD5X>PZDLV0nFcC!Ry^)$pq~*7kMxW=N$J9)%P} z%58l5D!FuLl+6x6e?C+I_S1Y@`qur25~#Je>F@UdgSO?9>`#Ed9A|!88j2@a^D0kb zK;sI-V`A}&hI=)+iLz1c}vUDu1=B>>^l7HBDIr!z? zNsNcMh5^Ji*Ctvk5k5OK94p$vDpt#$!xot1u>%)$1ca5(!y2p_!rba-P#4`hNh0GX zYE7B^j_z7;OJ5h8+z+`3I+#=8PUYWus#Z(o$OD-i0bKtcV-0^UlYj$i@OOGF5PHaf z{fdgTE7KYPsoY8_(5tj+&9=J#D&#uOYi4a-V`h<3W^EfYomaOEb=dbbgHr}@A-pq= z>~jSav8|W9?Q!@GEp6iUD+^vpoiir{)Aow<$iDd$Wfs!u+8XGntEX~^aIz|9(i)to zJ`e{0Kj+)tb?qTrRputSacGNDsVEVfg1E-H`aBlF5j0qPO=L~hjjf%v)j(G(?Z6?h za|bULB+3XCJRDOY6;P$FyoQiWV9W4&$6Y?FzwIa;i35Fjf+fUuzV~8o0Zm!GW@}A^BJ<`!-J-Tv zN(+0JALvP?t%z+9^zL1o1&$m}|`xn?gl9nXvexhCUMrC9^%rQwQgG9GC&NWC6 z4%H@YJND6kMvZ8^LYG`$q+#{;#q<2#d@QMqR#=B%cQcA*mQ+1`=RuHw)JAM|nC4Y= z?@OG>WLL6>w;3QsHqOW$eN^SR<7z`gJYgySgqg>x&wfcD5Q1**IDd@WWbCQ`>bCm@ z)&12Dv5pOP+nB72)bnE;@6Vzwk8~=G*xYE|mjgEKlPrn)b?o?qm>}fyAm%VX8%;n0 zs98&Vdz(Qc_0uw%G}>^Q=8q(Z5teJ+SM&X?p#Gw4_HX_#t460*UDd_uMcH>og zFy0+bo*jRj3tF?wIYJlfpp1%(vd+wMPTVLr>1VFAlaDy_No{3W@igd6|BbrKsf7$eEj*yvp@9fd~#{Pi;zOV=6%?l8zX>9bYX{^9tEl=V^py72n zmGbSUz(6z@c`Haqj92lq39X-wxX;#^N<{jY%?yiM%D8wb-l{}o61Ddx%EqGUThrt& z>;dN-;4;*lX5e{2rK!tT zgnexOav!JxZgG7E9BS7)T}u3|Cj79l1a$jg0k@(X-(<#(=*vKE=C zh7Hf=2~jo(@``k~_MjX%=mHKz?zQVVzn$h<_cbtB&^R$=Xdxp;bZpQo8z}t)Kn?6K z15oO{q|Uhk12Gw49V4eU%$umTafi?#p1!S$ni$a{=FI>q@-uC>pcmE) zon97bE@?;A$8c2A#>L33$A;!IM@^Hf`T4IFK9`G6xA)`7q(4!iT`3X2jy1e5V0Aqd zPPlhp&Nk-6TXY~U36q z1mB&9R=}zxRYI(&TJ8M_)9*3Gk0iwonENi92iFmU*I_HR3_>6x8iY#r6Af=W5hGaD z$V9YRoUueMF6*f$ioC?>HPYBg(0^W2+&)5dF3tgB&@T$-4|wCu!h*< z@71>m`jQzxVOf>kFz((DF}$AZg2$&BS<4*BT6mqy*So<(?Vl%`pnm@&h11TlSmzk1 zA+=c9*K6rE2j@5^t6y`j2Gh$H9@zBLu(}g$((ZN(Kc@Ko>6ax{Vq>JSZI!+(6t^Zs zR*a<4@=i528rAb4$d@7NHB(8y<0a4v7qAC3-TIpJ)faJ>>Sew!kRc!6iw4cSOd}z& z`l{qeU@=zzwL3aTy(&{t&VLo<?X zcI@+lZZRh$bg{cd`NAY!8Bubw%6>z$?WIKTsMl7-);LT1ckFyd=F@DqZ9Omd9h;dS zHxaWH#VK_6`~!a^&6fl*mEk5An+(W>D)pJ7(5_?FPSfS~sUZh^87Hsej<=o~33t`K z-zH72-{gXAnRJRF%Z(bQUZ|x6i6b)%7H6o5l5BZl0yTp@QrEdm4%K8&vN!B=`)PnH z>f_Y@u#2jXZ^a8Ut~$G@bU;VuY`t8pM_AwZa)KkqwYcI{A7szIg{}hNbtg{(GM9Pg zN%leDX3mH%xWx6HX@8PnLrRhS!tD%4t&o|Q?`%p`@xc~MUSk$ZVOBsB&fyg)*MhwG z+xtUyRo6&#?O(5sQN~x(EeZzwf|U#!y(y+$4wjYM_m%=#mllyr0j2|_M&d4j>jsnId=ZmJqmzR5O?W$lXkg4$6Cx221r@!Rauy@z#GnxuvXh=@8IkD zT6FZ5fb?JQ9xIcD`AnY_S`A4YfFpP-FSz-A=ot@6YHf^=L$641)hWY`gvkIfIOyOM zYBdtBWMw9JvWRYI7-suS;x5gdquFAge!Oui%c7dTc!j8LEk?p=ZG#aK zVvBzaFTg4kj@J-p<+d85s5+94-8wh*stDX2K;L#qw$UC}Chm%UmZX;C@xcI@VdOrJ zCphpDltOWPA~7q3XM3fDx*tTZiRpR~Q=!;$Wj)f7fDRyFvFcu-(qjo)(BYch0)ItZ z3ArbB$FO2?7od;vyu8zPVLz6*L>+dI*D9vF3Mg@W&0vJBAxobm&@lO7}}=15Dt z!Q!C7K=a8ftrK=pj}5er@9P&xW#3ide3JdBa`607#SLt#)tCs8@@@$?_9msr&fWW2 zx0g1L9G*7WYRlysy;Qpjsc7PH4@4wpv-Y-E zLa7i(1H6mGmTQhGJE~%?IDeD+Ou?*9L7HbSUmSau^|zqDR0tcnrQ-)CBi{GOxn(#j zWp~R%z=Pc=ZQl2*Q8W3I@dAUs3=|qt3>3zvufo(xKd(w#rbp)#sZJ}d(2607`0QeY z_=exot+-1T19W4w!r!@8++tOF5z|KBDXhlGtSACT#{RW2;*2f`X=&W~sx7&mQe zWG8A@99&DpXTqED=kA)xpNO9{>g8tU)#qd8HR20m-4eH`b$=~@7Ki_{{p_FIs0{dw zkjthq^?nROQLsXL^ljITaK2LvXfm~>sZLPy!AUJ!p}XFu@_6~U-03LEMQ|pIP+Pwj z?A$~NjAVe`&qnf3PF+wF{nO>lSWg_N^XTNM5pP5-&!TauW_Qtn{K?&uh%^t!(zN@> zd1<~km?FZ%;U!hn?>AEWedsj*0rWSp`?IfDox>8BpT@FSRNa>$V#JfS#kC+ zOtBwKpH_k%0Lt?U7a4DHHdX40L?P9bxx~fy`&S(aZm5s;Y{mU%nfn(C*AI#=jFZoQ zkRf3_X?|+&{bLAW?1;XZTmR+i^*7VDpLd!2|Mb=F_?`0u*^HDapCBt6Sm~BzhR9JL z>W?k~26>FY>ioU4-4A;I@1jJO$wSoSDX*sVR^ajGbGbMrIuDk+EKQiA{>@VcV{-LVTle3Ubx|j`?4J#8 zMS%X>tJoi0G-YQ3JXikm@jrbJIWxTC=X8M30ps$W@Zyjzl6C{*bn{={>LvMi%Yy$M zJ9qqABfuEeO2*s&`s)!sUy^)8hC}|-M^jy>ie9~iu_O5ptAgMvhT=i3$$~Lt^ruEV zV7Ycl`D+#BKgvdapEgW0#xM(Upqt(2Ra~o)p}D>X9BvgHes>JXD<8R%U{kF@{!Y&O ztEU-2o{i^TxtCxrRIgs93;ZR-;NpM#O9F5O@XBHs)a);ZxF3Xvm=$jW)Wvrn*2Rf0 zUI*HHnHExkQ%}t3WyJnRn!shk5e|+~HV4O+ zopsE^?{(^`>-v1Y*Qc)ke!o9{w_E?^ywCf*#`E=jJ;&ot^5-)CJ{~R77RhOWx%Xv2 z2M&xg_P7j{Szs)Obxa}*>l78pp^49n52LC7FI~5?H9Ov**qPP|GP;({`vc4=d2Xas zB*f;yE_&(gW+_u3)tpTTA%uuL`ZE*@{ie(be%Tc2f_AUGN~wL{^n@2_3n`sjvn``8 z&}(y_U);<9VrRTi9_Y-eAD85BQhko49fv#iNvby60d#fl5JkX1KlV> zqAPDi&f(-wiMsvy-D=8ttc)+ltw-Hr4tKi+aNJ5=kGw+)B_?EUL)nV#4|4 zu=mUx?p?8Vm6Hg{yXWcEa1MO0Vi>}}df4TvQ<>F5?*O7)w7(ZLr)=lFKWrwCiC>7` z5saZu?=dPURgIo2=!4b~B8faR_fGcJwBYk@-po5UzahjVQ`B^pI^xM<^(K%XTz0lmF||g_!+(Z(q9=?93u5C6)$uMGXUznOWJRIV2iHw z>z@)^$Y`$JV>dzFY)p1+^RE)rO1h(2U4F&f&?RorXyy#eQRkV3K!#CN-w*={S#u)m3*LEBqAzmL_#f=5(yI)7^XQ z{8|iu#LHuEEIN7En$G}jQpHQe?@q$ss;FBff&b4Rxtx?92<*hU~$f%2m(W`iT_h zU0j(r!|&*p1+Mg&wl2F5v^dULcC}oviIp$I`cuSU`fq0$Ki20}O1~;npf~K(K#O|6 zsjqrDU-YA(m3HG$B?>i1I;CjfrUln0wweFEEhF$|pq3Qjv5e)uGTUG7zr_}RTHoTz zbo!X&AkaQ-Bindn!h7)MF0%z)!7$Yt_FZT4R*h@!)z#EH{;o3C16SdA);C(Z`Jm=Q z`0pGj^l9sO*DkUB z0hVhjR@w~}h&y;mqGgSTeK|-{Z##4!8>dpG)C?bgx{S5QqV}BCZ%+m=nj6(k-H+dl zHRXFkT0zN8PG0+o{eA-jAadMMW_^GC3`D`KyOzmGHVGS=0H_naIVF>29kMboNyvS< zUUAkgeU7RZ>7@ImEZeI(;W>@fb7ULzEhB0Kd2NT@pr7JRF3JN{!Q!N;U#|F~k~hKT zAKuBND^+4P;FDAS_wwS)hxK)@*Bq=4l11t7e+1bvQldW3lP>EwDpnJ0(Bp zx|`{qN;ZlKn8gT%#NL9b~vZo_?RNBO^xxVc*5Dhke!@7JMImlMG+X1iNP6=pZ{?Jqzv- zf?q0@x!G ztBqH>X)QX}^Ka{&V@G+ED!88LKaKnp8n;GF`TlDBqdTu<<{DW)z~4rQXyFd0a(e4K z%u$~c-*R$fAae&@IRb5OgQ#CjzghRe3(zd7(%z+cr~g&^M&D&3b4t82HbMI9pRnRD zu|#YDN_c$-TOT4*a!p<`p)Is?7o^2q-Fr&8+u=`q)Z&fdCd#l`ErL>8ud}c~z z{phYvNJLib9z4aaeZ!ru_>Jm7?d{O`i_ENZLTTOrp@^UBu)3jhoT^M@m}`q~glD26 zR>@Vf$Ub<5aZb|6uEWmMa{)*dpnD^wd^om<>5s$E`N9rdrU5yMuhf_*K(>0W}jR z)r^tSxA(RF@9FZhJ&w=u_>i_S@=!uq_qp_!Hw3*A%A+kQ;)3npSoK5N$ za^~Yhj50ikY3+@~x74leykOwj{z{EQ3V8ufqD^+$`N&O-X6kOcuUj?unx@MPb{VJp z;QWiF*7=YS(lt83wJqz8QM3g@*Yo55pvm#qP?k$$W+nv2>J&N-@lgB`0*hGJx%;f-)ak9fGu)!k3$q0uMI~c_K9=$#Yuhwa{jX+ zu0Kh!D--aaJ_yWQ-S-5m`yVga ze@*B$=(59+!NS}!&u8|j1s-~?lqxw)-9|;_zgba<(jgUye(wDbkMm^*SYKNB39Kk? zdHXIK5u@@0Eb4|5+{3591pO5(_{VjbC|%~Eohi;cMO1NAX*hb@UDVj4%`e|7&0t>A z!XXI7hw`9Rk97K<(X78VJW0#-?ZF-wwCZ!?ofAq|Bs;ocj9YX2?bVRf!TsI{ zx9a~D;raVx%4#=XUu>Eru{G&lW*hU#GlM)St}Ui>?MHaG-j9C@8O(Igo%$v-`cGwZ z-=72>-`tn(Ut5`5|Jpvv;yiR?Db>a(!6$#EteM0mf-?=SX5_V`G4!=}ZWh#5j+m`2 zSDH~_hKjZuRR+6$H*Z)_fVifsY?STOWpLWPs}H4eBB!EKU_~FsQt2)Ib)qKDC-`_5iVB^SeEpd4vzjc;i7$Q`8fCYXI0S z$}v(qQKUuIIDX(lLz?wxgU{yC_i{`68z*c@Vsq*z^Qd zmHGB;(5%h^<=&nD5fJ-n>E_{qOFhJOv2ojVG33oONc{{<$S7=K3=cMwbOnZOdJ9{w zD1dCU2gK(Q@d!X~{v?qsDHg;KfQE<+RElYunDi~Fwz$@hMum;JJJ{A6tm60gu1_L&~fN_pKt#b z6Ux3CZkkzLi@7pKTsO6!75_itO+WX14>#VB9KG*lH+aqEzL|n#_U2hNySS6uC2hqU z+ei$>;Y$+4cvZ&{bBfQAoG2QbT#a5ghIx63N7t7|dbCAnd%VP!Bw~}WjM0W9k&wtP ze~okQG+Kym?cZ4o)jAMn9;mToBySiTHRt4YXcP2uZPuS{D>CE`$f?|q zJ&L-u91sT=JZSQbW}apC!K@Ic&$caF7<(i%1)&bIo;o;@v|XYPFs4;92C7BBwkudJ z=(61+zqZ?DNJlbhq?rphn&o+udUGBmwG3N*A84 zL04BgY9JBN3W5s6FN_pT-DvP?i+Y=KS_6K;DyO zHo$z|sKW2S#(8n@d4!7dqO1z<;u|7oR1>v1c1o@~4|zb9cFzlWa&ad9>;N+NtWct# zNty+EmXbOn`$Vlpwb=oSCE=>5TJ|dIlI8yhH~+O($y&z74vX4T%eC?;KQqi^7AWt$ zTzf{sZoam;osqwehvrJHRkJ_%n8UlJ%^to|J6XB!(YQwAG{SyHyLCCHzZE4WsfF<5 z`29LL1xce9WmMB#h35E=GH9q7TkXD7#`d|WV{$G!cU^RlAAL^0H-6@eAl}1Ik;L`>g zH0(!(TIA@jf#QOrX&%oVqS#f9*);qsZnm9o&Ak)PHK{XHFmea;azy7Kn(y7Y-92`{ z>c9F1{wsd>a|l7%YD$_f+qNp2L&JafWo*jq7vH9BCv9P=0>@fOc8!2i_1X9psN7L` z*JEC8iugLV9{+8avdEThaUON+*S=Aqh?olq3A+qs0plq&+GC1*cd4hg>KQ0#>>l}* zRL#01wA4<7L7QB#C00Y5l3UGVr&ysta_VGgM1Ub(<%$GZ8^2B47*vWpPhn_fUBhIy zcGQd|Xe4XY$m@2{lKtVGZ>->7yHz++`7;7{)}TJ~k3D{ZeI{MJS zl=M{V)cvkDh}^afyvubz%n}lPr553Ro2;(T*2`Dd)N5qZkGU+c^?^kInzQ-ca~w4I z9|Q6~4J59r5vjDAoKvb?y(c@Okm(vA!15+>?E-2hzJCg{7hzEs>Nk<&^V0LWeiWhQ z+Uk_4GG#KT;Qj5o9wUIMN$uUVNB{+M*(gg$cNgdASM#GKUry|Ap3bq2BoHiAi zaiYAj3u6XX(_>Hb-3b=`caPRtVz<%-vK7_u@18GE3|R4WR^v(t)$JXCHy%FkVkxNu zKBu=NU6sE(&C=yJ6N5^JC8Jcx zOpBlDi2o4h`{~;O-UHEZz4HIR1^jn2^8dmJ;U@zARPfE_X!DdkQU29m2`z!p#pDNI z;MAqK=)!r4ke_fh+5L*%r&qU z5>(J=Xg0sgMm5RhLZi){vLLw^MF^1Czqm<%6TZopCXb8XoFQ1qXe5HX#s!}A$IuXl z#e`p6{b)c_HLg`8b_NJ!UH9{n0zq)&>|fB?zctpw&SlXraz)CUark+SboP6L(1wD^ zdVKr0!j~7C%cL6pPYen4(`!W;nXf!i6eh`QV5LyleTi??C9FCtT!raZnrSKAaM5Yg z&S=i>d|paQHMKH8rKEfB62^UtvIQm?`8?dJ;vYy}Kd*`3Aa0USUARsN`z1cJfzR$) z?CkQk1=MsJSM20^%1|UKw|V+5lURw{I>ZQe1`(-WS~02GK~q3oy+b-) z=@&QdZ<0IZ$CE5{p1m7jhl{_H%kZ9;*SELtdbxBv3+U^h^xO*#hkFXH1sSTS&lph& zW_J!}N^}-J{uoTE+s{(83bUoozh_V2)@&xBEe0*^a6{-aZc$x^&g%VU5%NOoacP?? zDpqOthoY;W<;X8!GPsl~t8Ry|V)%St`^oAE78`z!7wx=hXPh?*w}~T#L2qxsIwz{a!r}?0>g6$In1!)T@dVUKkAYDs{xkj=BT~E9K?nsi%^D zG;rEa-}ft%*2;(|Hjk*PmRTUS;1crodp0vco>erf5|&)vbgzmwHud^%W)x_{Q-Z7o zFJ;9d$d3&+ntinP_Bfg3SE}XAh)ry)EL165+d1VG7DkHfnH4MEIs-Xfb*@Yv`%<0C z+VF1t+GV`W$G_d#ymA6iH-#R;?IKfS7ih)CBe(pkDz+5S*|VE=xnKK{(iW?5Uri3P z3SGnt8xDO2CGQf$1(;vU9}=&BV`V^Qb(vggUr=FRgM)oUpWAL(t!OFYfqQz}DO_Wa za8WKiki#5B(kVI*m!-3d$~IY%^gY2V=ac(c%a7Lk;8&+H&QOEJU=_3JU<=g)>JcE4 ztY4LDxBLfrG;Uj>2f0#;RIMEBik%Q}|tUzteuC>y^MRVwq-#OUI=|h2HaS!i?-|mTX5L^bB$=|%s#7=)8(KR6w6jb5I#s=0SECv(uWjMf@LV;kTrozUO1-0c+ zXW(gvm?x!6l~v&+`qUwQFpK(AmQ^_Frqy!ttjuqW!MOu)l|B5G7yk>HmfI1*K*6AO zJ~NF=+sG@!%h0gQ0i9Ysd=ZU<909t^oxjUQ%e1+=G#35nQ?J^r(mA6oxQ9w`vqi08`xG+bo%hkrI}a ztLrn!nMY^2?=`1<-o9MA?6Iz`X@gJ*v~@E63`ijPDPAiU3KrZ)Gj zBi*p7zmX?*I~je@EWT>?6B}9^{HtfY&6LJ>)SroFR*Ei~$AODE=J8kS0si6cv#_uk zAhtM7ig=jt>3YYJ}Jdl&@3xN`)^DC`TzAuTnNQ4pa&*btVg` zsY-0!E2f!h>T}M^%L^6w?n=)~eV3>E#|sRH$IfZUA6?t+d|mvDs>y;K)eZ)ZT$##A z(cyQ?o|@y3>z|Ph3?GHB)7jDL09BXu*T-szAS*A;S9noVUb58RD>QK=5AkmT0XXHD zxBtCTzEZb*tu*r6>a#GE;d-h4aC@vhiLYZS80eo>Tn?F7TUfB(*ij4E({SN3Si1A> zBwIKh!W*dTL|-OcO{-d|R2nq~p$m+Lk&!(eH7FYQ;yh;0+$2T!^~QG9Cdv3Z zb`12;ztrDuOsZwr4F#uI~EncEl2r)bb12VvM$~b zdqDZ;#yrceYTo&0Xai>M$jTdr^x!(I2oC9i%|H5M{uXUV(gMzW>e<=DhRU5yx$S-# zFi{KnKnzN*Q)1gd)0dHX%;p22xnO6ECW4o*zm}xKqoi+60ki)krL_vy z2P@DtJQymrWW7R~8Wbi*a+Jtp)^0OS0Fve|nH_xij&uR*F=-H63MOd9c*TTpW}1Jc zE^!obf!LqZ5gJI<;!n*FHH?|aE-o+w-vs>!2WTcD^*Gg-KC#5+o%R0a7cX8+vnoC6 zNES*qPkbK$q@zORYKriZB)p^w-;(Fkxzt~@QHtkK;9AU)o`u;C@w(Cfxhn|pAq+k< zG&AH#z5+oKWqo>}@`1A9HQ4e23y&b|{~o2fD~?m7`NIw6jT-s2L#eM~EM8|~2VQiS&npuX!`zx&a@a0#dKgfeM3EVUWH zv@&4_=}jq(jJE~vRwG7;$;L1KS??$X(p^c5Idk{ib2#82=pFkv?`GblT{FxK(11P4 zom!QYO(WTBz7E@rSCEsFXM_5l>(%GD0*?04GeGpIU5A+D?CMMspQQ!IEgGNcD7ol0 zjt30IQwEiusW=dO2;cYS>%Fs}Q)BBk_~p2)^Z(g#K#%2P=IwYu#=HM`;1#Q*Bn5{K z1CW=ncBZ#{=@gRmlK$vzc+LmguX`f^xZax6P&f)8gXZxQHR}5MHq8&szi}nR>E|#y zcvSw{3kwT43gtfQ*O_JLBGzhKh2{!S0WRp=DWKj1(v;N%ir9u zAKUI{_7U85K~;2J1TIu9b3}bYK%}(0TS(3`Mi9n2 zNBV0g_~xo~nF{SKo6h3XjC0 z$;ggO$#BNKq%x3k$RxvYFlh#FUW)=!lLp^-9oHCtp3UoN_xk^n_ z_uA_;V@6K4n9a;*ty^&AM$UMb=ok7N4jbi7(ZAa_ATQZ|@pU^UOM{hJvS~djw>GVO zl$XuEzIuZScNA3o-=pBC>B&SBz+BTXpwp0GUWyOcoiBegR6j_EKdk~DFSN#g<|f$( zZ+26i5D%Q4()pF0B80@J2HNhKWdi|(-_~zn8K5d(;?&agUXZppCQr+47=QVU=c3I6 zrIiy)h?Bp1VIlaWdhMHAqZAp4f8ezLjMno>;|*;)?=#HFQHO9}+|8I}n`l$H8o9nL}RRF8SF@ z`ead$?&v(rMx`t1s$!{Za0r1%I|d%Ntka1iE9Tq}xpuWejs5>a_IZ=OMRaEO8NI?6 zg1Q*54xS%1)u)^&%L6%h2!;YHh@8I!mQwlO!`^hJ)o#4rfuT~GUZy6``L^Ga?8Kp( zd7(*C8XU#J1&!;e17-}1XM;|_+OM8e%6P4Tn%$Yl z2X%3>>ipTL*AtD2w`DSB-q+d%2=(jX#DLY!@@E%U-2u(J+G3{LQAc00(7wnQK7pU) z+<(E#BEXwriZlMZH+4Q*735+v)#^C>-4aPZ@~6=V-YrwfiXh-t?nYDlkhM65&9pNw z;FfW`bwY(RM~8qW>6tiCE9{p%l|kJy3HKdtCWQxtFp1|_NgMUWVJo)f$R^xuYh2$W z3A7kczG9~1vg_ca`tB<}-joO5w@fU_t`=Et@Z2Q3E|H-NJ8M1U(lh1#bswTG0uG(KEl`?0(ZcK-i z%+be02(0N-b~u0UmCU>`Y=-eZ-LXNe&}wAX;6NhNtl%bAKEMCqn+egX&PLztWU@gY|sWLlC0795(6bJV?#^= z<|`tuWiFVsy=t)xe}l=Lc>q(=MM%K6p72f$1kgqkZOf$((xRY1cwdig)z?KHP>ye# zC)2i+jhgpU>mOMuo_87bW-X&)R||M>vWPe>zG!eeML#8t7};NiXp8*1k$%zn({nT9 zrI@~L%@*0rqpOk;cXU)m>u#7SoV0-_C*oy*ynF3y=u*MsDUGLeM4aANnDbr0mF0)J85W;}P1iQ?x|(JTsda>Rd&YKSHvFFOt15-t z$QQ|2AR-L`0)6HRGNWFkuBcyhLkILsSkz3O@kps`FV7g>;2Ci*@@$9NhIii?Ohk6$Z2si9xL5PGo6w}wmMn&l8S`$ zReitQDwD=^2!=)|SE~ZG8i9a7jznWXUVp+Y&dV58L@8&C58HzAi8k0eR8MEgFo<1M zGkk>bXL?(Z%Dgex;qj7-0!s-Dfc|L>GQ2olxt(&BDx^$7`e3RPx7dx|KDyf=C zK@OoN&6f~DK+4lzbNpOoU~aBKo7_ExsT+$TlvU~Gf(;rviWG3m#xxxle!B46y@_f% z%3Pp&ytqJQQ2X`0yfEEJF;O#iStg~kF@P^Hk?p7z)0m48sF}L&?nnPoBB0aDS}{%d zsOnsn+T*&Gh2A-GVu;CUVg=%d!t`rq6r8F@jT({q9DUN5JljMPDgSwm{XE2kzt<4a zLqDpPcgk^DndocWemirqsB0uGS_6{I4gpc_VditzSs!eC*EH6h7@-+P3h&USSp={v zu(fz&;m9LtuDnrZ<9DN`yKBR!X>H0WtAJ?E{(vf=ryoRrz+EvNB@}%$@gyz3MpN~p zU|p4(`*#E{ZuL@r%Wj8P)*e~bUA5{c$@EcgW>!Zq7a>9&T@AX3k=t`yTP21APXNOBClDCi|&UAf}VtSQ# zX{}w<@(Fc14WcY4^-19Iq*XIlg&vL*?>Xj9)7iy7g%x-Lff=XUCtO^+0-8DVfbJGO zx60$rIAi5x@NT@jwr-8K`W0N*HeMw@3Vrzo7gQy^ z259VgroN%0>0+9~--DOnv$V+$gHbU-ccpHFZUCfz>SS|z(eb&;dzW&(nnu`L-iR%M ztsPuAb`o}lnSSW?hz zDBuU6G!4%>X(k{vH9n0#p(T!!CPz~oe+MQ%dy=6Xbb=R+c*>lAF6Y5! zH4&frP5($l<#Mug+0p05jloo){1^$Y4pub>xzGX1ZLTJ^6E|H~C zD4AU4XmX*>sNrKtsaou?3!8{)vWUj4YxZl(i=2bhUWp=ybD(B1j{283sax7>Ls(d| zx-1NB4#f9F%gmwDv-^}OMC#Ax5;FsBlSOVviDUe|DP1It(oB=6S}=Xj-OElRzkCrD z*?A6jAN>iK7>~%Gz)(Pgcf<*opR1Lg{c`X+qM+#F%q;Ozx|K^bGc7}4dktsz207Bt zZT4E_#91GJdEqIuh3mXq%wP4gMS}l7;u&UoCh|qxq3E6@bMKnW3D~WzP?suZfQVm7 zK-@N=sW}Y^h$0d)Ngg`^^Mg@phhpF8xeH4zxb12wBf?Sf*&qT8x>3 za=1T3#a-WWzPwOoezI2LFvYM9gxj38@+V_1qWQE3rwHU3Tv+FceGEkUipmE?EQU38 zfXK<*HEJWfV1910iH^m=vKz;fj?939Ermth@X~{rdyH=~MnilUj}HaFWv1xKd2E7w zlfzBpSEb003WGPL%WML@RBpoUN*fXvRdpYtp7~sCd0~Do-f%sZMj6xvu&1|&PYmKE z0Z<2VzHJLwrKqq@r?UOvgRF}EI>Vp4G4PLX{3E=f?I)-VD>${EXnJ0$MoN{E1Jq6}b4mJIvIOxS{=?FL@OW|0RkD6&pIWSSF3?A7mNz`FJvD1JDG5C&Yr`eR9yZxdt_7Y;SQ6<+AxKMau`2M2g(45^-*3mA1e| z`HAwUy}6(}wX6ULUYWzg@n3Fk_X8Q&bp9gr*VZ^Tmq4%KFf&)$2eHG?NZI)B zwgWXx97$_R65CcvcCjV=iC_!f#U|d~$1u-N;eypy&=$$*=pBlo9>)Y_x3sDa-*;mb z>KI>I+i3st)eI5dtxfu-?d>TNbwP(bnghXo8pzRZnsF<&+9<=^AtmzG`dcY+jw+us zkcfc84OW<2t8K*reC;Zr(H~C16I$&e9iYUf=tO=qUf|ET~p+``?M5@HJz<jdl1iXt^sHhQA6C1D7}4kGV8H5*q7Bo0 z*A)u%7(N=~?MH2DTeK=e_d;XwB&9#EAR(K48<3; z#%f{DBV|L&-v%wi-yy3^KJpA;!pV z(HXNPH-doCdFfhr{Bbw~`!d>Y1`0Jb!c6mj`cqp8xm4gkEk|*}E*SfN+Ly(nOs`YUw&056 zOl3!woSMxfZ!-81mXSa2zC6r~b8-Z)L<>6b3NXu)SklXIN>QU0?aa;1owr9lkRail>K6;G z5BlC|KE3(j+f-bAZp7((5-8RD*XKHq*65E&u0c(XK$50wBt8_yr=+B0KG6^iDzWYd zFhCh%$47Jv?*|@iNF5d9(&X!3KN2USgwdW;&zE{D?$`NkCek-@_&vWvy+IgmJ=>pYPf3NwB1W0=#Pt8=G3H`VyxzZ=|$%SfKG540|LSuts zoz$4o>DHLOnM%~NEx)xUiVn%<#jnOdzT2>&x|wv-Q?F#XJ|HJ2r^AO}@gbr*f>x}5 ziSO%dvcn66k>|w8jpDQYWK)w97~_}Ri7V9Toe*8Q+#CuIBb~XBkdQIEdMAJE*1$$S zl;cFF#)w|HThl6GwL=k|uy)b&ZFE3g<+))|Gbt{;l9u+KCJC*TJyR-A34h~1s?Qa` z5hQTQ0=-hj+MUU>8`TM>kymgt(n$xlA1(;|IVZT_)#NQ590WB#b9H&AOO2)Vf6Ic3eVY% zOLyAWPV9K?ZO&WxCl-v-(NI*MTg4lJg&}IeLQFOjc3Zf&!DmW5w(;r?Lowo1*JXQ? z+7(eNL~G|FfZ9|TfP^>;?}PwmaMF#FlXEBwTfYViBwQmyJzZ|9J*X%4zaJm8JLM5^ zwhXV!pUc0;*`x;d8+@;Pv;@rkwX)7sVA{dU3qKtH$L znFOSHf}sT_@Z@Ln-Srs@N&BybmtVbkb2Gp0(7QO&_EmjR?Mmh1v=4gUXw2Cu7nkm& zT(i7CH$wywK8FTkD;@3(q!*5p?go_VF>$BI?$zB>Jb+i((`b4PKD_P z(?%!t(fxYy>)h=UV=vp$L+pGj@>_H0-%#{T*TC zE$5@?yuVy79P`={)_KaHqga7i^$igV#g154%sc zYfsi8&LAF@d`G3=yX`U|ACIZeQpgwzdEYwQ5Ue0jE+q^+{~Qy zh&zcODR4nky!tVQ#D5>d9ci6#y$dc|Av`#nMvVY1d-EqzJSGh%HcV)>3&s^MF3}VD zwlqIkCZZOE(9h!`#^t2;?y5pymp{~ywx1+9v9U2`5&Grvz_?dfN& zZECz)^MYV-cic;PPL2oJDDwD^r`Sn+T8c)|B_BKey8Y4B*%Ox@&Y+%_faLqq+X*9$ zrM1T0h)*FKCs#WTuL?pZBsNM5{8U&}UO@Z{yz1S@<8R~^`*aR^SuF;;Aq2-R zKdKr(sJpN0d9Fy{)SzT8wUK2JLNV;)PD&6otH#oio!_1SW3N<%h{7exE$Im%Jh+S! zi1};ZS$myDS$cIgyNTz06HkjYxkUM-1**($HmHQiTt!7i2hZsj>7`GxrrE|pbAR_w?oyec^DB0i9-Yc?Brg#UU_+G1|CMikk!q9Jr=$m`-W zE&s)dCVP+9uim9RA+IJsww{%l%DYbvmt!>Wg79kt}3xCgikFsmklC(~r1Med-@zzxjf`iGxr6PJ_rZ&p_-$?6DF%w>97( z8@-oTc1B#dACVdp{3yE2SH_U=QzTDAA>9tQ zJ$p0%&gAjc%3a!=!}!(F`0Ib07ZR}qFf$L_g0zb!@pN&P^M?n);Xf`sevLeQ^syWM zAcAu06nt>vmgr>C?Au65YYhF@v&YDN+3DYe)tH}y$6b#0EMV-O4aPpqRcdf*a4N{>wSEQv!Oe#!_s`R>I3+XZYkkzw zUAbsZZf7LOb&~4gXvnjha2@=NM03Wn%ZIz8rd9>=EEpVIQ&w{m9%s|f z_BY{%wikBev%{gM6z)_N&`#EUa}I)`)-Ely+)k>p_eW&c&G^8X+nsPVIxRy4z<Xg5Hv=5?F)W?eQ#_m5xTw`Zf$^GE2vqZ4Zo?qUuL`D&A9P&QI zt`xjI#fVWTir#69vLVKuS@pG-N!p}9c?Th)=_JYokG|9JF@bWG(^PY{T{FO8G*J{w z?UK1B>D<0`E9f*+x!?I!O^TPSJN*jb6(KI&-DrR6Txl&}hxV=*UH&qmFEq;S^kH+c zKaUSiskg)#qgVdUt6PWuS_J;^_OF*(ZV2TFCoy=VYv>FwVm3JQdzK6gdB>v(MAN^*Bfe|JWj;}l1Do}ymWcc{R^C|Hb zAfB{P+m1X!h>D5LG*dh9(>JeO^0lG2XZ|Qysg1?0fOazN$X(fUbzT!&gL9M!WIkD$ z)mXLHtWMRqrMNwu>h7`6C*i`TX(zybn^er{@7F4(;UMmbpp(!`^_&d-K+-H5W@uuB z_e>;}ygDs`+t~g%`8)W&W6wJkksh-u68l>4M#=N`hWT^7Uz3Dh1YjM5 zAHV!Z)9r)_Ls%%NGPzwqUi%0r)k*#Bi2DER--zTK9|~1dZHek78S-<5S7Rpdz2?W2 z)(-;bW`c>0pvLrm3PvK8T4gjgF&?Vb?DT%?QR)6^>T_hcM$%vYR1x;$R1G=a-$cOFQzN-x-O-S5~oF3qL+*3Ygl$?qA1Q( zzNykJ^BrN4lM>11nsfc>*8Z<&4ifN=NLH-wNDldkV~@@67!CPwOyx&+Jq@^i@I5L>SA-~T2+2|;$=U&}&& z%2QLCXTV*QKxxlE#xhLlTa+&-?YH}MLHzVmC3i|V<`sPymJgY!w$0xRPI_G8V+^m^ z59b)&ep&7LAef&XTUw#GR6(2&;y(Wb3F-OFx!`^79zO3Nv&s~idi2$p>`E4^p-&t{ zWJq&Qg_~^_aD~XdONs<)|MwRBGiX5us5+bbYSanUaG7|T_Tf?;@{ic(-KVxQ{5_JkF6v|Pmhk(M z^g(ie!Ue`7p=KvRa1Bp4f#2{h*oi{QAyctokg^Nw8D*Z1ncKyyAtHD)HWByofAWYp%?&G6;=r zx7A2}dkaA~Z;%w*wzT6Kdb*<we6;&L;N!P9kAP+G zz1+k^#8=n_{Lqwr486e!7WPEFEL9b`h4|Nd%~-Y8g2)5CvV+$uWe2q?f|=c^gN(@$ z4$&&~nG%(s8*@A8?V>$=Ff%7$H~n|uSHM6fK-OM2Wh=iJHRUF;fP$=ocgpdkSV22F*H5--#@3jvuSI?8`r6zAeEO6vKU8`z zL+(5URX7Xd8dO!Ov8=@6Y-$;P&PQbHy@#wb87m18zR5vWeTa*7v8`yW?%2)_k=3#h zcLAL)YXO~+Witb6BU8e8XJduNDQ5;@OcP^f{7$Oc9Q!5gEo@=XT6got+oI1TQrw64 zi>ePlFMit_uVA9Y0~QuT_$V(w_aVdf5aoT9=TJ-vt-)qu8T`=}Q@=IXP<`^zs< z5eRv6U`XJZrzG zI~V`rEC2Dk>FEXwV)*`UpY9LVa1{Hu=Iw24Ua%^dP4>5TD8^j?fv!#_d2?csnPSfE(NRL`T+eVJncih{nq*)ij;Q}W^MK1@T+Q-fYm#msltqe z&-@kQK5nCqY$7sqiyG`EZ z9Cb_*~8RdnuqS5$_kQ14_5ufX{CUvREW*(I5|$o81*F0O93bc^xL zc}~{T`rTOC@%P$|(w{!FtrKuWuKTr_hdJD;Ggf6ty37gRzt$jC;{6HO+tn5&skEyJ z#-6Gew~y1+Vfiss+||sZil81x^xf`j4zF#s^~`*M^-nuzXJ|GmU8Wn>iZf+}9VBLqEFOoY?#rN{v0&|6{ZyFsz-d3l2-!c+gt2_;%j|Yc~)r&h_l(L8*kwOa2_s}*=2THe@Gq5`Pdlj`emKIsH zTO7&66q$9~|G*IFD?=OCz30qlwVBO@#*?q?zf;M}iBspmb3)o9Hm%vZ@GHBM?7F9v zSMg!*;xu{1@3Lt2@Eqx7(Ir2ZdpqLPT$z4yUpqf2m$2IG2ZcitMQ z+m?v%#nFgM8=Q%upZnDPWGy7{xuJIP7Y7FA6ET4uL(=X#@rRU=LiN zgD8o9PxO7!0Ln&R_$30=`%njYBw)eJQx&N|ENIRx-@ND;Wtv(cHQ=4VRHJe1U|3S zQkL#z3hVd?4i|dR>Ku66-+d=D zK@YTpbBwBacUxU~P(2URdAtgyoA@%8nOK!M=ejzm1BonGmEahw%o<G zp1wUIJpgfURFSY@rD5H>KHhq;@x=~#qIIXWw>`8+7aX7;wSX|l4PI(eMiQs`Bk8Ku zQ^)asy#g?{c4ng4qoMUrRR!wo%-0+D=hO}R7Jw#J#*&(yHS-@-h{Diq^FK-c-rqJ? z7e=VySwvU|=SeHle5cT)7OAIk12>g9K`Q1ay;GCSFpZ|=HjNvaVFpip@#rf%VDgzo zcx;3r=G%HftWhdKMnZMIb%v5DBQZ0u0U%>r2wd0~-LnwD)*gV^wI;MSzBi~mIM?RM zGEoRbTDdWbgi{(;mk0Tpe1`@z6kh6Ugh|mif4&vWkE?W>iz_i%Jl9+EMMJj^UnB*6 zqf7W&tIX5r&ZXOzOw>w4TXRPR*Y1gw!#nu1{ohOR`YgX4%GrC?9W9`fg6Ihd)|}8^ zSQghG?{?}9r~xh~v(uo=G=Ak+$(OxxO@}W%I;@dvU_&SLpK^A?C||;Sb6d)aMI=b z>CA>>U_Z!l;TX#x`;xyQ+C{BUrYW{G#AK1N9$LH}%fLmu|CwQ|CZ58lb zmN=<+41Leg;{t2-{h|HZHTFFt?7o~_w{Sv<%)x0mNy;u{(;2#8P{((fsm=da4tq_O z27IRy^W7<-uE=!04y4VxZ(@?>hv`UPmF38bEQH~?A6oB~=oxx#>bjSYL`}(Yh23O} zyW^~IJq(l7u$?9#fD2ZhY;YHQISaQytGJn?)rWKvS`#NLajN*L)lhh&I7P zj2&Seron@~1xefMxoLQ&48@`HVjzm%iW+mzUUpxjFht)c;e`pqGw{Gfi~#_|8t6{o zLF{s~GCyMXyFdSp&=HizHwJgrqz13b;gm{unVc^&W~2r4U;L%7c@`R+e^No+qcfVs z79Bd3z=yBXsP-!C!X`(rFNe;?g$D9q@7C~QBQoW7a`X2d739lpFmHE%EdvgD_H;n& zi~~p{%l5{jh|sz%)iVdnFPS2j>a$JYIJzr+TPqws-wQIjR^ns#SNRjFNx$V_{coVg zZ~Azfp_n$!j9MGk^69{y`T4gK2KXV-g_~3hD<}aS1t;&F5_QPUcu+uY`km1;nHi3r z*ZJc=n%5o`z8b4>v)kT?vob3GcXka+ps^rt#&yt>8YipOcq0>yj_!(>UZ>a*R&2&Xp$7v*?5vs=h!bz&f%vylg1(yvNBvJrZT^`ay0?rRWaa^6+rqep&IiW#2a%CvhDpQ zA5?L7h}DEoh|N@>8#sOnd7{{bSiMaX>1u9_$)m4R?fZT%(I6afEoYl-5ZFN0*e{M7 zyOU-ed(7D#1GHXka@aiUjXbIBlpDk{z0Lq;KsmEq-scL=PFB65KkWW4bq^2+yuY6F ziOMN*E30w5t#1Nk0BWhsHSG6FG9GqMIJ&xSY^f85VLq>odhS%x)dT}>)_uE8b24At z02SRhmXK1R{1E7^WFwiiJ!$zWctb>i2E$&NJO5CCWYL)CsbP}+e9uXYLP zh}pMZtT3b>n|O~8h{v69ZSMUs^2I;ZO1a0N+Q z(jIU}mI?nlLmN@BG1^+BHdZ3(gP->GDcoa9D6x1wkdL~z@{lAJDaB}SR(C&j5|>ei zs=F7Fx}|C|9PC{|1y3zd&bNH%@>+(wy{ z=LBru?e<@2E3WG@Ke%s%e_2&@uR}zk*EiXlN6gc(xs)nd7>1v@gtoe`$v(zkx|YZ$ z6x*1J+28mQ=7vg`Qlv<@k`WZIX>9lix7q^XAUM!VoupEIF4>maX;Og zI%>FBll7giO}!ABNj2UY*|}IP)Yc=U09{tKG-Obnh%gUc3aZv`Z?afu4K?BFt-;cQ z+1e}6aam?!nuQL&+P;i!l$ZWxU@KqeFSpr<2_GyW*q~@XRw$KMFYu=uI_ta|H)}-H z*jovm)n_Y=iDk=&+7bm|*;9r$Gzjusz59jt9!3_%nH->0Jn>7g2nCNe*o;xeTzx0p z1$V)1)!FHOdc6HI)~jt?$~HqGU!L7#j18(Xicu$pg1USmSmu^e8EEOyE}ETXINpLFUyY|Kb?~R(w^_`W=ZNx(3tzO zWdE8eWND3B-!>9&fV93m?-ghK#wws&6S?Zv1&sfm>s~;@@NVZNQOMmC&4P#QV|&L8 zN2i?q6$O>A@yVztoA_mSCCG6vr??H)(P}72Y6_-qS7rE;=L2x0{c!A(1yG;Tb0RYq z>PtoadTG>FYR#gm`}RGnx_s>uyB6cGi;daOy+yFWVnY+H@u7Lv`1iW-#l5)MIikKs zE8A2QUELClZr{^@u(x^?z59jU$EmecG@u)d#Kq>84Kr-6=sQP&#~vggtg^(HgOpjv zB+TZW(yoRDl0LG?1l~3o7EVP4^ShTnFa+eQgfexloks8Os;)uh9F$|94?mZQhJz|^ ztPXe8CW~EkMSv?)MqTf~ijCUc8`0;kcY%khEiF;vUb9p1k@D+2y7OUFqW!vqx;cy;>1&lf-W(z@?s*U=wdXs*# zFCufJW;^aK@D#HqeD}CjA*&-WcijP|`fb-OClDN#d{RbLVSGwdqtGh?k9QyL3_URM zrh(V(&PBpWNHtM{nJ6}(CzIOROCh*x{GksxN!I<~ICA86$>!t6p6IZkn@XwZt=dyo zdX(^A!l!4@HDT!U$HXsF9lgY!Si|b<_AV31RBmj-6=FNZvP-UPF;3nG+}jA>oyKkS zQPoB1t{#w&Q991-eygQQaE!JyfW@o1CN``Y2h!7Tzfz=m<9kY7P87shGioPAZ5#jI zW_#M1ts_FgN$Ty=d#UWs3L@eomg(?Q7#P%;8QO0t;}tehL51@(@%))A1=J=$``+0& z4dN$1jWMHceS9vW;2vU7yW$vI2wbL>TSXeWx3ZI*C7_0mESjgh%*UE0a)e2R%HZ0j(F2L8Oa02g?pV^AlVf zSYo0UyZwPxD9g^bmn^$=L~9dbo~Z3ihz@Gk7wL#EcOxZ+SH^Bk0>A?U@YZ&O#Bh7e zkP&!=Km{HQt%Ct=%h*F}WjUPjHC)=Ly^pe$1$r>lURhPDg{&V1x?Wr#tmV|991e(6 z<6~ea3t7@_6Ry|50Mo#o#J^X!=zsMNdIscY4o3o$cMMEr*J`@Fv8Kp6tJmXG@^`XU zYgDpUD^;=_)A;)*YsRGQ{R;R;N&?rwBK{A7_D0X%z zM>Gf%vUu|ax!B)OW|U|dH}BlPTr&Su75+6br`TM3)i|HTlZ}|- z?DxD2gMe0Gqsx$~{I{fv2`-|e)|e#EvWY0R`=O8Jfz?JB1)avm@`9*`{hRTfK3cba z>R2~y=geFMEUiPXXp$dvFyK@u>PHkJ&3?U7YOObR5fXTCLS}25bUgw^8V=a_?u=>A zFCcbwZMwVYjiDBIo*zE>K!gYkdM-{^LxA$TwvpI-aa`sx;9!s94KkMf^YZo&p~dB2 zSJ9{FDA4R%D_^GCt(+D3`^Q#cqgTAtmI>9fwNl*e0|j0k0~G*jTfnOgm9z@wfn+1J zVF@Ya8}%!G){7O@vqN#tQ06#&b^N0J>=10-Z7k7#?h9gZ&MU}AN=y$uB@fk)sAwaZ z`9E^X^Cty?tQ(xMV4E>HnI5#Hi3viOY_x5&seAOU>r6zN=hjEjoJ90B$I)18$bTC6 zkZJC^gWH}SUaF0$p;|0SJM$@`9%CtPt3#mK$%--S4%isDW4Osh zS>mc+16rh4d_Wp`jRT#!GS%?`!3^#oKibgPT&e&f6Q#R?_RrItG;qwH@QLgCp3EUO znaWXqMZ#^^9?_=NJu^3NW+s5huYH(nRv4pZp9kK_QtNv>4RHs}y%(a>P|*&R9Yoe2 zFIh<9&P4IG;;BsU4fBQnAIhOWK0BeqvyrL`uwkKz5gzT-b$)s)62bWouR9mQs--44 zyquFCC0F6@A`h1Rz&ok!qRR-c&e@8wjH)?bB*gkUbg;%ZWE`>XnNYEPH{pvXLUwN@ z8jkA)&8^Gf=Jo}=5?WD1&S^ZW0ppp4+Kd2e;h)u~zzSrls@Yl0a|4JuiBlHj>#$Q) zz~%nhqeV_1eEsEwTD%j|um5%q+BhMbX)H^v z8!Ocz=d7o(yrQ=8JLa*E@4FDNDXoBMBTf@bB=_!T2~70Qs+DT$|Fa`Gy%_MXXS zsY@_v#kpIB?U(b^DGoAH7=R}X3CNv)|5u&mV62jtA4a#2Wfe-q6LI%_mX9+s_(+C7;ub5IEWxD zzsdN=g95)*vdH)v5Q2)eD^S&UV0E#ngl?p$Jx00It62=E&az`F46-$Ib}t)Kjb12@{a=TiMvMA$xX z0}9HBqB;DqnN+VIY7S=9C42VV*_$pAXRblz4t8;(0XvUzwvVzKYowgUA3f~~+Q$T` z2LzyG2_sh5x6E(mcLE?Ui!9pLCUM(1Oy_-Vxxs49e1!^%X@AApdN2-?J)ot)=3Z}qfH!92P zow*=%46cR1pbYgGadjH44otP%!l^Iyz$YkfCq+#5ZH4Z<5>8x?B-`BWfpf*Z8bo@vYu^wJMX$% z1E7R(ewRnA!rkjLN8D*fe7**}Br<)-tiBRw7AV6Boamuq^px=a@2xrMZqqXXZnI4m z?$lYtZEbnA_L7;_+4RWjxsVm2_3C>><{rv%W4=LPW8N<*b0%bYqv!2i8Mj@RNqegM zN4fk(rH8z62i^ z?V@HIcMUgL!k$%i5i~q&uy&Mn-5k@Cf>sH!z-*VM?P&s1WkL5qbCQ5GRS_UyMgo8D z+6Fg>S1wYKPU>pQSVea}vn72X(O}8vImQ$qXC=D_v_@Q+cWvU_bt--4qa}hlU4PTkL_}zHf1vp5 z=~i?Y!8qQX#@y6Ezouxt`ite1t#`Lj(01oiI$5lkZ~_o3-ciKv728@q4E!CWdniWP zI?JT@NB#acsnLUZ-;3g z>7Vh4&#L=8Z8?0x)e+E16It$*|1bRTgZMx#$dTFFgyhz)f<(`+D4NW&kbx!FtNnfs^-LnkrJ!!RVt16;fwBtM_By$ zDZYrd$>iM;{xKvYxI0EderMRtXI4eXT1ZX6n=yZ=EBdCSV{llR{^fg_kfsEFuUmZX zP?Ype&aL}=4n$ZUvz7mSh9J;%8dMQ2RbjB!z@*>ozlSxGI`B|XonfK9;N}qXF)vR{ zpAR{0{Ap0Qa_<7BjDer3)1Bh>*`+G)BFbalX&lGd*{5qZKR9wbU22lt{l-w&M$Jbb z&i7oTdWRaqNJrbyJZZ`3SvNZUWoQT%kU^J>eHmh)7nE;U+R~N%S=aaEZSUH6qJ~Ik ztH6in6^)h{OoWkbFW;(xC;bwevoSA0qB)h1z_Rs~F6dF9_KDw&w8MzVVhm$_O--cX zr`le!sJ{|uX^A^jtge6M$e%ni^fQ6ld?CU|VJM#by6$rcsxtPp$Pt9EMKWjj^7Eq` z>x}aJ_U2PxUkfl9G|O#(O*u zfrTQlv!oU1a7$j{rzx1aqsfZ%@)EvqK-$&+#v&02)|0|E*6d*~8uqELkk0DYm_yfk zdU}#wVGiu|q1Hmuw!)?t0Ycz=hU9dLQ{aa&^(9Ki^;O@PkBQJnWr18|A`XBRfO|ZQ z{9JV;xz3Y@Tee7mPS6nElpIaJq>_ApMCB#8@-pUYD4QgSc4RxXM^W#F_ekC+7Z1Il zX**tHk*(?qj;c+=CR-tl<$j4gF@aT z0j%K99?bV&?{OSgcx_nw1`>!c7!8=7gfDoR9(6ppNJ_Nqy#xw?t}pTjwtgWQ1Cf18 zptY8+WMzc%-#)CyI|itu`F|Bu($j|QF;sctPbwa7e1i2p!v-^P$z*bBZqmIys<==e z5%kRYZc`w^l8T$yGbW@y;`8nF6_(zHW0+%>PrOX{2^I2=M-JYZ2P`jt^j@WC61}bL zACgWvsn5vHN>M!%a2$xWb<@Gba~!XUNo*2pwe_|2$gh*4H_yH{l%LE4oNk|ywlf7p z?@P?pia?<7D`daBokC%{8db=#>DyM@zx`s7taJXUhmNe-+K`d zjO#ry_S9&-EN}DE68ZJ;K06E9-PpC}V_SQc4erv{JxOaUpH3d*spaZpZZFmXb|p7L zwmA?hml&Evmg3?}eR*sZtR9Y6z1jomzdy?*G7+>l9F*Y0apRj8|K}m9XELp)yQvRP3xE^s@89eFpMFgK%jEoiB<>{t zmZCES1tFOB_*OAZv9mBOD_;gtNh0Ee)2T9?^6zMXU7JAJKk8$&6L$WH{CASDXE~5;I5k78zvuD?dB}q}Dd3@!Tv5fi?L6fL0ds z)UiPl?a@;4&3l?&dpGd360paJx@2BX^~yFu`Ic`7%yVfjoyJ{0yJ_s&u*#cE5#Mt+ zP4jy9svyHN{^Qb3Vwzrn^D$|vu6~t~!7pOFJM7=Sq+juvxvA!tiS~|C^8PLEL;b~H z_G7Zu?B6uGUw|#^5HUdZ+dfMD9}m{#yI*uQd?+?56W6YEQyR@p8N|?C7$GDw^ zK^>8-Te;cU2Q}~19^S0VR0*KX%vSyn7gS8$?rkUF+SQrmg*wXD)H5=gTANPhP4gerB^Ulo}ZwnwW8n3IKABz`eA1QS(e}pMP5dabdGR=5Zk;Ch?TD&f@s>MCm$B z-s?je{VxR7ko}>wV54Z8+Dn~PcuYYEQ#oVXz@NHXO1Ky&^r%A`Dk}U(7t+g`yUaHQ zU1`WKT?zuG9y@#6S(BG12YOw~<*Slk&*oXS*_1TLn)bx_ao^FpucEd~W$qecBE7z~ z6Y{+k+au+<%DKw=3nh`k`~dRvP~i(v8YvN=o`tbRMpX%H2WtWm4*J943=H<6-Mn{E zu>vSsYRSU&RQrFkzNtV5`0%5m+#uuGnqIG$9_pqbK{vJkS zT}!p*>|t+yYAnmHE;VNA$6Lt(dEBobf1U|&60SR(0Rz?d(tCW^6XkuLI%yT}xW_UG z$81?4opH%oM@gVXF;|BN@GU$6VA%)$T#tYKDQt&!edacuK2ebiW%;^%_d6c%B|S8Z z6-$eHC4ig>NI8GMPxfdhwd)}BgAezwheNJscGo&R3C{O3eC`wAmM7*|G|?yCQz{!T zR&*$e&YfJJCYR7CA&uTHEA~(07o%W+@ZJIw3*4ff&e5xVTjpmUeT_S&{UpeA0-34v z*3`+~YvplEGG0p!1Ha7EJGlr-50$mxDD%FlD4ctC*=AMV=fMzLyKK>& z;zlD_M?N-rS*smcewy=CUtXi%%)=Duo8fu2v8FX2lCWdIV#jg>_e@V7|ib{X{W z84@DQ`qQ3Jn{y;@u){(BhLWb#p2s#WEmF0$->Z$wj2Y$wbbWjaN_C2Be8>(eQ%bZ8 z;$^VT7GNS2ZKT*|wJ!oyf!mwZ#lAQ%o3LjeZA!KgxwKv)ZBhINJ2$m_iIN!Zw7tA(3 zLEz}2{JBI&uf3w1Ls7Cd$!jx9`QneK-Zv+1sF&s^dZbEU7&vy6I<>=ypXy@U`BO~t zwQ5!J9;q5*<@tTL;kQ5Y5hKb~JtWyBR`63nCcV}}h{tyJ`!#fu*0o0^?gP=@6ci}fcCjP`);zEqPIY0`9xE5eCAw{ z5@Fye_?GY7C-oI5Y(^4#B@R~YIyl0$G2$$TFsQ9Fslc87S+H$0JWhsj+zfWe81Q=3 zf1)_uRC&G&J3s|5d~Qu)gaOuH{TUl}zMLoyWHKe>OqYUHjSfunoeUpvB?_nnW z+jh+B`c#QQ8$Y*}6zm%l;N`+;hb6__oAuqQao!3=XiK2E-h~Ev13S~`_!`swrIwO> z5XKV32VNkdw>%y{H;%M6u2LoVeTcXJu2@0jVG7$et2T}xOgbfiDACSrDCxZ_3%Au# z?HEPR(3%a`eMT^I*3}oZ(F@D~L!LdXNLAa+t-8iP-0ByiugB@PUU?# z{U}|#NM9U35#{~bA?=O1&i9Jnop(FqO9Oyz%&%~r84lr*>7@vH;BA?w_$O9oA_(e2 z0kwr_Bm0nX$|Tw}YwCd7$5#hA1}8nRwgH0ypL^{i#I4QxhZyQ3YM{v1#hzA9jMxBq zQlg=e=vVBP1|mMq*=NDq^rAa0b6do|-3K3szC?x177=H5QkoQ|!`u&&%D~H~G0v&R)hBLzwe&vyw*B4mVB`Z+ZCa3k}UAb^W zB`UaK{K3L$a8L}8t9QIl>E4)@I7r)7@D6Af-oA?ugY%K953^))YU?IRW`y+4D-IF0 zV6lB8Uw8ycJH;B70Of>XAOAAd{l1wu)@cM);-nl1G$eX<>%4)d_R|A|&%Jegk4a?#uL`eqkjra>B z{jWH6951RK+UMbZ=>v@EnY|5OT>Pp4EJeGcc>yB$@xD_D&AGOBNYq9MAl=lOe+^%i ztL@xfvHayVNv8doU|1KP7rp23KxgzWL3K6H1YMoLkTYS6bV-4j#`L6~)o z{-SEdd56xXlHaJoYtuU0JoD~zI_S9liRM2XC(J;?@ygZ@ST6X;-tarH_}6?fI(-!x zdUil3r$$P-W7fxXYG18q2fFMVlZFDeDt#ex855&u&WX<4F7e+e4Cn3gk4-^k>Ju25zI>;aCT)PGAC%gviYEUQ|AoroYVwjXIn1x%os-I$IX6Axx0H)P-rSVAQ_sM zHp&^~_JMJHYWHK!ZtaD()VfiA+|H%erzhYCa=dv?9bE^x*;C!rU=>7HEHDU6dfPQM zX>Y8)9z%z25R#}iD9}c<8**I-wfexh?a%KRa5!knk|+#EqaCBfDVF2Z-R>XgKgkK^ z7ure|1h|wshV#6YWs}ZvEWv#5y4)KxZM2H>l6_lk8Vj;K@H&1i5}P|$+YWb_xT zF=l4^oUs`0jK?<7;#+Tilazr(-2b-Qkvwc++Q_}>ekrB3a86g01*f?hxACfc!6y?V zg%mBVa~ncxByxjmXW3l?kq@+6-TFyjOP_f>;Dx|7jQgb3D#9x4pFc=23b;VFsN{4< zfb`rw=8bM&psNBTi-4~wKTM3o@47$e7MHLukDSwSn7ITW0AO}Lw(pS~`PW1q7N+TO zdwBK6Fihd7!3TT?ewOL7(3ArihPzNTy6#vcWVL2PmI)T`x#_Yl#!UHk-9msGhtv~f2Gk$-`9J(K!(kG6rk=mtY)8%T9P1!qBS@bGkNVvq= z^ktZ?SW>3gssTZDIFT}kRX_2Koq^L1i{WPulTlZNlwg`vZzH`fO*Ycf{_RaZEjFT0 zH)yWu;3mT0;Q^-D!6}hzn3&49un^=QCOewAU7swN z2+jNncxtL?xuOkOqJwiP(ZufmdpNp!sV%?tW~TLTZ>|l0*H`l>Qd94KO24ofVRmPM zN9WH&-7nF=AHF$qEW1js(kA?Jd;N)?`oo_Kv{LxPQ-0_O`|rOY_jCI1_#9q4{da8~ zvPJ$6-uD0L+mX?oM%^`M$XB0e6>ZvVcSBp?Zg%6fKOl#AtHSDYyLNX2sAaC7 zXhmjZ+y@9B|=%e#P>;cY;3!ih;{ z8ZZ*5SKbkzrv%ELnbkmIb>HXDXAL*UYXho{ zedc1}WFQl#t>C00<=W)Iyi^@eXPl6NRih~R|L>9gg&HDz)qN=pf_{*CKL22Fy$`5I z?Cz}wNd>((b?=t2xomogbKd_l(B*2}ty5qg<#Iik4-Ryb(cEo9Ub!Sa>>}U1&0GEM z(JI^R5&#&}hN#Lz`O z3MvAyX>_zV$pM{nkAel2?%#Q%qm+Mu?Ik# zuf*k6GCD8cF|LA*mzTFI-f?n7_fdezm2Zp$wjK@gB{lRuEs%Hpfevy$g8eI$;f~5@ z#TRtDKo2J3myP$*LNXmYvsA4%06PhkK*By^8_)J_$Ya>V)-)6% zRP~*sw03kk&(k!FK}ZrCdUm$ZOa!rp-h1%90}-6hMgX;p!&^_1&S9}~`;6{13T8l~ zvw0+FrLu81T%iT2`6wvwK9aGz`_zO421Scpf9D=~24iChb#P+?Y9OERal)C3+E z(QHG!F#qbnl4<1bZT%%28IG3SHBH=aa0jF0Ce`&-4p+c8!IN`eioHQ^Z`W( zplJx5qVgAtr|hoSi4y`kqXn&!FZ6eHZi0Q%DIV4t|y9ptxitAZ%D%QqqPEPldrEYViUdJHdr) zh2K8K`mMN2!}N_^pP$l~#+WSmWIX3w_HXh}3)=U=NpmE4)mcrMPoNq;%e9P{t+(w#j(du7~FMFZ7&my1vLa3bTKKeBFF~ z3OorpC+Ko1mcHf)ftKSqAkC8YI?Gsd?-O-a^D<=g63BE(w#4*#i{Az{*gzpao1rF~ zOo#h$KBAmUlfALvje)|r+s9zsPPW1xWO8~tp20Nq=oD(qdYH|XZuRTF;?}MF$1_>h z@38uh>c|yuYe9ozc9QA~OA02~D{F=-6vH&Ha!t<_v+fnn@yp@FBI+Rq3|CJH`&1UB zSB%9knS#EKNEaCQ)lPQYcV`=uX3NF}O!P?^2_RSdfg1%#oafl~0UGC@NYyX*fQO4U zkFP)?(YxUR5qyzORSVbM$5D?&PFaC0SSxkUwdzr{ZgVSazd9F0pujcn*6j=y<-R?$ zbwaeRz6=m9l@>a+@km0ihO??sm#BRZiGN=MUdyS*cmRws=nJ@_S| z=t_(i7yV@9%Y>EnrBy~!0aYM(zFD0qYv7hePJaH<6`@`~RtVO&sm&W7ngfAn75V!SB^9jR1t>U8uZ2T-ZZ0n_^L%`rmtQ&FqX9mFOFP^V9yI*g zR-HF_mHlt?g` z8z2}lo#PZXkncHXj$xi15(lC+$4dt3q00~37KBod2)w)aTAqFt?qbRT1!z{nL5E|j z_}*h+-ug?AN|T(d=gnhGPG6d~w}7^uOCTu;)MSd$7 zckb&ap<9oxwzfn=`m^v(kqk6eXoh+J`LnfV1;;Db%D+py^ zv0dG5P#o@E9nxdIi6T{wD84WPdTH-El{8gZF^_+=ixe5U-&oBG?7KaXlFzBOlQUn5 z`z44XN;zfnI=)Kr2cpVpjaSd#n@`#KEba#(@p}sZN%Y)VBad;#4D%_GcXAb-mK2Kb zgI7YH4qLJkVCqd5Z(mwwK8u?6XHjLxoso5J*nalgR}@7f19RIG6mL#uCLqHSly2qL zjE5rf8)(3iqG;!f9zdh>uj8&%EnW@p4!kEpTR|nkG_6#v3mtq#U52&PwOvQYrUg4$ zXWj*OIj4=f5BSOMPAY7fy!2+7RaZUSx`IFb%er9X|MRf{rr4E0wl&v$V9(-XF!g@_ zO4q2upM3<0e-*ixV~Kl%57HNJC-e9_berkz5z=YHUT+|E6p~sMV({zCAQU8wZohQ@@c#X8 za(YKrCH(JmMVy)(ruPdEp%hK71Hf`cu1dlLA*Z7)Wk04&zuc#;`LO%r?1R6iNtf7; zg#8(NoXE1!Y&z0WwyD0*lBWEVXBgRNdiSQO6oj!w01eNqZFd`|r6{vngPSFjVP_&H zf)4gJfc~5l9;s^DpO(tmOfe7K&O+m7_eI0*Hq@i(r7*cYLOSe#ea*MQy#SFYI9 z)g11wht>MKSN^&m|D-qm;;+$PAyCxn9~YzPh{T{Qny3p;j+H^8Pn~>uiGZ(Mq|}c@ z=Y2XGXBxO|ePMijLAYKaA`}4RlFr?ux~G}MikVS7#+2HKeEQisPQ<2*k&HI(BB@jK zb1s=Pzw^_DRq#{ya2a!jI@Y@t*DyQR-1A%-dF!QnWi3e`SncL==i*#?>}bGyE*@7S z@&c|zFio;umM#Qx$R*mhQwRIRZqn(k6Wqz6faX;OgZ};{eGX7!{~n3*3zsNUe6j35 z7pvbT^8|Bt-35O+(97J+FH+?_zFAU!qmA=~^Vh>oipk-x8F1A)-^;%^6*#k#_P@2G zU!vUdKF3=$e`8pCadT@TSo(#k4TZ?zxg+PRk=qt*ZcvIoai^d0_*&5rY>IAD%nF&JsEow}+bd?! z>Tr8?{Ixy(gU14R^7oh9jwm<*|BJ3%01tG&QDRH1s@kiSwR@LzQ19+k>5SU*$jSYK#NqHYo}E49 zw@VLD7#6*9%US(?&s2LM=br}e$3G|g;s7q}v1>FGC# zi%GTnyS?XUG43Q_Ng^LlNSak~cm|+ijuhq5O;=Iv}kn#5(1W8c&_MkYE|zQKG0AbPTaI_iEV#*+tc(F(5c|P@@1*VeEqhX%l2j4?5}H*x=Aot@cM^ek56^(*Sj zeLEDrf-~up9+KA=Y^ODex|y*5E^RTY;zYo2xsPkz2NRgvlw;K)fC2WSJ*)yX(T754 zCECV;uIAlJJcI1CkK37C|9oD@Qz=B;d08`UDWz|I`&Mutx<}UnsGE=XxIZWm&yI_| z1y%LXz`Rh-Nf_u-q<8-h6TvUxcn-I%uZ0!zh08D%tEP;`-=>=)_km`wWP)6HBL$NwCpHQj4I5s+%9d72uvg zpm%%i!*l3!D*D3_`d&z^VL!vTEa46a?p>$x3 zo@%3~WBsnAnq5DGFj9haQwplpOVgL;948*pe%JjsR9RAM@*G}StU2I~4lKn9yjqa5 zQjh?-z?tFZmR`1mBXJzL%>DPVgnzFmETc*ENfp*`}Ot*JP*OtSWn+1w!*^MR#maF0#oNnvTK|mVH~f ze`ojIp{URzb*BDQ4U#}*x}czrvc*SSw7)}&RGA8IO*3tb{M7K9Am^$ z@(uvZneRww< z?1+og|3l>Zo9Yijlu-APycT;cH?uhc?eWo&cUd5w>l9Dg=ru>G`}2*`ON)=*W>xX# z7_KyBCo8_#j@59pu73Pgf@&;dy`na+O1(u=JucwNV+sRbA8RRbRd*GAUqhfJX4XAB zW#aR4b=!oA&b$n_EE5Flc0PA${)@>qeO}t?l)29%|5>9Z3bl4fn_?(D-vdaOjG}dh znA;z_7xuVOpf`bzpl=?q_7+6VhXi!4;?2VzR8OfUU|ezxpne{PMEGgzoA$TrF289} z|9b@F|EouotZnDF*G{@7RNVh2W>l+Z%QOcdgc)*Kr@ydG)An=9iP8G_wk3ACZ!brT zZIyj5%~QkPBsRu|s#`nR?D}D4Xs)Kken-NwGYWv+-JaTdfwst3 z{~_9Z2>z+|BJYl0WSQD14Jk!0-}+w+$^WlE@}KXV|9#eeGVuQ`8T;ES|M!QH!wQgk z{B&{rfsOogQ~K|i{T0>!-*xtvjsX8%8vidY4V(iVc%qXx1Ne0^RAX>M(8Dw)mG>WV zw?}^kK8W{TJ=fMUppJW?2U#Ab%(1+de(vKx_vU|-eiSAs!p28AQ>cMv+za>rt|K^v4;-e&#Pl@eXo1mUeP7M|b5{GhGlEZrZli zktkIgja(=Km0Gj&{l&fcqutiOjFUE{=&&Yx|Az-^Y5+3NzDUMnR8i9ZK|;(MS6PL( zhS@-$=PLtdev*l!qwIq->Y0PxP1s3GrB0B`p?qVxnOvE2L4e^${5WfmpZ(e_*1wYcRva^--;EfLHe_oC!t6!x5@<8&X3SV zuH_z4hb`dP9iZi@Fq`M#=anShoxfO3TMn*_iO7S!pq)VWGr7mbjy@2&g!yLc2Xfr6 znvGwKncsw~ciRg~8Y3SFJp#-U)Y@ZSeoFvy7#cIQv}6At?Ji0pP!G9K=WPDCmH=e` zw~jXE8(>@J8;gVR?nCP8qayLDWG}Y%$&0zYp5^h6y?S3w8tiV&kQ#l zVs4X^P_zEz(@mzizDNUTu0C(`ZJn)rePtDl)w#iD_W{us`bZ4p)GQKT%8km`0l0wx zGCL_{@^($~Of*}jjuCVBu6=8yc#%-r%i&MT5ck4V4S*8cw~0$&H%Llo@dE9@2CL)} zdVm}4vdy)D(bCZ(|(-QMkGJ5%}$AET&^LLGsXx|b>{_}cJ5`bENi|<9~jMmR8 z!$(fQA4p1aWw;^ztS@q0yd`#WpT2bk1{)cpT z(=h3{k1;K%Nxt=^s#w*9T|#XuaDb5c_GNacW@HFe-HH5`?-H{?`(j}^PgOx*G*|B- zO8-dUD3=!ckpZe>Lb*DhHzyG~X=`6aO<9)gv7olf;7|w8FSM4fQ_rwWkQ0>ayLqWo z@2NxX{hK}~m?#WY|AKP?+%h*#z%^MkROjHwT)TYXCW}Ju9EMH7UBDS=9#%`H5#q-8 zy>DE2Rd({k81`(h8-nvfn>rYra-q~1wAdYYH2krpK0vO=CFaJaz8kX777uT@Iizl{ zO%N%i)5vhJP$1R*9;0p~4Mm@n5S5xmraHV`+_ZPE8>kn|`%J)MqYNXT4dnMb^>>@1 zhnYE+W$ktd&p-Uf&?A#^44rGoBcP_b?eEpa*Zg3R}2(j=UQ&l1KVB!}pS{H0P`85!0brZa5*qZrN>8Jt$RYB{pISm!e6 z^m7SDpi5)=0Aro=W*OG8l_A8_(7I!}Vg}KMLz6WR9kHoy$#=-d4=QSLgs5ReU`t?uH@f%^R5HW*4z={ zAfsjY>1KIH6Zlx<-1g#&N{i(l2#t>11xsIG>NLPk8a15 z)0RClk*+i?Tu|#}UqPIA52G1m%yvey@tn@vD<^BAZ~i~_-ZCu8b$=UHP*4F;k&*@l zrKGzAl@^t5Y3UxiL_k1bKsuF_?k$-M$Ib3OT<3>apii~TTy^qJM(e(TD4%RHXQ-gdSM71mZnR& zilN>IY|Z1cE8=OB#{eDDHPWS*-29$|svuo5FR^dVR>S z^AKmE-=o*;o_R6k0*^~UdH+>sIkPEJyiw~*AZP~q2G%Z=8#vjcR(CQ6inrMp0s6w! zHy>lB?nC`2`<79jdr-+ClPuuY0r(21Qlximq|v|y!;dnmQDH;s-67=yXQ{@`TQws?YT6FwpNBbv zM!sBr`(J&>+^wzw5L?@j)}7}<&;zwTl^mY_f+#NGYhs_j*I4B0kFnqDuYO#IJ(9!6 zE3-SgTFsWYF-Tk3O-jDwUZ9&eF`ucg%tv=mQ9FhuJG@f1wJoH<*k|kQL!W?ZI)i^2WEmL2|SHR(N zU-^By1n9tej0QLkg8qxy9s3&V$4dQs1A%WWrHxbO`g^zfKZx4=EmOqwhf?R?1Ze&S z_WXb6$5zM6JC6dwjU>*J+?TJ4*-pa-_W7MDG01@b2{B$Gz%U!W{8Tk|0)KRtJ7&{6 zN)p20N>4jc{!O(f^yOa!r;M8aalie4H9u`1D7)&a`D7g= z6QWbK>F?Yz?`MlCyDV!yK3@0)D1`nOP4`bga&xa|o<9eIFMvI9Ey~n<@+)(%yhYYw z+4ZQq_abMAZe?v}ZfVIW`Tb7=_b<)oS8F9em@q&t(^#dFXYI+Z*wnj~WwfJ(%R7}M z^QeIina4{0zx$0siD3q7ZfQW7=Xv7QY@g#(jDpESdXG>O!`CXq7!KCuMd0o?Ioyoo zhGt5qkY@Sk{7=vNUj*c&n89nnWghifrTBAuDa14f}fW5+D^d z)wFlsh`0Z$xpe-tsP&u{uBVr9{4_1PY9~#ZB_GJM&^z8q5T0yd%mrpPFXqil>nMe2 znfWa;{P7d>>I$~}xD|U7FZG5P{I~)8q36wIy3cD?6g{ZUiiDH23o(B|X4_(Fc2BPu zTXV~28tc4s@`;U#4PF*kvQf23TLmy(%ZrRvGAo#d~hm8T5=ye-~9(-3nO0;8Z5;PJ_ss)KbUg09+1GW z9bzR{Wed};k9iMxOT4=S6_Y3d(RV+8=id!d7Y~wYtdK#jU*L5tbFcQj-ni(X=bmQ$ zcm1dI42#t{ClhzVjO2jWD$Xo%&{(=LI#Hm*c2ES0$wU8#@4obeVeLICD6zL%C3b4~ zc1rH*Hc*qPD^%HFi|Y*<5Knr5mX`C9-a8ny*jwSXPOk9gQU5gKyllNR2EEOjLA0Dk z6t$ycGTc}x8%31N+1tk!6B0}?FrFf;TfB@O6e*YM?&~}PfXbkL;6$}IIpn}?VldTn z3tK$iZR_Yg>V7A*+g)yIorNn+(G^3gU3NzzO`3I+%VltrxHFv}!R5?xr`Vv2)D)-osN&csO=SeZFyW~clu#IDLVW26EL`R`T2!|;w}%S7zt2~ZmeRx8vEgRNl#fII$wv! zyRM=E$e*2E%jCB(jS>K&$L`VSXp?R3>hjAa3MjAyCoc>C{(L(=SauMe)l{Ts!4zwTr6OzY9{I%A_1w9( z&$166sA#QXn>FDkac#@J1$Te(0-A_w=F)bp6itiVg{y6wc!}f&w|jBuTvE|v6ct)o zULaGiu!X&m9v(o5XL~q*VdeTlm5N95_Tos?l=SjJEj-?fVD_aq7{9dHb5&FD+FB2V@?e@>skZZ?bYcPR=KfpIfzH&cg~6+Kb1{Ufh_p(}aJ@ke-CGE?gSoPTvC zCu@+v*dwkh#&p~#hJ{J=cKN&V`BVz_NFPOUJ~Zzi!D-jm)536}L@Y?TF!*wovi6;T zG;x5GU|7vubCAAJTeuvCGe-K*f?u#$G%V3}Lg9Y1sqV&xVdeR33&~s+_MVeK2+&O8 zfb_Gpy_6ptJC&d7K7hi$&gik50*ERo3wgAvGfKqXw#Xdvkbmit<21&y`^v(9_%(Cx zEman_AQ4o0j$#yPW}1@t$V%-NBz#h>wC4clxp4DC$v}owH>CU?@8#`_1buUl5chq! zJDJY1JTuVeDcYwwxoS}g#brxEkw0LUS>x{Y;s zLBS$TPyo~(By7S|{0H6@|N3cz0vGi8eedD@NlC}Mc_z^c(@&w8aS9in7YY~wN0+hYPR1H1Y`{#Xg>FIo1n9NVu$|+F#l@+ zriY+cLX9p=oAXI*d(VI@*TZ{|WOgqyH9 zg3L60&!Ti{j@rTJz`U5&an8(UXPmw=9#)g((01f0sh9d@SPB#f)WVD?_iR znKd53Pas2uHQYS%1#~BTm!?Y$Ov=1D+PD=+)OmvsA#ujh2~*BzaaY-Q$E=wt~ZU7O(MPL4#$?Q zz9trgwZ=9|_Mi?$ShB|0VSW9&fztJQdo@8Y{eWJ|ve0Eyt~>laaSOUMTz`-d1Oj3#oc3L~Ws;96yH+*K85WU~fut&IpETA+O%42&ENnx+ zCp|!xzI`37Xz{FQeI;_eFzmUbCTJQJHS@gmy(p8zE~N$kGp_!|KKBEhLXhn2a3_#` z%4X+&*<_PZF$TROb)n2}{eCZygt3C>;v3U6-BmYA;4hAih!G$Gh);dbBTsf6Y8^qQ zcHX@~)WAv#8)A>8^%lki39EHW&E1c7EIEoYaQIf(yT$iM(Z=}AS+ngGGG|&i6)I0{ zya9U(nW0aMvho;s$O6;G8H5x)DA>SPOEbz-zE!RseGuL_1h9q!Sakrve|HNH*V8|? zF`(=#TWko(dxhAX9BO8yo05;fvGftNP~V?_Sj@nZIZ&{8xXQ0d9Z9?ZdJZJHkm3RM z@WpS?fP7D;Q&0 zxxmC6D;UtSf$59A0cb^j#T7V3mz68UJonO3-7TVkJhekz-k3d&auvF~9sWHv5M^=O zDt&Pvd@-bW?|{rvp5~MOP~ZJ$+S3r6vTEx(>@C8DS{gM#2T28SX~L zeW?_9tj_ih{YNbYOou^%8`DDKSN7V%$S!cbMGf(Yai@-K*zXRw%hY1QG2BGCag1i4 zTwuUgd3l3Ap%bhR)J3SQVl5t~Ka({_gvs1n9-mARrkWVJJHLEz+Z|i2+G)Kn;vpZc zDy#CsjG4G!0rFs{Zg1-G@@OO7y|DFa-|^+a1zQj1Mi>{Wy*{-aF!a{6ET>YfJw}Z! z`IfmVi7dG9%Gw*XR_EffZbjtimsddCMAr0A+;u=bR7t63l11J#c7T~@2WL%cGG&zL zkv@rWo=gSY5>P_@k|IoEPh7XZYkpyu`$t#=0D<>tPM}k=DzjgGkOtbhy!fW3CoX8igIQ-j!}K>}20(l%r@1@N{EZfD~pTkj7i! z-Ch{(8XB`^^RO#F0>IgiaLX!Csm)@-B%^{{d)c{wZ}DWsq9}H|WP+Rm4K#?l#42_* zc#pa{EQcXYJE`lXijJxcmY0LRpd0;G-?Qf4jRczWAKKI*>D-oDf{gbX`M=ybxvz&J z(wz9h`A5&76!uxKn`SFBMMt1~dylEP_$YfXH;cl1jt^F)x14%S4pvrx(|b-p;4j5#WWy;zx|O(ZF^#jAN5^;b}aIYTM1FMT_keI3H( zshEP_GIyW`CkmpE+|T68S`_3Xf^kJ6o@x5r=6^fCzxhN{s5}oLB7>n?(kye5Uym^w z1^`P(`!4y$Es93m&sZDZwl#;v!p&IYbfwV%uZDNUwp+sHVCcLE{&J)Q?v`bi^Fo#6rBz3*a^bN@jx{Cp0kURysHa9$FwNNZOBc)BMc=yh29~+wl$A^4aAB0t|AZS|T zN8J`vm;fkj?q+%@dz8;%j!%@fO>H~nb~ynh41gwL;1A^ynEph7@nqo)M6v{q^y~Tf zh*SN~>dq%O$9_>{e17{d03pE;qnGy^e-hIwH4G4x?&Gsd#z1uwL_I)zrzkf7BCB)O zXivq(1t$NCd^-ujXjNGmS1oG2etx@OykAU+=a0gX8PUJ#QU7y7&clyrPBv*i0F+xY)^}y4U3OFesUAl}Gk{%Q zFe6QNshMRg-pq* zTOCLBC_PT6MsoJd7-#UfV}k#m(9pWmpco9aU)m|;<>mFT#R6~zd=avfBHelg+Rt!~ zaCLx0Tn9h_Gb&7ipw^~M?4$R|M)0q%;EM12^`r=oG%R31C$q^|0Ld)?*o*~mm>K+_ zF_zW_006Z6O`0YqS2-u~8X$M$11rD-fFwDBo!(pT(&Aa*cB_rkH9l}{*sUn_$%6FsEdCfqXl0M9+f_V3W2SF5raj z12|w~nx8GM?q|!M_3dAg(N8h7bgWt>RF@RqNS++^pRi(}*eGf2510L30&r0P`}v7; zAHW?)Z}-Mwc=NY)%Zz24)jty41{2rKa{}N&d(`+yQ>;tUohh?-jEY>RZ}*Zn5Cj{~uWRwaBgk(;2T^vavYNhL`Q7aZq%fa?bD#JJGbiKMcma!v->-p5?Go>Mn-#) zIzUm*SNq^(%O^mE5ysJH$T7`dI0GAPNW?#o-MKxdrM&NsR>Ay*8( zT(vKJvKilPhiJRbozoDOn+UhpI{gO zp_h*#kI)n`x3q)=%M0wic?f9A?HK0V-w6Zj9bu98;pv2d>afVuM*(E+*ZOsk4wufO zpIo35e@)b{bQIJ6wfQM^dQY+~Yhhtwm4P0kDp3qj2n>At7U|VSGjaIl0a{y2t1RMX z$JB5Q0RCTP@OmLW*IhYC+;y(%Iy40BYg@&-^XS}Ji}S;O!D;_*ru4I3n@>Xbb!xs^ z<-2@!6Hx;g@rx2agEXu(>SjY&dc^Eo_D$Z%j;i79eZv6liQ+(O<1t=5*x|bJ66 z7gtra;`zgaE-qeeqCEG(vIL8~ipnUKmKBEcK9_r1t#`XmxL?GjmvA-ZiTWr0zlemmJ@Bvid)2SGfa}mxUPmv5_^T)F{Q{}}fQr?p(j$QA*OZ>T$_Rb9J7#uR zqFy;8$CZ4FZK8YKcKr`nG^PUfw*w`k18^MBwvJk!t$iEuU!VOOE$!{_QQNYe@Ya8~ zA2DJCe=!Y@XS-tAw0jEUFs5iO)W@_3;_PszZ%=WweQbDa^D!KJ^q;`!@>Q9t=PO!Eoot3$uYkc`}2n>fBE!W zfcY~^j&`oIG&mi$|9?L6ngCS7_viuU*>*ozKsC&}9z%4qfc%;}4Y<8=wT_G3E=}7h z+zT#hIvOP}`~b#}j-$yJEoqx%sluucy?RP|FxO+5#ZcZVgGdC13FZ~79Qba4-FIN= z-?ZS*29s1g3CMW`uq@InXo&89S9SpKu-)p-hpO8xYnJ+`M1Y3;L1JQJ4=3Xf1pvo7 z#R0}JoXXssMzUgS;{WMq{OvMzO>ZwKId+;tT$w5p9Gy;1)XQ)g^j~=WF-{2oTTSvV;H%0%zY*Bm!#!b0L$4vWbl{~8i?~FT z2w_CS;Oo+~lcU9jc#i`p?3hv5Wj&ghMa`Hdm{1_1xOU-If{=5bo9zurr)vh+0G|s5 z$WdU>Ea^WpK~-K45^l@MW!`?qNI-SSlhZDx_}p*TmmBJk8rmx~aDF*Vul?h{UKu1x z4RkDT`NF-9tD7Okg&)^{`(I z+BOC5DpU7207^fUz$iXvgqG$bfTV6t+D#U5E7JkUniibNwif{$H3x!-V2yVl;f0(u zn<8R&)n^b2rxBl8B~l3WDsftV?)WGbuL|(@H5<3v$m}r6Rp$rsvK1NMnd+_y^(Sz5 zt`g!6Zv!eLJk^6^P$SGXgmlNS%tP)s_dHQ0LrMvI!`QT|6xi!m%ckZJ)))%7hpC{x z%cY8=e8|!BJ*3ZwIZB?ih83^ENa2dWcOUv8r%UH{csR-2L%x=aS_G za#m}%K4AlD_fqWZTN7RvH-rhH#{JIDsH)W zy=1XQ)Q3Z~Bc{!5zP%}E4Z-e_YBOGOPxvC;>txZ>92QjjOx!=OkjV3; zp;%`_ti5iISEKsy(0%(>0|`86d;FES(Gj0Q=*u^p0~~A}vW}f{twHcG3jRd2(PFUq zCh%0Ted`@DaQ)z{+XQuJiLtnhk-Nw`I|cj=;nIWRvT_s-%4NL5yb;x~Ji5i*#ZaIC1R8a`S*p1NFy@Y6Lza{9u|HLhae=>?6{ zLtmlaI`*_v2L<4fcC%Ga7*_R8=8X2A>T2Qne+(U&wC|)c^~U&!;`cSnGWl2Q7U|o> zKJkpIS#j$HrTGW$lpwrZnrHf5@%t~fJUQ8DB}|&H?d(3jx|tdzpa2;E2!zpboAvR)1KsL7FI^v^SX%|City^i8y2YmimM4E$3nyiuIN=D zCBx_kYX$7S-OGz*07?5-=0eS+xbHwJGPnt7U=9U^|PRXeMbM8ZWZ||uDz%0E<21c*>;M>u7rKx zH`v*(Ul1h_8$r8RO=-m~iBm;L6WvIorn`!(_wY^wKO4xy-kGMu8+$aU=G8_0L|c*?4;Z`*_YRtrc^&Rxw1Nc`G@E{FqJ zu}wlxMW7E5xShkXMVn^wM+IOVGU1Vcnt-Xs)zrbg7*QHM;BLZ% z?x>Aq(E1EAD9nSTUW6Y!*4gl^MgFT7VMU4GZfD)>#Me(^4d^{6Cc)XQN$5dYvE5fx z?;&sD1Mr#g-84*_sj?(EvXTDy@NOGS(_qsB;ekvN&Dqeowz}gAn?}!FT)f;zsuQ-< zL2o^_exSKjGlr}qC~a@b@!Lb;?5`2BeIGYru&J%CF=}$Pg2b``38oT+5mIB+F|)9+ z_ecSlaN(a5?nx^TEicOE2gfK_MMiTeW^#d3c4ui`8(@S?f&4B&tn@X^un6Fh0sioX zKLF(Mf=J4bY*L)&Mp=Zt)3%e-{LhD96w?_Q8p@q}K1L{4WTSI#|Jn#F=$@xttDs-L zCvYFEm(ESU+}`&7RQ^I}&ENS$r@t?_+!iKA#9;@$A?7+uB2Yjv-2RI2lWR{Sy)5>J z>n-0<=XJ0ViaJAnP@zrX&!H~$9JU1+jddAct7g4|IEywOP@+ml?K6DQU)OOMNhy^9 z#VBuIeGHvcn1}P*Q2xFb=u+!bMX&gCcKFwq zHC{y9EqksE(RY@ba5b{)^;ZSI>A%))aJ8SRg~9AM*z?63IzPQ?=DsG3#(F;)Zum;4 z6yb%adfEAnP`Hsly?)wra~<1yY|nEOs&_;c$ntXSkQkMUvqv^JTC=|vAqia+Z30N% z=o@Ac&iBVXuzYamt^g82$3<0iK;pSiZ9^DrsF(dVE@5AtYyJ^o>TprJt ztwBCIey`Ft{b*=*UU|w?jqW;&>%5YTK;rgsPf!Oqw^r!_WP7FsRQPq_ovT55zWFg% z0)$B$_^*?1%-leTif>Fw$NE9;x%9y1Nulw5nG=da`33; zI8d$i)_W6@&OYLST@m#lb`w*xi}`Rp0c{g)uHO+YeL~IE$0?F#m?c> zj(>SV@k6SxeX1%T-gomI2O-{qpBpi^IOr4RS$#^t|(K5-5_wXpyId2xqL-Qaaq6w!yfv=;ocV#^q{!oW&X)& zQ}Y3CN~A&^275s+(AC-?*m>8mD)z7FG90|)_0Gb6z6yru8H5c$ya)Y+P{1i8>jL^C z3*Vs(Rolzfrxvl=bDm{A*W%J)UP;WdwykzTSif5sn}5Q()v#C2Zcdrx#s2J!LS>9W zG?(36`zvVzAl3ng0DT+mWcL_|OrDo#stOI-CifA9Js0h6V)vQgop2bhr>^Fe^>FDv zn#=aEE&o0~awjiqUSp3JpidDI_WJTs%lru*!Fa9yT)@-QRqPv~&7}LFeNY+XmL;?eU;TYf{M=r=7EpBjPw(|A}@%4AZPN^$%xEoqOZwM91{ zj0ktA(yfZ!(>(i$#ZW7hx}^|UPC{79A@^kOcXEpo+&x?G^ zh$tZ}^kdq(Cv0rc)^;GWoEDh%=fsKW@Mgcz=f=kVl4h3G8}RzB2^dOnZnrwcQ^Wms zOK-YQL`Z%(7kN!xaaz!&(cWfOsuBrB@T{)IqrISMRD-!+eP5}V_r5YNAAU#O8c*BDwL8`34k`|G75uMIcVP62Sg%4ck#kmY*_HNJ`5Wc(?9TSJuqw$e6#V2(4oDD5D);iz0@ig zZsIDwb7)XZ+gjaJTirR6+`6@yj4@!>u6J%2ke9Z45fpuOp9|yfIUulWGP2_Kl<9C= zeT8K2K$gNI@(VX+DuL(+P?Iw;v~v{JZ@}@{>tON}rW%HLf9gPe_o%!yObTPyd3IWS+zzje0Y$NzvJZxE%m9R_s=v8T`zE5AUG0ps3x3txt?B%u4;LY zqJ9ZqO(ojbU3@k7R(pbjCYgfW8+z$zFCq|4e{l_9o9wV##Z*TT4y2Th$tSL2U5MEh zcZ4Oze-K@Wc)1)Xazq|sj#9?>(HxB~Y11N~1jErYXfKr>k6Sk}HV_vu=(U|)O^=0( z1Q46`*L)CKB{uu~!Jz~-bDa_VCr@Z!gUkQCi!PJfJ2wh#c)s7~5#`s|9RnJO%La9x z-d|hbWMaQq!vB1nrtEVnYdjz6gp=EFavX6C0q!Vc~hFh zaUT)%H2DMs2GxsdkaR3;7L`-ohNU!5f?Uwoi%KFmsIoix@6-*}sauV%H3NZVZyDz# z5bb+p;0zN^H@-4@V-#RcJA5AUDQ&Vw{SxW}mA;1WM}OMWIzz9yX)ek4ly7dM3BY7wcSLq}!=D0pa%X=nogmBs+)Ji3)N& zRPQa!JTdd>G!XI}lLpTz0dD(^{gf|faZ-L%AVJ|kBC%0m)wQ$75?8nA#$GLR zG*ZN~3KU~pKP-a}rR6$ySD{^gYY&e;*P4l!SkOq8Mr_bs|8QaOg{JFdl5JB$wXNOp z+?CtFX|33|qk_kmJ8|(|;mEgWi4d>gwa;axP4Vj(sdw_*)NqrQ zrgjI8h~weXYwJOvhP3O%95k$?GZ0(7eYD^C?nX$bs{FcrYg)!t<4c0@kz)SypC*wS zK2|{(@7^2!7C6wK*C~=c00A66KS}86O2%gSIbK#58`F4gYtz2z+|poo?Aot=RK(60 zj^A;%|s`);0j{#OenvIz$CNBu5xEdqU} z;O~r;dz_0@M+`EJxp4;OG0h*g&(VRx=s`e zG>ZjIC+b|Hc*_=E?~rF)ut;&65NKQf+{8yWubh;*_Ttdl)q1=roWwjYKPqwl$y1>e zztwVT^R%^slaFUD(__2x&MtD$?#H<;qlRN6PWOwWx)VUc?mx;?cYFp>9}F78US|!I zK>N}xFx=IDtBtlNDPR9W)`_9!{~x0SX5IZA&u$=X1V%aL!J@OK2cY;^z#p}|pkwc> zg-yO1wQ#w$yq~xX!FvqzOaN~kthID%Q>6d9_s~pS3EupS!(}I~7wWcACFdXn=rfzq zpEgZ~V0xl~CQm*)&qEA6C=UR_a(K-iapfkCv8LQxK+Of{sFIP!qAB>)xpU{1>A)rrvB(YQ zDnF|~FT6yOL)`9JD3GmXuW$!^9{Bfj=Q4vNVy|B|eiJrwMPIg(UL#rU=62<5yhS@_ zj0Dc<6JTmA&BwRFbbNX&o_B^qUf63r>lq0#$|LSn!6H9>Lc;x$F?pm!;HYciMvMx} zt9J88ocb)`xoVWkmyJ)K_-7#h&&`Mk3HI3c4F57WqvoB?I!zp!6fQ)BhUG7pqRogM z+{km6N>R{UbDYr{VyH7tUz>fE-1EyQj$zoZH%mmVL{+s?V$|#6yP3SQFuggUwp*3~ z#hF^yS)Z_k8~}R@*gtZ#*ry9GL+HoKKs^XZ+?Lo|m^9-f`t_x0TWfEjZFprnt7K7! zWWO1w5LmQsOr+6aJL3S(Mb?$Qz8-?5Ft~L-fupDsN1hf?Rz7`C&vjsviezIaI5%=T z`dP^Zs__$JX$~4L!^|d4y#-1$r0ZfqU%pCe!@?vU{~TL9!-cZ9GPL=I!&qa-=gs@Y z)7tav(-&jvT_0u_LVK~L`CtB!-{6k7z0q~)=QehHeR^6{do*Y%P_wf~+rtS)L|i2e zvWX6jTwK;LKKP9;=3h_WWnOEPb(x5D`vmr;s%(M`$2ypbtFZW`M!|aw6!n?AH3_I4m_9Yo=-E@I^tch45G%T9 zPTpLvR2R$2JRv?pzh=n?S$Z(%{fG&9RSvdNHDGBWRHQ1jg(Od?u%!{?rE5*9%W4&U zqWnZFR?Y4H_dGwVybaH|Dw#f5IPzFyh9y_+Lg-+KVH0qK0ef+y>+BQ{NYMh+TxHCr zcfpD<7)3zLUJ}!lI4a60b^!9=wErckcIoNskeon!73a6d9iIhQBmp zgYCnl5O$Gysgs`0zQ;+&%viJ2`XCQefM$fLuo#U4Y~Zs+c4zl|nkE(iPLy#u&o zXa7Wwi()E_ujAFNqIe^4NFgzWut4R!|;e-i{u4}Go(Zuwfgnr&dS@yBNYFJ z0$G1{2;z}$}2`^%s-snIPl2k=B8le+?8 zn{Ti*HSg{?!?woQT9w-&+0vQn*rS)xTx#~HSL=;;d;1{5_KqG-n!CyxohI95N1#^c z>9-OK-Xx;+%x1XemBSseWAl`D#|UfU@@kQs zz^r>ew}qnt<7AW`xp%Jn?ebqomD` zI%aoG=)sCzzP!r0OQRi0>+9mKW*z>n@aSR6JGU*M^{b zvOzaZgAU;DRc{40&yv!&^$01qc7_yec`H~Un2TJ7Z->UZKo(Mnh;uxCGevT=NqsaD z@CQ5J`}FR$C-CRs#a(;?KU8a{9jqVJrS=KY(Pi!P9VoeBIkp_vK5bNhRvidYd?z)K z8@F7|@)&PGeNg+U_?(}WgNNA;vKAmsVbld$sDHHBlkYXnb5~bL2R81`6#VKMZ!@9? z*X}Eqk(q@&VBiU%X77qF(2>t?dIITcZ?_fK!Q3ZScrESvagajv5Jj^4a;=ZV_zrJO zd$!@-Jok_+0|u1coW~JBt3c8oG7jh%lMRjhJ%lI6-NHHWf z)B4Pa_O|zkB!T_rTa0ppu@Y9Ap1xqL`^{QO0;0+!waQEBZ@w`$LRm(rSsXoVc_4Xq zS9A^3)GFJT;4|MRb)Q)Ur=TIyzqMw)P|>&60_U5G$VJa_X>RI~U?(9j z;;HS+&|mogvpIEO$v8Z*F)u zFL#~i%U;6Z#rzdh?}HX|tq#6QY3__f2eyIQsuFJvL?TG@`*&t9C?Bbz^0lrV?+o<{ z;&m6Dd?#YWNOP0+c!si||Db|0PT4ZbBQ)Y0o#riISMH0Ew`e!Yo_89x524t|hMVkF4qF-e^Assfqon zR70mhTM#99vkXpvUi5sa6UgTzCvVRZ?#LK2NKsT8bXhI)v zpuW(;Nj~xQj&=LFoDcbIC)8KhEA@+ay%i8Nu}woZg*6G*_@b)bhuOdWvai^h2I$fY zIVydoo6(Srx~rOvtlq*41v$2+Uo_LFJbxV&=q&jal)Uh=-+MyP!{#f&U1e{7TpNi&JiL7-5if4;8(n$-c^zbEwSDX2RjLF$ zBb?aov8ur;GPMK40+zYi{0j1Z<*x)R|CnmoYM*hAJT}oCsJ8x|tQqSD_+kHqJHRIY zCjk5>B>w+jl3-JVzY^BWxBbUYspP&Ra}4 zQLQ=dpjh^D_bGvQprhw%^sgO^3uWE#@*7=@)y@yU<~7Tak>>Ej3|7C@HxQvpfbrDqKX09u2&ATCz?@zL0y&54yQt-mP72 zX(1WN?=0UL_2^qw`fk6P6J!B5r@J~U`?9g}99P8$d98@;wEW7daY_c&F-z{EG|HHk zqq!=ov{35mTywy2=xHuOLDD>0wmMV2O=S+%>XG~l=%=R8pvRB)ReI{VUjZ_?l=iPQD!fuANTvk*Sj7dwi<|_S1j{m zY;zv_^)#Aw%u#zgO5&(5qoUufQyqIOQ42HG&Iy@p_`1;WHup*{!DD9z_?V1e)ang0 zFwDf=RS1VX+)rKjU9u%+#7qdRsPv_6>in`^`nPP=Lu!InwX6k@&O-|=Ry3*sVpb_v zkSImVB0^(CqV*$w$5MpFEc81Xg!8>yvK_+&}%{xWQ;Hs>EL6TiDlg;i& znPc>QKo~YDcsGfEPY&75XFFN+LQP{`4y3 zVjX0{2o-m+F2Ovj6Jon~^x3MSkIjfnwKQ8R>-Wd8;9}V$`SDC^&8Z>LZ(3^DE)nE- zW2D0)7NNs!-5xrY$6~qz@0z_}iB(Hn+~5GqcQMIPk-OGeH6)@zOPi=n;lsV23cmuf zybx$%5pixfEm)D*EU1vY=;$++63bHW;pp%j)vcJOtoHbi@B(YH=x-K&Y{kEHN&m1h zuYUE~W<&T1-du&Ns&qm4~JjEQMY{cV@=ST%dyi)bkMvDM zdi%N}u5m?$nmPg2*blJNiitD}_|X%{4`A^%XG}NQqQVu8Ou_$!#R1M*=_9k?F}P)~ zC??qNyCM8Rzk|6*ctB!dU4QMSJml5|F46@yeRVPnQl}>fih{UKQ>0 z&LrVo>i|XXU5G3K9b;Ln`OCxy#*i->(dOen>$^v;RXEan2TV+wP(9`EFEx-gl6BQM z2ngsxx8r)}A?GcwcTLcv3pqn~B4i>SR}4u_v2r6vL8H$*`4~M#PtzW5^F?I&HGRLy z=d0?8`A6<33CDhzk?|4m_M{_@! zf-zx79L5dNgXbql?iUVGBYQ8CYh@I(9hp8wj_#qesaIL7%2$yl&pXocj<5ojbw$4^ zly8VW|1WGLCy5F1%>TTPPxX7dI>(Gw|Dn&&U z2Sh;;JG$SrH0*q=4N@wW&|y;8D#fqMbv#TKMp-f?_ z6_20wh_0KGPw5N7^N&h%OgyzCDx|L$+cg&vNO9?L;@JSV9&pn=uNG+TD7(5mm5I=I zg}(ab*`F=F)n#{H8{c?XOJ8&7H~VBpQhDTXKvR2CxPaVX?ECMY{_K$MDrX#rPgPOW zpZ&{G&;ua#Mh{dd-a1llWZ*OXNec9H`(AnBZ_Goh8$ua7D`0y!i2;SUf0FKd@cuXd zL&~b*cLOQi{LSsh)z?5Y zP=6pW0G0Bjh}|V3hCV1L{LKJ~yRJe;i3Pt{lcm(Ietom^BQZ1go^6rz(vbU+&?RUEk+h)~eS$9A=Hp9+KiRnW$o?CW|VX zyYfsSO$u6;E>A)%nc$Q6l9|a^0~Y7#M8G$9nEPz3AzMm|pL%(2+Uhq05W*y3_p(9c zqX^x-Y^0g9g9;A+t{id&h_ZO@X1r_JJzgtZ8|vj;)=!70J9mFlR*o4_3YR&tmaY>U z|F~oRQd{sPZdu%pwy5RxSv$U8dMj-KlwBQs?6KKP6wGUIrYe^&>Di9}kxKPL{ylj_ z;@%QM7s}KFr4cKDIgQ;8<);n^Kp_cbw3Uxbn>6}6>A@zyS-=^bvU}wJi@o=ZYBKxY zhG)Psii(Z`0#Ynvqba=y3!s7^BE3W;fYeAA0z_1BhK`g-w@_3{Ae4~MMv)qd1WAmP zC=gnJ2!xXU-a+R#^Zbjmp7nlxzG0TRbMABY+2z{T-kWvnk-QgxT6=7Fi#T1cpS_!K zIueF6N9T?WpC~8DSH1EVXZz$#W{Y0#5bKzOXH#B8GCHn^bsndYu9dG%_bxPjiv342-{rd{(KrV3E=qMQQ|wy-;^N+kK%LSrh097 z_}G$JS7%#!%(a?Ehj3tDc}zdgWPuDBK|n%~!%tewTJbybVuoMq9DiQhv5np@7TSHQ zNx!9h2HPkIbGn`LTZ*svV{Q?K4I^0A(>|Gb4iE?VQDsI+f~fln1=(MFY5LP!SB!Y% z=ya$^ot-EU>jho-Y7gWV5EcE_zDAC*Kh`K>5wh_g#4V+iXCjBkXSTtN9&2ODU$AT5 z-Zrw@dq3%Z49Q0#12~-aeObA6(CLKyP)i`}PCz_rxxgSIsabg`@ZE01nvX5zCj{*j z(U-KLav-Z(dU)pU&WE94F6vG?&NlY0%TOI6cjz^Z$-PDe^S&fLEAYUabJwvgP3NEio473-Xz z{<1iD>cSXH6MGI!21par5so)C+#fs;@0}UErMm8l=!5HwGK_YgY{Oe;ovR*;Y8ky#d^W@~ zBJaJD>l?R0x^98Zo`BIxk#3{o)ZU$PvX(Pd{$ z;)^_2uN@b?S5SXdY!aGnXW3&| z=v88y?Jk>wnZCn(iV4ZqZYn(ylGE3f*Aye}hH)0pq6qCq{Y#RlQjp}5)!brZpBZ#% zo!P5gA9%yaZziSKF?p8^3JP9+U&%Lq6S4a?u?ryP>UbvunWx#$NC2X@D3e(>x)GN>f}QT5Qn%Br^- zU~30ic)%s?QX{neR@7UjCv&SH#_ECczFYyFO?Hab!{G?e#^rdiD`(3iSS#m#xTqyt zfRSJ`d2G7>cWu>Qdk+l$^g;z^)F`WlJq#Z{O>VahjemC8siyGir%Vy2PrtSu;~d9* zmDCiL;Ugk3Bg$kbQ?yz{ly^`|F`q~i`6X;UHw#{lF%xerM+f8#Ovpbb3^5y#{_~$~ zgIC`_+(jOd8CWt*NiyY#>N_Ne7aPgZn?`cR|`Z>Y7!b;`POA>!Me#{BZrLfVJuT{CdRn z&>&6%$mKpN^03RPVMrIiqZrfGw=dsepn8?veP3)dTNnl6D2Ji~yP)9z<{Z|_r!+0! zV^hfm$7QhNKmWyn7ue*$yT3cD=2~KF2GDv1NCOf2iFbQkt^VtxKA;TL{o`{pd3m1L z^uJj4TlfTKYXK5nWg@1wt-I{kjt{Ra#6NyiYGpmZNgj*#arrR-DZM}1$LnHv5>TqN z@~G*O=>87nnX)P`FFu{m}7D4!Yj-D z%DFARK#sL-`q}VYX0NcB)mR7=9F#LN?Yy=T9_|IilVCTaFOx5KF=>|vk9hXBoVZXl zEvfz6MCkfu1k8-FUK!czF0Oai)<|Q9Q`%&+##v-}9&C;}?O-z(!km1@Cd0J@f@k%a z)eGVg_EAoa3#G7%v_Ny;R7Zc9N7SMs;|(?B5RA28L)jkcn_?byduj;*4^NxtUOw3A z{MZ3hoZNCwx`)S^HXk`%pts6t>$uw@Ps3Q{N3;n+6cfa`y$Yb?-znrbq5*Dqa+WxR z#VpdZNq|7D<6UD|w%Zwhj9-&V6oL%)@4Do{t@WIraU53SNU{L-@%b}d9 z$LpHBKNbB3&l+C)Fc$rmQYvbkOlmH^)4)v>RMw{W;_zEhs}C6KcT;O}NtWRWhT&mc zJsIt5cX?`Yt1}_Q(91dcCB?Zxe!_x;!d*tsZd-7}=%NM2$w3ERIP_P@-UL|pZkL#d zDIj2eJF$*jNN|2JRsu6VNQeW4(tydnW(&&K&c;`6#Oz_P(w$q|0eV}0%Y41xtaJIg zN)#CI!|rj%JU`1dD-}&=z`=E9w$Wuab$dd(k3{B{R%Dg}emiWbHZ*EAEKDEnWcK1? z41-#My{OL+Yx}&h)G$dolhni&#LP~#b?_R1<}70B-R(mC^7`DYfZ@Op*@o3V^KLjW zT5PDvrpwC4S>Bt=Y%xwApg${}+$YxQ9A@Cxs0`J>1S$2)d@gu@s!0-7wDOQ$fCx2tu6e__6rc&RsUN26 z3vG<{WP&v|`O+%1H-H0O7X9vbeIUm#y(JGIRfm)RByroSP~t9&40&h#X$*y<9Mai9 zjvnWjb%Ga1jRi?xcRx^;ZeHL1sK}wUulrmUT}f#h%F!=1XiVKAq+pgET+Td*+jf7@ zw*zwL#o1v+9_u-}f7VBnw)}^}!hmbdlv2U6B5^%*K7Jv_&RPTrf{iq8-|@*9b2|4l za3FwU&G0mo#Wk?K!q^CB-JFm1^_(3*v9dR!R0iHE$_}KC_>@VDXYGMH%a4~%EMOzT8?jN48kDb2OvPHFPZ zbN)*AMIu(I(?-NR#t_0o5$;l&TagU^61gk~N)m~j7dkOX3&f7BO>`Tqk)Tp>ia9$V zVKQt-m)LPi^4{+y2uVNj^&~;SuCP`SG0olqNmH)5a?}VKc5Jyq_$Yp(m~dOCTuc}@ zDW5tIsNn1`H$yVC0rb}f-dyD!Ds>1kkoN#(XYS@mnkp9&9U1GDZMap&<{C~&yE2Q; zientil@?Mf+ZrQkPqwd*q)EG`avv!sSLj6EIiAwQ9#VOMQzW@6;dyE0CB{VP-IKc@9^GpQI_;dS z&K>W=51r~Beb@eXw(!ZdXT>{j2~++Q2Lv&VEH9$d)b# zYRFt5Zj);|v03XQg&iXm=fCw{%BRsQ@@GOayo-8o>$QIr6QW{z-KTBf_6avB@$^U0 zJ;GjY{-$aIBv;}w7+Zz5ad~g&&UpI%ziMHw$p8k=|IK!k!oQ8%3j?R6GFg?Oq)$&KJ+*0!h)Bm7D^_%F9~O7O5EMeYsrqyFC!-eNe_3;$e#^tLP~4}R*@Zc<+huwoG)lY;GTGi+cA5Y zGIkhd9rfu{rpr&I!LqQh$~!yVYAxj>cR;@Lqcy`f`O&+9WIfg=*0ym_JMiTvpQ>Fw zM@mIYca|*L#gFyB;V1MhT!*gNZSjeamD_e&&I~&pQ5Y@1$Pgt;%E6i!*QO9ZP3oy0 z(bFzfig0f8RT#UCbQ0ZGX}=wXmTAF$-LTPfH#!Uc`z@vUZbB=2aH(#{Dw5%`<&&k`t-?^(BjyZmR3{@C8Q@pHDVY{QaVz3!|c8 zL9N@AdiH^-k{pXL!0z`dcd(@XBAAtPF62BiL3-H_cH2?ixZi5E0J^kZct-M-il!RlYk+YO1i zB&P5lo(t=XA!axXooE`+xFzi(tD~#nYIESZ_2Nd~TYJB@^}^r_1wmBTNB!$XE&xji zq0#l6GK!}*k@?_I{n%aSx#+{Qan0f?fI~FG;ny8y&Ztf4gZm9K*BK3yX^TtddNzuu zDs)2LkVRx#klUi?(V)kYyel-KJbbAueiATtMvAPt%d9!~t+UY_dG*_( zB%cx;Gd;Cqk)^|hziBrq(frHtn`{6^bw;tvQaTldg8+jpd=I5|X^hq-siwTLR1OJ5*C3od8t6Wfh*RFX zm8U<{@A92_OgO12vN+h}scPR*_KEtHMzoHQ=Num(WQ+!^zMokBL}UMA{m7uWnJI`_ z2`or2;<*CeRm8j_=`PVV;H!q3W}7k%>KtXze5ajNWCzT+X<-lQrTtYdaC-AdO)r?vokD&AGucSOnTzq<2(m%)k#$x4y~ z8yr`JJ#cD(H60C2%#B=B3t;6hE#o9lM(^@ZGP~OOwb*ag)_!BnIMI#iwp|J+)dTdo zyPd%QjtAM@jh_Fre!h8CS&L=vP>8|U+1oGk^cJ*94%l92%wo+rC7e@`uYefEI zyob_agJGYaUn;J7!HMwGzpN=trZXQFP%zI*4J8GJ;8RHQV z?dUy$GYm}{MkB{J^2EBjdQWtAF-M zO`%gKnj-^{BT?Kg{K&`=8RqcHr{o}uzC z>VOY)q@kkk-*!|dMMO%b`MQ~>UnVZL2`7V9gplWpU^8Y&`($C%l$-VW*?`r=$!jc~**=buSv(Nhnw5pZRZFc^# zA7_cfsimKtF&uVU5g@brAGqrQZ>E(}TA;j?8dVKk*ECrX*2_9D0&8loy%}pK_1lko z0!%@Hu!prGlR6~~KGl#&jp(2?7*=4u(kSU7C7opO-NcaqvX6JdLZ%#OL|%r$_M5;m z|Ai8CLkJRX`j}x*EVNWGHgaUz35FgC;1~utPj>~JU+D@M$P09Uz}bEAlao{XCnx&= z(W63B8<2YD_SxnLsx*+U68;w@!I0{7K7?@4ACm9w#fp-;0@^WRU531;@$&`pVk0g} zeKJ^DlF%f?DV-;?yso#tOUsTZJ-84#Cn~Pt2Uhx*r-w;*I;T(PkDOrLhawxFV(b*_ zRY>E^@A_wNM2=fjj=6MR8zb+3)Zo|@0aCQ!_V4BBcWz{@N0+^Yf{!codf*gTY}|Tx zrg`44<>x}KOsi46GZ+3Zl;c*h&NXLPoGP-uVqWs}I$!;xbEPBWDYML81d&OOz}Qqc z49J(HJB85y$CLlS0NyQp_P6goood2X(av_tT3}8QhH@cbt;hkgQ8hi;ws{$P1KJZ~ zeiCg%O{qX|txDa2$-8lxCjFVhwLl2CxL_RITXpSUG|rn|S=iFwM)7&ungib^_7+&w z*;MG1-^DodN<46G=*7$>!7+6S*&pkI>aPM>(;NB2lx(=BLj^{uezDnmay}55I=r5M z0FN2`%du{i>YM^Rpa1_P!Mi9&+^f zFAX$Swo4&nCRECjna(BAS+2(Bk;v+wzCEfJD3Tr_q{1sCD!Y661(!f2!u-?77R)7C zTr7WIWLmB$J~fy!MyW>k7=ByZy&DO=mCeP66EtnX|9OtRtixvZHcYxe?j6dpWS4X$ zE$4=S-IWp}x0UQYo}-#xV32Y7SG7{4-ZA2AVEr7-?PnkL|5TCA`9#YnK%#)tBKbu3 zBtxpVDt~LLaxDp@*via_J@ffyWUs)tE)=Spg*B95fXeJvWrU&#D(`dD5ZeJc6$xPN zbPoCbp9X8=gtvhkBS0Av`_i{27MEiG`Jl@JS<M+0DVjJH*F6C`c`y1www*a|d;h=1Oy>mezGm!>am);tBgA*WP;xS8W=68)_zZ zqJccQ33E{z@#<^HkbJzIr82hag6J&SW_JcJA+6CFtG{;PanG9Yg8Vln6g9a7@qGP_fWr@)Dy__jxP-gK`{qvwj~#Q?DxmaL3qHjomJPzF}r> z-9-1TXMv4y#lz2Y!}0;L3YYSTA6K-;=K`4SQ9dLL_w_jZ@Su05)pxi!r~s(c$srp> z>F9aXT{3&o`TEW08Z(U?-_#o9tb*uVO+{ZG~6lo#+#&GidI z<*3fP(v}V34~Btikmd6ay+_ZS9vt&6wcmN|sB(y*cM$m!%_DbX)hx05UUPH2PJBsy zh!_~!vTHu?kLbW~-j#l6=}2vO>SSifWtx=@Zit^jK1j4jhD8AA)LP0&A+cflD{;De zh`HXVp+}zsim|Lnkpqu!=SZOYoX{5PQ7$hWmuD$4w?EcgRF9xt117?k`hZw1CW}he zxHcQ--)vSZQYk#>7ls0c>9VQ!|J40c2I0cFdg0)m%4YYUH#-MOWxg_gglpcX%!>9o z%{!zZot!~A8^ z^)%&()~5-NO2UC^qQ$t5T%Zu2feX-69?v64XlW_#=c>njIf?c%Xvg`LA}ztZaW>3S znr!NHk6)9-AgZ#j-zm^)8EY(h>6Uv-i@1RCr3B#XzC2qd-P-RU1VR@}V`#)Nir2`g zOe+CWAUZ#vY@H^Lxs5)w%d9+t3LvpPC+EsjrP7RKaiEqW#6qeK+fsg=d>T$H>!+zK zFA%>)_I4frc>8Gk?aHBtF3RS-0LCYZ>oysND@Vk+Z75_8oPuH0XG!YL`VYFd7S$e| z>Umw2DAC{T`b4C2XR?FVO6g7iDf{Q^9ROW3Z2<4~0$)<)Mw$mJo&h>^ysgCn?c|tz zBnhe3C2>>HKusZ&8<{~Y32!shB~Wb#>taOs9d>CShx5F(>dyKImw~{2_oti6i1GH#*7Vci zK+6n(YU-}HJHRccMua$Un#@h#RRI1)KhL2Z(rw=_A7IK{;oFe0u%%5@GpvsLv$=ww>-m)c8vRoXjfU9JhB4IdXu$Jy0{2+YKTv-o9EfGMiE5 zF(0peL7q3_F#uAi2D%4&Xo|1Pp)F&t#BG$b=3-@I?M?_X zs_Bf*{0MB%Cx7{680s8ty~;rjXftpL6rHfS_bcN6P5Y<=rFJ@nyn(F2FUpdgab_dd z^^L3Xu5O5Ar)LAN47KCp-`WgP*JWXhQV*lyEG51%+r)Y9efpe?tK=3R-t|wr87?cQ5F}I9Px0HVlH(bALCMZ3W_Y~ys5^i#6dA0o zwIYnqDz6>Dffs-vjl*?$#MX6_tv-?ky7d0!lnz)RE6RE^e{{2X;vefUXcEYR`&^VY z`3#s!!1&Zee1VZ~?_-;8N3|;F!KLC?h!pGHy}JF8oB_9Zjm&=ec;L7(mTC)I7vvJ{ zgv#nuxMk6%3i|6KB8wPvpw&+k6tQb7d5e~Zt02h{3>|pl+ZP4{YRj4|91D3DfMP5% z?A(C?{jlkNA^(JL4W{mGjrpf-28=x4x8ti;s@;#%j^aZD!*r_!>`r}@pOpiZSI&F~a$)}4viw>d zI?C_Ny>{5&OXe0PfUFoJ#i6SgU5Z_YdziOX_T9O5{Iuvw!Q&-B=OsuOt24}oElcE<|lFI_EtTWzk z3!`5ui9Rg9Vn*(~}BujjmFHQl~U?2&Nt)+sXdQ1`qRfIJ#t zZ-hLl$b|z<4)|pae7{UhF$JS(B&#E^1G1u- zLdpC1Txe3`GF4`r2rtf=DRNgO}x%G;uj7P zPfK|--EM;^yDB#;$_n>7KYvo|fAKiEh9H~sc;G5P>;It8hpZ~QfYq2?z@cYz8{ySK zNFRkQxs5>4bfNdcy@W>9mA0K#$A5v$IXXipH#vF6yIu5ja8Sfu*egN1u>#OB8{TM7 zVExUFAv*!m@G`-n0(yMc8IWG$v|`el_VUpw4v;r|e}bs8Dovjz3m=M_d= z113~u{TDlW=dEX(EeM4)QaICa4nmjPYE#G(TJJ818YfTogTmq+8yPywY+Oq^+sbXm z7k*|bn?Cl{NsBS~0ANyrczeX_r-4!J4WV)9(_i}yE6=Wyb z`7R=8GA|++JI>@NH7W9fRx4(-X6leloU@D}`fyu$ZxRo?8Wj#7O=`|x1&13rb11au z!?P5Jk?Lu1xEj}&BM+!b(%S*^d~&* z!T_)vfdj){zcYJjd&JNOlVN_$+`fjn;eoo8l?x~wt_7`W4 zc`tWUX`Kx%1>&tU_0zqf+zajb1?n{PwO#?^-%=RcuirNL8>n^vt0SI4vATB3EAFF~ zYC^PWsJ+nHlv!WZ4ko5?%n>%<((W zL$7MqS-ZZ3CxNTEjACRYD9%NK+=xEA(={B_)Z(}OuYHmf>&z|55BCbvp>k_84XkHN zG!_sD=g0;h_C94sd}t3#@y7S4_&Zj=wUYFAhbX|GaXEH0rRapG?4adOpkT(GwjQMp zPI8m&zNXhMdd2aE;f!)JFa`5wk1)h~%b@REutfUf&-tx}#K;pnef0M$@vd{RthJK{ zP0ChL5);rBq?2G?>=_M*s}~5t;7Hw_9{q=>35JS|a~Wq0H(s8QvW6a9GMtQT%y zOb3SNBH1K&{ylgngBY?0rHn?b^cI~(B$X&)CLdovHVC5D_kA)__$|eXIhhQ%l*nm} ztUu#0FGr3tY`(jW3m`r~b_v6mb;7tF(Cl@mm)`@I?=4Sv-mLy-LsQaGPgz*_cY<7=n&vnmeu~&IG+j3nTjb0{SnQ$Fop=}9y2qW_ z^GtZ?67e~1RrO6EGxmiVrh>%06qF^>X>?GH`G58*SE4($Ckg zNM6;Yr(e;NQqf&dzF3e0n((e8mM!%)A^p8B0oL-R8n?cT(7sg}WSti_m1S`zkT_fK zN33uP7z>;3D&UX`4AEgc7FlV!0N$LCm}ux~1a~l#>Yv5BW1F+ajE6wbQLLJTN&8k5 ze~k8Wv~Ywh)^Fic?ZC$Ya!9%90}+3(XEL2pEJ6!Ttd94t(P@S`?EJfXKIb?b7#7<9 zmaf8~eUPMem#=dggBoawEf(2%Ya4+X)F-nOvlFLVHdY$~-emrP56)@kT81%d(JQVM zZ?|!ews45c!$guVSAEV!6iAV)XJfV~b9jFkSPTAWJ4bwu@7Bf|*{HRwa}Y0vTe$52 zm|A8YwV1QqDi&o?wLJ zvDduW{&wX6A1!=@frhit1Hm?q{)VaqVE=qq156TaC92uJuY~pJ*M?U69Cww9b_UId z66`z-5mfjp?aP|Cn?%{~mO}juqQ{FEhKST#JJZmc*_a^|7 zr2HqBbFa7fKi!4_$kKA+h#dj&nDiAV4W|5T77pO{I-M|uB31g&i`vT$)^-M6Mb%r% zuihAhlh$sl4)!RFgND8F)5ZN&0P6y{+^fe9A%?EYrOeuzci3v1l-j2-fdOWxZJdIw zf^?dioQo&UPAASF8uwFQ&aa03Sdw5!VzDL!O6SbKw%5MSsSDrJcu4Z59NsVz+~V}HByOw z5@h;vftg6Ve)!I5L@2k+M~4Nse`3cA;bN6`i&ZrEPTri&Q4I!)Y>o}$R_XoZCd=P_ zq3p%=01`p0yUxnwe^8{hC!^;-{sLK4eJj_zd@btE^@9)JeHl;kBOCM7u8ASQm!f+V z@W_(XIUg+{r$R6hyh3gvIS(c;594EadQd3eQT~7rZUoxguFatp2S*@kA>yAoDO2R-5HntG?U%-K!#rcaG@+ zjf_6{MTGa{PN+=Z7R%KTkX)Y;Yn8@zQY5e43Syu;qQn!SH}oj@QD-D^_>{x|ojVu5 zU5K3SSN_Ko)WoBJK^(%%^9gDH0mS*BsH`aVnqbzVZql)o**O9~HC64HXKi$v({P0h|CgHqheWFc=Vwf^;_EH?ns|P=L9PLB; zwfC!i)vcIAp(FkSkwH0F-=@4I^2n=f8*pT;I3d?Xb{G@raiBe@LEBqlvAI^6zbUoY ziYHO7MHQ=*_hFq6##r8Cd^v)~`=0r&rM+p^=nR#S!78l-v zB(Qsn5oFH$8$l99`mwP}O+9h$i%TCILU@gIP3*R8xRb(n;P?KTP-{?ZLM4e&4V&;l0eFEpqzRdRRx~ z`ca|}@-m~VpZt6Ci~+f0QE5cZp?U3MjZ>ugsxr@HA8_rwE`JlO2F6s5iL0WN_h?|h z-m(pR)n*`=`zldev~hh5W)i=mgHQr1!Wjs-IEN$*;krglNRm&&*w;WQk&{PdQV9gY zOuqynsLXS;gi!n@PIL9T>&N~3TTbaLTsMEkrWbPtR+-@4o?KgFUc|;a&o0h8O4d^C z`6-F+5zj2_Sk^dP>)x0#EoVzp%WzbAufXar5M(pciv;xSl#l){X_(vmCXTYA;Q(E_ z?viz>K`~%pMo$&)fb@fS?E5<)L%Sw=had5r>S)|&5smBlGvSG<1=tAN=CwQzN+`6+ zq0#DRr*X`JzRc}#PH%m)!nbfD+$UuO=F(}$LhxuqD3aY(z`h*Bnd;4vTMPsS zyIgct5<`xRbA|w=xKcD+S0vME2IA21XeR>9C5o(SyRT$y>}ziqJ{zn(XyOquOCg8N zT~j4ksO9=H2>n;68JIR!tHIi8lck03AZzATDi`g+ouQC3{HC`nbJnhK0@cc)ZDkpD ze+ok;CMMjXO_Q%W$__?N2#|nb%%-xXwVT^!i2TpCm2Fk#$d>^Y z3*;?$;d+VJJMIv)UHkas$OnR>WCx)K!F4`%K^SKmSzlGRZF#_0MnPc_nT(t;q(;@M z0+&Zi0&C~o-MKDo<>X;HWXKSfKAoHR^k*C(AFtA|XLxIRNTY$PL!gG?*?DCrmMP!N znjmC+s}0Hpvf9rIkoJAc2h+3T`TZS%`_XY;b}(<}CdDu5H}+Y(@;rr<#Ds)&_Y|kV zUbO)?Ne#aQZUr@N7UYZ_o;%0IOy^5F0ox%pF^jgJqiD;Sc0d>PpSj2mwou=)v3s(d z*OYk6N&`;@vC!{M!?sgSIO=_c{USuqU9c$BSB12=ZOZT|A~K2vvkRs6Xk4DV&%{4w;~eG|gqho}JS6NZXH${z9MP^Mbpo(r z=6;P!?K3oM*}(_>qv`=?u=5q$!SU{QFm6ZbH*mc= z$6wqoj-Qs}F$#Dhk#a@(&X`#$NFhe0Z70OfB1$h9-}`H|S=tB7Gr_~%&@px>W}*R^ zY4)YjhblDS$}DjswEnHt{}vkTdmuDF33Rwwqmj+O;UJIrLK7uhTHJm%(M|En>=Wt- zOY`#jyo&u(=dBNR2IbzxDWKDvDas$(&H(nD6P)|9#CDFtj8Lt__!2+yB_F_5L?0QI zv+_?y;0ouq%NKync+SqS7nNq^BAslKNB1y|TcUNr^yrAN^M-F*c7;BcV0X90K6~qH zK!$k_3_=bBNB3a&>`P8kTrM2i{nONQo{Q%znU|T0nhdP)xaR0CMX^^ACr+F&!3u|o zRpx3_#$M@cDOr@g;Z*(hm5y-9qNyVt554FA1(yug{*2E{jmmi(f0Kz!W{ONE>#f<+ zm2!na?8=0sBqJ~gh&X>b1Fkw^R-PaPVV0*e7gDv43(-m@s{13RRF;83>!9WFc%>vi z4+T8!!=J^j=&`Xeyv9whd1eWmS#rClm`Hs>+zEM|B%}6rHkga{B7EBhuLSIBa{(?H z&b3xG>4{O|Ah}LNA)yP1F^`P_;tOcOhu@3PkzsSbnB(vUuXwu7x*lkSxq9P@UXgNR z;_Kw9i7()bCH~my!sH^Ae!AAIk2-KSm4$lLQfAMl0#4*EL)p^Qzx2Rd2l5zGCNtCJ zU|_7j>FNbrHL6r6y}BokpSpCK`Ifxw*lGRl4Kr(--1tpS&$r|y--dn7F6G}*US-X$ z)+Z_nu4bTEJD}ZO)Ui@G*%hMLW~2T;s~(E@S4Q#Gzb)t=eo*5SzvVC;B(KnVW(xTF zV6sc*H+;F>)$mYRfoJ8BJ%oOKYEl~U0q8#Ms=?bxGRQR8qzK$6I`SL2avv2H$!xar zWS;FoSpb<`)UoJqWn6!rZ|DCYa6y1)*~wm(9dtb;V3+re#c;RR3Yb_i3%9jrew%9{ z(<=WhnUmP@k8kl&&2Rp_b0B{R27jBPHb-U5b)3P4Z&eoS`j$4V{^yFX#T!h?!2Zj6 zZ6wO~T3_Y0;_=Cw4fZ+05FEe(PJmbgnPNKy!K{i4o7vraF>(Lct$Wh&8UJ6R%ieq= zA~oP|$5eX#V-;{&2Y^!jDsTtH)zx)#^K7r#?%PiF0NmRLt13dafcm!s)W55Q0LkK; zm;N!sNbaE(|H$YsHoHCZ1WC)61nmxXd5HryApKa%!e|5HTRK95f86}2sxrzw8i;uG zxQA1QE^i*dt^eVLOh75UqFwlHD6iC>ose(sl#|ppR|41tKzz0aajJmyyA)_&r`NGf zZbp?{qV+GO#lSV4HQpQ_!rhLdMC^tDN?N9qu4)2Yv3rbv?ufy`PPz}G26(UDk*XYc zgt4s2Ht3V3lJ5qxI-kBv;GepCAm+HwnCY(1^}$X>=I~WrEgGSu zmx}tIAH?8`mUFaextr{u)QA1%x)wVj$@)xy*a<97bjv^Q1z;a1(lFbU^_l}Z9K#)_ zl1AAR4a_a5rE`oAOIlr0yjP^7ByV$Eo*1`wGN1!jqAURj5Kwp-=j2&)-d2qxY+?e6 zW5fb730wwGfh?IWp!HimY*9-E@Snfs=Y*vGc_;wDjBA5v03z@Q1PM~mQ9cAbFmRVed(8) z&0iHQ;YEwjZLfO2c^d9n059275O^ndAqaNj72t75DT{T|bL7=hzV#b_(tk)l;$woA zEo`;Pto8l6vx@5;f-}JJxF^$D)8Er#P^@?l;6SWI8cJih@?lWRG@!F8j-?-PYpI`> zAtJ-NeK=|N-j2#Od%iI6_0pfaRv*~jKG>ccwX2#gNb=#!r3+s<1yWP?@rz4tK6~*c zHVd+9Ngl58?|Jsu-(~O476I|;gcz_sO^-T*sU#fzNiV2w(6xmLkgoHMl?Ad^L`add zm+>QXXDupIZ~1NM;m1Rr`(6z7G;?O@k#zjb*~^cC?KULsg3ReA0o%PQLJExO+pA;IhiT0} zY^~X}EKllYx)v*q1Sd73U)h;qBa$0$IVLah-`eG;oU6PGf$g;Jc3};Z!RJ;1RLcxN ztG{>xJ^1dtByht!fW!prxXE9HEeW|4474&A2#)=4)Cpv1n*$`H`QR|hSn$BBbXo%h z9Txd!G{A+cE(Z-G)K?@mGt1_sZBKY81ed_3IIa6Bg~`aY^5o`Qt^*V{C1!1E(lz6-Jm$uLcT^i+K2v$f~S8erNDLoB?gAy=ds)~vcv(qOJcj~>aFQu zqfPT3r6w3ySJwOlA5v@2&&Vwrd^Sa|)~b)$dj5d7pVnnFdwco=n!-cW$ES~0 zE`R&Qp~&-f1ua+f1J=ryFVG&Sd;rv}%Yl{M!0~4TtRH2$ltf==#j7Pgk2}2gcHY>O zyYIyOYv%Ng3q%T?X{_9&P9;n?)Z(s@d7uzxZ=vhs3vwoP|1EU_aZ zkex@@^{$6pxmkN@Z4zN~X>h>tfe$%2;JRfRyG!I^rRzChJF1i)TB+pl^R-cj zEL#ogps@;WU)!zEr>DhFr{ibZM(8YJa9FbS2F<&Fp@rS zl5Ygi^^)J_`Dg}=XxIYPJ>2=TdZGaxm!f0?J6yvXr(^~(u73i-R&f4Bl&eMxCWc}D zICwn+Nf9wZouIvkRwd|gPQ!3C{@^BMSJ6+4CUmAq zfF*Z*CBqo{cm;&d<-w}U8azsKi`Jb&@^r;VNCS+EdWiqI1B1#QVrvoQn=iO({ zM{0ColM9Z~ycHiN6i)%uTx4izqe@%Qkze+a!n^DOZq0tcCwFT}hIUpLK}D|mEq6p* zUmUrcRCcGNVv77=J#tdsPGjTu#?R!6m%L^}6^8yI;nCna);vU4XPp(nF%J0}#~vV3 z<|>jiojYKlCvZOpnM@f;bfP|ckM7}NBr`qNK3p%nz>;FgTYG1Eu)1+$xJ`IKrW?UC zQle(S9-I+n^fWC~;;p-k$B->b;SHb^VJ=M(GnemwG(}GV%p`~B#JhQLX{_~#%YB?u z(CIDZ>+ICrh{fHgY2y%C*m8xO+iIL}r_6x@vJ4wZS^h&Q%Heq9rQ+tAb#1K$Jzsp? zJTG-nJyMBjYMGXQ>l?G{r+Y@@0wk4w-ThKIGgVh=4W`VHxnMwowgVCbkPteL3VTgn zVU}m~E)SUJinLXwDUL=4i50-z9yz`|R~S|_LQnT^niWD#+~5D=$=5Nr>CPC$`eibx z;HXUEt-(J;4p$!VT^v3w=X9~VVX;|kvQLpyE%s+bd`XUaWCYdJ;I%|&e!33t+1K1` z?$;LqeW2-rG<_tlA5pCzkm<9^ZMjPspziE{!H7gH%Lt)$c&;(;i4pBrt#0MH#dRc{ zA7T^@m;0Q0CqwlgWrd6?LuebD#wSa(#!Jtq#z(^vo#eR(&+cr9Z2hL(S81$+C%ev}?|-V$Ys zhOs*eJzBSsp8COV5rC9#P;|tZ@MicioHbasfHg8b87LOgg)$6h9cO$tBtI^=u>%6e z7FlvX>&ayH2`Q%G6gdeI%St?1toa}hdm{v~6(xhyAV$ez7ll7r<3QzLB`Oha-^T_s zh6}KE`6q=SFbbAGkn^=g*i!1%W#Uzyi6WcHeI0EI1TM_uCO}|xo&!K2-{xC+#YjKc z0F1EJW5D%_I+8N<-t|NZ<|IL0Mo&RMNy{X4KCV4NWkPPfT<%?J@p^Y04iI+aM|7aR z&eM`;bzHYM&RjB*Lm5Sx5mi_d!KmTk*m!l1NcKB+?e$M%K1oB zr|I%>$#dY&7Es&5mg2+cp36Zc@Tt-1LT?-yeQ}*Zq#@cWzyKA>dQu6h@0zB| z-cMTwvrR(`*BSfm&@2xX1gOPHUu0{0a#!)A6DBeb>lP2-6xugwS^L46maF9lyC=~f)ixUUb&egSF;?Q;rlWxR*pA8ABkG{(b^J(%=jLET^S5cp7 z#=~N3SW6kTh(>d3uahd~8Y2o+)ubC*3d=EXs-NGjT5Qh3?Ho9c1nuvcb+5GYL25RX zG0u~|Y}WzW@$`heo=Q+$%!8XBeEmTWUvijQlQT(*qY6xaePZs+19GYbYPJjUV$!MH zq739v6I5pR5!=a)s}>);v|YVPfmcHch9`}SepwSD1^>Yv0i6ceJ&JM+w(kJdrx{{1 zi`uTvzD$?SU#}&NKhY){tf3+nRG1N5TlEO^9XmT&OK|-KY*5Y#Ua79%7E~ZD;?;q^ zE2%!yh6A&iv@Racb|<8jrvV2p!`GqYbp4GytjaYH_Y}^>_JVNzPZl$KCfcT>WRpP| z^EvXZ2E{r@K`FEHdU=7T4AEvCzEH*j_S4O z(zh;Rp6|^gM0!jqYe@FA__U9r6nPsiJtiRq3eK{yr+anHM~{$|oTeJ&>iY#_e&6Vb zTsE-#rF6<)^HrH=Iw# zJ|p=w2TcXNIbWmI*)EX5!541Bx{X3vMm-_^e zo1O`PT{)jV3bcO%_Ts%DNytJI<*_4!aFF$JXBc#9;>om-PMo(#ulzRNyn@_|CwK5C z2qI$H$mi%q`-mEg_GF>4KT1I0rc3m-(#$FTZ%V4A>vno)-XL&gGD$Sh#Gw zfbm|rh*5#BR}0P%zI0cbM``_{p?J+orwxB+&0q~Xk8w0VE1&Of=O~A>uP5(>C@PXl z?l7^ICrk5gWsP8T-M`fI0pqrWRPfyo9P|XU#!BW7biXdKjTMEq1X%{LmJhmXbr`J8 zg--suJ8tY$W=86~8{<=0c#9&2gOS*Rdd@^11w4}zjFp)h9Q^UZ{y?2xl)Y?VDv+K(1|IM3T=$gLdiOYDfecRSYnynCx)?` z-)s7OzK>rIfA!b<+UvTW*YkB<&+B?MtB1_i9#9GSD=riioLBxJ?INAkzh4sN8t^sV z=$@Yj^z7BZZw=xL9}TBw^M9j;uu?pJ2&}D+bbdhpgx9#UxvGCT;J|^gn$pu{+Y36g zX#du@Izr;xc{O!Yoqh!#!L$kkGe%gH8p+T13Bx+j@Gj)_pV^=;R~AA%6Bp`KehG+ zOp&@SjoWX^ z9&?#jHkCq&j%~jUAJb7i(qTAOT=MQx$>2crwLK4M_05Fefud1z9RK2azSv3nOp8@voHwq|2N^dSUY?9jlyM-K&ie>FXQ8vo$R*94idC_ z$Th|*JKLv&vN!uL&)JVu{i$k?ENLI5g*9soNKoj76Y~u)WeOt6&8OQ%Zoo5HriQwsP(~A zR|;1TKGDk?@V{QBo!7UF|7u_z9^ON$uZVO$zu;6g+Yr<;*!C)vchX#K;zsAMwDFkW z{*wz8W`qK>7sXpc%*<%_?%yA4yyTf1idL+u{}_$A=;s&bruELc?W6zv`#(NDLa5)k zFn5P^HNf`_ZdyEAgZmj2r@!dvE!-6^*gBm!&AvX?L@EfJCv)dodbWieF^uRhI-r67 zNQixuCnSl+i>HW^1?z7;Us567?=B#|0a50h%zxgdo$(;FU^=ty@EPNr0vYUDK|@O_ z?iw`f&NpF~Cc#H4I6CmG@T9kpaM%_s>BlWlN4vg&E-~Yn?Q&h$+i~ORtkBfOC4xRw z_Rja0d*EdO_@R^+!gz-NzMOJ~`8Rfngz)Wwc*geG(r(k!X{ca*5B6qLf+mo9Q1in? zZGqCNTL14JO@=e1!U~sa)~H*>qCzg>x{(vO3Z@8ELzMN26lI%?yN8-8lqSLLE+FKc zOjI^yh~5?22+Bq93Wj^9^^AcvEM*U-x_)k-;pe=zns<6r<|l<5bSSGOI;2_2La}Zw zZ~u58jLFf#kh%C=g59mS z@QMg)!hoy$TF&cgMN{F}f!U1of}>ux+76ZVskR48${U<#V;4n#>cAfzv$Qqx!9NPH zoz@)h_kD4WekN*s`7zw#;aP;zedn?l zQ9clfdh@_yg6~sk({biO!EVLM?!V+I9lU0dSluc<<~?KXqV;xhy!qbu$8@(R>zRFd zB*yEoQ5ki4XD2`ipO}cct9QMQZ-!GDCoYKj%p+jP52@H?bI4A|aAnb_>&}8Hgw+S8 z?Y56sN|XH{k`0#k@!OS!3FJ^v*$dvT+;LnVp2aqb(F8y2_2t=gY3bb9tGNajqjj(S zd#jD*ie!#(C|OPSSKYub1R?nZ$!1Zzsldk4AGj}=BUm7f3`IR4#QDk`R<-0~^wX1s zhaFzag=Bjf)7)I;oV;$DWY=zLoIwGd`rkI?TBI7ynzzjnWNSsI1a8%f=*)B?@!bh^ z8-wAskISF`Rf7Jbq!)XvVU0KEh#!X!XM%sGxVewIb=ZDm(NYaV_uAa+Wk>v!|1dQ& zHnz6?5`F=Ufy&$G(JZ3wZSiV9HZt>-E~~tMTdX?(QAe`U7ymX>i=E zIiZEV^Z{FuuBW_X$Bya>3vOQN#i4tihdnQ=G)%BRD%+bpcu_9-!x)8Po8T&y`fgB)Fe-7G}&p;RHX`#I426{Q_!5jb( z8gHpvs%inYR}Jj-yT>--hh>T~U2(-1m8SOQ&Svn4ABJyFxqVdKFr>dn$8$v?D>CD! z7Bj<#x=!}d$l#{_Z5Yn;P5ytqSHxz}oCV!xKQF^`KGJ zlT26DeYul!Lop?D>MB>Z?@+T9$EQKtAi5pLX_4N)8|LljY(x7}q_e(=WhB_UEl3&m zv$wZzFAsj>{1|~xH%kjBl-9oQB?UGFZ;kG>NTL9jeoQ9L-2h?K$KRxi3g`RM2T<}_ zo0Hr_c|-F7v2mx?+a0i1Nl;954=K=T5#f149(RtgVUt^lmZlk^Ory6(re3&+5lVKo zgDLOdm%0^$PE$mG+~i2-F!bO}1!divD+v$;*{{b)B`o@O7)HA@j%JeWZI}m|Vh@Au zB(E#+vvh9&??I0C_DvDHh`*8S3GGMjkHq$ys({ZGUtZnVemE`IdwZ!Slez_V*uU&U z8tgFEm181c!EEr6@}C;`P1~!LC?h~!^(ozGdiqE=h_2uPi6%@A&ro~!Z`L`JcyagCF z+s)6|mv2+N%DVVhgqEJxWaa+v3Y2LG{#ggdMBYq%nk0u@6;!85lHY1P=%0pf8aU%t z?P{9Ze&cZwreiOdVVMMe9~)p04Zp;zT!RyIbygI9!0P{~78#Zr7Hr}I>F_kn11~1G zhbLBpx7BA((HnazA4xy@A{LNqMTc%sMwc~!5hS8iyXtJxX+w&1{Y(n+;>$@p+IO{> z2v40OPyUC@?${aqau*7(v+xJyO0ZEHiaWh-Pf>O?s}C$1&)HmMAa{1`%D=$bH)I2t zvoKFP*8rNEswnbUk6K7{t^=r=Yqgf05_Eyj{iDVsCKEJ=bE)uH!iI+ln-7z>D(&Y6 zwH{7GcMj}D(ld&Ydz!)>ECLOwKms_}i)pSwot6Yt;RW<1Ai*}0%#G$AIIcuiJ1(yc(m zrlP1&)?%y^sc_M^O*d7x!W+xUJ_mJHk^d(Mj#2V`i?C*x&Cm1ep*`#SRu?@HMJCh>h!c&d z<2L00P{CRZasX4krtW)N{uuyNWzfB;&}cd?u`1RJ2ZK<4;2yCTWFS}EIq5nQ;fnDG z7jTU)tFOW@^WLs0Y&`7yRY_}P!+st8L>b1n^cFaqj&O%8_w}_Ql^(R*PRLCeRKMeTOP*=W|45m=#~&yTG?I_sZkFCR%BJR{`${3%iQlcN)8 zwFA`12EuWm4*-uK8C19SI+}7EOiKoTS%XK^B;XV_=o;KiNQn%3l<=@l(aiAPepR%a z;jIY`C$fd7fK!1#xZY)!)2y}&i6KT= z$YMJYdVMJ8bkydmo8L3SNVd0(X?k0#M3Z;XB;di|EilmRrhrQA9Y<3{h8G}oVVRVd z?8}+$a#6sL+M%=%YHEn_KXn5k)Y-pzL_gensTvQeQfrrh=-#Si=xx5Bs_-Gx-kh^7 zEc|&R@<&>C_I?^UXTSVduEAxahopNexsv=q(L0}a_)Fk;D$gLccW6nXFn>y-W;3-F z50yac+(qD z!_@y7g5XL2DqW(VBNstgefv~H=not;wcegN7!7wvWLfh%Kg=}o z+-!AJZYHEfK76E5RvQ%NQ2k`240$vfx$$@Ue|&A8Z-TUxGEQ*2KK7>s7jh+WvYBBi zZ4{>kzI?o7WaW9b{CG%b8}Q<9swc>7XmV+=iU(6)5SEl^)+E*!Tw!ev*7gvt{5#PF zi3SPeL>Wlkhh|q=z|+jS&^o@M&C)kgj~Hbwv+5@O&xlgl#vE^%f*D1sRDMaj`MAUc zoJ^%Vf=B_4FaD-nj6)S5(3ug&fQkZ|M)#EDKbf`Sb@n-!a%TQ!=D%PtaSEHT+k;h+ zW#n(CA#qewwv;8kpR(K8|F^USI zPkX9wnazd>xUQOz0n>cxhLptlWtUlm|xM?lX*K~vto6GG z@Fgt28qSphT1@+Tm?8Q-k~ z(n_*MG$zh>kS@MFafM9@h=^W=|EcvcPpamtitC;Yd?wbtR(q#LanneU9bHj_yP>Hc zQoDjo$hV@|c|vIMyKOOwY|INf{qFPf3c-aMUYM;VfOSi6Z2OfbNWQfTHt&3R`r&-8 zuNS?APPI@}W4*<1jZWfUAQ;V(*j}KY&%drE$Hdv%Hyw~@mMW;rNl-*glu@|;0-x-x z?*ddJut8)G))*<5Lt6=+gHTIBVQelLQau3_F#MxD5^eTZ%s#os^(ZVv+GoQHN@AY@V)Y=|op_ zrFTP~>AEDDsi8gifI)FbM92&7&ewNDf3Hng2Ob zN0(U5jH*Sr`AA^(h!@LD@+9;p->7y(aU^TkNIML00IOmo&=8Ok!5WP9Ov_FAu7^Sf z1EKYsJlTobdIZtf2nHKF|PER*vv+-u8$Cas(PoEx&-UF;B zpT*Yq9;CqrBanRiKy2IuHvJDT?9tLB{#k59M0z1J>IFhk9Sx2JM>tb4>5IsN3D)V) zNcdgj48JHqC8e-*LfKDxN_G5wfPe~0eu*hAz)6YB;ldR-grM~KBmj`-p1fS^00U+89g38pLoxm*vC>tDtEEEQ8iNFj zI008}7@~bML8-)|`|L~ZdvAJ6 zaCLb4#?tU~!xPLXiUmFfi2{~Qlk#bmbi|T3AD}$@m5G2P3IO~LwMC01M*SeuW+Il{ zC8(cdWCuF9s4c9pj{O=Rp(amVG!41R4v^~<6!rUD#?PuDnBHSy4ppGR!0D<7Z*fe{ z-D=GLhoP{5i@+Orly)5S;4zFu-%VkddGi=&tZC;3bBp=hPj4Xhz6q*mE4j;=M|;*8{)ExZYF;Qg3@|2P7g(M#_Y8N6Sk%f@1YrI#P>_F|QH#$4Owz&T@ z#mz8Hgam>t2f1`kyLEJLE?yvlZzr%u=OR4`=+ARchwg2-cv9e2b0xEVmm}a8;j3ov z;v~8i8gKhdvJ#Qt*6{bI-D(D9cF7eMzQC9xQAmZ7=ST(1xLy?`eTfL4HCd0G-4zxW zsfpb8#(j`O-fYPABTQH+CjEjJ)+i!9R|2D32$q<>R$=Ps)VhO$MLwC3_KCQ=(c{Bp-qhyPwJ!D;lai`7j8-{v9D0eO62zm>{+lctDJ&CU+e7Iw zp;r45lapWrQggXEa)%t@iocJP0UrZ0d{78Vj5jjQs_SY1j>ZOafCdX7Pn{A>&FS+P z2G$Z?3SQGcvwdRjNxsx==tGac!X^tHE8hfVw3YS`bVaj5?y>Xb$OL28V!EO;jn{DF z)jAGXA?PhACwfal1D9;t2gy0YtSrN%U*kl^O_K_|uxYwPCeunl8ez`AMl9h@w@(nY zs2w`W02L!fq2N~PO1dOQ>2VNxz3V6-zdUf|5Qdpjjn6Jl(+yD+bUUfOU;X&u7lZ zSV`4b$Ay@x=d6I&$YdPKb z5=|EZFW5b|DL5(xnx0SXEVNm@!w2@2}DIq+)&_X79^Dm(}t3hI@d znW*S{X;D$q_jcAMW|qcKP*NdrYA-)1_u{8%DM^3wfs=x74pGXMh0hc({Lm&L1r1Nt znNQIB4Dzgs&ont}RMD=bhHosQ&EZ7sV01}&HhYCDG1qDRqoq)y58^zKXsB-X9J%;VuLSll*Fiu4iuGJQeZ4zd_`?U0B0(q zCW{a<_J&1FZnIT&u4reZz(X;hE+y; ziCeL1b$Dq}t|OncGGbHZ6dHEr2dsWk4~CGL^x0#48|VBgR}qZCXGEb)`FgF^XIkNP z2%O@Xp>mbc3Ov4>MvMDvJ_Ahl^t{j|xK->-|5W}?iZ2S`#C_tV zuaK0tB6ZMYK6Bg{q>lPV!wya-j5dKI1mv+c#a~~jq9*qtVsIFqe23;HoA?DTt|k?f zCZb78>>wa1i+srh{nHyp5eC5tIc!GKuP6f1DMD7nBlRV4 zJADWVGW~f}sKLI@@D@vfaUJck zgG6CXSwp(s!p|aVPtsA(r(EjB12$!6RD;#FCg1xV|IfymdhJcFLk zbXX2$eX;o+pZmM}ybsRt%Qn(i;V*4T;j?`T%KON<(~Un;e}%#JReF!C>g$++Fz#FO zk!Bj^($B;OHU+lTJ8T)D?%84c%otLdkKpl(SEO(vBHM5iBxar30olQEI2 zMLWkt#gu(ckAC^O0aGiKgesCeV<4+I!}43T5~FehEzAdjLIDo%B(cFv#%xt3f&$b0 ztNgO+>gwWZcL?>T5D4}s74w5J-n@(VdjfLln__Dt)MJ>{8`VVB7}b2$Y7V>$k;Ly5 z@^D5H#`bpdwo$f^s_|yOLF#9r4{l~BX60tpAnAMW9V{KEd6gYQ9p5-0Z);EPOyq3O z?$|lFG@LmUIil<>jvh=IZrAVp*xA@)7@Ny+);%f^lwOh-dZ(A6m({BB_{9?k#!#J& z`<37tUl(T=oqh3}6l1 z4K`zOV=d2>E!cc^J04nW_K#tcK0{voffy}SwflnoWB@- zSjg96WXGwI&6M@)@Ax_J^XE652rJ@y_wd25=PX5CDMV*86Js31j>&sETpqP2R$=p+ z3%U(_^=Au33uSI20__5uZq?u>+&z9(Zl|&7xwKcqxWhlvKxyesP0dES5xN44oQrsi z9E-K?uiRHX;%`#UsICLAhpq%x?-qyq%f4H;F6limKGZ)n{z{LmBB3Fy1!=2!t3WY* zlod85rDLYBvHxfqZH&s4&$z8v?pRI=c00zXq2LQ@PQK^wBx8MJr?SpaikC24vUM48MJ(j}Yv;A* z2ZIkPXsOf>B7rFK;9J zHP(hRCWf2AR&6yoJ31Rn+Buf!GgdE%mX|hGc~^NcH!!zU{vd_hWOY6SXYAc*ry0Xe z_W76dgPr@>cIuMkae*0oyPfr9<^4QNIUb=2BlE@aZ(|O*C%HsDq(<2$`+e6vVQUj7 zw`}!^9El$8$X)`EiKOb~sv{JyP)o4|dl7mxQ!m*0NZsU|qFzgVAlt>V?^IdE;fdja z@L1cg**UKxZ{}dO>nO+a7bA405rkZ1vTvuLa zc>dxz=>Bv2+mq&1ef^L6jw_9cv}`DtJ6O`8jDvPb5QoXw)#FtX)3vIbs<}<|Ar0=W z746G;hO=mw#IxB=tzo9brDjrtwxNLWfOv2q>^r7X9bYCiCNsU=3Wtu-VPoG)#EsGotPPTclLVdXwu7KPk{1c44Ay!p5Q8z9 zRhizth?vqtwMB{#a5Dhcy=hr|tq~Q$fXKaZS@@hsnw2oECWv`^3zIiY1j5!~88+tFNX? z==PU->w=Nn&7}e#B_FRd^*+DOk&a$#zr$4Mi|V&ON2=UT59!=QuBzD^*sW&z=e1f; z_LcYV*7CyBtq!ARmz=(D39r4K^WzA@4eCpZ&ef3f7|hxnim#53>{vsoh1}K>-@2R+ z^F^u?7YLez9e%LvR(v+}>kf;$N{>$47D)7{ECOlHEhu9s=m-g{INT-Xvu%08KW>a` zT+Xa*K@Sn}963K6KTk&-#A#;a)H!W(*j5|XLxH$KxO6UC=Iwr5$yjvPMH;I4m8Lae zyB;L$&F|q@cP?(%CAyzomh{&0S|eHsHOD${{jd&bMVi;KiLxo%Z#ldVeVL20`>=6c z)|{%FDoGM3*mVB-3ij?JW1Dfx6)rMJ5h(Gqoy#; zIbOT>8fWt>H*KxHj}7Bo6=in;`#+ZZjmyII4!{DJj#^&skA7S?)-M+0o7p^T&zgtt zsz{WC`0>8p#GF^0#;)Z}4lAY~A#I`{%eb(n?W#ffAr1CHFK-}2ZJR+cmqH1rW(#f= zz$&K8slffBDHcR5>_qe~p@EXpgz`R}F6Y60@DnbEIqK89$o}Z<3Vy{E(No1gKcUSI zUL|WHAapl=0abwItx(z4<`d!PmtNEM@d(PsAn?|`0F#`bz*03W%eFiV^{^@Hba?;#=*?miu7q*eFJMp2LW>OryKp>&!2f3gU$ZmoviHt zJ{ItROixFcSQwd^{%>sHQvRoJdEc9XjV;y1%s|Fg_P{*^S=hKa`F~&VuS5UumjAd^ zaZQNVlDQ*}4`t4gv z8EjN4KZI3`=ZbI9p2NU}iapy{!FbO~|M@K?0}uV@vCkch<^2-s9%p46>=PW0)=P)= z0%L4vsY_*fqXo(;OGsn)3-$_w7vEt}eoaaHd!wR4iwMJ=e}sLwTbjI6n+mmG#eB_L zM$RiPpI5n$iC2^_Pd8MsJ)c7Z`=68Ho{^ElHV{DD4|1p_$k*?mgiZI4CCZ9{64Frc zwc&mrP6`(;LbER6B=KwQX$sx`+FV@yia?_#Y~1eI9E(T*9goD7;9t$t{R_q%KU5v3M)|=Ew#yS;pc-(jRnMUV;ZuV>-7I0X;+j~ z+-lM^v(5?65UT=hH#ncc(>$ zTG;O_xTs>cIzryis4}U?V>79nsWPR>n@gRF*N%P@@MLXMk}TMxvK*otiftY5%$QNv+|3nBn4f!Zy-)50kcK*i)q?If+#NIKFlNOu$MUL zi}Wm<&3K32N~-+tU2NVK{=-$5Rp%@hrC8l+?|d>Sw#3{@(|S%*DNo~VXxQsAy5 zYW`d;x1nJ8ofC=ROiFx5)iwgf{P!P0 zbuFT|6P@JN4=x~F&2Nqu1^+k*LrSk%_g)5csF_UHPDi z>Y1*b_NzUAU#&*^KFpuqP2Oeg{z~Z4v25Y;bF$5BZ0T_4<+>#S(d@Cq3r4{xtzAC4 zhLt_W<;~q#YZ{A4jf;0OVxW#738LTeB$82t_UXBAG1ew3NzizTlH(*(5kt}9ZO&+& zg0}p{j+BnZrLw=UMh#!3;04xGES;;uDqU?Xh6YSBzyh|}riEKa`$DAiZN~HD)^t9Z zhJS7I)><$`)2K;Xq;~L^sl4V?gu3+yIc3gTbruz-EKUh& z^EV<&P(M+dsUZfJ67pGFtu(c}&(i?UpY|X=d+M;tGyW#QtY}ib+8IYAqso@nH`U>H zGzqxx;qOBrdT8=hJz_1#-!< zK6N#SR;~U7_X}}4>7G7n*2@e8!we8XGzg2#8(?7rJ`k3r7>Qd~dz!-grzxll6)~vj zDd@;>5%Z~7RqOSsYEK0pWcdqI)U4eU&_6j16&ix}+EuR9I`Tz4cb zTt5VCmP@Qg8tt8Xnp`?L%_$Fs6trIZV=3q?T@cNerAjBe&7)4%(ktFgC$r77o?SSL z-g@TB+xqIUmPduTqLvvv(jzO_cyWp(3{*1jvXe?l{v2T zcV44_^G6xsHIVf9?fT~DKJ=$$c_m(5)p%C(Eua--R(>-J)0^#pK9S;u=od|4i!+bsJ%|fUawRukvYHg$nb; z2|E~*0XO9grL`626Q&TY$KvXro*I`*7bmy^0jR-Kahi?0zkRvz%qPuG?+{ttA`&p$ zIX|ot>_@t?%CwtBr|Ai+p4L5h=l600stM+qN+mivx7F6zwvEe9vUNEvtuk0VvSl{S z`ir#!$KPQd@5deX){pZ!vf?!^4%iarJSJ8SmmRm%xcw)2-X(?nwt_O+wk3LDRd>;I z6Yg~8^j(~qAeS+uy>|WsRiJ^PDLWK;youuAO6fA>vfPf1gzP(Fk-fLjCDN(A{T;6j zbkG7PazTf#^z7C^__}gIv&2kme9G>+pEBcWe5U3xe~h__S^_k_Ei=U}v=(HxjRR3? z&J?xkov~FXN$r&zjRBG%xQU*ck4-_=?4urLH<|j7)4u`J0nARM2$-GYb^DF~&4<=< zfq`Tz^@P44N0^t$4iu7+4nQ6%BVaWOPIfzVP1BtVmie=ie^(m7a(Y@F0)##__uRS7 ze1pw=4{}$h48!$#OfCb>kH08uZ>f?So*^P#h6P1)D8+|zFC7GH@?|3geUy6rC$%EO zikz0Ssm{-=8JEyCZ9D7rRLT8C;DDz3OZ1bMHkF%|FH!XNA0Xx=$GH}elJ+>CzUa@pMPBUi#h z46>2Z;`VR5zsvsc;cty50Ob=cwI9CWa0%A1kQt;vz_`;Y2Rt^^NFn3RZKKg;5zwrKp454vO6Npm$dAz(+3~qy}*_0zOL)}NKt#4<){7FGO^5#>}+wFBH&g-z~@x#b}^y0 z@TRDEm2(liHkp!dLiP0Yuf4rvLY{x%D;`ZW+>qmZve+lTOZwFE#nTGG4Kxag>qmmi z0J7?`rlpddM8G)^Dia`#1#S5YL$J5N{KH$gYO;~It>Bo@R9jMB z`{LpYqd~Hw#r<{Avatt4jzX~l!3y%Ew!NIoD1QF`2sJ7)X3#17RnN8Ld^d^Ld}J|) ze6BLTxn2r;|H8v+P+E$|{vc=BjKsVNMh5EP$AB1^c^O1x2fE0l*hMz|B)*f&T8!Cr z)r%KdmnF4}b~t+O6<5W(ORcSZ%ib`AX3p{O7}RwMx~{zp)gvMgar33Rh&Yqk(y@em zqw?v33xjOK{11*RH=D_23(uz}><0-Rf8gjjJYIJT{i1%`xL+BjaCSa138bf8drC^2 ze&KX3L`BShy`$u?x3I0xC z-Lzs;Dz;jS%lG5k*5P6I zO}5<8${l3|fsNAE2iGIp`-w776*5-MODPU(1JL8k`Bdk{9f?T79qyL~JAL+@Qk`J= zi};fs5?+V=WamYf1v##T^@sZ-uSTFOn@dP{Kb5W>VC{F<(RwL9nK+ussA7Gsp1h;M zGtqLr8rGPTpgWuNx7hu!R3(go`d#BNPEEG}JRWESQWhm4^yo-F%r(thXDk5uvDIE5 zb1Ge8h+rEy4M4-pfA_S9-r01LXAjMn^B#pMv_Wcpe7L)(=1RYt-)gWFj}pAiZ#<}( z`*jWE#_~C%SULCCFM3egNrhi5*bfU}jbf93dbrs-s=UD_!u?!tz0~rcTpe}piVVHh z6>+w8aJthzb-hdGI5u`AEKDE!C+=!zRrWq+1EfM1<2H*`&Qotob!kqh4hk5#Qkv(ad2hoj>VL-BC5+~&71)%tLeZF*Ex*0Rgke6A$ajl?xSQc^X zL=PKE`rbdE!646)hytC@94E>hPJ=&4**D=JH`!|U`1OG$Z9~_4COVQ~B7wV+c%TKz zo-b=~qd&uiiTn5dRucHVII(J8$9YMG%$$xAl+0xTtqpRWg$WRMe}gRob0mjW#wx(vh*@ePLkze9V9>kHkBt+*>P(ZK4xt{1jo9dbg^9zp(GjjTl_eD-`Dy`uap!U|8Yf*?S`6O#-vMWS?vxpdmbg3_E)%Jo@f+9p=9 zaCjtle`(HRPW8O0jjBzn03+x_X>}il#)Uqyiq5mVT{-F;(B+T(3oW z>?>)XDnmc38|0j;rWo6H?j~}s>n3)ipBOBIQOegnYNkm8w|C>n;r*DzX*mvXBA$wV zA0_lq_q0lt7k&|bhi>P@4DJTX%i$LDtyJerme0!FmOrr6&Xdb$FqnC#PkguigFBPi zus0jWbKGa3H>9mE<5}tIbZvJ4D=U+)2{$5u9c9q z1MH>?gIr7d7wST39mOO^2368)R*eUn0#SpcMinvDlTnamjaMfYryERO^?hSpl;%5< zDayfWP5NYFi71Y6*%|txGm+0-{O$cOPRrYxGE3418%0Dae%iy@5gH`clY#Z@Bking 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�M)!G~kQhp*9cB_Y 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∋8{zGy*9nD_sWG-b?&v@uBGkQqb7p12e{jJj9@uThc@eXxwqET@RAGkgUCHV5`@ZG_2tIUQfL?MLoTv%!5gh3gN3Xx#3ZH>= zu(_9~j#$mYW@Vu-{^>5-YxxlQ%zU1N zo8En?x!Se;2uNjx1We%O-?cZS4S-*qGE8;L71DMjr0K=jN?6&TA}Q8CC|}_SLtoaO z@H?|-pN^I4pSV#GY1tjK)GXXmElL^Yw(yie6bwPWnnW4IBgt@OdBXQe0h!|+8QDjF zdG7(b<1pk}sYj&C+sGr#_Pv>aHOgvKfWG8}OW2pUwet^$CZEgC_n?BcXOmI{nIBA3*9lIrb9qbLJL)YG{oPC7vqtmhq!g?3ChC&^*=uNB7 zA^F$OvCrQ6!IT;F6+QYa6H;m5v_q-F(bKS`(4NX5KR>Y3pH81kSHEz^3PqaR(R!MM z3Y@wb_Pru5?&xtFkk3!41p)omX(jU~Rzg~CV$fHm6rY61Vt{E8z1ynz&r=509;tRy zGO(W}9D>%ge10h*d@lesNer9%JK33C_2EmT%{s~%oR#{W0>fnQ59CenI!?@Lj$NIGI$q|`hv%cQ5U z+_f#6ns&``_qghM*j;&poUF*k>XIm>1j!W$g*pM`(@Ov6?M5t!2R`c z$ahkA+yC6&kvZKRBC%)%_4cjXQk0Y^Nfu=$hj5(ydTso=ZI0xylGQv@DVT3p$$pN} zt6aZ-^G)KTT+jW^0bU*A|3!A4TTX|e=Lr}^=E(KCvTE;@QOva8=3ZJ4>TaGf zR5aS+Z28x$MnEGrM5I98pRX#HtOR4_K##TzA4*>Q%{*p3Tq<98~9>&4klL5IQR#20p zJOU~^KC9YU6_?=5@-UiDbk>||k}ABeC-uvXcJ#Mj{)A#fJk9|V6e$pRF%JRiZZqcl z-o5F-9XbbUmRlLm;AB%&ujIREMpMj6MB>`Oa%0A$ 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

tH^vg(l%SH+w>m?P^IU` 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 a0B`*3!?9XZ(UxQI-)*_OvUxIwf&T-2%kCur diff --git a/docs/images/run-iac-pipeline.png b/docs/images/run-iac-pipeline.png index 15771246847b5f35ec40f2b942f48fe9cc430faf..f2549da833603fabe2da687b364c0d512952ceb9 100644 GIT binary patch literal 79081 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

;h`3iys@&5aJ@<=jzKo}t4Z_-cxP(t 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�z)j!!W=>$BVeVH@XxC@ovEkf8&Nsqx` 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


S-bc}CSBICZE#jfR-Sx=l>V{4S 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 A?f?J) diff --git a/docs/images/select-iac-pipeline.png b/docs/images/select-iac-pipeline.png index e165ccc8ba9f39a84b921c10e808995a106578cb..695b041ff48533bf9648e804ee7a24706d7c8621 100644 GIT binary patch literal 148551 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 Date: Wed, 4 Mar 2020 10:16:03 -0800 Subject: [PATCH 055/109] Getting Started fixes for the Variable Group section (#221) Some fixes based on Eugene's feedback. - Ordered the descriptions to match the table - Added ACI description - Added location description and link - Fixed ACI acronym description Additional changes - Added a clarification that the variables with Azure resource names don't have to exist yet - Removed 'diabetes' from the name of ACI and AKS deployments and switched to generic 'mlops' to match the other resource naming convention --- docs/getting_started.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 0638e21c..6d3a9899 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -46,17 +46,17 @@ Navigate to **Library** in the **Pipelines** section as indicated below: Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline definitions in this repository refer to this variable group by name. -The variable group should contain the following required variables: +The variable group should contain the following required variables. **Azure resources that don't exist yet will be created in the [Provisioning resources using Azure Pipelines](#provisioning-resources-using-azure-pipelines) step below.** | Variable Name | Suggested Value | Short description | | ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | BASE_NAME | [your project name] | Unique naming prefix for created resources - max 10 chars, letters and numbers only | -| LOCATION | centralus | Azure location | -| RESOURCE_GROUP | mlops-RG | Azure Resource Group | +| LOCATION | centralus | [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/), no spaces | +| RESOURCE_GROUP | mlops-RG | Azure Resource Group name | | WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | | AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | -| ACI_DEPLOYMENT_NAME | diabetes-aci | Azure Container Interface | +| ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. @@ -64,16 +64,20 @@ More variables are available for further tweaking, but the above variables are a ### Variable Descriptions -**WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. You can provide an existing Azure ML Workspace here if you've got one. - **BASE_NAME** is used as a prefix for naming Azure resources. When sharing an Azure subscription, the prefix allows you to avoid naming collisions for resources that require unique names, for example, Azure Blob Storage and Registry DNS. Make sure to set BASE_NAME to a unique name so that created resources will have unique names, for example, MyUniqueMLamlcr, MyUniqueML-AML-KV, and so on. The length of the BASE_NAME value shouldn't exceed 10 characters and must contain letters and numbers only. +**LOCATION** is the name of the [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/) for your resources. There should be no spaces in the name. For example, central, westus, westus2. + **RESOURCE_GROUP** is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing Azure ML Workspace, set this value to the corresponding resource group name. +**WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. You can provide an existing Azure ML Workspace here if you've got one. + **AZURE_RM_SVC_CONNECTION** is used by the [Azure Pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) in Azure DevOps that creates the Azure ML workspace and associated resources through Azure Resource Manager. You'll create the connection in a [step below](#create-an-azure-devops-service-connection-for-the-azure-resource-manager). **WORKSPACE_SVC_CONNECTION** is used to reference a [service connection for the Azure ML workspace](#create-an-azure-devops-azure-ml-workspace-service-connection). You'll create the connection after [provisioning the workspace](#provisioning-resources-using-azure-pipelines) in the [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) section below. +**ACI_DEPLOYMENT_NAME** is used for naming the scoring service during deployment to [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). + ## Provisioning resources using Azure Pipelines The easiest way to create all required Azure resources (Resource Group, Azure ML Workspace, Container Registry, and others) is to use the **Infrastructure as Code (IaC)** [pipeline in this repository](../environment_setup/iac-create-environment-pipeline.yml). The pipeline takes care of setting up all required resources based on these [Azure Resource Manager templates](../environment_setup/arm-templates/cloud-environment.json). @@ -186,7 +190,7 @@ In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the va | Variable Name | Suggested Value | | ------------------- | --------------- | | AKS_COMPUTE_NAME | aks | -| AKS_DEPLOYMENT_NAME | diabetes-aks | +| AKS_DEPLOYMENT_NAME | mlops-aks | Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. From 39609ae3d094876674f38e16b9f86552b2e84c0d Mon Sep 17 00:00:00 2001 From: jotaylo Date: Wed, 4 Mar 2020 17:39:49 -0800 Subject: [PATCH 056/109] Proposal: split train.py into train.py and train_aml.py (#219) This change splits train.py into two files. The new train.py is standalone, and has no references to AzureML. It defines three functions, split_data to split a dataframe into test/train data, and train_model which takes the test/train data and a parameter object and trains the model, and get_model_metrics, which evaluates metrics about the model. The script can be run locally, in which case it loads a dataset from a file. The second file, train_aml.py contains reasonably general AzureML logic. It reads data from a dataset, then calls the split_data function from train.py. It loads input parameters from a config file and logs them, then calls train_model from train.py. It then uploads the model and logs any metrics returned by get_model_metrics. The hope with these changes is to demonstrate a simple interface for integrating an existing ML script with MLOpsPython, as well as providing an example for how the core ML functionality can be invoked in multiple ways for development purposes. Co-authored-by: Bryan J Smith --- ...diabetes_regression-variables-template.yml | 2 +- diabetes_regression/training/test_train.py | 39 +- diabetes_regression/training/train.py | 174 ++------- diabetes_regression/training/train_aml.py | 175 +++++++++ ... Regression Experimentation Pipeline.ipynb | 353 ++++++++++++++++++ ...Regression Parameter Experimentation.ipynb | 211 +++++++++++ 6 files changed, 799 insertions(+), 155 deletions(-) create mode 100644 diabetes_regression/training/train_aml.py create mode 100644 experimentation/Diabetes Ridge Regression Experimentation Pipeline.ipynb create mode 100644 experimentation/Diabetes Ridge Regression Parameter Experimentation.ipynb diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index 6d4d9797..fdccb3b7 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -7,7 +7,7 @@ variables: value: diabetes_regression # The path to the model training script under SOURCES_DIR_TRAIN - name: TRAIN_SCRIPT_PATH - value: training/train.py + value: training/train_aml.py # The path to the model evaluation script under SOURCES_DIR_TRAIN - name: EVALUATE_SCRIPT_PATH value: evaluate/evaluate_model.py diff --git a/diabetes_regression/training/test_train.py b/diabetes_regression/training/test_train.py index 155d367a..d121ecbc 100644 --- a/diabetes_regression/training/test_train.py +++ b/diabetes_regression/training/test_train.py @@ -1,27 +1,32 @@ import numpy as np -from azureml.core.run import Run -from unittest.mock import Mock -from diabetes_regression.training.train import train_model +from diabetes_regression.training.train import train_model, get_model_metrics def test_train_model(): X_train = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1) y_train = np.array([10, 9, 8, 8, 6, 5]) + data = {"train": {"X": X_train, "y": y_train}} + + reg_model = train_model(data, {"alpha": 1.2}) + + preds = reg_model.predict([[1], [2]]) + np.testing.assert_equal(preds, [9.93939393939394, 9.03030303030303]) + + +def test_get_model_metrics(): + + class MockModel: + + @staticmethod + def predict(data): + return ([8.12121212, 7.21212121]) + X_test = np.array([3, 4]).reshape(-1, 1) y_test = np.array([8, 7]) - data = {"train": {"X": X_train, "y": y_train}, - "test": {"X": X_test, "y": y_test}} + data = {"test": {"X": X_test, "y": y_test}} - run = Mock(Run) - reg = train_model(run, data, alpha=1.2) + metrics = get_model_metrics(MockModel(), data) - _, call2 = run.log.call_args_list - nameValue, descriptionDict = call2 - name, value = nameValue - description = descriptionDict['description'] - assert (name == 'mse') - np.testing.assert_almost_equal(value, 0.029843893480257067) - assert (description == 'Mean squared error metric') - - preds = reg.predict([[1], [2]]) - np.testing.assert_equal(preds, [9.93939393939394, 9.03030303030303]) + assert 'mse' in metrics + mse = metrics['mse'] + np.testing.assert_almost_equal(mse, 0.029843893480257067) diff --git a/diabetes_regression/training/train.py b/diabetes_regression/training/train.py index 66dbc20f..22258042 100644 --- a/diabetes_regression/training/train.py +++ b/diabetes_regression/training/train.py @@ -23,137 +23,16 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -from azureml.core.run import Run + import os -import argparse +import pandas as pd from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split -import joblib -import json -from azureml.core import Dataset, Datastore, Workspace - - -def register_dataset( - aml_workspace: Workspace, - dataset_name: str, - datastore_name: str, - file_path: str -) -> Dataset: - datastore = Datastore.get(aml_workspace, datastore_name) - dataset = Dataset.Tabular.from_delimited_files(path=(datastore, file_path)) - dataset = dataset.register(workspace=aml_workspace, - name=dataset_name, - create_new_version=True) - - return dataset - - -def train_model(run, data, alpha): - run.log("alpha", alpha) - run.parent.log("alpha", alpha) - reg = Ridge(alpha=alpha) - reg.fit(data["train"]["X"], data["train"]["y"]) - preds = reg.predict(data["test"]["X"]) - run.log("mse", mean_squared_error( - preds, data["test"]["y"]), description="Mean squared error metric") - run.parent.log("mse", mean_squared_error( - preds, data["test"]["y"]), description="Mean squared error metric") - return reg - -def main(): - print("Running train.py") - parser = argparse.ArgumentParser("train") - - parser.add_argument( - "--model_name", - type=str, - help="Name of the Model", - default="sklearn_regression_model.pkl", - ) - - parser.add_argument( - "--step_output", - type=str, - help=("output for passing data to next step") - ) - - parser.add_argument( - "--dataset_version", - type=str, - help=("dataset version") - ) - - parser.add_argument( - "--data_file_path", - type=str, - help=("data file path, if specified,\ - a new version of the dataset will be registered") - ) - - parser.add_argument( - "--caller_run_id", - type=str, - help=("caller run id, for example ADF pipeline run id") - ) - - parser.add_argument( - "--dataset_name", - type=str, - help=("Dataset name. Dataset must be passed by name\ - to always get the desired dataset version\ - rather than the one used while the pipeline creation") - ) - - args = parser.parse_args() - - print("Argument [model_name]: %s" % args.model_name) - print("Argument [step_output]: %s" % args.step_output) - print("Argument [dataset_version]: %s" % args.dataset_version) - print("Argument [data_file_path]: %s" % args.data_file_path) - print("Argument [caller_run_id]: %s" % args.caller_run_id) - print("Argument [dataset_name]: %s" % args.dataset_name) - - model_name = args.model_name - step_output_path = args.step_output - dataset_version = args.dataset_version - data_file_path = args.data_file_path - dataset_name = args.dataset_name - - print("Getting training parameters") - - with open("config.json") as f: - pars = json.load(f) - try: - alpha = pars["training"]["alpha"] - except KeyError: - alpha = 0.5 - - print("Parameter alpha: %s" % alpha) - - run = Run.get_context() - - # Get the dataset - if (dataset_name): - if (data_file_path == 'none'): - dataset = Dataset.get_by_name(run.experiment.workspace, dataset_name, dataset_version) # NOQA: E402, E501 - else: - dataset = register_dataset(run.experiment.workspace, - dataset_name, - os.environ.get("DATASTORE_NAME"), - data_file_path) - else: - e = ("No dataset provided") - print(e) - raise Exception(e) - - # Link dataset to the step run so it is trackable in the UI - run.input_datasets['training_data'] = dataset - run.parent.tag("dataset_id", value=dataset.id) - - df = dataset.to_pandas_dataframe() +# Split the dataframe into test and train data +def split_data(df): X = df.drop('Y', axis=1).values y = df['Y'].values @@ -161,23 +40,44 @@ def main(): X, y, test_size=0.2, random_state=0) data = {"train": {"X": X_train, "y": y_train}, "test": {"X": X_test, "y": y_test}} + return data + + +# Train the model, return the model +def train_model(data, ridge_args): + reg_model = Ridge(**ridge_args) + reg_model.fit(data["train"]["X"], data["train"]["y"]) + return reg_model + + +# Evaluate the metrics for the model +def get_model_metrics(model, data): + preds = model.predict(data["test"]["X"]) + mse = mean_squared_error(preds, data["test"]["y"]) + metrics = {"mse": mse} + return metrics + + +def main(): + print("Running train.py") - reg = train_model(run, data, alpha) + # Define training parameters + ridge_args = {"alpha": 0.5} - # Pass model file to next step - os.makedirs(step_output_path, exist_ok=True) - model_output_path = os.path.join(step_output_path, model_name) - joblib.dump(value=reg, filename=model_output_path) + # Load the training data as dataframe + data_dir = "data" + data_file = os.path.join(data_dir, 'diabetes.csv') + train_df = pd.read_csv(data_file) - # Also upload model file to run outputs for history - os.makedirs('outputs', exist_ok=True) - output_path = os.path.join('outputs', model_name) - joblib.dump(value=reg, filename=output_path) + data = split_data(train_df) - run.tag("run_type", value="train") - print(f"tags now present for run: {run.tags}") + # Train the model + model = train_model(data, ridge_args) - run.complete() + # Log the metrics for the model + metrics = get_model_metrics(model, data) + for (k, v) in metrics.items(): + print(f"{k}: {v}") if __name__ == '__main__': diff --git a/diabetes_regression/training/train_aml.py b/diabetes_regression/training/train_aml.py new file mode 100644 index 00000000..5bf76cb4 --- /dev/null +++ b/diabetes_regression/training/train_aml.py @@ -0,0 +1,175 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +from azureml.core.run import Dataset, Datastore, Run, Workspace +import os +import argparse +import joblib +import json +from train import split_data, train_model, get_model_metrics + + +def register_dataset( + aml_workspace: Workspace, + dataset_name: str, + datastore_name: str, + file_path: str +) -> Dataset: + datastore = Datastore.get(aml_workspace, datastore_name) + dataset = Dataset.Tabular.from_delimited_files(path=(datastore, file_path)) + dataset = dataset.register(workspace=aml_workspace, + name=dataset_name, + create_new_version=True) + + return dataset + + +def main(): + print("Running train_aml.py") + + parser = argparse.ArgumentParser("train") + parser.add_argument( + "--model_name", + type=str, + help="Name of the Model", + default="sklearn_regression_model.pkl", + ) + + parser.add_argument( + "--step_output", + type=str, + help=("output for passing data to next step") + ) + + parser.add_argument( + "--dataset_version", + type=str, + help=("dataset version") + ) + + parser.add_argument( + "--data_file_path", + type=str, + help=("data file path, if specified,\ + a new version of the dataset will be registered") + ) + + parser.add_argument( + "--caller_run_id", + type=str, + help=("caller run id, for example ADF pipeline run id") + ) + + parser.add_argument( + "--dataset_name", + type=str, + help=("Dataset name. Dataset must be passed by name\ + to always get the desired dataset version\ + rather than the one used while the pipeline creation") + ) + + args = parser.parse_args() + + print("Argument [model_name]: %s" % args.model_name) + print("Argument [step_output]: %s" % args.step_output) + print("Argument [dataset_version]: %s" % args.dataset_version) + print("Argument [data_file_path]: %s" % args.data_file_path) + print("Argument [caller_run_id]: %s" % args.caller_run_id) + print("Argument [dataset_name]: %s" % args.dataset_name) + + model_name = args.model_name + step_output_path = args.step_output + dataset_version = args.dataset_version + data_file_path = args.data_file_path + dataset_name = args.dataset_name + + run = Run.get_context() + + print("Getting training parameters") + + # Load the training parameters from the config file + with open("config.json") as f: + pars = json.load(f) + try: + train_args = pars["training"] + except KeyError: + print("Could not load training values from file") + train_args = {} + + # Log the training parameters + print(f"Parameters: {train_args}") + for (k, v) in train_args.items(): + run.log(k, v) + run.parent.log(k, v) + + # Get the dataset + if (dataset_name): + if (data_file_path == 'none'): + dataset = Dataset.get_by_name(run.experiment.workspace, dataset_name, dataset_version) # NOQA: E402, E501 + else: + dataset = register_dataset(run.experiment.workspace, + dataset_name, + os.environ.get("DATASTORE_NAME"), + data_file_path) + else: + e = ("No dataset provided") + print(e) + raise Exception(e) + + # Link dataset to the step run so it is trackable in the UI + run.input_datasets['training_data'] = dataset + run.parent.tag("dataset_id", value=dataset.id) + + # Split the data into test/train + df = dataset.to_pandas_dataframe() + data = split_data(df) + + # Train the model + model = train_model(data, train_args) + + # Evaluate and log the metrics returned from the train function + metrics = get_model_metrics(model, data) + for (k, v) in metrics.items(): + run.log(k, v) + run.parent.log(k, v) + + # Pass model file to next step + os.makedirs(step_output_path, exist_ok=True) + model_output_path = os.path.join(step_output_path, model_name) + joblib.dump(value=model, filename=model_output_path) + + # Also upload model file to run outputs for history + os.makedirs('outputs', exist_ok=True) + output_path = os.path.join('outputs', model_name) + joblib.dump(value=model, filename=output_path) + + run.tag("run_type", value="train") + print(f"tags now present for run: {run.tags}") + + run.complete() + + +if __name__ == '__main__': + main() diff --git a/experimentation/Diabetes Ridge Regression Experimentation Pipeline.ipynb b/experimentation/Diabetes Ridge Regression Experimentation Pipeline.ipynb new file mode 100644 index 00000000..8b04a5c5 --- /dev/null +++ b/experimentation/Diabetes Ridge Regression Experimentation Pipeline.ipynb @@ -0,0 +1,353 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Experiment with parameters for a Ridge Regression Model on the Diabetes Dataset in an Azure ML Pipeline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook is for experimenting with different parameters to train a ridge regression model on the Diabetes dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Change out of the experimentation directory\n", + "%cd .." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import azureml.core\n", + "from azureml.core import Workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the workspace from the saved config file\n", + "ws = Workspace.from_config()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os, shutil\n", + "\n", + "# Create a folder for the experiment files\n", + "training_folder = 'diabetes-training'\n", + "os.makedirs(training_folder, exist_ok=True)\n", + "\n", + "# Copy the data file into the experiment folder\n", + "shutil.copy('data/diabetes.csv', os.path.join(training_folder, \"diabetes.csv\"))\n", + "\n", + "# Copy the train functions into the experiment folder\n", + "shutil.copy('diabetes_regression/training/train.py', os.path.join(training_folder, \"train.py\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $training_folder/parameters.json\n", + "{\n", + " \"training\":\n", + " {\n", + " \"alpha\": 0.3\n", + " },\n", + " \"evaluation\":\n", + " {\n", + "\n", + " },\n", + " \"scoring\":\n", + " {\n", + " \n", + " }\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $training_folder/diabetes_training.py\n", + "# Import libraries\n", + "from azureml.core import Run\n", + "import pandas as pd\n", + "import shutil\n", + "import joblib\n", + "\n", + "from train import split_data, train_model\n", + "\n", + "# Get parameters\n", + "parser = argparse.ArgumentParser()\n", + "parser.add_argument('--output_folder', type=str, dest='output_folder', default=\"diabetes_model\", help='output folder')\n", + "args = parser.parse_args()\n", + "output_folder = args.output_folder\n", + "\n", + "# Get the experiment run context\n", + "run = Run.get_context()\n", + "\n", + "# load the diabetes dataset\n", + "print(\"Loading Data...\")\n", + "train_df = pd.read_csv('diabetes.csv')\n", + "\n", + "data = split_data(train_df)\n", + "\n", + "# Specify the parameters to test\n", + "with open(\"parameters.json\") as f:\n", + " pars = json.load(f)\n", + " train_args = pars[\"training\"]\n", + "\n", + "# Log parameters\n", + "for k, v in train_args.items():\n", + " run.log(k, v)\n", + "\n", + "model, metrics = train_model(data, train_args)\n", + "\n", + "# Log metrics\n", + "for k, v in metrics.items():\n", + " run.log(k, v)\n", + "\n", + "# Save the parameters file to the outputs folder\n", + "os.makedirs(output_folder, exist_ok=True)\n", + "shutil.copy('parameters.json', os.path.join(output_folder, 'parameters.json'))\n", + "joblib.dump(value=model, filename= output_folder + \"/model.pkl\")\n", + " \n", + "run.complete()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $training_folder/register_diabetes.py\n", + "# Import libraries\n", + "import argparse\n", + "import joblib\n", + "from azureml.core import Workspace, Model, Run\n", + "\n", + "# Get parameters\n", + "parser = argparse.ArgumentParser()\n", + "parser.add_argument('--model_folder', type=str, dest='model_folder', default=\"diabetes_model\", help='model location')\n", + "args = parser.parse_args()\n", + "model_folder = args.model_folder\n", + "\n", + "# Get the experiment run context\n", + "run = Run.get_context()\n", + "\n", + "# load the model\n", + "print(\"Loading model from \" + model_folder)\n", + "model_file = model_folder + \"/model.pkl\"\n", + "model = joblib.load(model_file)\n", + "\n", + "Model.register(workspace=run.experiment.workspace,\n", + " model_path = model_file,\n", + " model_name = 'diabetes_model',\n", + " tags={'Training context':'Pipeline'})\n", + "\n", + "run.complete()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core.compute import ComputeTarget, AmlCompute\n", + "from azureml.core.compute_target import ComputeTargetException\n", + "\n", + "cluster_name = \"aml-cluster\"\n", + "\n", + "# Verify that cluster exists\n", + "try:\n", + " pipeline_cluster = ComputeTarget(workspace=ws, name=cluster_name)\n", + " print('Found existing cluster, use it.')\n", + "except ComputeTargetException:\n", + " # If not, create it\n", + " compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',\n", + " max_nodes=4,\n", + " idle_seconds_before_scaledown=1800)\n", + " pipeline_cluster = ComputeTarget.create(ws, cluster_name, compute_config)\n", + "\n", + "pipeline_cluster.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Environment\n", + "from azureml.core.conda_dependencies import CondaDependencies\n", + "from azureml.core.runconfig import RunConfiguration\n", + "\n", + "# Create a Python environment for the experiment\n", + "diabetes_env = Environment(\"diabetes-pipeline-env\")\n", + "diabetes_env.python.user_managed_dependencies = False # Let Azure ML manage dependencies\n", + "diabetes_env.docker.enabled = True # Use a docker container\n", + "\n", + "# Create a set of package dependencies\n", + "diabetes_packages = CondaDependencies.create(conda_packages=['scikit-learn','pandas'],\n", + " pip_packages=['azureml-sdk'])\n", + "\n", + "# Add the dependencies to the environment\n", + "diabetes_env.python.conda_dependencies = diabetes_packages\n", + "\n", + "# Register the environment (just in case you want to use it again)\n", + "diabetes_env.register(workspace=ws)\n", + "registered_env = Environment.get(ws, 'diabetes-pipeline-env')\n", + "\n", + "# Create a new runconfig object for the pipeline\n", + "pipeline_run_config = RunConfiguration()\n", + "\n", + "# Use the compute you created above. \n", + "pipeline_run_config.target = pipeline_cluster\n", + "\n", + "# Assign the environment to the run configuration\n", + "pipeline_run_config.environment = registered_env\n", + "\n", + "print (\"Run configuration created.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.pipeline.core import PipelineData\n", + "from azureml.pipeline.steps import PythonScriptStep, EstimatorStep\n", + "from azureml.train.estimator import Estimator\n", + "\n", + "# Get the training dataset\n", + "#diabetes_ds = ws.datasets.get(\"diabetes dataset\")\n", + "\n", + "# Create a PipelineData (temporary Data Reference) for the model folder\n", + "model_folder = PipelineData(\"model_folder\", datastore=ws.get_default_datastore())\n", + "\n", + "estimator = Estimator(source_directory=training_folder,\n", + " compute_target = pipeline_cluster,\n", + " environment_definition=pipeline_run_config.environment,\n", + " entry_script='diabetes_training.py')\n", + "\n", + "# Step 1, run the estimator to train the model\n", + "train_step = EstimatorStep(name = \"Train Model\",\n", + " estimator=estimator, \n", + " estimator_entry_script_arguments=['--output_folder', model_folder],\n", + " outputs=[model_folder],\n", + " compute_target = pipeline_cluster,\n", + " allow_reuse = True)\n", + "\n", + "# Step 2, run the model registration script\n", + "register_step = PythonScriptStep(name = \"Register Model\",\n", + " source_directory = training_folder,\n", + " script_name = \"register_diabetes.py\",\n", + " arguments = ['--model_folder', model_folder],\n", + " inputs=[model_folder],\n", + " compute_target = pipeline_cluster,\n", + " runconfig = pipeline_run_config,\n", + " allow_reuse = True)\n", + "\n", + "print(\"Pipeline steps defined\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Experiment\n", + "from azureml.pipeline.core import Pipeline\n", + "from azureml.widgets import RunDetails\n", + "\n", + "# Construct the pipeline\n", + "pipeline_steps = [train_step, register_step]\n", + "pipeline = Pipeline(workspace = ws, steps=pipeline_steps)\n", + "print(\"Pipeline is built.\")\n", + "\n", + "# Create an experiment and run the pipeline\n", + "experiment = Experiment(workspace = ws, name = 'diabetes-training-pipeline')\n", + "pipeline_run = experiment.submit(pipeline, regenerate_outputs=True)\n", + "print(\"Pipeline submitted for execution.\")\n", + "\n", + "RunDetails(pipeline_run).show()\n", + "pipeline_run.wait_for_completion()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.core import Model\n", + "\n", + "for model in Model.list(ws):\n", + " print(model.name, 'version:', model.version)\n", + " for tag_name in model.tags:\n", + " tag = model.tags[tag_name]\n", + " print ('\\t',tag_name, ':', tag)\n", + " for prop_name in model.properties:\n", + " prop = model.properties[prop_name]\n", + " print ('\\t',prop_name, ':', prop)\n", + " print('\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/experimentation/Diabetes Ridge Regression Parameter Experimentation.ipynb b/experimentation/Diabetes Ridge Regression Parameter Experimentation.ipynb new file mode 100644 index 00000000..aab5e052 --- /dev/null +++ b/experimentation/Diabetes Ridge Regression Parameter Experimentation.ipynb @@ -0,0 +1,211 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Experiment with parameters for a Ridge Regression Model on the Diabetes Dataset" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook is for experimenting with different parameters to train a ridge regression model on the Diabetes dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Change out of the experimentation directory\n", + "%cd .." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import azureml.core\n", + "from azureml.core import Workspace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the workspace from the saved config file\n", + "ws = Workspace.from_config()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os, shutil\n", + "\n", + "# Create a folder for the experiment files\n", + "training_folder = 'diabetes-training'\n", + "os.makedirs(training_folder, exist_ok=True)\n", + "\n", + "# Copy the data file into the experiment folder\n", + "shutil.copy('data/diabetes.csv', os.path.join(training_folder, \"diabetes.csv\"))\n", + "\n", + "# Copy the train functions into the experiment folder\n", + "shutil.copy('diabetes_regression/training/train.py', os.path.join(training_folder, \"train.py\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $training_folder/parameters.json\n", + "{\n", + " \"training\":\n", + " {\n", + " \"alpha\": 0.3\n", + " },\n", + " \"evaluation\":\n", + " {\n", + "\n", + " },\n", + " \"scoring\":\n", + " {\n", + " \n", + " }\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%writefile $training_folder/diabetes_training.py\n", + "# Import libraries\n", + "from azureml.core import Run\n", + "import json\n", + "import os\n", + "import pandas as pd\n", + "import shutil\n", + "\n", + "from train import split_data, train_model\n", + "\n", + "# Get the experiment run context\n", + "run = Run.get_context()\n", + "\n", + "# load the diabetes dataset\n", + "print(\"Loading Data...\")\n", + "train_df = pd.read_csv('diabetes.csv')\n", + "\n", + "data = split_data(train_df)\n", + "\n", + "# Specify the parameters to test\n", + "with open(\"parameters.json\") as f:\n", + " pars = json.load(f)\n", + " train_args = pars[\"training\"]\n", + "\n", + "# Log parameters\n", + "for k, v in train_args.items():\n", + " run.log(k, v)\n", + "\n", + "model, metrics = train_model(data, train_args)\n", + "\n", + "# Log metrics\n", + "for k, v in metrics.items():\n", + " run.log(k, v)\n", + "\n", + "# Save the parameters file to the outputs folder\n", + "os.makedirs('outputs', exist_ok=True)\n", + "shutil.copy('parameters.json', os.path.join('outputs', 'parameters.json'))\n", + " \n", + "run.complete()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azureml.train.estimator import Estimator\n", + "from azureml.core import Experiment\n", + "\n", + "# Create an estimator\n", + "estimator = Estimator(source_directory=training_folder,\n", + " entry_script='diabetes_training.py',\n", + " compute_target='local',\n", + " conda_packages=['scikit-learn']\n", + " )\n", + "\n", + "# Create an experiment\n", + "experiment_name = 'diabetes-training'\n", + "experiment = Experiment(workspace = ws, name = experiment_name)\n", + "\n", + "# Run the experiment based on the estimator\n", + "run = experiment.submit(config=estimator)\n", + "run.wait_for_completion(show_output=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "metrics = run.get_metrics()\n", + "for k, v in metrics.items():\n", + " print(k, v)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for file in run.get_file_names():\n", + " print(file)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.6.10 64-bit ('OH3': conda)", + "language": "python", + "name": "python361064bitoh3conda5f7beeba8c1d407187c86667ecfb684f" + }, + "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.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8748bdd71122e63849df7970f8339cc852dc954d Mon Sep 17 00:00:00 2001 From: jotaylo Date: Thu, 5 Mar 2020 08:44:47 -0800 Subject: [PATCH 057/109] fix import (#222) Fix of importing Dataset, Datastore, Workspace --- diabetes_regression/training/train_aml.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diabetes_regression/training/train_aml.py b/diabetes_regression/training/train_aml.py index 5bf76cb4..18cfb852 100644 --- a/diabetes_regression/training/train_aml.py +++ b/diabetes_regression/training/train_aml.py @@ -23,7 +23,8 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ -from azureml.core.run import Dataset, Datastore, Run, Workspace +from azureml.core.run import Run +from azureml.core import Dataset, Datastore, Workspace import os import argparse import joblib From 806f0420add729c198dd89e4f3383067bdb33a84 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Thu, 5 Mar 2020 10:05:17 -0800 Subject: [PATCH 058/109] README refactor (#220) * Minor README fixes - Whitespace fixes - Grammar fixes - Ported some wording from Getting Started * Factor out architecture details to dedicated architecture article We don't need to go through the architecture in detail here. There's an entire article dedicated to it. A separate change will be needed for the article. * Remove architecture diagram from README --- README.md | 52 ++++++++++---------------------------- docs/images/main-flow.png | Bin 185583 -> 0 bytes 2 files changed, 14 insertions(+), 38 deletions(-) delete mode 100644 docs/images/main-flow.png diff --git a/README.md b/README.md index 77d9024f..8db8caed 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,19 @@ description: "Code which demonstrates how to set up and operationalize an MLOps [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=151&branchName=master) -MLOps will help you to understand how to build the Continuous Integration and Continuous Delivery pipeline for a ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. +MLOps will help you to understand how to build a Continuous Integration and Continuous Delivery pipeline for an ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. ![ML lifecycle](/docs/images/ml-lifecycle.png) -This template contains code and pipeline definition for a machine learning project demonstrating how to automate an end to end ML/AI workflow. The build pipelines include DevOps tasks for data sanity test, unit test, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod and integration testing. +This template contains code and pipeline definitions for a machine learning project that demonstrates how to automate an end to end ML/AI workflow. + +## Architecture and Features + +Architecture Reference: [Machine learning operationalization (MLOps) for Python models using Azure Machine Learning](https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/ai/mlops-python) + +This reference architecture shows how to implement continuous integration (CI), continuous delivery (CD), and retraining pipeline for an AI application using Azure DevOps and [Azure Machine Learning](/azure/machine-learning/service/overview-what-is-azure-ml). The solution is built on the scikit-learn diabetes dataset but can be easily adapted for any AI scenario and other popular build systems such as Jenkins and Travis. + +The build pipelines include DevOps tasks for data sanity tests, unit tests, model training on different compute targets, model version management, model evaluation/model selection, model deployment as realtime web service, staged deployment to QA/prod and integration testing. ## Prerequisite @@ -28,39 +36,13 @@ This template contains code and pipeline definition for a machine learning proje To deploy this solution in your subscription, follow the manual instructions in the [getting started](docs/getting_started.md) doc -## Architecture Diagram - -This reference architecture shows how to implement continuous integration (CI), continuous delivery (CD), and retraining pipeline for an AI application using Azure DevOps and Azure Machine Learning. The solution is built on the scikit-learn diabetes dataset but can be easily adapted for any AI scenario and other popular build systems such as Jenkins and Travis. - -![Architecture](/docs/images/main-flow.png) - -## Architecture Flow - -### Train Model - -1. Data Scientist writes/updates the code and push it to git repo. This triggers the Azure DevOps build pipeline (continuous integration). -2. Once the Azure DevOps build pipeline is triggered, it performs code quality checks, data sanity tests, unit tests, builds an [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) and publishes it in an [Azure ML Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#workspace). -3. The [Azure ML Pipeline](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-ml-pipelines) is triggered once the Azure DevOps build pipeline completes. All the tasks in this pipeline runs on Azure ML Compute. Following are the tasks in this pipeline: - - - **Train Model** task executes model training script on Azure ML Compute. It outputs a [model](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#models) file which is stored in the [run history](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#runs). - - - **Evaluate Model** task evaluates the performance of the newly trained model with the model in production. If the new model performs better than the production model, the following steps are executed. If not, they will be skipped. - - - **Register Model** task takes the improved model and registers it with the [Azure ML Model registry](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#model-registry). This allows us to version control it. - -### Deploy Model - -Once you have registered your ML model, you can use Azure ML + Azure DevOps to deploy it. - -The [Azure DevOps multi-stage pipeline](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/stages?view=azure-devops&tabs=yaml) packages the new model along with the scoring file and its python dependencies into a [docker image](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#image) and pushes it to [Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro). This image is used to deploy the model as [web service](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-azure-machine-learning-architecture#web-service) across QA and Prod environments. The QA environment is running on top of [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/) and the Prod environment is built with [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes). - ### Repo Details You can find the details of the code and scripts in the repository [here](/docs/code_description.md) ### References -- [Azure Machine Learning(Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) +- [Azure Machine Learning (Azure ML) Service Workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/overview-what-is-azure-ml) - [Azure ML CLI](https://docs.microsoft.com/en-us/azure/machine-learning/service/reference-azure-machine-learning-cli) - [Azure ML Samples](https://docs.microsoft.com/en-us/azure/machine-learning/service/samples-notebooks) - [Azure ML Python SDK Quickstart](https://docs.microsoft.com/en-us/azure/machine-learning/service/quickstart-create-workspace-with-python) @@ -68,14 +50,8 @@ You can find the details of the code and scripts in the repository [here](/docs/ ## Contributing -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit +This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit -When you submit a pull request, a CLA-bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. +When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA. -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. diff --git a/docs/images/main-flow.png b/docs/images/main-flow.png deleted file mode 100644 index a49f744028a9ed0da2dc20b75fd5546de0fb6418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185583 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 prCMA&I0t7xL;mki& Date: Fri, 6 Mar 2020 12:14:42 -0800 Subject: [PATCH 059/109] rename config.json to parameters.json (#223) AML workspace configuration files are named"config.json" by default, so renaming the file containing training parameters to "parameters.json" to avoid confusion. --- diabetes_regression/{config.json => parameters.json} | 0 diabetes_regression/training/train_aml.py | 4 ++-- docs/getting_started.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename diabetes_regression/{config.json => parameters.json} (100%) diff --git a/diabetes_regression/config.json b/diabetes_regression/parameters.json similarity index 100% rename from diabetes_regression/config.json rename to diabetes_regression/parameters.json diff --git a/diabetes_regression/training/train_aml.py b/diabetes_regression/training/train_aml.py index 18cfb852..65904b20 100644 --- a/diabetes_regression/training/train_aml.py +++ b/diabetes_regression/training/train_aml.py @@ -110,8 +110,8 @@ def main(): print("Getting training parameters") - # Load the training parameters from the config file - with open("config.json") as f: + # Load the training parameters from the parameters file + with open("parameters.json") as f: pars = json.load(f) try: train_args = pars["training"] diff --git a/docs/getting_started.md b/docs/getting_started.md index 6d3a9899..4cd8ec27 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -269,7 +269,7 @@ There are more variables used in the project. They're defined in two places: one For using Azure Pipelines, all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. -In that folder, you'll also find the `config.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. +In that folder, you'll also find the `parameters.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. #### Local configuration From 86c6a1f8322d7dfa5740bf2414a369eae6c70ed9 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Mon, 9 Mar 2020 16:10:56 -0700 Subject: [PATCH 060/109] Canary pipeline fixes (#224) * Add vars template to canary pipeline * Enable ACR authentication on AKS using a service principal - Upgrade helm version to 3.1.1 - Remove ACR secret from the abtest-model deployment --- .pipelines/abtest.yml | 3 ++- charts/abtest-model/templates/deployment.yaml | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pipelines/abtest.yml b/.pipelines/abtest.yml index 0d64e8c8..cf876181 100644 --- a/.pipelines/abtest.yml +++ b/.pipelines/abtest.yml @@ -18,9 +18,10 @@ trigger: - ml_service/util/smoke_test_scoring_service.py variables: +- template: diabetes_regression-variables-template.yml - group: 'devopsforai-aml-vg' - name: 'helmVersion' - value: 'v3.0.1' + value: 'v3.1.1' - name: 'helmDownloadURL' value: 'https://get.helm.sh/helm-$HELM_VERSION-linux-amd64.tar.gz' - name: 'blueReleaseName' diff --git a/charts/abtest-model/templates/deployment.yaml b/charts/abtest-model/templates/deployment.yaml index 13572b36..78d01cc4 100644 --- a/charts/abtest-model/templates/deployment.yaml +++ b/charts/abtest-model/templates/deployment.yaml @@ -27,5 +27,4 @@ spec: containerPort: 5001 - name: probe containerPort: 8086 - imagePullSecrets: - - name: aks-secret + From e6dbfb10545905881e46e6d76855538ccd5add13 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Wed, 11 Mar 2020 09:57:19 -0700 Subject: [PATCH 061/109] Improve Canary guide and add prerequisites (#225) --- docs/canary_ab_deployment.md | 70 ++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/docs/canary_ab_deployment.md b/docs/canary_ab_deployment.md index 4a85ea15..49edb503 100644 --- a/docs/canary_ab_deployment.md +++ b/docs/canary_ab_deployment.md @@ -1,16 +1,34 @@ -## Model deployment to AKS cluster with Canary deployment +# Model deployment to AKS cluster with Canary deployment [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython-Canary?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=133&branchName=master) -If your target deployment environment is a K8s cluster and you want to implement [Canary and/or A/B testing deployemnt strategies](http://adfpractice-fedor.blogspot.com/2019/04/deployment-strategies-with-kubernetes.html) you can follow this sample guidance. +If your target deployment environment is a Kubernetes cluster and you want to implement [Canary and/or A/B testing deployment strategies](http://adfpractice-fedor.blogspot.com/2019/04/deployment-strategies-with-kubernetes.html) you can follow this sample guide. -**Note:** It is assumed that you have an AKS instance and configured ***kubectl*** to communicate with the cluster. +- [Prerequisites](#prerequisites) +- [Install Istio on a K8s cluster](#install-istio-on-a-k8s-cluster) +- [Set up variables](#set-up-variables) +- [Configure a pipeline to build and deploy a scoring Image](#configure-a-pipeline-to-build-and-deploy-a-scoring-image) +- [Build a new Scoring Image](#build-a-new-scoring-image) -#### 1. Install Istio on a K8s cluster. +## Prerequisites -This guidance uses [Istio](https://istio.io) service mesh implememtation to control traffic routing between model versions. The instruction on installing Istio is available [here](https://docs.microsoft.com/en-us/azure/aks/servicemesh-istio-install?pivots=client-operating-system-linux). +Before continuing with this guide, you will need: -Having the Istio installed, figure out the Istio gateway endpoint on your K8s cluster: +* An [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service) cluster + * This does **not** have to be the same cluster as the example in [Getting Started: Deploy the model to Azure Kubernetes Service](/docs/getting_started.md#deploy-the-model-to-azure-kubernetes-service) + * The cluster does not have to be connected to Azure Machine Learning. + * If you want to deploy a new cluster, see [Quickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough) +* An Azure Container Registry instance that is authenticated with your Azure Kubernetes Service cluster. + * The chart you will deploy is assuming you are authenticated using a service principal. + * See [Authenticate with Azure Container Registry from Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration#configure-acr-integration-for-existing-aks-clusters) for an authentication guide. +* In Azure DevOps, a service connection to your Kubernetes cluster. + * If you do not currently have a namespace, create one named 'abtesting'. + +## Install Istio on a K8s cluster + +You'll be using the [Istio](https://istio.io) service mesh implementation to control traffic routing between model versions. Follow the instructions at [Install and use Istio in Azure Kubernetes Service (AKS)](https://docs.microsoft.com/azure/aks/servicemesh-istio-install?pivots=client-operating-system-linux). + +After Istio is installed, figure out the Istio gateway endpoint on your K8s cluster: ```bash GATEWAY_IP=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}') @@ -18,21 +36,21 @@ GATEWAY_IP=$(kubectl get svc istio-ingressgateway -n istio-system -o jsonpath='{ You don't need to create any Istio resources (e.g. Gateway or VirtualService) at this point. It will be handled by the AzDo pipeline that builds and deploys a scoring image. -#### 2. Set up variables +## Set up variables There are some extra variables that you need to setup in ***devopsforai-aml-vg*** variable group (see [getting started](./getting_started.md)): -| Variable Name | Suggested Value | -| --------------------------- | -----------------------------------------------------| -| K8S_AB_SERVICE_CONNECTION | AzDo service connection to a K8s cluster | -| K8S_AB_NAMESPACE | Namespace in a K8s cluster to deploy the model | -| IMAGE_REPO_NAME | Image reposiory name (e.g. mlopspyciamlcr.azurecr.io)| +| Variable Name | Suggested Value | Short Description | +|---------------------------|-----------------------|-----------------------------------------------------------| +| K8S_AB_SERVICE_CONNECTION | mlops-aks | Name of the service connection to your Kubernetes cluster | +| K8S_AB_NAMESPACE | abtesting | Kubernetes namespace for model deployment | +| IMAGE_REPO_NAME | [Your ACR's DNS name] | Image reposiory name (e.g. mlopspyciamlcr.azurecr.io) | -#### 3. Configure a pipeline to build and deploy a scoring Image +## Configure a pipeline to build and deploy a scoring Image Import and run the [abtest.yml](./.pipelines/abtest.yml) multistage deployment pipeline. -The result of the pipeline will be a registered Docker image in the ACR repository attached to the AML Service: +After the pipeline completes successfully, you will see a registered Docker image in the ACR repository attached to the Azure ML Service: ![scoring image](./images/scoring_image.png) @@ -44,21 +62,21 @@ NAME READY UP-TO-DATE AVAILABLE AGE model-green 1/1 1 1 19h ``` -#### 4. Build a new Scoring Image +## Build a new Scoring Image Change value of the ***SCORE_SCRIPT*** variable in the [abtest.yml](./.pipelines/abtest.yml) to point to ***scoring/scoreA.py*** and merge it to the master branch. -**Note:** ***scoreA.py*** and ***scoreB.py*** files used in this tutorial are just mockups returning either "New Model A" or "New Model B" respectively. They are used to demonstrate the concept of testing two scoring images with different models or scoring code. In real life you would implement a scoring file similar to [score.py](./../code/scoring/score.py) (see [getting started](./getting_started.md)). +**Note:** ***scoreA.py*** and ***scoreB.py*** files used in this tutorial are just mockups returning either "New Model A" or "New Model B" respectively. They are used to demonstrate the concept of testing two scoring images with different models or scoring code. In real life you would implement a scoring file similar to [score.py](./../code/scoring/score.py) (see the [Getting Started](./getting_started.md) guide). It will automatically trigger the pipeline and deploy a new scoring image with the following stages implementing ***Canary*** deployment strategy: -| Stage | Green Weight| Blue Weight| Description | -| ------------------- |-------------|------------|-----------------------------------------------------------------| -| Blue_0 |100 |0 |New image (blue) is deployed.
    But all traffic (100%) is still routed to the old (green) image.| -| Blue_50 |50 |50 |Traffic is split between old (green) and new (blue) images 50/50.| -| Blue_100 |0 |100 |All traffic (100%) is routed to the blue image.| -| Blue_Green |0 |100 |Old green image is removed. The new blue image is copied as green.
    Blue and Green images are equal.
    All traffic (100%) is routed to the blue image.| -| Green_100 |100 |0 |All traffic (100%) is routed to the green image.
    The blue image is removed +| Stage | Green Weight | Blue Weight | Description | +|------------|--------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------| +| Blue_0 | 100 | 0 | New image (blue) is deployed.
    But all traffic (100%) is still routed to the old (green) image. | +| Blue_50 | 50 | 50 | Traffic is split between old (green) and new (blue) images 50/50. | +| Blue_100 | 0 | 100 | All traffic (100%) is routed to the blue image. | +| Blue_Green | 0 | 100 | Old green image is removed. The new blue image is copied as green.
    Blue and Green images are equal.
    All traffic (100%) is routed to the blue image. | +| Green_100 | 100 | 0 | All traffic (100%) is routed to the green image.
    The blue image is removed. | **Note:** The pipeline performs the rollout without any pausing. You may want to configure [Approvals and Checks](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass) for the stages on your environment for better experience of the model testing. The environment ***abtestenv*** will be added automatically to your AzDo project after the first pipeline run. @@ -74,7 +92,7 @@ You can also emulate a simple load test on the gateway with the ***load_test.sh* ./charts/load_test.sh 10 $GATEWAY_IP/score ``` -The command above sends 10 requests to the gateway. So if the pipeline has completted stage Blue_50, the result will look like this: +The command above sends 10 requests to the gateway. So if the pipeline has completed stage Blue_50, the result will look like this: ```bash "New Model A" @@ -89,14 +107,14 @@ The command above sends 10 requests to the gateway. So if the pipeline has compl "New Model A" ``` -Despite what blue/green weights are configured now on the cluster, you can perform ***A/B testing*** and send requests directly to either blue or green images: +Regardless of the blue/green weight values set on the cluster, you can perform ***A/B testing*** and send requests directly to either blue or green images: ```bash curl --header "x-api-version: blue" $GATEWAY_IP/score curl --header "x-api-version: green" $GATEWAY_IP/score ``` -or with the load_test.sh: +or with a load_test.sh script: ```bash ./charts/load_test.sh 10 $GATEWAY_IP/score blue From 58876338ed8b70699c75ad975662d4def5a84e71 Mon Sep 17 00:00:00 2001 From: Claus M Date: Thu, 12 Mar 2020 21:42:53 +0100 Subject: [PATCH 062/109] added abtest.yml to bootstrapping (#233) --- bootstrap/bootstrap.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 71c1549b..e78fa47d 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -93,6 +93,7 @@ def replaceprojectname(project_dir, project_name, rename_name): r".pipelines/code-quality-template.yml", r".pipelines/pr.yml", r".pipelines/diabetes_regression-ci.yml", + r".pipelines/abtest.yml", r".pipelines/diabetes_regression-ci-image.yml", r".pipelines/diabetes_regression-get-model-version-template.yml", # NOQA: E501 r".pipelines/diabetes_regression-variables-template.yml", From d531b2e3ebaf593fc51d5026f172968daee8f74f Mon Sep 17 00:00:00 2001 From: Daniel Heinze Date: Sun, 15 Mar 2020 18:52:00 +0100 Subject: [PATCH 063/109] Added get_latest_model method (#231) --- .../evaluate/evaluate_model.py | 6 +- diabetes_regression/util/model_helper.py | 57 +++++++++++-------- ...abetes_regression_verify_train_pipeline.py | 4 +- 3 files changed, 37 insertions(+), 30 deletions(-) diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index f4d4c6db..83e422e8 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -26,7 +26,7 @@ from azureml.core import Run import argparse import traceback -from util.model_helper import get_model_by_tag +from util.model_helper import get_latest_model run = Run.get_context() @@ -45,7 +45,7 @@ # sources_dir = 'diabetes_regression' # path_to_util = os.path.join(".", sources_dir, "util") # sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 -# from model_helper import get_model_by_tag +# from model_helper import get_latest_model # workspace_name = os.environ.get("WORKSPACE_NAME") # experiment_name = os.environ.get("EXPERIMENT_NAME") # resource_group = os.environ.get("RESOURCE_GROUP") @@ -108,7 +108,7 @@ firstRegistration = False tag_name = 'experiment_name' - model = get_model_by_tag( + model = get_latest_model( model_name, tag_name, exp.name, ws) if (model is not None): diff --git a/diabetes_regression/util/model_helper.py b/diabetes_regression/util/model_helper.py index 98df0bb8..ceceff41 100644 --- a/diabetes_regression/util/model_helper.py +++ b/diabetes_regression/util/model_helper.py @@ -22,20 +22,20 @@ def get_current_workspace() -> Workspace: return experiment.workspace -def get_model_by_tag( +def get_latest_model( model_name: str, - tag_name: str, - tag_value: str, + tag_name: str = None, + tag_value: str = None, aml_workspace: Workspace = None ) -> AMLModel: """ Retrieves and returns the latest model from the workspace - by its name and tag. + by its name and (optional) tag. Parameters: aml_workspace (Workspace): aml.core Workspace that the model lives. model_name (str): name of the model we are looking for - tag (str): the tag value the model was registered under. + (optional) tag (str): the tag value & name the model was registered under. Return: A single aml model from the workspace that matches the name and tag. @@ -44,37 +44,44 @@ def get_model_by_tag( # Validate params. cannot be None. if model_name is None: raise ValueError("model_name[:str] is required") - if tag_name is None: - raise ValueError("tag_name[:str] is required") - if tag_value is None: - raise ValueError("tag[:str] is required") + if aml_workspace is None: + print("No workspace defined - using current experiment workspace.") aml_workspace = get_current_workspace() - # get model by tag. - model_list = AMLModel.list( - aml_workspace, name=model_name, - tags=[[tag_name, tag_value]], latest=True - ) + model_list = None + tag_ext = "" + + # Get lastest model + # True: by name and tags + if tag_name is not None and tag_value is not None: + model_list = AMLModel.list( + aml_workspace, name=model_name, + tags=[[tag_name, tag_value]], latest=True + ) + tag_ext = f"tag_name: {tag_name}, tag_value: {tag_value}." + # False: Only by name + else: + model_list = AMLModel.list( + aml_workspace, name=model_name, latest=True) # latest should only return 1 model, but if it does, # then maybe sdk or source code changed. - should_not_happen = ("Found more than one model " - "for the latest with {{tag_name: {tag_name}," - "tag_value: {tag_value}. " - "Models found: {model_list}}}")\ - .format(tag_name=tag_name, tag_value=tag_value, - model_list=model_list) - no_model_found = ("No Model found with {{tag_name: {tag_name} ," - "tag_value: {tag_value}.}}")\ - .format(tag_name=tag_name, tag_value=tag_value) + + # define the error messages + too_many_model_message = ("Found more than one latest model. " + f"Models found: {model_list}. " + f"{tag_ext}") + + no_model_found_message = (f"No Model found with name: {model_name}. " + f"{tag_ext}") if len(model_list) > 1: - raise ValueError(should_not_happen) + raise ValueError(too_many_model_message) if len(model_list) == 1: return model_list[0] else: - print(no_model_found) + print(no_model_found_message) return None except Exception: raise diff --git a/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py index f0a4c965..306f2259 100644 --- a/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py @@ -3,7 +3,7 @@ import os from azureml.core import Run, Experiment, Workspace from ml_service.util.env_variables import Env -from diabetes_regression.util.model_helper import get_model_by_tag +from diabetes_regression.util.model_helper import get_latest_model def main(): @@ -53,7 +53,7 @@ def main(): try: tag_name = 'BuildId' - model = get_model_by_tag( + model = get_latest_model( model_name, tag_name, build_id, exp.workspace) if (model is not None): print("Model was registered for this build.") From 1d2d7733608b010610c98043d0d2a8a0e5e3b5bb Mon Sep 17 00:00:00 2001 From: Claus M Date: Mon, 16 Mar 2020 21:28:34 +0100 Subject: [PATCH 064/109] Add an env var flag to recreate AMLS Environment (#230) --- .env.example | 3 +++ .pipelines/diabetes_regression-variables-template.yml | 7 ++++++- .../pipelines/diabetes_regression_build_train_pipeline.py | 3 +-- .../diabetes_regression_build_train_pipeline_with_r.py | 2 +- ml_service/util/env_variables.py | 6 ++++++ 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index d68b73c5..01dc40e8 100644 --- a/.env.example +++ b/.env.example @@ -48,3 +48,6 @@ RUN_EVALUATION = 'true' # Set to true cancels the Azure ML pipeline run when evaluation criteria are not met. ALLOW_RUN_CANCEL = 'true' + +# Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. +AML_REBUILD_ENVIRONMENT = 'false' diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index fdccb3b7..def14549 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -66,4 +66,9 @@ variables: # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time # to skip training and deploy a model registered by a previous build. - name: modelbuildid - value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] \ No newline at end of file + value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] + + + # Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. + # - name: AML_REBUILD_ENVIRONMENT + # value: "false" diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index f0e7bf3a..2fb16f09 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -33,8 +33,7 @@ def main(): # Create a reusable Azure ML environment environment = get_environment( - aml_workspace, e.aml_env_name, create_new=False) # NOQA: E501 - + aml_workspace, e.aml_env_name, create_new=e.rebuild_env) # run_config = RunConfiguration() run_config.environment = environment diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index ef42d63e..b49ae53d 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -31,7 +31,7 @@ def main(): # Make sure to include `r-essentials' # in diabetes_regression/conda_dependencies.yml environment = get_environment( - aml_workspace, e.aml_env_name, create_new=False) # NOQA: E501 + aml_workspace, e.aml_env_name, create_new=e.rebuild_env) # NOQA: E501 run_config = RunConfiguration() run_config.environment = environment diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index c00ee603..c734e098 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -46,6 +46,8 @@ def __init__(self): self._allow_run_cancel = os.environ.get( "ALLOW_RUN_CANCEL", "true") self._aml_env_name = os.environ.get("AML_ENV_NAME") + self._rebuild_env = os.environ.get("AML_REBUILD_ENVIRONMENT", + "false").lower().strip() == "true" @property def workspace_name(self): @@ -166,3 +168,7 @@ def allow_run_cancel(self): @property def aml_env_name(self): return self._aml_env_name + + @property + def rebuild_env(self): + return self._rebuild_env From 2d543113f19df090d18f5c0dae62e1c27bbe8258 Mon Sep 17 00:00:00 2001 From: Eugene Fedorenko Date: Tue, 17 Mar 2020 10:44:11 -0700 Subject: [PATCH 065/109] Latest Azure ML SDK in the Docker image (#235) upgrade to latest aml sdk for build agent --- diabetes_regression/ci_dependencies.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index d6a52ed0..a6033e42 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -15,7 +15,7 @@ dependencies: - pip=20.0.2 - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.0.85 + - azureml-sdk==1.1.5.1 # Additional pip dependencies for the CI environment. - pytest==5.3.1 @@ -24,4 +24,4 @@ dependencies: - python-dotenv==0.10.3 - flake8==3.7.9 - flake8_formatter_junit_xml==0.0.6 - - azure-cli==2.0.81 + - azure-cli==2.2.0 From 352ebbeba745ae1f421dddc7f36f81c4db766eee Mon Sep 17 00:00:00 2001 From: jotaylo Date: Tue, 24 Mar 2020 10:48:35 -0700 Subject: [PATCH 066/109] Model registration tags come from parameters.json (#237) --- .../evaluate/evaluate_model.py | 2 +- diabetes_regression/parameters.json | 4 ++ .../register/register_model.py | 40 ++++++++++++++----- diabetes_regression/training/train_aml.py | 2 +- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index 83e422e8..125a16a5 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -83,7 +83,7 @@ "--model_name", type=str, help="Name of the Model", - default="sklearn_regression_model.pkl", + default="diabetes_model.pkl", ) parser.add_argument( diff --git a/diabetes_regression/parameters.json b/diabetes_regression/parameters.json index 859fd84d..48f7227d 100644 --- a/diabetes_regression/parameters.json +++ b/diabetes_regression/parameters.json @@ -6,6 +6,10 @@ "evaluation": { + }, + "registration": + { + "tags": ["mse"] }, "scoring": { diff --git a/diabetes_regression/register/register_model.py b/diabetes_regression/register/register_model.py index 3376285e..bca55a83 100644 --- a/diabetes_regression/register/register_model.py +++ b/diabetes_regression/register/register_model.py @@ -23,6 +23,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ +import json import os import sys import argparse @@ -69,8 +70,9 @@ def main(): "--model_name", type=str, help="Name of the Model", - default="sklearn_regression_model.pkl", + default="diabetes_model.pkl", ) + parser.add_argument( "--step_input", type=str, @@ -85,24 +87,42 @@ def main(): model_name = args.model_name model_path = args.step_input + print("Getting registration parameters") + + # Load the registration parameters from the parameters file + with open("parameters.json") as f: + pars = json.load(f) + try: + register_args = pars["registration"] + except KeyError: + print("Could not load registration values from file") + register_args = {"tags": []} + + model_tags = {} + for tag in register_args["tags"]: + try: + mtag = run.parent.get_metrics()[tag] + model_tags[tag] = mtag + except KeyError: + print(f"Could not find {tag} metric on parent run.") + # load the model print("Loading model from " + model_path) model_file = os.path.join(model_path, model_name) model = joblib.load(model_file) - model_mse = run.parent.get_metrics()["mse"] parent_tags = run.parent.get_tags() try: build_id = parent_tags["BuildId"] except KeyError: build_id = None print("BuildId tag not found on parent run.") - print("Tags present: {parent_tags}") + print(f"Tags present: {parent_tags}") try: build_uri = parent_tags["BuildUri"] except KeyError: build_uri = None print("BuildUri tag not found on parent run.") - print("Tags present: {parent_tags}") + print(f"Tags present: {parent_tags}") if (model is not None): dataset_id = parent_tags["dataset_id"] @@ -110,7 +130,7 @@ def main(): register_aml_model( model_file, model_name, - model_mse, + model_tags, exp, run_id, dataset_id) @@ -118,7 +138,7 @@ def main(): register_aml_model( model_file, model_name, - model_mse, + model_tags, exp, run_id, dataset_id, @@ -127,7 +147,7 @@ def main(): register_aml_model( model_file, model_name, - model_mse, + model_tags, exp, run_id, dataset_id, @@ -152,7 +172,7 @@ def model_already_registered(model_name, exp, run_id): def register_aml_model( model_path, model_name, - model_mse, + model_tags, exp, run_id, dataset_id, @@ -162,8 +182,8 @@ def register_aml_model( try: tagsValue = {"area": "diabetes_regression", "run_id": run_id, - "experiment_name": exp.name, - "mse": model_mse} + "experiment_name": exp.name} + tagsValue.update(model_tags) if (build_id != 'none'): model_already_registered(model_name, exp, run_id) tagsValue["BuildId"] = build_id diff --git a/diabetes_regression/training/train_aml.py b/diabetes_regression/training/train_aml.py index 65904b20..9303198b 100644 --- a/diabetes_regression/training/train_aml.py +++ b/diabetes_regression/training/train_aml.py @@ -55,7 +55,7 @@ def main(): "--model_name", type=str, help="Name of the Model", - default="sklearn_regression_model.pkl", + default="diabetes_model.pkl", ) parser.add_argument( From f2dc7d77ce757e0eebfadbf301dfd9bff2ffbe3e Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Wed, 25 Mar 2020 10:52:52 -0700 Subject: [PATCH 067/109] update doc with aks auth details (#239) --- docs/getting_started.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 4cd8ec27..a737354b 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -17,6 +17,7 @@ We recommend working through this guide completely to ensure everything is worki - [Set up the Pipeline](#set-up-the-pipeline) - [Further Exploration](#further-exploration) - [Deploy the model to Azure Kubernetes Service](#deploy-the-model-to-azure-kubernetes-service) + - [Web Service Authentication on Azure Kubernetes Service](#web-service-authentication-on-azure-kubernetes-service) - [Deploy the model to Azure App Service (Azure Web App for containers)](#deploy-the-model-to-azure-app-service-azure-web-app-for-containers) - [Example pipelines using R](#example-pipelines-using-r) - [Observability and Monitoring](#observability-and-monitoring) @@ -48,15 +49,15 @@ Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline defi The variable group should contain the following required variables. **Azure resources that don't exist yet will be created in the [Provisioning resources using Azure Pipelines](#provisioning-resources-using-azure-pipelines) step below.** -| Variable Name | Suggested Value | Short description | -| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| BASE_NAME | [your project name] | Unique naming prefix for created resources - max 10 chars, letters and numbers only | -| LOCATION | centralus | [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/), no spaces | -| RESOURCE_GROUP | mlops-RG | Azure Resource Group name | -| WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | -| AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | -| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | -| ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | +| Variable Name | Suggested Value | Short description | +| ------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| BASE_NAME | [your project name] | Unique naming prefix for created resources - max 10 chars, letters and numbers only | +| LOCATION | centralus | [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/), no spaces | +| RESOURCE_GROUP | mlops-RG | Azure Resource Group name | +| WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | +| AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | +| WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | +| ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. @@ -200,6 +201,10 @@ After successfully deploying to Azure Container Instances, the next stage will d Consider enabling [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. +#### Web Service Authentication on Azure Kubernetes Service + +When deploying to Azure Kubernetes Service, key-based authentication is enabled by default. You can also enable token-based authentication. Token-based authentication requires clients to use an Azure Active Directory account to request an authentication token, which is used to make requests to the deployed service. For more details on how to authenticate with ML web service deployed on the AKS service please follow [Smoke Test](../ml_service/util/smoke_test_scoring_service.py) or the Azure documentation on [web service authentication](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-deploy-azure-kubernetes-service#web-service-authentication). + ### Deploy the model to Azure App Service (Azure Web App for containers) If you want to deploy your scoring service as an [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) instead of Azure Container Instances and Azure Kubernetes Service, follow these additional steps. From a562b598585d097683bfb039503648f600df2a21 Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Wed, 25 Mar 2020 17:30:26 -0700 Subject: [PATCH 068/109] Sudivate dockertag (#240) --- docs/custom_container.md | 16 +++++++++++++--- environment_setup/docker-image-pipeline.yml | 8 +++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/custom_container.md b/docs/custom_container.md index 94851d84..8c031d15 100644 --- a/docs/custom_container.md +++ b/docs/custom_container.md @@ -7,12 +7,21 @@ to run test and deployment code. `mcr.microsoft.com/mlops/python:latest` is built with this [Dockerfile](../environment_setup/Dockerfile). +Additionally mcr.microsoft.com/mlops/python image is also tagged with below tags. + +| Image Tags | Description | +| ----------------------------------------------- | :---------------------------------------------------------------------------------------- | +| mcr.microsoft.com/mlops/python:latest | latest image | +| mcr.microsoft.com/mlops/python:build-[id] | where [id] is Azure Devops build id e.g. mcr.microsoft.com/mlops/python:build-20200325.1 | +| mcr.microsoft.com/mlops/python:amlsdk-[version] | where [version] is aml sdk version e.g. mcr.microsoft.com/mlops/python:amlsdk-1.1.5.1 | +| mcr.microsoft.com/mlops/python:release-[id] | where [id] is github release id e.g. mcr.microsoft.com/mlops/python:release-3.0.0 | | + In your project you will want to build your own Docker image that only contains the dependencies and tools required for your use case. This image will be more likely smaller and therefore faster, and it -will be totally maintained by your team. +will be totally maintained by your team. -## Provision an Azure Container Registry +## Provision an Azure Container Registry An Azure Container Registry is deployed along your Azure ML Workspace to manage models. You can use that registry instance to store your MLOps container image as well, or @@ -21,6 +30,7 @@ provision a separate instance. ## Create a Registry Service Connection [Create a service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#sep-docreg) to your Azure Container Registry: + - As *Connection type*, select *Docker Registry* - As *Registry type*, select *Azure Container Registry* - As *Azure container registry*, select your Container registry instance @@ -83,7 +93,7 @@ Run the pipeline and ensure your container has been used. Especially when working in a team, it's possible for environment changes across branches to interfere with one another. For example, if the master branch is using scikit-learn and you create a branch to use Tensorflow instead, and you -decide to remove scikit-learn from the +decide to remove scikit-learn from the [ci_dependencies.yml](../diabetes_regression/ci_dependencies.yml) Conda environment definition and run the [docker-image-pipeline.yml](../environment_setup/docker-image-pipeline.yml) Docker image, then the master branch will stop building. diff --git a/environment_setup/docker-image-pipeline.yml b/environment_setup/docker-image-pipeline.yml index f15ff290..29587533 100644 --- a/environment_setup/docker-image-pipeline.yml +++ b/environment_setup/docker-image-pipeline.yml @@ -16,8 +16,8 @@ trigger: variables: containerRegistry: $[coalesce(variables['acrServiceConnection'], 'acrconnection')] - imageName: $[coalesce(variables['agentImageName'], 'public/mlops/python')] - + imageName: $[coalesce(variables['agentImageName'], 'public/mlops/python')] + steps: - task: Docker@2 displayName: Build and Push @@ -26,7 +26,9 @@ steps: containerRegistry: '$(containerRegistry)' repository: '$(imageName)' tags: | - $(Build.BuildNumber) + ${{format('build-{0}', '$(Build.BuildNumber)')}} + ${{format('amlsdk-{0}', '$(amlsdkversion)')}} + ${{format('release-{0}', '$(githubrelease)')}} latest buildContext: '$(Build.SourcesDirectory)' dockerFile: '$(Build.SourcesDirectory)/environment_setup/Dockerfile' From cace90de952be9057f944dc7092a8bda4ebea0f3 Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Wed, 25 Mar 2020 17:34:12 -0700 Subject: [PATCH 069/109] set allow reuse to true (#242) Co-authored-by: Eugene Fedorenko --- .../pipelines/diabetes_regression_build_train_pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index 2fb16f09..c511f7db 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -106,7 +106,7 @@ def main(): "--dataset_name", dataset_name, ], runconfig=run_config, - allow_reuse=False, + allow_reuse=True, ) print("Step Train created") From af2b77295365f449d535a4903f5516561e82b9fd Mon Sep 17 00:00:00 2001 From: jotaylo Date: Mon, 30 Mar 2020 09:29:30 -0700 Subject: [PATCH 070/109] Moving code integration guide into this repo (#243) * Moving code integration guide into this repo * dtzar feedback * add recommendation --- README.md | 2 +- bootstrap/README.md | 34 ++++++----------- docs/code_description.md | 3 +- docs/custom_model.md | 80 ++++++++++++++++++++++++++++++++++++++++ docs/getting_started.md | 2 +- 5 files changed, 96 insertions(+), 25 deletions(-) create mode 100644 docs/custom_model.md diff --git a/README.md b/README.md index 8db8caed..0f9ab4a6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ The build pipelines include DevOps tasks for data sanity tests, unit tests, mode ## Getting Started -To deploy this solution in your subscription, follow the manual instructions in the [getting started](docs/getting_started.md) doc +To deploy this solution in your subscription, follow the manual instructions in the [getting started](docs/getting_started.md) doc. Then optionally follow the guide for [integrating your own code](docs/custom_model.md) with this repository template. ### Repo Details diff --git a/bootstrap/README.md b/bootstrap/README.md index 443f926a..d5db8a62 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -1,28 +1,18 @@ # Bootstrap from MLOpsPython repository -To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. Bootstrapping will prepare a similar directory structure for your project which includes renaming files and folders, deleting and cleaning up some directories and fixing imports and absolute path based on your project name. This will enable reusing various resources like pre-built pipelines and scripts for your new project. +To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. -## Generating the project structure +Bootstrapping will prepare a directory structure for your project which includes: -To bootstrap from the existing MLOpsPython repository clone this repository, ensure Python is installed locally, and run bootstrap.py script as below +* renaming files and folders from the base project name `diabetes` to your project name +* fixing imports and absolute path based on your project name +* deleting and cleaning up some directories -`python bootstrap.py --d [dirpath] --n [projectname]` - -Where `[dirpath]` is the absolute path to the root of your directory where MLOps repo is cloned and `[projectname]` is the name of your ML project. - -The script renames folders, files and files' content from the base project name `diabetes` to your project name. However, you might need to manually rename variables defined in a variable group and their values. - -[This article](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production#use-your-own-model-with-mlopspython-code-template) will also assist to use this code template for your own ML project. - -### Using an existing dataset +To bootstrap from the existing MLOpsPython repository: -The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. To use your own data, you need to [create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your workspace and add a DATASET_NAME variable in the ***devopsforai-aml-vg*** variable group with the Dataset name. You'll also need to modify the test cases in the **ml_service/util/smoke_test_scoring_service.py** script to match the schema of the training features in your dataset. - -## Customizing the CI and AML environments - -In your project you will want to customize your own Docker image and Conda environment to use only the dependencies and tools required for your use case. This requires you to edit the following environment definition files: - -- The Azure ML training and scoring Conda environment defined in [conda_dependencies.yml](diabetes_regression/conda_dependencies.yml). -- The CI Docker image and Conda environment used by the Azure DevOps build agent. See [instructions for customizing the Azure DevOps job container](../docs/custom_container.md). - -You will want to synchronize dependency versions as appropriate between both environment definitions (for example, ML libraries used both in training and in unit tests). +1. Ensure Python 3 is installed locally +1. Clone this repository locally +1. Run bootstrap.py script +`python bootstrap.py --d [dirpath] --n [projectname]` + * `[dirpath]` is the absolute path to the root of the directory where MLOpsPython is cloned + * `[projectname]` is the name of your ML project diff --git a/docs/code_description.md b/docs/code_description.md index 22bfe793..351b4c34 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -67,7 +67,8 @@ The repository provides a template with folders structure suitable for maintaini ### Training Step -- `diabetes_regression/training/train.py` : a training step of an ML training pipeline. +- `diabetes_regression/training/train_aml.py`: a training step of an ML training pipeline. +- `diabetes_regression/training/train.py` : ML functionality called by train_aml.py - `diabetes_regression/training/R/r_train.r` : training a model with R basing on a sample dataset (weight_data.csv). - `diabetes_regression/training/R/train_with_r.py` : a python wrapper (ML Pipeline Step) invoking R training script on ML Compute - `diabetes_regression/training/R/train_with_r_on_databricks.py` : a python wrapper (ML Pipeline Step) invoking R training script on Databricks Compute diff --git a/docs/custom_model.md b/docs/custom_model.md new file mode 100644 index 00000000..6515bcbe --- /dev/null +++ b/docs/custom_model.md @@ -0,0 +1,80 @@ +# Bring your own code with the MLOpsPython repository template + +This document provides steps to follow when using this repository as a template to train models and deploy the models with real-time inference in Azure ML with your own scripts and data. + +1. Follow the MLOpsPython [Getting Started](https://github.com/microsoft/MLOpsPython/blob/master/docs/getting_started.md) guide +1. Follow the MLOpsPython [bootstrap instructions](https://github.com/microsoft/MLOpsPython/blob/master/bootstrap/README.md) to create your project starting point +1. Configure training data +1. [If necessary] Convert your ML experimental code into production ready code +1. Replace the training code +1. Update the evaluation code +1. Customize the build agent environment +1. [If appropriate] Replace the score code + +## Follow the Getting Started guide + +Follow the [Getting Started](https://github.com/microsoft/MLOpsPython/blob/master/docs/getting_started.md) guide to set up the infrastructure and pipelines to execute MLOpsPython. + +## Follow the Bootstrap instructions + +The [Bootstrap from MLOpsPython repository](https://github.com/microsoft/MLOpsPython/blob/master/bootstrap/README.md) guide will help you to quickly prepare the repository for your project. + +**Note:** Since the bootstrap script will rename the `diabetes_regression` folder to the project name of your choice, we'll refer to your project as `[project name]` when paths are involved. + +## Configure training data + +The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. + +To use your own data: + +1. [Create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your Azure ML workspace +1. Update the `DATASET_NAME` and `DATASTORE_NAME` variables in `.pipelines/[project name]-variables-template.yml` + +## Convert your ML experimental code into production ready code + +The MLOpsPython template creates an Azure Machine Learning (ML) pipeline that invokes a set of [Azure ML pipeline steps](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps) (see `ml_service/pipelines/[project name]_build_train_pipeline.py`). If your experiment is currently in a Jupyter notebook, it will need to be refactored into scripts that can be run independantly and dropped into the template which the existing Azure ML pipeline steps utilize. + +1. Refactor your experiment code into scripts +1. [Recommended] Prepare unit tests + +Examples of all these scripts are provided in this repository. +See the [Convert ML experimental code to production code tutorial](https://docs.microsoft.com/azure/machine-learning/tutorial-convert-ml-experiment-to-production) for a step by step guide and additional details. + +## Replace training code + +The template contains three scripts in the `[project name]/training` folder. Update these scripts for your experiment code. + +* `train.py` contains the platform-agnostic logic required to do basic data preparation and train the model. This script can be invoked against a static data file for local development. +* `train_aml.py` is the entry script for the ML pipeline step. It invokes the functions in `train.py` in an Azure ML context and adds logging. `train_aml.py` loads parameters for training from `[project name]/parameters.json` and passes them to the training function in `train.py`. If your experiment code can be refactored to match the function signatures in `train.py`, this file shouldn't need many changes. +* `test_train.py` contains tests that guard against functional regressions in `train.py`. Remove this file if you have no tests for your own code. + +Add any dependencies required by training to `[project name]/conda_dependencies.yml]`. This file will be used to generate the environment that the pipeline steps will run in. + +## Update evaluation code + +The MLOpsPython template uses the evaluate_model script to compare the performance of the newly trained model and the current production model based on Mean Squared Error. If the performance of the newly trained model is better than the current production model, then the pipelines continue. Otherwise, the pipelines are canceled. + +To keep the evaluation step, replace all instances of `mse` in `[project name]/evaluate/evaluate_model.py` with the metric that you want. + +To disable the evaluation step, either: + +* set the DevOps pipeline variable `RUN_EVALUATION` to `false` +* uncomment `RUN_EVALUATION` in `.pipelines/[project name]-variables-template.yml` and set the value to `false` + +## Customize the build agent environment + +The DevOps pipeline definitions in the MLOpsPython template run several steps in a Docker container that contains the dependencies required to work through the Getting Started guide. If additional dependencies are required to run your unit tests or generate your Azure ML pipeline, there are a few options: + +* Add a pipeline step to install dependencies required by unit tests to `.pipelines/code-quality-template.yml`. Recommended if you only have a small number of test dependencies. +* Create a new Docker image containing your dependencies. See [docs/custom_container.md](custom_container.md). Recommended if you have a larger number of dependencies, or if the overhead of installing additional dependencies on each run is too high. +* Remove the container references from the pipeline definition files and run the pipelines on self hosted agents with dependencies pre-installed. + +## Replace score code + +For the model to provide real-time inference capabilities, the score code needs to be replaced. The MLOpsPython template uses the score code to deploy the model to do real-time scoring on ACI, AKS, or Web apps. + +If you want to keep scoring: + +1. Update or replace `[project name]/scoring/score.py` +1. Add any dependencies required by scoring to `[project name]/conda_dependencies.yml` +1. Modify the test cases in the `ml_service/util/smoke_test_scoring_service.py` script to match the schema of the training features in your data diff --git a/docs/getting_started.md b/docs/getting_started.md index a737354b..c89ae6d7 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -263,7 +263,7 @@ To remove the resources created for this project, use the [/environment_setup/ia ## Next Steps: Integrating your project -* Follow the [bootstrap instructions](../bootstrap/README.md) to create a starting point for your project use case. This guide includes information on bringing your own code to this repository template. +* The [custom model](custom_model.md) guide includes information on bringing your own code to this repository template. * Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. ### Additional Variables and Configuration From 27afdbb919690f1846aeddc45c44f0c206781a8d Mon Sep 17 00:00:00 2001 From: jotaylo Date: Tue, 31 Mar 2020 10:36:59 -0700 Subject: [PATCH 071/109] clearer explanation of the pipeline stages in the getting started guide (#247) --- docs/getting_started.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index c89ae6d7..86eb73df 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -151,16 +151,29 @@ Also check the published training pipeline in the **mlops-AML-WS** workspace in Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch! -* The first stage of the pipeline, **Model CI**, does linting, unit testing, code coverage, building, and publishes an **ML Training Pipeline** in an **ML Workspace**. +The pipeline stages are summarized below: -* The second stage of the pipeline, **Train model**, triggers the run of the Azure ML training pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation happens on an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, the stage runs an agentless job that waits for the completion of the Azure ML job. This allows the pipeline to wait for training completion for hours or even days without using agent resources. +#### Model CI -* **Note:** If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the pipeline will be **canceled**. - * In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' - * See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the pipeline reporting logic. - * [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. +- Linting (code quality analysis) +- Unit tests and code coverage analysis +- Build and publish *ML Training Pipeline* in an *ML Workspace* -* The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). After deployment, it runs a *smoke test* for validation. The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. +#### Train model + +- Determine the ID of the *ML Training Pipeline* published in the previous stage. +- Trigger the *ML Training Pipeline* and waits for it to complete. + - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. +- Determine if a new model was registered by the *ML Training Pipeline*. + - If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the *ML Training Pipeline* will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' + - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the ML pipeline reporting logic. + - [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. + +#### Deploy to ACI + +- Deploy the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). +- Smoke test + - The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. From 319cae664381fa3e148244c5e2aa38ec593e37db Mon Sep 17 00:00:00 2001 From: jotaylo Date: Thu, 2 Apr 2020 09:28:37 -0700 Subject: [PATCH 072/109] Making changes to experiment notebook based on changes to tutorial document (#249) * making changes to notebook based on changes to tutorial document * test update to assert_almost_equal * reference repo details in byoc guide --- bootstrap/README.md | 2 +- diabetes_regression/training/test_train.py | 2 +- docs/custom_model.md | 10 +- .../Diabetes Ridge Regression Training.ipynb | 162 ++++++++++-------- 4 files changed, 97 insertions(+), 79 deletions(-) diff --git a/bootstrap/README.md b/bootstrap/README.md index d5db8a62..027512bf 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -4,7 +4,7 @@ To use this existing project structure and scripts for your new ML project, you Bootstrapping will prepare a directory structure for your project which includes: -* renaming files and folders from the base project name `diabetes` to your project name +* renaming files and folders from the base project name `diabetes_regression` to your project name * fixing imports and absolute path based on your project name * deleting and cleaning up some directories diff --git a/diabetes_regression/training/test_train.py b/diabetes_regression/training/test_train.py index d121ecbc..e1a79781 100644 --- a/diabetes_regression/training/test_train.py +++ b/diabetes_regression/training/test_train.py @@ -10,7 +10,7 @@ def test_train_model(): reg_model = train_model(data, {"alpha": 1.2}) preds = reg_model.predict([[1], [2]]) - np.testing.assert_equal(preds, [9.93939393939394, 9.03030303030303]) + np.testing.assert_almost_equal(preds, [9.93939393939394, 9.03030303030303]) def test_get_model_metrics(): diff --git a/docs/custom_model.md b/docs/custom_model.md index 6515bcbe..bce1fb8a 100644 --- a/docs/custom_model.md +++ b/docs/custom_model.md @@ -2,8 +2,8 @@ This document provides steps to follow when using this repository as a template to train models and deploy the models with real-time inference in Azure ML with your own scripts and data. -1. Follow the MLOpsPython [Getting Started](https://github.com/microsoft/MLOpsPython/blob/master/docs/getting_started.md) guide -1. Follow the MLOpsPython [bootstrap instructions](https://github.com/microsoft/MLOpsPython/blob/master/bootstrap/README.md) to create your project starting point +1. Follow the MLOpsPython [Getting Started](getting_started.md) guide +1. Follow the MLOpsPython [bootstrap instructions](../bootstrap/README.md) to create your project starting point 1. Configure training data 1. [If necessary] Convert your ML experimental code into production ready code 1. Replace the training code @@ -13,11 +13,13 @@ This document provides steps to follow when using this repository as a template ## Follow the Getting Started guide -Follow the [Getting Started](https://github.com/microsoft/MLOpsPython/blob/master/docs/getting_started.md) guide to set up the infrastructure and pipelines to execute MLOpsPython. +Follow the [Getting Started](getting_started.md) guide to set up the infrastructure and pipelines to execute MLOpsPython. + +Take a look at the [Repo Details](code_description.md) document for a description of the structure of this repository. ## Follow the Bootstrap instructions -The [Bootstrap from MLOpsPython repository](https://github.com/microsoft/MLOpsPython/blob/master/bootstrap/README.md) guide will help you to quickly prepare the repository for your project. +The [Bootstrap from MLOpsPython repository](../bootstrap/README.md) guide will help you to quickly prepare the repository for your project. **Note:** Since the bootstrap script will rename the `diabetes_regression` folder to the project name of your choice, we'll refer to your project as `[project name]` when paths are involved. diff --git a/experimentation/Diabetes Ridge Regression Training.ipynb b/experimentation/Diabetes Ridge Regression Training.ipynb index 5e507f96..fa192115 100644 --- a/experimentation/Diabetes Ridge Regression Training.ipynb +++ b/experimentation/Diabetes Ridge Regression Training.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -24,7 +24,8 @@ "from sklearn.linear_model import Ridge\n", "from sklearn.metrics import mean_squared_error\n", "from sklearn.model_selection import train_test_split\n", - "import joblib" + "import joblib\n", + "import pandas as pd" ] }, { @@ -36,16 +37,21 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "X, y = load_diabetes(return_X_y=True)" + "sample_data = load_diabetes()\n", + "\n", + "df = pd.DataFrame(\n", + " data=sample_data.data,\n", + " columns=sample_data.feature_names)\n", + "df['Y'] = sample_data.target" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -57,29 +63,12 @@ } ], "source": [ - "print(X.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(442,)\n" - ] - } - ], - "source": [ - "print(y.shape)" + "print(df.shape)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -103,16 +92,17 @@ " \n", " \n", " \n", - " 0\n", - " 1\n", - " 2\n", - " 3\n", - " 4\n", - " 5\n", - " 6\n", - " 7\n", - " 8\n", - " 9\n", + " age\n", + " sex\n", + " bmi\n", + " bp\n", + " s1\n", + " s2\n", + " s3\n", + " s4\n", + " s5\n", + " s6\n", + " Y\n", " \n", " \n", " \n", @@ -128,19 +118,21 @@ " 4.420000e+02\n", " 4.420000e+02\n", " 4.420000e+02\n", + " 442.000000\n", " \n", " \n", " mean\n", - " -3.639623e-16\n", - " 1.309912e-16\n", - " -8.013951e-16\n", - " 1.289818e-16\n", - " -9.042540e-17\n", - " 1.301121e-16\n", - " -4.563971e-16\n", - " 3.863174e-16\n", - " -3.848103e-16\n", - " -3.398488e-16\n", + " -3.634285e-16\n", + " 1.308343e-16\n", + " -8.045349e-16\n", + " 1.281655e-16\n", + " -8.835316e-17\n", + " 1.327024e-16\n", + " -4.574646e-16\n", + " 3.777301e-16\n", + " -3.830854e-16\n", + " -3.412882e-16\n", + " 152.133484\n", " \n", " \n", " std\n", @@ -154,6 +146,7 @@ " 4.761905e-02\n", " 4.761905e-02\n", " 4.761905e-02\n", + " 77.093005\n", " \n", " \n", " min\n", @@ -167,6 +160,7 @@ " -7.639450e-02\n", " -1.260974e-01\n", " -1.377672e-01\n", + " 25.000000\n", " \n", " \n", " 25%\n", @@ -180,6 +174,7 @@ " -3.949338e-02\n", " -3.324879e-02\n", " -3.317903e-02\n", + " 87.000000\n", " \n", " \n", " 50%\n", @@ -193,6 +188,7 @@ " -2.592262e-03\n", " -1.947634e-03\n", " -1.077698e-03\n", + " 140.500000\n", " \n", " \n", " 75%\n", @@ -206,6 +202,7 @@ " 3.430886e-02\n", " 3.243323e-02\n", " 2.791705e-02\n", + " 211.500000\n", " \n", " \n", " max\n", @@ -219,15 +216,16 @@ " 1.852344e-01\n", " 1.335990e-01\n", " 1.356118e-01\n", + " 346.000000\n", " \n", " \n", "\n", "" ], "text/plain": [ - " 0 1 2 3 4 \\\n", + " age sex bmi bp s1 \\\n", "count 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 \n", - "mean -3.639623e-16 1.309912e-16 -8.013951e-16 1.289818e-16 -9.042540e-17 \n", + "mean -3.634285e-16 1.308343e-16 -8.045349e-16 1.281655e-16 -8.835316e-17 \n", "std 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 \n", "min -1.072256e-01 -4.464164e-02 -9.027530e-02 -1.123996e-01 -1.267807e-01 \n", "25% -3.729927e-02 -4.464164e-02 -3.422907e-02 -3.665645e-02 -3.424784e-02 \n", @@ -235,26 +233,35 @@ "75% 3.807591e-02 5.068012e-02 3.124802e-02 3.564384e-02 2.835801e-02 \n", "max 1.107267e-01 5.068012e-02 1.705552e-01 1.320442e-01 1.539137e-01 \n", "\n", - " 5 6 7 8 9 \n", - "count 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 \n", - "mean 1.301121e-16 -4.563971e-16 3.863174e-16 -3.848103e-16 -3.398488e-16 \n", - "std 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 \n", - "min -1.156131e-01 -1.023071e-01 -7.639450e-02 -1.260974e-01 -1.377672e-01 \n", - "25% -3.035840e-02 -3.511716e-02 -3.949338e-02 -3.324879e-02 -3.317903e-02 \n", - "50% -3.819065e-03 -6.584468e-03 -2.592262e-03 -1.947634e-03 -1.077698e-03 \n", - "75% 2.984439e-02 2.931150e-02 3.430886e-02 3.243323e-02 2.791705e-02 \n", - "max 1.987880e-01 1.811791e-01 1.852344e-01 1.335990e-01 1.356118e-01 " + " s2 s3 s4 s5 s6 \\\n", + "count 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 4.420000e+02 \n", + "mean 1.327024e-16 -4.574646e-16 3.777301e-16 -3.830854e-16 -3.412882e-16 \n", + "std 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 4.761905e-02 \n", + "min -1.156131e-01 -1.023071e-01 -7.639450e-02 -1.260974e-01 -1.377672e-01 \n", + "25% -3.035840e-02 -3.511716e-02 -3.949338e-02 -3.324879e-02 -3.317903e-02 \n", + "50% -3.819065e-03 -6.584468e-03 -2.592262e-03 -1.947634e-03 -1.077698e-03 \n", + "75% 2.984439e-02 2.931150e-02 3.430886e-02 3.243323e-02 2.791705e-02 \n", + "max 1.987880e-01 1.811791e-01 1.852344e-01 1.335990e-01 1.356118e-01 \n", + "\n", + " Y \n", + "count 442.000000 \n", + "mean 152.133484 \n", + "std 77.093005 \n", + "min 25.000000 \n", + "25% 87.000000 \n", + "50% 140.500000 \n", + "75% 211.500000 \n", + "max 346.000000 " ] }, - "execution_count": 8, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import pandas as pd\n", - "features = pd.DataFrame(X)\n", - "features.describe()" + "# All data in a single dataframe\n", + "df.describe()" ] }, { @@ -266,11 +273,15 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + "X = df.drop('Y', axis=1).values\n", + "y = df['Y'].values\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y, test_size=0.2, random_state=0)\n", "data = {\"train\": {\"X\": X_train, \"y\": y_train},\n", " \"test\": {\"X\": X_test, \"y\": y_test}}" ] @@ -284,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -294,16 +305,19 @@ " normalize=False, random_state=None, solver='auto', tol=0.001)" ] }, - "execution_count": 4, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "alpha = 0.5\n", + "# experiment parameters\n", + "args = {\n", + " \"alpha\": 0.5\n", + "}\n", "\n", - "reg = Ridge(alpha=alpha)\n", - "reg.fit(data[\"train\"][\"X\"], data[\"train\"][\"y\"])" + "reg_model = Ridge(**args)\n", + "reg_model.fit(data[\"train\"][\"X\"], data[\"train\"][\"y\"])" ] }, { @@ -315,20 +329,22 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "mse: 3298.9096058070622\n" + "{'mse': 3298.9096058070622}\n" ] } ], "source": [ - "preds = reg.predict(data[\"test\"][\"X\"])\n", - "print(\"mse: \", mean_squared_error(preds, y_test))" + "preds = reg_model.predict(data[\"test\"][\"X\"])\n", + "mse = mean_squared_error(preds, y_test)\n", + "metrics = {\"mse\": mse}\n", + "print(metrics)" ] }, { @@ -363,9 +379,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python (storedna)", + "display_name": "Python 3", "language": "python", - "name": "storedna" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -377,7 +393,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.9" + "version": "3.7.4" } }, "nbformat": 4, From 3ed9a90e9da34b3a344c75706ec3fe5eff2d60f5 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Thu, 2 Apr 2020 18:27:53 -0700 Subject: [PATCH 073/109] Bootstrap fixes (#250) --- bootstrap/README.md | 2 +- bootstrap/bootstrap.py | 100 +++++++++--------- ...iabetes_regression_build_train_pipeline.py | 19 ++-- ml_service/pipelines/load_sample_data.py | 16 +++ 4 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 ml_service/pipelines/load_sample_data.py diff --git a/bootstrap/README.md b/bootstrap/README.md index 027512bf..27051f2b 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -13,6 +13,6 @@ To bootstrap from the existing MLOpsPython repository: 1. Ensure Python 3 is installed locally 1. Clone this repository locally 1. Run bootstrap.py script -`python bootstrap.py --d [dirpath] --n [projectname]` +`python bootstrap.py -d [dirpath] -n [projectname]` * `[dirpath]` is the absolute path to the root of the directory where MLOpsPython is cloned * `[projectname]` is the name of your ML project diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index e78fa47d..6e51b503 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -2,8 +2,7 @@ import sys import platform import argparse -# import shutil -# from git import Repo +import re class Helper: @@ -25,13 +24,7 @@ def project_name(self): def git_repo(self): return self._git_repo - # def clonerepo(self): - # # Download MLOpsPython repo from git - # Repo.clone_from( - # self._git_repo, self._project_directory, branch="master", depth=1) # NOQA: E501 - # print(self._project_directory) - - def renamefiles(self): + def rename_files(self): # Rename all files starting with diabetes_regression with project name strtoreplace = "diabetes_regression" dirs = [".pipelines", r"ml_service/pipelines"] @@ -42,10 +35,11 @@ def renamefiles(self): if(filename.find(strtoreplace) != -1): src = os.path.join(self._project_directory, normDir, filename) # NOQA: E501 dst = os.path.join(self._project_directory, - normDir, filename.replace(strtoreplace, self._project_name, 1)) # NOQA: E501 + normDir, + filename.replace(strtoreplace, self._project_name, 1)) # NOQA: E501 os.rename(src, dst) - def renamedir(self): + def rename_dir(self): dir = "diabetes_regression" src = os.path.join(self._project_directory, dir) for path, subdirs, files in os.walk(src): @@ -57,7 +51,7 @@ def renamedir(self): new_name = os.path.join(newPath, name) os.rename(file_path, new_name) - def deletedir(self): + def delete_dir(self): # Delete unwanted directories dirs = ["docs", r"diabetes_regression"] if (platform.system() == "Windows"): @@ -65,10 +59,9 @@ def deletedir(self): else: cmd = 'rm -r "{}"' for dir in dirs: - os.system( - cmd.format(os.path.join(self._project_directory, os.path.normpath(dir)))) # NOQA: E501 + os.system(cmd.format(os.path.join(self._project_directory, os.path.normpath(dir)))) # NOQA: E501 - def cleandir(self): + def clean_dir(self): # Clean up directories dirs = ["data", "experimentation"] for dir in dirs: @@ -76,20 +69,19 @@ def cleandir(self): for file in files: os.remove(os.path.join(root, file)) - def validateargs(self): + def validate_args(self): # Validate arguments if (os.path.isdir(self._project_directory) is False): - raise Exception( - "Not a valid directory. Please provide absolute directory path") # NOQA: E501 - # if (len(os.listdir(self._project_directory)) > 0): - # raise Exception("Directory not empty. PLease empty directory") - if(len(self._project_name) < 3 or len(self._project_name) > 15): - raise Exception("Project name should be 3 to 15 chars long") + raise Exception("Not a valid directory. Please provide an absolute directory path.") # NOQA: E501 + if (len(self._project_name) < 3 or len(self._project_name) > 15): + raise Exception("Invalid project name length. Project name should be 3 to 15 chars long, letters and underscores only.") # NOQA: E501 + if (not re.search("^[\\w_]+$", self._project_name)): + raise Exception("Invalid characters in project name. Project name should be 3 to 15 chars long, letters and underscores only.") # NOQA: E501 -def replaceprojectname(project_dir, project_name, rename_name): +def replace_project_name(project_dir, project_name, rename_name): # Replace instances of rename_name within files with project_name - dirs = [r".env.example", + files = [r".env.example", r".pipelines/code-quality-template.yml", r".pipelines/pr.yml", r".pipelines/diabetes_regression-ci.yml", @@ -107,42 +99,52 @@ def replaceprojectname(project_dir, project_name, rename_name): r"diabetes_regression/conda_dependencies.yml", r"diabetes_regression/evaluate/evaluate_model.py", r"diabetes_regression/register/register_model.py", - r"diabetes_regression/training/test_train.py"] # NOQA: E501 + r"diabetes_regression/training/test_train.py"] - for dir in dirs: - file = os.path.join(project_dir, os.path.normpath(dir)) - fin = open(file, - "rt", encoding="utf8") - data = fin.read() - data = data.replace(rename_name, project_name) - fin.close() - fin = open(os.path.join(project_dir, file), "wt", encoding="utf8") # NOQA: E501 - fin.write(data) - fin.close() + for file in files: + path = os.path.join(project_dir, os.path.normpath(file)) + try: + with open(path, "rt", encoding="utf8") as f_in: + data = f_in.read() + data = data.replace(rename_name, project_name) + with open(os.path.join(project_dir, file), "wt", encoding="utf8") as f_out: # NOQA: E501 + f_out.write(data) + except IOError as e: + print("Could not modify \"%s\". Is the MLOpsPython repo already cloned at \"%s\"?" % (path, project_dir)) # NOQA: E501 + raise e def main(args): parser = argparse.ArgumentParser(description='New Template') - parser.add_argument("--d", type=str, + parser.add_argument("-d", + "--directory", + type=str, + required=True, help="Absolute path to new project direcory") - parser.add_argument( - "--n", type=str, help="Name of the project[3-15 chars] ") + parser.add_argument("-n", + "--name", + type=str, + required=True, + help="Name of the project [3-15 chars, letters and underscores only]") # NOQA: E501 try: args = parser.parse_args() - project_directory = args.d - project_name = args.n + + project_directory = args.directory + project_name = args.name + helper = Helper(project_directory, project_name) - helper.validateargs() - # helper.clonerepo() - helper.cleandir() - replaceprojectname(project_directory, project_name, - "diabetes_regression") - replaceprojectname(project_directory, project_name, "diabetes") - helper.renamefiles() - helper.renamedir() - helper.deletedir() + helper.validate_args() + helper.clean_dir() + + replace_project_name(project_directory, project_name, "diabetes_regression") # NOQA: E501 + replace_project_name(project_directory, project_name, "diabetes") + + helper.rename_files() + helper.rename_dir() + helper.delete_dir() except Exception as e: print(e) + return 0 diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index c511f7db..dfe3f5b3 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -3,11 +3,10 @@ from azureml.pipeline.core import Pipeline, PipelineData from azureml.core import Workspace, Dataset, Datastore from azureml.core.runconfig import RunConfiguration +from ml_service.pipelines.load_sample_data import create_sample_data_csv from ml_service.util.attach_compute import get_compute from ml_service.util.env_variables import Env from ml_service.util.manage_environment import get_environment -from sklearn.datasets import load_diabetes -import pandas as pd import os @@ -57,14 +56,16 @@ def main(): # Check to see if dataset exists if (dataset_name not in aml_workspace.datasets): - # Create dataset from diabetes sample data - sample_data = load_diabetes() - df = pd.DataFrame( - data=sample_data.data, - columns=sample_data.feature_names) - df['Y'] = sample_data.target + # This call creates an example CSV from sklearn sample data. If you + # have already bootstrapped your project, you can comment this line + # out and use your own CSV. + create_sample_data_csv() + + # Use a CSV to read in the data set. file_name = 'diabetes.csv' - df.to_csv(file_name, index=False) + + if (not os.path.exists(file_name)): + raise Exception("Could not find CSV dataset at \"%s\". If you have bootstrapped your project, you will need to provide a CSV." % file_name) # NOQA: E501 # Upload file to default datastore in workspace datatstore = Datastore.get(aml_workspace, datastore_name) diff --git a/ml_service/pipelines/load_sample_data.py b/ml_service/pipelines/load_sample_data.py new file mode 100644 index 00000000..cad56568 --- /dev/null +++ b/ml_service/pipelines/load_sample_data.py @@ -0,0 +1,16 @@ + +import pandas as pd +from sklearn.datasets import load_diabetes + + +# Loads the diabetes sample data from sklearn and produces a csv file that can +# be used by the build/train pipeline script. +def create_sample_data_csv(file_name): + sample_data = load_diabetes() + df = pd.DataFrame( + data=sample_data.data, + columns=sample_data.feature_names) + df['Y'] = sample_data.target + # Hard code to diabetes so we fail fast if the project has been + # bootstrapped. + df.to_csv('diabetes.csv', index=False) From bb62f3d2deb8eded996edbbe76be0b0b9588de85 Mon Sep 17 00:00:00 2001 From: Cindy Weng <8880364+cindyweng@users.noreply.github.com> Date: Wed, 8 Apr 2020 17:22:40 +0100 Subject: [PATCH 074/109] remove file_name parameter because it's not used in function (#252) --- ml_service/pipelines/load_sample_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml_service/pipelines/load_sample_data.py b/ml_service/pipelines/load_sample_data.py index cad56568..717fc7ab 100644 --- a/ml_service/pipelines/load_sample_data.py +++ b/ml_service/pipelines/load_sample_data.py @@ -5,7 +5,7 @@ # Loads the diabetes sample data from sklearn and produces a csv file that can # be used by the build/train pipeline script. -def create_sample_data_csv(file_name): +def create_sample_data_csv(): sample_data = load_diabetes() df = pd.DataFrame( data=sample_data.data, From 9459616550d00ec3f30f05d65e2a831484dac10c Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Wed, 8 Apr 2020 12:35:29 -0400 Subject: [PATCH 075/109] fixed function not requiring param (#254) Co-authored-by: Eugene Fedorenko From 0fd052e6c19762a9fb9412e8caa6446aee3713e4 Mon Sep 17 00:00:00 2001 From: Sushant Divate Date: Thu, 9 Apr 2020 16:46:30 -0700 Subject: [PATCH 076/109] Update Image creation to use new package (#260) Update Image creation to use the new package --- ml_service/util/create_scoring_image.py | 39 +++++++++---------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/ml_service/util/create_scoring_image.py b/ml_service/util/create_scoring_image.py index 0177ee72..378cb3b4 100644 --- a/ml_service/util/create_scoring_image.py +++ b/ml_service/util/create_scoring_image.py @@ -1,8 +1,8 @@ import os import argparse from azureml.core import Workspace -from azureml.core.image import ContainerImage, Image -from azureml.core.model import Model +from azureml.core.environment import Environment +from azureml.core.model import Model, InferenceConfig import shutil from ml_service.util.env_variables import Env @@ -36,37 +36,24 @@ shutil.copy(os.path.join(".", sources_dir, "conda_dependencies.yml"), path_to_scoring) os.chdir(path_to_scoring) -image_config = ContainerImage.image_configuration( - execution_script=score_file, - runtime="python", - conda_file="conda_dependencies.yml", - description="Image with ridge regression model", - tags={"area": "diabetes_regression"}, -) -image = Image.create( - name=e.image_name, models=[ - model], image_config=image_config, workspace=ws -) +scoring_env = Environment.from_conda_specification(name="scoringenv", file_path="conda_dependencies.yml") # NOQA: E501 +inference_config = InferenceConfig( + entry_script=score_file, environment=scoring_env) +package = Model.package(ws, [model], inference_config) +package.wait_for_creation(show_output=True) +# Display the package location/ACR path +print(package.location) os.chdir(cwd) -image.wait_for_creation(show_output=True) - -if image.creation_state != "Succeeded": - raise Exception("Image creation status: {image.creation_state}") +if package.state != "Succeeded": + raise Exception("Image creation status: {package.creation_state}") -print("{}(v.{} [{}]) stored at {} with build log {}".format( - image.name, - image.version, - image.creation_state, - image.image_location, - image.image_build_log_uri, -) -) +print("Package stored at {} with build log {}".format(package.location, package.package_build_log_uri)) # NOQA: E501 # Save the Image Location for other AzDO jobs after script is complete if args.output_image_location_file is not None: print("Writing image location to %s" % args.output_image_location_file) with open(args.output_image_location_file, "w") as out_file: - out_file.write(str(image.image_location)) + out_file.write(str(package.location)) From 506d557ebd51a0d38a6896b31f957b36cd497067 Mon Sep 17 00:00:00 2001 From: Tom Care Date: Fri, 10 Apr 2020 12:38:44 -0700 Subject: [PATCH 077/109] Fix training/scoring conda deps (#262) Azure deprecated their top level meta-package which led to a deprecation error. We don't actually need this top level package. I took the opportunity to clean up the conda deps using the dependency tree. - Trimmed the package list - Explicitly list pip to avoid conda warning - Use azureml-defaults for WebApp dependencies - Lock azureml-sdk and azureml-defaults versions - Add comments for dependencies --- diabetes_regression/conda_dependencies.yml | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 76350a01..ab1b354c 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -18,23 +18,22 @@ name: diabetes_regression_training_env dependencies: # The python interpreter version. # Currently Azure ML Workbench only supports 3.5.2 and later. - - python=3.7.5 - # Required by azureml-defaults, installed separately through Conda to - # get a prebuilt version and not require build tools for the install. - - psutil=5.6 #latest + - python=3.7.* + - pip - pip: - # Required packages for AzureML execution, history, and data preparation. - - azureml-model-management-sdk==1.0.1b6.post1 - - azureml-sdk==1.0.74 - - scipy==1.3.1 - - scikit-learn==0.22 - - pandas==0.25.3 - - numpy==1.17.3 - - joblib==0.14.0 - - gunicorn==19.9.0 - - flask==1.1.1 + # Base AzureML SDK + - azureml-sdk==1.2.* + + # Minimum required for the scoring environment. Must match AzureML SDK version. + # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments + - azureml-defaults==1.2.* + + # Training deps + - scikit-learn + + # Scoring deps - inference-schema[numpy-support] - - azure + + # MLOps with R - azure-storage-blob - - azureml-dataprep From d0e91cfaa1d11cedf6c0a734bb76f7213d76ebdb Mon Sep 17 00:00:00 2001 From: Tom Care Date: Mon, 13 Apr 2020 14:27:25 -0700 Subject: [PATCH 078/109] Update CI conda deps to match training/scoring SDK (#263) - Tied SDK version to 1.2.x as with conda_dependencies.yml - Lock versions to point updates - Kept the rest of the deps manually specified to keep image size small and minimize regressions --- diabetes_regression/ci_dependencies.yml | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index a6033e42..eeb359f3 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -2,26 +2,27 @@ name: mlopspython_ci dependencies: # The python interpreter version. - - python=3.7.5 + - python=3.7.* # dependencies with versions aligned with conda_dependencies.yml. - - numpy=1.18.1 - - pandas=1.0.0 - - scikit-learn=0.22.1 + - numpy=1.18.* + - pandas=1.0.* + - scikit-learn=0.22.* # dependencies for MLOps with R. - r=3.6.0 - r-essentials=3.6.0 - - pip=20.0.2 + - pip=20.0.* + - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.1.5.1 + - azureml-sdk==1.2.* # Additional pip dependencies for the CI environment. - - pytest==5.3.1 - - pytest-cov==2.8.1 - - requests==2.22.0 - - python-dotenv==0.10.3 - - flake8==3.7.9 - - flake8_formatter_junit_xml==0.0.6 - - azure-cli==2.2.0 + - pytest==5.4.* + - pytest-cov==2.8.* + - requests==2.23.* + - python-dotenv==0.12.* + - flake8==3.7.* + - flake8_formatter_junit_xml==0.0.* + - azure-cli==2.3.* From 996e0a65a80a67ef72863e53713aba173956607f Mon Sep 17 00:00:00 2001 From: Tom Care Date: Mon, 13 Apr 2020 14:55:03 -0700 Subject: [PATCH 079/109] Fix docker pipeline by removing trailing whitespace (#264) The docker pipeline fails to tag because the trailing whitespace gets included in the tag name. --- environment_setup/docker-image-pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment_setup/docker-image-pipeline.yml b/environment_setup/docker-image-pipeline.yml index 29587533..9f7361ac 100644 --- a/environment_setup/docker-image-pipeline.yml +++ b/environment_setup/docker-image-pipeline.yml @@ -28,7 +28,7 @@ steps: tags: | ${{format('build-{0}', '$(Build.BuildNumber)')}} ${{format('amlsdk-{0}', '$(amlsdkversion)')}} - ${{format('release-{0}', '$(githubrelease)')}} + ${{format('release-{0}', '$(githubrelease)')}} latest buildContext: '$(Build.SourcesDirectory)' dockerFile: '$(Build.SourcesDirectory)/environment_setup/Dockerfile' From 32dd48fef2fc77439e2fe1947282a7192a0bfd9f Mon Sep 17 00:00:00 2001 From: Tom Care Date: Tue, 14 Apr 2020 17:19:41 -0700 Subject: [PATCH 080/109] Update SDK to 1.3.0 (#266) Fixes #265. --- diabetes_regression/ci_dependencies.yml | 2 +- diabetes_regression/conda_dependencies.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index eeb359f3..72c91cd3 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -16,7 +16,7 @@ dependencies: - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.2.* + - azureml-sdk==1.3.* # Additional pip dependencies for the CI environment. - pytest==5.4.* diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index ab1b354c..277efbec 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -23,11 +23,11 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.2.* + - azureml-sdk==1.3.* # Minimum required for the scoring environment. Must match AzureML SDK version. # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments - - azureml-defaults==1.2.* + - azureml-defaults==1.3.* # Training deps - scikit-learn From 8fb12afe706c3408618e92fffcb65a9a894d9fd0 Mon Sep 17 00:00:00 2001 From: Stephanie Visser <42637613+zoekdestep@users.noreply.github.com> Date: Tue, 5 May 2020 20:16:56 +0200 Subject: [PATCH 081/109] Add Terraform option to environment_setup (#268) * setup basic folder and file structure * add tf backend file and bash script to create state storage * basic pipeline for infrastructure with tf - yaml, tf, bash * naming and deleting unnecessary bash script * updated documentation * added to the get_started.md guide * added terraform plan step --- docs/code_description.md | 9 ++- docs/getting_started.md | 6 +- ...> iac-create-environment-pipeline-arm.yml} | 0 .../iac-create-environment-pipeline-tf.yml | 72 +++++++++++++++++++ environment_setup/tf-templates/backend.tf | 4 ++ environment_setup/tf-templates/main.tf | 71 ++++++++++++++++++ 6 files changed, 158 insertions(+), 4 deletions(-) rename environment_setup/{iac-create-environment-pipeline.yml => iac-create-environment-pipeline-arm.yml} (100%) create mode 100644 environment_setup/iac-create-environment-pipeline-tf.yml create mode 100644 environment_setup/tf-templates/backend.tf create mode 100644 environment_setup/tf-templates/main.tf diff --git a/docs/code_description.md b/docs/code_description.md index 351b4c34..8dc3c756 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -18,7 +18,8 @@ High level directory structure for this repository: │ ├── util <- Python script for various utility operations specific to this ML project. ├── docs <- Extensive markdown documentation for entire project. ├── environment_setup <- The top-level folder for everything related to infrastructure. -│ ├── arm-templates <- Azure Resource Manager(ARM) templates to build infrastructure needed for this project. +│ ├── arm-templates <- Azure Resource Manager(ARM) templates to build infrastructure needed for this project. +│ ├── tf-templates <- Terraform templates to build infrastructure needed for this project. ├── experimentation <- Jupyter notebooks with ML experimentation code. ├── ml_service <- The top-level folder for all Azure Machine Learning resources. │ ├── pipelines <- Python script that builds Azure Machine Learning pipelines. @@ -35,7 +36,11 @@ The repository provides a template with folders structure suitable for maintaini - `environment_setup/install_requirements.sh` : This script prepares a local conda environment i.e. install the Azure ML SDK and the packages specified in environment definitions. -- `environment_setup/iac-*.yml, arm-templates` : Infrastructure as Code piplines to create and delete required resources along with corresponding arm-templates. +- `environment_setup/iac-*-arm.yml, arm-templates` : Infrastructure as Code piplines to create required resources using ARM, along with corresponding arm-templates. Infrastructure as Code can be deployed with this template or with the Terraform template. + +- `environment_setup/iac-*-tf.yml, tf-templates` : Infrastructure as Code piplines to create required resources using Terraform, along with corresponding tf-templates. Infrastructure as Code can be deployed with this template or with the ARM template. + +- `environment_setup/iac-remove-environment.yml` : Infrastructure as Code piplines to delete the created required resources. - `environment_setup/Dockerfile` : Dockerfile of a build agent containing Python 3.6 and all required packages. diff --git a/docs/getting_started.md b/docs/getting_started.md index 86eb73df..2c63fa94 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -81,7 +81,7 @@ More variables are available for further tweaking, but the above variables are a ## Provisioning resources using Azure Pipelines -The easiest way to create all required Azure resources (Resource Group, Azure ML Workspace, Container Registry, and others) is to use the **Infrastructure as Code (IaC)** [pipeline in this repository](../environment_setup/iac-create-environment-pipeline.yml). The pipeline takes care of setting up all required resources based on these [Azure Resource Manager templates](../environment_setup/arm-templates/cloud-environment.json). +The easiest way to create all required Azure resources (Resource Group, Azure ML Workspace, Container Registry, and others) is to use the **Infrastructure as Code (IaC)** [pipeline with ARM templates](../environment_setup/iac-create-environment-pipeline-arm.yml) or the [pipeline with Terraform templates](../environment_setup/iac-create-environment-pipeline-tf.yml). The pipeline takes care of setting up all required resources based on these [Azure Resource Manager templates](../environment_setup/arm-templates/cloud-environment.json), or based on these [Terraform templates](../environment_setup/tf-templates). ### Create an Azure DevOps Service Connection for the Azure Resource Manager @@ -100,10 +100,12 @@ In your Azure DevOps project, create a build pipeline from your forked repositor ![Build connect step](./images/build-connect.png) -Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline.yml](../environment_setup/iac-create-environment-pipeline.yml): +Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline-arm.yml](../environment_setup/iac-create-environment-pipeline-arm.yml) or to [/environment_setup/iac-create-environment-pipeline-tf.yml](../environment_setup/iac-create-environment-pipeline-tf.yml), depending on if you want to deploy your infrastructure using ARM templates or Terraform: ![Configure step](./images/select-iac-pipeline.png) +If you decide to use Terraform, make sure the ['Terraform Build & Release Tasks' from Charles Zipp](https://marketplace.visualstudio.com/items?itemName=charleszipp.azure-pipelines-tasks-terraform) is installed. + Having done that, run the pipeline: ![IaC run](./images/run-iac-pipeline.png) diff --git a/environment_setup/iac-create-environment-pipeline.yml b/environment_setup/iac-create-environment-pipeline-arm.yml similarity index 100% rename from environment_setup/iac-create-environment-pipeline.yml rename to environment_setup/iac-create-environment-pipeline-arm.yml diff --git a/environment_setup/iac-create-environment-pipeline-tf.yml b/environment_setup/iac-create-environment-pipeline-tf.yml new file mode 100644 index 00000000..3e94677e --- /dev/null +++ b/environment_setup/iac-create-environment-pipeline-tf.yml @@ -0,0 +1,72 @@ +# CI/PR Pipeline that deploys an TF template to create or update the resources needed by the other pipelines. +trigger: + branches: + include: + - master + paths: + include: + - environment_setup/tf-templates/* +pr: + branches: + include: + - master + paths: + include: + - environment_setup/tf-templates/* + +pool: + vmImage: 'ubuntu-latest' + +variables: +- group: devopsforai-aml-vg + +steps: +- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-installer.TerraformInstaller@0 + displayName: 'Use Terraform 0.12.24' + inputs: + terraformVersion: 0.12.24 + +- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.TerraformCLI@0 + displayName: 'TF init - Deploy MLOps resources to Azure' + inputs: + command: init + commandOptions: '-backend=true -backend-config=$(Build.SourcesDirectory)/environment_setup/tf-templates/backend.tf' + workingDirectory: '$(Build.SourcesDirectory)/environment_setup/tf-templates' + backendType: azurerm + backendServiceArm: $(AZURE_RM_SVC_CONNECTION) + ensureBackend: true + backendAzureRmResourceGroupLocation: $(LOCATION) + backendAzureRmResourceGroupName: $(RESOURCE_GROUP) + backendAzureRmStorageAccountName: 'statestor' + backendAzureRmStorageAccountSku: 'Standard_LRS' + backendAzureRmContainerName: 'tfstate-cont' + backendAzureRmKey: 'mlopsinfra.tfstate' + +- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.TerraformCLI@0 + displayName: 'TF validate - Deploy MLOps resources to Azure' + inputs: + command: validate + workingDirectory: '$(Build.SourcesDirectory)/environment_setup/tf-templates' + +- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.TerraformCLI@0 + displayName: 'TF plan - Deploy MLOps resources to Azure' + inputs: + command: plan + workingDirectory: '$(Build.SourcesDirectory)/environment_setup/tf-templates' + environmentServiceName: $(AZURE_RM_SVC_CONNECTION) + env: + TF_VAR_BASE_NAME: $(BASE_NAME) + TF_VAR_RESOURCE_GROUP: $(RESOURCE_GROUP) + TF_VAR_WORKSPACE_NAME: $(WORKSPACE_NAME) + +- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.TerraformCLI@0 + displayName: 'TF apply - Deploy MLOps resources to Azure' + inputs: + command: apply + workingDirectory: '$(Build.SourcesDirectory)/environment_setup/tf-templates' + environmentServiceName: $(AZURE_RM_SVC_CONNECTION) + env: + TF_VAR_BASE_NAME: $(BASE_NAME) + TF_VAR_RESOURCE_GROUP: $(RESOURCE_GROUP) + TF_VAR_WORKSPACE_NAME: $(WORKSPACE_NAME) + diff --git a/environment_setup/tf-templates/backend.tf b/environment_setup/tf-templates/backend.tf new file mode 100644 index 00000000..0aec0499 --- /dev/null +++ b/environment_setup/tf-templates/backend.tf @@ -0,0 +1,4 @@ +terraform { + backend "azurerm" { + } +} diff --git a/environment_setup/tf-templates/main.tf b/environment_setup/tf-templates/main.tf new file mode 100644 index 00000000..c57a5a84 --- /dev/null +++ b/environment_setup/tf-templates/main.tf @@ -0,0 +1,71 @@ +provider "azurerm" { + version = "=2.3.0" + features {} +} + +variable BASE_NAME {} +variable RESOURCE_GROUP {} +variable WORKSPACE_NAME {} + +#-------------------------------------------------------------------------------- + +#Set the already-existing resource group +data "azurerm_resource_group" "amlrg" { + name = var.RESOURCE_GROUP +} + +#Set client config for a.o. tenant id +data "azurerm_client_config" "currentconfig" { +} + +#-------------------------------------------------------------------------------- + +# Storage account for AML Service +resource "azurerm_storage_account" "amlstor" { + name = "${var.BASE_NAME}amlsa" + location = data.azurerm_resource_group.amlrg.location + resource_group_name = data.azurerm_resource_group.amlrg.name + account_tier = "Standard" + account_replication_type = "LRS" +} + +# Keyvault for AML Service +resource "azurerm_key_vault" "amlkv" { + name = "${var.BASE_NAME}-AML-KV" + location = data.azurerm_resource_group.amlrg.location + resource_group_name = data.azurerm_resource_group.amlrg.name + tenant_id = data.azurerm_client_config.currentconfig.tenant_id + sku_name = "standard" +} + +# App Insights for AML Service +resource "azurerm_application_insights" "amlai" { + name = "${var.BASE_NAME}-AML-AI" + location = data.azurerm_resource_group.amlrg.location + resource_group_name = data.azurerm_resource_group.amlrg.name + application_type = "web" +} + +# Container registry for AML Service +resource "azurerm_container_registry" "amlacr" { + name = "${var.BASE_NAME}amlcr" + resource_group_name = data.azurerm_resource_group.amlrg.name + location = data.azurerm_resource_group.amlrg.location + sku = "Standard" + admin_enabled = true +} + +# ML Workspace for AML Service, depending on the storage account, Keyvault, App Insights and ACR. +resource "azurerm_machine_learning_workspace" "amlws" { + name = var.WORKSPACE_NAME + location = data.azurerm_resource_group.amlrg.location + resource_group_name = data.azurerm_resource_group.amlrg.name + application_insights_id = azurerm_application_insights.amlai.id + key_vault_id = azurerm_key_vault.amlkv.id + storage_account_id = azurerm_storage_account.amlstor.id + container_registry_id = azurerm_container_registry.amlacr.id + + identity { + type = "SystemAssigned" + } +} From f8cd70f3b1e573bb859c5d49526032e412357bfc Mon Sep 17 00:00:00 2001 From: Kosuke Fujimoto Date: Thu, 21 May 2020 05:51:13 +0900 Subject: [PATCH 082/109] Replaced Env class with dataclass (#277) --- ml_service/util/env_variables.py | 218 +++++++------------------------ 1 file changed, 48 insertions(+), 170 deletions(-) diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index c734e098..747df5ec 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -1,174 +1,52 @@ +"""Env dataclass to load and hold all environment variables +""" +from dataclasses import dataclass import os -from dotenv import load_dotenv - - -class Singleton(object): - _instances = {} - - def __new__(class_, *args, **kwargs): - if class_ not in class_._instances: - class_._instances[class_] = super(Singleton, class_).__new__(class_, *args, **kwargs) # noqa E501 - return class_._instances[class_] - - -class Env(Singleton): - - def __init__(self): - load_dotenv() - self._workspace_name = os.environ.get("WORKSPACE_NAME") - self._resource_group = os.environ.get("RESOURCE_GROUP") - self._subscription_id = os.environ.get("SUBSCRIPTION_ID") - self._tenant_id = os.environ.get("TENANT_ID") - self._app_id = os.environ.get("SP_APP_ID") - self._app_secret = os.environ.get("SP_APP_SECRET") - self._vm_size = os.environ.get("AML_COMPUTE_CLUSTER_CPU_SKU") - self._compute_name = os.environ.get("AML_COMPUTE_CLUSTER_NAME") - self._vm_priority = os.environ.get("AML_CLUSTER_PRIORITY", 'lowpriority') # noqa E501 - self._min_nodes = int(os.environ.get("AML_CLUSTER_MIN_NODES", 0)) - self._max_nodes = int(os.environ.get("AML_CLUSTER_MAX_NODES", 4)) - self._build_id = os.environ.get("BUILD_BUILDID") - self._pipeline_name = os.environ.get("TRAINING_PIPELINE_NAME") - self._sources_directory_train = os.environ.get("SOURCES_DIR_TRAIN") - self._train_script_path = os.environ.get("TRAIN_SCRIPT_PATH") - self._evaluate_script_path = os.environ.get("EVALUATE_SCRIPT_PATH") - self._register_script_path = os.environ.get("REGISTER_SCRIPT_PATH") - self._model_name = os.environ.get("MODEL_NAME") - self._experiment_name = os.environ.get("EXPERIMENT_NAME") - self._model_version = os.environ.get('MODEL_VERSION') - self._image_name = os.environ.get('IMAGE_NAME') - self._db_cluster_id = os.environ.get("DB_CLUSTER_ID") - self._score_script = os.environ.get("SCORE_SCRIPT") - self._build_uri = os.environ.get("BUILD_URI") - self._dataset_name = os.environ.get("DATASET_NAME") - self._datastore_name = os.environ.get("DATASTORE_NAME") - self._dataset_version = os.environ.get("DATASET_VERSION") - self._run_evaluation = os.environ.get("RUN_EVALUATION", "true") - self._allow_run_cancel = os.environ.get( - "ALLOW_RUN_CANCEL", "true") - self._aml_env_name = os.environ.get("AML_ENV_NAME") - self._rebuild_env = os.environ.get("AML_REBUILD_ENVIRONMENT", - "false").lower().strip() == "true" - - @property - def workspace_name(self): - return self._workspace_name - - @property - def resource_group(self): - return self._resource_group - - @property - def subscription_id(self): - return self._subscription_id - - @property - def tenant_id(self): - return self._tenant_id - - @property - def app_id(self): - return self._app_id - - @property - def app_secret(self): - return self._app_secret - - @property - def vm_size(self): - return self._vm_size - - @property - def compute_name(self): - return self._compute_name - - @property - def db_cluster_id(self): - return self._db_cluster_id - - @property - def build_id(self): - return self._build_id - - @property - def pipeline_name(self): - return self._pipeline_name +from typing import Optional - @property - def sources_directory_train(self): - return self._sources_directory_train - - @property - def train_script_path(self): - return self._train_script_path - - @property - def evaluate_script_path(self): - return self._evaluate_script_path - - @property - def register_script_path(self): - return self._register_script_path - - @property - def model_name(self): - return self._model_name - - @property - def experiment_name(self): - return self._experiment_name - - @property - def vm_priority(self): - return self._vm_priority - - @property - def min_nodes(self): - return self._min_nodes - - @property - def max_nodes(self): - return self._max_nodes - - @property - def model_version(self): - return self._model_version - - @property - def image_name(self): - return self._image_name - - @property - def score_script(self): - return self._score_script - - @property - def build_uri(self): - return self._build_uri - - @property - def dataset_name(self): - return self._dataset_name - - @property - def datastore_name(self): - return self._datastore_name - - @property - def dataset_version(self): - return self._dataset_version - - @property - def run_evaluation(self): - return self._run_evaluation - - @property - def allow_run_cancel(self): - return self._allow_run_cancel +from dotenv import load_dotenv - @property - def aml_env_name(self): - return self._aml_env_name - @property - def rebuild_env(self): - return self._rebuild_env +@dataclass(frozen=True) +class Env: + """Loads all environment variables into a predefined set of properties + """ + # to load .env file into environment variables for local execution + load_dotenv() + workspace_name: Optional[str] = os.environ.get("WORKSPACE_NAME") + resource_group: Optional[str] = os.environ.get("RESOURCE_GROUP") + subscription_id: Optional[str] = os.environ.get("SUBSCRIPTION_ID") + tenant_id: Optional[str] = os.environ.get("TENANT_ID") + app_id: Optional[str] = os.environ.get("SP_APP_ID") + app_secret: Optional[str] = os.environ.get("SP_APP_SECRET") + vm_size: Optional[str] = os.environ.get("AML_COMPUTE_CLUSTER_CPU_SKU") + compute_name: Optional[str] = os.environ.get("AML_COMPUTE_CLUSTER_NAME") + vm_priority: Optional[str] = os.environ.get("AML_CLUSTER_PRIORITY", + 'lowpriority') + min_nodes: int = int(os.environ.get("AML_CLUSTER_MIN_NODES", 0)) + max_nodes: int = int(os.environ.get("AML_CLUSTER_MAX_NODES", 4)) + build_id: Optional[str] = os.environ.get("BUILD_BUILDID") + pipeline_name: Optional[str] = os.environ.get("TRAINING_PIPELINE_NAME") + sources_directory_train: Optional[str] = os.environ.get( + "SOURCES_DIR_TRAIN") + train_script_path: Optional[str] = os.environ.get("TRAIN_SCRIPT_PATH") + evaluate_script_path: Optional[str] = os.environ.get( + "EVALUATE_SCRIPT_PATH") + register_script_path: Optional[str] = os.environ.get( + "REGISTER_SCRIPT_PATH") + model_name: Optional[str] = os.environ.get("MODEL_NAME") + experiment_name: Optional[str] = os.environ.get("EXPERIMENT_NAME") + model_version: Optional[str] = os.environ.get('MODEL_VERSION') + image_name: Optional[str] = os.environ.get('IMAGE_NAME') + db_cluster_id: Optional[str] = os.environ.get("DB_CLUSTER_ID") + score_script: Optional[str] = os.environ.get("SCORE_SCRIPT") + build_uri: Optional[str] = os.environ.get("BUILD_URI") + dataset_name: Optional[str] = os.environ.get("DATASET_NAME") + datastore_name: Optional[str] = os.environ.get("DATASTORE_NAME") + dataset_version: Optional[str] = os.environ.get("DATASET_VERSION") + run_evaluation: Optional[str] = os.environ.get("RUN_EVALUATION", "true") + allow_run_cancel: Optional[str] = os.environ.get("ALLOW_RUN_CANCEL", + "true") + aml_env_name: Optional[str] = os.environ.get("AML_ENV_NAME") + rebuild_env: Optional[bool] = os.environ.get( + "AML_REBUILD_ENVIRONMENT", "false").lower().strip() == "true" From cbeadae5b53409f71ff69a34c27ed4aa1e6606da Mon Sep 17 00:00:00 2001 From: Jenny So Date: Tue, 2 Jun 2020 14:30:15 -0700 Subject: [PATCH 083/109] update azureml sdk (#287) --- diabetes_regression/ci_dependencies.yml | 2 +- diabetes_regression/conda_dependencies.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index 72c91cd3..52bdeb44 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -16,7 +16,7 @@ dependencies: - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.3.* + - azureml-sdk==1.6.* # Additional pip dependencies for the CI environment. - pytest==5.4.* diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 277efbec..57f2b999 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -23,11 +23,11 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.3.* + - azureml-sdk==1.6.* # Minimum required for the scoring environment. Must match AzureML SDK version. # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments - - azureml-defaults==1.3.* + - azureml-defaults==1.6.* # Training deps - scikit-learn From cd762ecaa9dd1914d4e72dc514d0ce7dad66a58d Mon Sep 17 00:00:00 2001 From: jotaylo Date: Mon, 15 Jun 2020 12:28:23 -0700 Subject: [PATCH 084/109] Move instruction to install AML extension to Azure Devops setup instructions (#298) --- docs/getting_started.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 2c63fa94..11bfb20f 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -6,6 +6,7 @@ This guide shows how to get MLOpsPython working with a sample ML project ***diab We recommend working through this guide completely to ensure everything is working in your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into a starting point for your project. - [Setting up Azure DevOps](#setting-up-azure-devops) + - [Install the Azure Machine Learning extension](#install-the-azure-machine-learning-extension) - [Get the code](#get-the-code) - [Create a Variable Group for your Pipeline](#create-a-variable-group-for-your-pipeline) - [Variable Descriptions](#variable-descriptions) @@ -33,6 +34,12 @@ You'll use Azure DevOps for running the multi-stage pipeline with build, model t If you already have an Azure DevOps organization, create a new project using the guide at [Create a project in Azure DevOps and TFS](https://docs.microsoft.com/en-us/azure/devops/organizations/projects/create-project?view=azure-devops). +### Install the Azure Machine Learning extension + +Install the **Azure Machine Learning** extension to your Azure DevOps organization from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml). + +This extension contains the Azure ML pipeline tasks and adds the ability to create Azure ML Workspace service connections. + ## Get the code We recommend using the [repository template](https://github.com/microsoft/MLOpsPython/generate), which effectively forks the repository to your own GitHub location and squashes the history. You can use the resulting repository for this guide and for your own experimentation. @@ -118,8 +125,6 @@ Check that the newly created resources appear in the [Azure Portal](https://port At this point, you should have an Azure ML Workspace created. Similar to the Azure Resource Manager service connection, you need to create an additional one for the Azure ML Workspace. -Install the **Azure Machine Learning** extension to your Azure DevOps organization from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml). The extension is required for the service connection. - Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above. ![Created resources](./images/ml-ws-svc-connection.png) From 08bb6f4a26d3db7ee998a45da62825c47411aec1 Mon Sep 17 00:00:00 2001 From: David Tesar Date: Mon, 15 Jun 2020 14:09:12 -0700 Subject: [PATCH 085/109] Simplify docs flow (#297) --- bootstrap/README.md | 17 +---------------- docs/custom_model.md | 24 ++++++++++++++++++------ docs/getting_started.md | 4 ++-- 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/bootstrap/README.md b/bootstrap/README.md index 27051f2b..0841cc30 100644 --- a/bootstrap/README.md +++ b/bootstrap/README.md @@ -1,18 +1,3 @@ # Bootstrap from MLOpsPython repository -To use this existing project structure and scripts for your new ML project, you can quickly get started from the existing repository, bootstrap and create a template that works for your ML project. - -Bootstrapping will prepare a directory structure for your project which includes: - -* renaming files and folders from the base project name `diabetes_regression` to your project name -* fixing imports and absolute path based on your project name -* deleting and cleaning up some directories - -To bootstrap from the existing MLOpsPython repository: - -1. Ensure Python 3 is installed locally -1. Clone this repository locally -1. Run bootstrap.py script -`python bootstrap.py -d [dirpath] -n [projectname]` - * `[dirpath]` is the absolute path to the root of the directory where MLOpsPython is cloned - * `[projectname]` is the name of your ML project +For steps on how to use the bootstrap script, please see the "Bootstrap the project" section of the [custom model guide](../docs/custom_model.md#bootstrap-the-project). diff --git a/docs/custom_model.md b/docs/custom_model.md index bce1fb8a..d21c8b8d 100644 --- a/docs/custom_model.md +++ b/docs/custom_model.md @@ -3,11 +3,11 @@ This document provides steps to follow when using this repository as a template to train models and deploy the models with real-time inference in Azure ML with your own scripts and data. 1. Follow the MLOpsPython [Getting Started](getting_started.md) guide -1. Follow the MLOpsPython [bootstrap instructions](../bootstrap/README.md) to create your project starting point +1. Bootstrap the project 1. Configure training data 1. [If necessary] Convert your ML experimental code into production ready code 1. Replace the training code -1. Update the evaluation code +1. [Optional] Update the evaluation code 1. Customize the build agent environment 1. [If appropriate] Replace the score code @@ -17,24 +17,36 @@ Follow the [Getting Started](getting_started.md) guide to set up the infrastruct Take a look at the [Repo Details](code_description.md) document for a description of the structure of this repository. -## Follow the Bootstrap instructions +## Bootstrap the project -The [Bootstrap from MLOpsPython repository](../bootstrap/README.md) guide will help you to quickly prepare the repository for your project. +Bootstrapping will prepare the directory structure to be used for your project name which includes: + +* renaming files and folders from the base project name `diabetes_regression` to your project name +* fixing imports and absolute path based on your project name +* deleting and cleaning up some directories **Note:** Since the bootstrap script will rename the `diabetes_regression` folder to the project name of your choice, we'll refer to your project as `[project name]` when paths are involved. +To bootstrap from the existing MLOpsPython repository: + +1. Ensure Python 3 is installed locally +1. From a local copy of the code, run the `bootstrap.py` script in the `bootstrap` folder +`python bootstrap.py -d [dirpath] -n [projectname]` + * `[dirpath]` is the absolute path to the root of the directory where MLOpsPython is cloned + * `[projectname]` is the name of your ML project + ## Configure training data The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. -To use your own data: +**Important** Convert the template to use your own Azure ML Dataset for model training via these steps: 1. [Create a Dataset](https://docs.microsoft.com/azure/machine-learning/how-to-create-register-datasets) in your Azure ML workspace 1. Update the `DATASET_NAME` and `DATASTORE_NAME` variables in `.pipelines/[project name]-variables-template.yml` ## Convert your ML experimental code into production ready code -The MLOpsPython template creates an Azure Machine Learning (ML) pipeline that invokes a set of [Azure ML pipeline steps](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps) (see `ml_service/pipelines/[project name]_build_train_pipeline.py`). If your experiment is currently in a Jupyter notebook, it will need to be refactored into scripts that can be run independantly and dropped into the template which the existing Azure ML pipeline steps utilize. +The MLOpsPython template creates an Azure Machine Learning (ML) pipeline that invokes a set of [Azure ML pipeline steps](https://docs.microsoft.com/python/api/azureml-pipeline-steps/azureml.pipeline.steps) (see `ml_service/pipelines/[project name]_build_train_pipeline.py`). If your experiment is currently in a Jupyter notebook, it will need to be refactored into scripts that can be run independently and dropped into the template which the existing Azure ML pipeline steps utilize. 1. Refactor your experiment code into scripts 1. [Recommended] Prepare unit tests diff --git a/docs/getting_started.md b/docs/getting_started.md index 11bfb20f..3dc67ab3 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,9 +1,9 @@ # Getting Started with MLOpsPython -This guide shows how to get MLOpsPython working with a sample ML project ***diabetes_regression***. The project creates a linear regression model to predict diabetes. You can adapt this example to use with your own project. +This guide shows how to get MLOpsPython working with a sample ML project ***diabetes_regression***. The project creates a linear regression model to predict diabetes and has CI/CD DevOps practices enabled for model training and serving when these steps are completed in this getting started guide. -We recommend working through this guide completely to ensure everything is working in your environment. After the sample is working, follow the [bootstrap instructions](../bootstrap/README.md) to convert the ***diabetes_regression*** sample into a starting point for your project. +If you would like to bring your own model code to use this template structure, follow the [custom model](custom_model.md) guide. We recommend completing this getting started guide with the diabetes model through ACI deployment first to ensure everything is working in your environment before converting the template to use your own model code. - [Setting up Azure DevOps](#setting-up-azure-devops) - [Install the Azure Machine Learning extension](#install-the-azure-machine-learning-extension) From 90562854f37a24e199118d7b9dc667cf7b12ce81 Mon Sep 17 00:00:00 2001 From: My Date: Thu, 18 Jun 2020 09:48:01 -0700 Subject: [PATCH 086/109] update arm template to make workspace sku configurable (#283) --- ...diabetes_regression-variables-template.yml | 17 +++--- docs/getting_started.md | 55 ++++++++++--------- .../arm-templates/cloud-environment.json | 20 ++++++- .../iac-create-environment-pipeline-arm.yml | 39 +++++++------ 4 files changed, 72 insertions(+), 59 deletions(-) diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index def14549..159f76af 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -1,8 +1,7 @@ # Pipeline template that defines common runtime environment variables. variables: - # Source Config - # The directory containing the scripts for training, evaluating, and registering the model + # The directory containing the scripts for training, evaluating, and registering the model - name: SOURCES_DIR_TRAIN value: diabetes_regression # The path to the model training script under SOURCES_DIR_TRAIN @@ -23,7 +22,7 @@ variables: value: mlopspython - name: DATASET_NAME value: diabetes_ds - # Uncomment DATASTORE_NAME if you have configured non default datastore to point to your data + # Uncomment DATASTORE_NAME if you have configured non default datastore to point to your data # - name: DATASTORE_NAME # value: datablobstore - name: DATASET_VERSION @@ -50,25 +49,23 @@ variables: # The name for the (docker/webapp) scoring image - name: IMAGE_NAME value: "diabetestrained" - + # Optional. Used by a training pipeline with R on Databricks - name: DB_CLUSTER_ID value: "" # These are the default values set in ml_service\util\env_variables.py. Uncomment and override if desired. - # Set to false to disable the evaluation step in the ML pipeline and register the newly trained model unconditionally. + # Set to false to disable the evaluation step in the ML pipeline and register the newly trained model unconditionally. # - name: RUN_EVALUATION # value: "true" - # Set to false to register the model regardless of the outcome of the evaluation step in the ML pipeline. + # Set to false to register the model regardless of the outcome of the evaluation step in the ML pipeline. # - name: ALLOW_RUN_CANCEL # value: "true" - # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time - # to skip training and deploy a model registered by a previous build. + # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time + # to skip training and deploy a model registered by a previous build. - name: modelbuildid value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] - - # Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. # - name: AML_REBUILD_ENVIRONMENT # value: "false" diff --git a/docs/getting_started.md b/docs/getting_started.md index 3dc67ab3..89981fa3 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,9 +1,8 @@ - # Getting Started with MLOpsPython -This guide shows how to get MLOpsPython working with a sample ML project ***diabetes_regression***. The project creates a linear regression model to predict diabetes and has CI/CD DevOps practices enabled for model training and serving when these steps are completed in this getting started guide. +This guide shows how to get MLOpsPython working with a sample ML project **_diabetes_regression_**. The project creates a linear regression model to predict diabetes and has CI/CD DevOps practices enabled for model training and serving when these steps are completed in this getting started guide. -If you would like to bring your own model code to use this template structure, follow the [custom model](custom_model.md) guide. We recommend completing this getting started guide with the diabetes model through ACI deployment first to ensure everything is working in your environment before converting the template to use your own model code. +If you would like to bring your own model code to use this template structure, follow the [custom model](custom_model.md) guide. We recommend completing this getting started guide with the diabetes model through ACI deployment first to ensure everything is working in your environment before converting the template to use your own model code. - [Setting up Azure DevOps](#setting-up-azure-devops) - [Install the Azure Machine Learning extension](#install-the-azure-machine-learning-extension) @@ -46,13 +45,13 @@ We recommend using the [repository template](https://github.com/microsoft/MLOpsP ## Create a Variable Group for your Pipeline -MLOpsPython requires some variables to be set before you can run any pipelines. You'll need to create a *variable group* in Azure DevOps to store values that are reused across multiple pipelines or pipeline stages. Either store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) or connect to an Azure Key Vault in your subscription. Check out the [Add & use variable groups](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml#use-a-variable-group) documentation to learn more about how to create a variable group and link it to your pipeline. +MLOpsPython requires some variables to be set before you can run any pipelines. You'll need to create a _variable group_ in Azure DevOps to store values that are reused across multiple pipelines or pipeline stages. Either store the values directly in [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=designer#create-a-variable-group) or connect to an Azure Key Vault in your subscription. Check out the [Add & use variable groups](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml#use-a-variable-group) documentation to learn more about how to create a variable group and link it to your pipeline. Navigate to **Library** in the **Pipelines** section as indicated below: ![Library Variable Groups](./images/library_variable_groups.png) -Create a variable group named **``devopsforai-aml-vg``**. The YAML pipeline definitions in this repository refer to this variable group by name. +Create a variable group named **`devopsforai-aml-vg`**. The YAML pipeline definitions in this repository refer to this variable group by name. The variable group should contain the following required variables. **Azure resources that don't exist yet will be created in the [Provisioning resources using Azure Pipelines](#provisioning-resources-using-azure-pipelines) step below.** @@ -80,7 +79,7 @@ More variables are available for further tweaking, but the above variables are a **WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. You can provide an existing Azure ML Workspace here if you've got one. -**AZURE_RM_SVC_CONNECTION** is used by the [Azure Pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) in Azure DevOps that creates the Azure ML workspace and associated resources through Azure Resource Manager. You'll create the connection in a [step below](#create-an-azure-devops-service-connection-for-the-azure-resource-manager). +**AZURE_RM_SVC_CONNECTION** is used by the [Azure Pipeline](../environment_setup/iac-create-environment-pipeline.yml) in Azure DevOps that creates the Azure ML workspace and associated resources through Azure Resource Manager. You'll create the connection in a [step below](#create-an-azure-devops-service-connection-for-the-azure-resource-manager). **WORKSPACE_SVC_CONNECTION** is used to reference a [service connection for the Azure ML workspace](#create-an-azure-devops-azure-ml-workspace-service-connection). You'll create the connection after [provisioning the workspace](#provisioning-resources-using-azure-pipelines) in the [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) section below. @@ -92,11 +91,11 @@ The easiest way to create all required Azure resources (Resource Group, Azure ML ### Create an Azure DevOps Service Connection for the Azure Resource Manager -The [IaC provisioning pipeline]((../environment_setup/iac-create-environment-pipeline.yml)) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). +The [IaC provisioning pipeline](../environment_setup/iac-create-environment-pipeline.yml) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). ![Create service connection](./images/create-rm-service-connection.png) -Leave the **``Resource Group``** field empty. +Leave the **`Resource Group`** field empty. **Note:** Creating the Azure Resource Manager service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. You'll also need sufficient permissions to register an application with your Azure AD tenant, or you can get the ID and secret of a service principal from your Azure AD Administrator. That principal must have 'Contributor' permissions on the subscription. @@ -143,7 +142,7 @@ Now that you've provisioned all the required Azure resources and service connect ### Set up the Pipeline -In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) +In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) pipeline definition in your forked repository. ![Configure CI build pipeline](./images/ci-build-pipeline-configure.png) @@ -164,15 +163,15 @@ The pipeline stages are summarized below: - Linting (code quality analysis) - Unit tests and code coverage analysis -- Build and publish *ML Training Pipeline* in an *ML Workspace* +- Build and publish _ML Training Pipeline_ in an _ML Workspace_ #### Train model -- Determine the ID of the *ML Training Pipeline* published in the previous stage. -- Trigger the *ML Training Pipeline* and waits for it to complete. +- Determine the ID of the _ML Training Pipeline_ published in the previous stage. +- Trigger the _ML Training Pipeline_ and waits for it to complete. - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. -- Determine if a new model was registered by the *ML Training Pipeline*. - - If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the *ML Training Pipeline* will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' +- Determine if a new model was registered by the _ML Training Pipeline_. + - If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the _ML Training Pipeline_ will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the ML pipeline reporting logic. - [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. @@ -182,13 +181,13 @@ The pipeline stages are summarized below: - Smoke test - The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. -The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. +The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image **_mcr.microsoft.com/mlops/python:latest_** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and **_diabetes_regression_**. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. After the pipeline is finished, you'll see a new model in the **ML Workspace**: ![Trained model](./images/trained-model.png) -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. You can also override the variable at runtime execution of the pipeline. +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. You can also override the variable at runtime execution of the pipeline. To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the ID of the previous build. @@ -202,7 +201,9 @@ MLOpsPython also can deploy to [Azure Kubernetes Service](https://azure.microsof Creating a cluster on Azure Kubernetes Service is out of scope of this tutorial, but you can find set up information on the [Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal](https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough-portal#create-an-aks-cluster) page. -**Note:** If your target deployment environment is a Kubernetes cluster and you want to implement Canary and/or A/B testing deployment strategies, check out this [tutorial](./canary_ab_deployment.md). +> **_Note_** +> +> If your target deployment environment is a Kubernetes cluster and you want to implement Canary and/or A/B testing deployment strategies, check out this [tutorial](./canary_ab_deployment.md). Keep the Azure Container Instances deployment active because it's a lightweight way to validate changes before deploying to Azure Kubernetes Service. @@ -213,7 +214,7 @@ In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the va | AKS_COMPUTE_NAME | aks | | AKS_DEPLOYMENT_NAME | mlops-aks | -Set **AKS_COMPUTE_NAME** to the *Compute name* of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. +Set **AKS_COMPUTE_NAME** to the _Compute name_ of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. After successfully deploying to Azure Container Instances, the next stage will deploy the model to Kubernetes and run a smoke test. @@ -249,8 +250,8 @@ Make sure your webapp has the credentials to pull the image from the Azure Conta The build pipeline also supports building and publishing Azure ML pipelines using R to train a model. You can enable it by changing the `build-train-script` pipeline variable to either of the following values: -* `diabetes_regression_build_train_pipeline_with_r.py` to train a model with R on Azure ML Compute. You'll also need to uncomment (include) the `r-essentials` Conda packages in the environment definition YAML `diabetes_regression/conda_dependencies.yml`. -* `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` to train a model with R on Databricks. You'll need to manually create a Databricks cluster and attach it to the Azure ML Workspace as a compute resource. Set the DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables in your variable group. +- `diabetes_regression_build_train_pipeline_with_r.py` to train a model with R on Azure ML Compute. You'll also need to uncomment (include) the `r-essentials` Conda packages in the environment definition YAML `diabetes_regression/conda_dependencies.yml`. +- `diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` to train a model with R on Databricks. You'll need to manually create a Databricks cluster and attach it to the Azure ML Workspace as a compute resource. Set the DB_CLUSTER_ID and DATABRICKS_COMPUTE_NAME variables in your variable group. Example ML pipelines using R have a single step to train a model. They don't demonstrate how to evaluate and register a model. The evaluation and registering techniques are shown only in the Python implementation. @@ -258,9 +259,9 @@ Example ML pipelines using R have a single step to train a model. They don't dem You can explore aspects of model observability in the solution, such as: -* **Logging**: Navigate to the Application Insights instance linked to the Azure ML Portal, then go to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs generated in `score.py`. This can be used, for example, to analyze query duration vs. scoring batch size: +- **Logging**: Navigate to the Application Insights instance linked to the Azure ML Portal, then go to the Logs (Analytics) pane. The following sample query correlates HTTP requests with custom logs generated in `score.py`. This can be used, for example, to analyze query duration vs. scoring batch size: - ``` + ```sql let Traceinfo=traces | extend d=parse_json(tostring(customDimensions.Content)) | project workspace=customDimensions.["Workspace Name"], @@ -274,8 +275,8 @@ You can explore aspects of model observability in the solution, such as: | project-away id1 ``` -* **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs the header. The query above shows how to surface this value. You can adapt it to your tracing framework. -* **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance. +- **Distributed tracing**: The smoke test client code sets an HTTP `traceparent` header (per the [W3C Trace Context proposed specification](https://www.w3.org/TR/trace-context-1)), and the `score.py` code logs the header. The query above shows how to surface this value. You can adapt it to your tracing framework. +- **Monitoring**: You can use [Azure Monitor for containers](https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview) to monitor the Azure ML scoring containers' performance. ### Clean up the example resources @@ -283,8 +284,8 @@ To remove the resources created for this project, use the [/environment_setup/ia ## Next Steps: Integrating your project -* The [custom model](custom_model.md) guide includes information on bringing your own code to this repository template. -* Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. +- The [custom model](custom_model.md) guide includes information on bringing your own code to this repository template. +- Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. ### Additional Variables and Configuration @@ -294,7 +295,7 @@ There are more variables used in the project. They're defined in two places: one For using Azure Pipelines, all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. -In that folder, you'll also find the `parameters.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [*alpha* hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. +In that folder, you'll also find the `parameters.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [_alpha_ hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. #### Local configuration diff --git a/environment_setup/arm-templates/cloud-environment.json b/environment_setup/arm-templates/cloud-environment.json index f2b2ac2f..6d1114f6 100644 --- a/environment_setup/arm-templates/cloud-environment.json +++ b/environment_setup/arm-templates/cloud-environment.json @@ -45,6 +45,17 @@ "acr": { "type": "string", "defaultValue": "[concat(toLower(parameters('baseName')),'amlcr')]" + }, + "sku": { + "type": "string", + "defaultValue": "basic", + "allowedValues": [ + "basic", + "enterprise" + ], + "metadata": { + "description": "Specifies the sku, also referred as 'edition' of the Azure Machine Learning workspace." + } } }, "variables": { @@ -92,7 +103,8 @@ "name": "standard", "family": "A" }, - "accessPolicies": [] + "accessPolicies": [ + ] } }, { @@ -131,6 +143,10 @@ "identity": { "type": "systemAssigned" }, + "sku": { + "tier": "[parameters('sku')]", + "name": "[parameters('sku')]" + }, "properties": { "friendlyName": "[variables('amlWorkspaceName')]", "keyVault": "[resourceId('Microsoft.KeyVault/vaults',variables('keyVaultName'))]", @@ -138,6 +154,6 @@ "containerRegistry": "[resourceId('Microsoft.ContainerRegistry/registries',variables('containerRegistryName'))]", "storageAccount": "[resourceId('Microsoft.Storage/storageAccounts/',variables('storageAccountName'))]" } - } + } ] } \ No newline at end of file diff --git a/environment_setup/iac-create-environment-pipeline-arm.yml b/environment_setup/iac-create-environment-pipeline-arm.yml index f21c6eab..0b9f474c 100644 --- a/environment_setup/iac-create-environment-pipeline-arm.yml +++ b/environment_setup/iac-create-environment-pipeline-arm.yml @@ -2,36 +2,35 @@ trigger: branches: include: - - master + - master paths: include: - - environment_setup/arm-templates/* + - environment_setup/arm-templates/* pr: branches: include: - - master + - master paths: include: - - environment_setup/arm-templates/* + - environment_setup/arm-templates/* pool: - vmImage: 'ubuntu-latest' + vmImage: "ubuntu-latest" variables: -- group: devopsforai-aml-vg - + - group: devopsforai-aml-vg + - name: WORKSPACE_SKU # https://docs.microsoft.com/en-us/azure/machine-learning/overview-what-is-azure-ml#sku + value: basic steps: -- task: AzureResourceGroupDeployment@2 - inputs: - azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' - action: 'Create Or Update Resource Group' - resourceGroupName: '$(RESOURCE_GROUP)' - location: $(LOCATION) - templateLocation: 'Linked artifact' - csmFile: '$(Build.SourcesDirectory)/environment_setup/arm-templates/cloud-environment.json' - overrideParameters: '-baseName $(BASE_NAME) -location $(LOCATION) -workspace $(WORKSPACE_NAME)' - deploymentMode: 'Incremental' - displayName: 'Deploy MLOps resources to Azure' - - \ No newline at end of file + - task: AzureResourceGroupDeployment@2 + inputs: + azureSubscription: "$(AZURE_RM_SVC_CONNECTION)" + action: "Create Or Update Resource Group" + resourceGroupName: "$(RESOURCE_GROUP)" + location: $(LOCATION) + templateLocation: "Linked artifact" + csmFile: "$(Build.SourcesDirectory)/environment_setup/arm-templates/cloud-environment.json" + overrideParameters: "-baseName $(BASE_NAME) -location $(LOCATION) -workspace $(WORKSPACE_NAME) -sku $(WORKSPACE_SKU)" + deploymentMode: "Incremental" + displayName: "Deploy MLOps resources to Azure" From bcdac5c3ae7a494162f6c54a6a700964770beaf9 Mon Sep 17 00:00:00 2001 From: jitghosh Date: Mon, 22 Jun 2020 11:02:30 -0400 Subject: [PATCH 087/109] Jitghosh/parallelbatchscore (#289) * Batch Scoring First Draft: Added pipeline creation and run scripts, scoring script, new environment variables, changes to env loading script, compute creation and AML environment creation scripts, and new Azure pipeline for batch scoring CI * Score copy step added * Modified bootstrap.py, updated getting started doc * Addressed PR comments * Addressed PR comments * Doc fix * Doc fix --- .env.example | 38 +- .../diabetes_regression-batchscoring-ci.yml | 64 +++ ...diabetes_regression-variables-template.yml | 62 +++ bootstrap/bootstrap.py | 2 + .../conda_dependencies_scorecopy.yml | 31 ++ .../conda_dependencies_scoring.yml | 32 ++ .../scoring/parallel_batchscore.py | 139 +++++ .../scoring/parallel_batchscore_copyoutput.py | 91 ++++ docs/getting_started.md | 60 ++- docs/images/batchscoring-ci-result.png | Bin 0 -> 19207 bytes docs/images/batchscoring-pipeline.png | Bin 0 -> 17956 bytes ...sion_build_parallel_batchscore_pipeline.py | 482 ++++++++++++++++++ ...iabetes_regression_build_train_pipeline.py | 100 ++-- ..._regression_build_train_pipeline_with_r.py | 21 +- ml_service/pipelines/load_sample_data.py | 8 +- .../run_parallel_batchscore_pipeline.py | 133 +++++ ml_service/util/attach_compute.py | 32 +- ml_service/util/env_variables.py | 94 +++- ml_service/util/manage_environment.py | 17 +- 19 files changed, 1311 insertions(+), 95 deletions(-) create mode 100644 .pipelines/diabetes_regression-batchscoring-ci.yml create mode 100644 diabetes_regression/conda_dependencies_scorecopy.yml create mode 100644 diabetes_regression/conda_dependencies_scoring.yml create mode 100644 diabetes_regression/scoring/parallel_batchscore.py create mode 100644 diabetes_regression/scoring/parallel_batchscore_copyoutput.py create mode 100644 docs/images/batchscoring-ci-result.png create mode 100644 docs/images/batchscoring-pipeline.png create mode 100644 ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py create mode 100644 ml_service/pipelines/run_parallel_batchscore_pipeline.py diff --git a/.env.example b/.env.example index 01dc40e8..3c63d969 100644 --- a/.env.example +++ b/.env.example @@ -1,30 +1,33 @@ # Azure Subscription Variables SUBSCRIPTION_ID = '' -LOCATION = 'westeurope' +LOCATION = '' TENANT_ID = '' BASE_NAME = '' SP_APP_ID = '' SP_APP_SECRET = '' -RESOUCE_GROUP = 'mlops-rg' +RESOURCE_GROUP = 'mlops-RG' # Mock build/release ID for local testing BUILD_BUILDID = '001' # Azure ML Workspace Variables -WORKSPACE_NAME = 'aml-workspace' -EXPERIMENT_NAME = '' +WORKSPACE_NAME = 'mlops-aml-ws' +EXPERIMENT_NAME = 'mlopspython' # AML Compute Cluster Config AML_ENV_NAME='diabetes_regression_training_env' +AML_ENV_TRAIN_CONDA_DEP_FILE="conda_dependencies.yml" AML_COMPUTE_CLUSTER_NAME = 'train-cluster' AML_COMPUTE_CLUSTER_CPU_SKU = 'STANDARD_DS2_V2' AML_CLUSTER_MAX_NODES = '4' AML_CLUSTER_MIN_NODES = '0' AML_CLUSTER_PRIORITY = 'lowpriority' # Training Config -MODEL_NAME = 'sklearn_regression_model.pkl' +MODEL_NAME = 'diabetes_regression_model.pkl' MODEL_VERSION = '1' TRAIN_SCRIPT_PATH = 'training/train.py' + + # AML Pipeline Config TRAINING_PIPELINE_NAME = 'Training Pipeline' MODEL_PATH = '' @@ -51,3 +54,28 @@ ALLOW_RUN_CANCEL = 'true' # Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. AML_REBUILD_ENVIRONMENT = 'false' + + + +USE_GPU_FOR_SCORING = "false" +AML_ENV_SCORE_CONDA_DEP_FILE="conda_dependencies_scoring.yml" +AML_ENV_SCORECOPY_CONDA_DEP_FILE="conda_dependencies_scorecopy.yml" +# AML Compute Cluster Config for parallel batch scoring +AML_ENV_NAME_SCORING='diabetes_regression_scoring_env' +AML_ENV_NAME_SCORE_COPY='diabetes_regression_score_copy_env' +AML_COMPUTE_CLUSTER_NAME_SCORING = 'score-cluster' +AML_COMPUTE_CLUSTER_CPU_SKU_SCORING = 'STANDARD_DS2_V2' +AML_CLUSTER_MAX_NODES_SCORING = '4' +AML_CLUSTER_MIN_NODES_SCORING = '0' +AML_CLUSTER_PRIORITY_SCORING = 'lowpriority' +AML_REBUILD_ENVIRONMENT_SCORING = 'true' +BATCHSCORE_SCRIPT_PATH = 'scoring/parallel_batchscore.py' +BATCHSCORE_COPY_SCRIPT_PATH = 'scoring/parallel_batchscore_copyoutput.py' + + +SCORING_DATASTORE_INPUT_CONTAINER = 'input' +SCORING_DATASTORE_INPUT_FILENAME = 'diabetes_scoring_input.csv' +SCORING_DATASTORE_OUTPUT_CONTAINER = 'output' +SCORING_DATASTORE_OUTPUT_FILENAME = 'diabetes_scoring_output.csv' +SCORING_DATASET_NAME = 'diabetes_scoring_ds' +SCORING_PIPELINE_NAME = 'diabetes-scoring-pipeline' \ No newline at end of file diff --git a/.pipelines/diabetes_regression-batchscoring-ci.yml b/.pipelines/diabetes_regression-batchscoring-ci.yml new file mode 100644 index 00000000..79a7f46f --- /dev/null +++ b/.pipelines/diabetes_regression-batchscoring-ci.yml @@ -0,0 +1,64 @@ +# Continuous Integration (CI) pipeline that orchestrates the batch scoring of the diabetes_regression model. + +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + + +pr: none +trigger: + branches: + include: + - master + paths: + include: + - diabetes_regression/scoring/parallel_batchscore.py + - ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py + - ml_service/pipelines/run_parallel_batchscore_pipeline.py + +variables: +- template: diabetes_regression-variables-template.yml +- group: devopsforai-aml-vg + +pool: + vmImage: ubuntu-latest + +stages: +- stage: 'Batch_Scoring_Pipeline_CI' + displayName: 'Batch Scoring Pipeline CI' + jobs: + - job: "Build_Batch_Scoring_Pipeline" + displayName: "Build Batch Scoring Pipeline" + container: mlops + timeoutInMinutes: 0 + steps: + - template: code-quality-template.yml + - task: AzureCLI@1 + name: publish_batchscore + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + # Invoke the Python building and publishing a training pipeline + python -m ml_service.pipelines.diabetes_regression_build_parallel_batchscore_pipeline + + - job: "Run_Batch_Score_Pipeline" + displayName: "Run Batch Scoring Pipeline" + dependsOn: "Build_Batch_Scoring_Pipeline" + timeoutInMinutes: 240 + pool: server + variables: + pipeline_id: $[ dependencies.Build_Batch_Scoring_Pipeline.outputs['publish_batchscore.pipeline_id']] + steps: + - task: ms-air-aiagility.vss-services-azureml.azureml-restApi-task.MLPublishedPipelineRestAPITask@0 + displayName: 'Invoke Batch Scoring pipeline' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + PipelineId: '$(pipeline_id)' + ExperimentName: '$(EXPERIMENT_NAME)' + PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)"}' + \ No newline at end of file diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index 159f76af..cf4ef9cf 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -16,6 +16,7 @@ variables: # The path to the model scoring script relative to SOURCES_DIR_TRAIN - name: SCORE_SCRIPT value: scoring/score.py + # Azure ML Variables - name: EXPERIMENT_NAME @@ -35,6 +36,8 @@ variables: # AML Compute Cluster Config - name: AML_ENV_NAME value: diabetes_regression_training_env + - name: AML_ENV_TRAIN_CONDA_DEP_FILE + value: "conda_dependencies.yml" - name: AML_COMPUTE_CLUSTER_CPU_SKU value: STANDARD_DS2_V2 - name: AML_COMPUTE_CLUSTER_NAME @@ -69,3 +72,62 @@ variables: # Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. # - name: AML_REBUILD_ENVIRONMENT # value: "false" + + # Variables below are used for controlling various aspects of batch scoring + - name: USE_GPU_FOR_SCORING + value: False + # Conda dependencies for the batch scoring step + - name: AML_ENV_SCORE_CONDA_DEP_FILE + value: "conda_dependencies_scoring.yml" + # Conda dependencies for the score copying step + - name: AML_ENV_SCORECOPY_CONDA_DEP_FILE + value: "conda_dependencies_scorecopy.yml" + # AML Compute Cluster Config for parallel batch scoring + - name: AML_ENV_NAME_SCORING + value: diabetes_regression_scoring_env + - name: AML_ENV_NAME_SCORE_COPY + value: diabetes_regression_score_copy_env + - name: AML_COMPUTE_CLUSTER_CPU_SKU_SCORING + value: STANDARD_DS2_V2 + - name: AML_COMPUTE_CLUSTER_NAME_SCORING + value: score-cluster + - name: AML_CLUSTER_MIN_NODES_SCORING + value: 0 + - name: AML_CLUSTER_MAX_NODES_SCORING + value: 4 + - name: AML_CLUSTER_PRIORITY_SCORING + value: lowpriority + # The path to the batch scoring script relative to SOURCES_DIR_TRAIN + - name: BATCHSCORE_SCRIPT_PATH + value: scoring/parallel_batchscore.py + - name: BATCHSCORE_COPY_SCRIPT_PATH + value: scoring/parallel_batchscore_copyoutput.py + # Flag to allow rebuilding the AML Environment after it was built for the first time. + # This enables dependency updates from the conda dependencies yaml for scoring activities. + - name: AML_REBUILD_ENVIRONMENT_SCORING + value: "true" + + # Datastore config for scoring + # The storage account name and key are supplied as variables in a variable group + # in the Azure Pipelines library for this project. Please refer to repo docs for + # more details + + # Blob container where the input data for scoring can be found + - name: SCORING_DATASTORE_INPUT_CONTAINER + value: "input" + # Blobname for the input data - include any applicable path in the string + - name: SCORING_DATASTORE_INPUT_FILENAME + value: "diabetes_scoring_input.csv" + # Blob container where the output data for scoring can be found + - name: SCORING_DATASTORE_OUTPUT_CONTAINER + value: "output" + # Blobname for the output data - include any applicable path in the string + - name: SCORING_DATASTORE_OUTPUT_FILENAME + value: "diabetes_scoring_output.csv" + # Dataset name for input data for scoring + - name: SCORING_DATASET_NAME + value: "diabetes_scoring_ds" + # Scoring pipeline name + - name: SCORING_PIPELINE_NAME + value: "diabetes-scoring-pipeline" + \ No newline at end of file diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 6e51b503..cbc49e18 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -87,10 +87,12 @@ def replace_project_name(project_dir, project_name, rename_name): r".pipelines/diabetes_regression-ci.yml", r".pipelines/abtest.yml", r".pipelines/diabetes_regression-ci-image.yml", + r".pipelines/diabetes_regression-batchscoring-ci.yml", r".pipelines/diabetes_regression-get-model-version-template.yml", # NOQA: E501 r".pipelines/diabetes_regression-variables-template.yml", r"environment_setup/Dockerfile", r"environment_setup/install_requirements.sh", + r"ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_build_train_pipeline.py", # NOQA: E501 diff --git a/diabetes_regression/conda_dependencies_scorecopy.yml b/diabetes_regression/conda_dependencies_scorecopy.yml new file mode 100644 index 00000000..dffafd08 --- /dev/null +++ b/diabetes_regression/conda_dependencies_scorecopy.yml @@ -0,0 +1,31 @@ +# Conda environment specification. The dependencies defined in this file will +# be automatically provisioned for managed runs. These include runs against +# the localdocker, remotedocker, and cluster compute targets. + +# Note that this file is NOT used to automatically manage dependencies for the +# local compute target. To provision these dependencies locally, run: +# conda env update --file conda_dependencies.yml + +# Details about the Conda environment file format: +# https://conda.io/docs/using/envs.html#create-environment-file-by-hand + +# For managing Spark packages and configuration, see spark_dependencies.yml. +# Version of this configuration file's structure and semantics in AzureML. +# This directive is stored in a comment to preserve the Conda file structure. +# [AzureMlVersion] = 2 + +# These dependencies are used to create the environment used by the batch score +# copy pipeline step +name: diabetes_regression_score_copy_env +dependencies: + # The python interpreter version. + # Currently Azure ML Workbench only supports 3.5.2 and later. + - python=3.7.* + - pip + + - pip: + # Base AzureML SDK + - azureml-sdk==1.6.* + + # Score copying deps + - azure-storage-blob diff --git a/diabetes_regression/conda_dependencies_scoring.yml b/diabetes_regression/conda_dependencies_scoring.yml new file mode 100644 index 00000000..60c45c44 --- /dev/null +++ b/diabetes_regression/conda_dependencies_scoring.yml @@ -0,0 +1,32 @@ +# Conda environment specification. The dependencies defined in this file will +# be automatically provisioned for managed runs. These include runs against +# the localdocker, remotedocker, and cluster compute targets. + +# Note that this file is NOT used to automatically manage dependencies for the +# local compute target. To provision these dependencies locally, run: +# conda env update --file conda_dependencies.yml + +# Details about the Conda environment file format: +# https://conda.io/docs/using/envs.html#create-environment-file-by-hand + +# For managing Spark packages and configuration, see spark_dependencies.yml. +# Version of this configuration file's structure and semantics in AzureML. +# This directive is stored in a comment to preserve the Conda file structure. +# [AzureMlVersion] = 2 + +# These dependencies are used to create the environment used by the batch score +# pipeline step +name: diabetes_regression_scoring_env +dependencies: + # The python interpreter version. + # Currently Azure ML Workbench only supports 3.5.2 and later. + - python=3.7.* + - pip + + - pip: + # Base AzureML SDK + - azureml-sdk==1.6.* + + # Scoring deps + - scikit-learn + - pandas diff --git a/diabetes_regression/scoring/parallel_batchscore.py b/diabetes_regression/scoring/parallel_batchscore.py new file mode 100644 index 00000000..aef6f3fb --- /dev/null +++ b/diabetes_regression/scoring/parallel_batchscore.py @@ -0,0 +1,139 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +import numpy as np +import pandas as pd +import joblib +import sys +from typing import List +from util.model_helper import get_latest_model + +model = None + + +def parse_args() -> List[str]: + """ + The AML pipeline calls this file with a set of additional command + line arguments whose names are not documented. As such using the + ArgumentParser which necessitates that we supply the names of the + arguments is risky should those undocumented names change. Hence + we parse the arguments manually. + + :returns: List of model filters + + :raises: ValueError + """ + model_name_param = [ + (sys.argv[idx], sys.argv[idx + 1]) + for idx, itm in enumerate(sys.argv) + if itm == "--model_name" + ] + + if len(model_name_param) == 0: + raise ValueError( + "Model name is required but no model name parameter was passed to the script" # NOQA: E501 + ) + + model_name = model_name_param[0][1] + + model_tag_name_param = [ + (sys.argv[idx], sys.argv[idx + 1]) + for idx, itm in enumerate(sys.argv) + if itm == "--model_tag_name" + ] + model_tag_name = ( + None + if len(model_tag_name_param) < 1 + or len(model_tag_name_param[0][1].strip()) == 0 # NOQA: E501 + else model_tag_name_param[0][1] + ) + + model_tag_value_param = [ + (sys.argv[idx], sys.argv[idx + 1]) + for idx, itm in enumerate(sys.argv) + if itm == "--model_tag_value" + ] + model_tag_value = ( + None + if len(model_tag_value_param) < 1 + or len(model_tag_name_param[0][1].strip()) == 0 + else model_tag_value_param[0][1] + ) + + return [model_name, model_tag_name, model_tag_value] + + +def init(): + """ + Initializer called once per node that runs the scoring job. Parse command + line arguments and get the right model to use for scoring. + """ + try: + print("Initializing batch scoring script...") + + model_filter = parse_args() + amlmodel = get_latest_model( + model_filter[0], model_filter[1], model_filter[2] + ) # NOQA: E501 + + global model + modelpath = amlmodel.get_model_path(model_name=model_filter[0]) + model = joblib.load(modelpath) + print("Loaded model {}".format(model_filter[0])) + except Exception as ex: + print("Error: {}".format(ex)) + + +def run(mini_batch: pd.DataFrame) -> pd.DataFrame: + """ + The run method is called multiple times by the runtime. Each time + a mini-batch consisting of a portion of the input data is passed + in as a pandas DataFrame. The run method should return the scoring + results as a List or a pandas DataFrame. + + :param mini_batch: Dataframe containing a portion of the scoring data + + :returns: array containing the scores. + """ + + try: + result = None + + for _, sample in mini_batch.iterrows(): + # prediction + pred = model.predict(sample.values.reshape(1, -1)) + result = ( + np.array(pred) if result is None else np.vstack((result, pred)) + ) # NOQA: E501 + + return ( + [] + if result is None + else mini_batch.join(pd.DataFrame(result, columns=["score"])) + ) + + except Exception as ex: + print(ex) diff --git a/diabetes_regression/scoring/parallel_batchscore_copyoutput.py b/diabetes_regression/scoring/parallel_batchscore_copyoutput.py new file mode 100644 index 00000000..cc4af42c --- /dev/null +++ b/diabetes_regression/scoring/parallel_batchscore_copyoutput.py @@ -0,0 +1,91 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +from azure.storage.blob import ContainerClient +from datetime import datetime, date, timezone +import argparse +import os + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--output_path", type=str, default=None) + parser.add_argument("--scoring_datastore", type=str, default=None) + parser.add_argument("--score_container", type=str, default=None) + parser.add_argument("--scoring_datastore_key", type=str, default=None) + parser.add_argument("--scoring_output_filename", type=str, default=None) + + return parser.parse_args() + + +def copy_output(args): + print("Output : {}".format(args.output_path)) + + accounturl = "https://{}.blob.core.windows.net".format( + args.scoring_datastore + ) # NOQA E501 + + containerclient = ContainerClient( + accounturl, args.score_container, args.scoring_datastore_key + ) + + destfolder = date.today().isoformat() + filetime = ( + datetime.now(timezone.utc) + .time() + .isoformat("milliseconds") + .replace(":", "_") + .replace(".", "_") + ) # noqa E501 + destfilenameparts = args.scoring_output_filename.split(".") + destblobname = "{}/{}_{}.{}".format( + destfolder, destfilenameparts[0], filetime, destfilenameparts[1] + ) + + destblobclient = containerclient.get_blob_client(destblobname) + with open( + os.path.join(args.output_path, "parallel_run_step.txt"), "rb" + ) as scorefile: # noqa E501 + destblobclient.upload_blob(scorefile, blob_type="BlockBlob") + + +if __name__ == "__main__": + args = parse_args() + if ( + args.scoring_datastore is None + or args.scoring_datastore.strip() == "" + or args.score_container is None + or args.score_container.strip() == "" + or args.scoring_datastore_key is None + or args.scoring_datastore_key.strip() == "" + or args.scoring_output_filename is None + or args.scoring_output_filename.strip() == "" + or args.output_path is None + or args.output_path.strip() == "" + ): + print("Missing parameters") + else: + copy_output(args) diff --git a/docs/getting_started.md b/docs/getting_started.md index 89981fa3..cba7e424 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -64,6 +64,8 @@ The variable group should contain the following required variables. **Azure reso | AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | | ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | +| SCORING_DATASTORE_STORAGE_NAME | [your project name]scoredata | [Azure Blob Storage Account](https://docs.microsoft.com/en-us/azure/storage/blobs/) name (optional) | +| SCORING_DATASTORE_ACCESS_KEY | | [Azure Storage Account Key](https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage) (optional) | Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. @@ -85,10 +87,17 @@ More variables are available for further tweaking, but the above variables are a **ACI_DEPLOYMENT_NAME** is used for naming the scoring service during deployment to [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). +**SCORING_DATASTORE_STORAGE_NAME** is the name for an Azure Blob Storage account that will contain both data used as input to batch scoring, as well as the batch scoring outputs. This variable is optional and only needed if you intend to use the batch scoring facility. Note that since this resource is optional, the resource provisioning pipelines mentioned below do not create this resource automatically, and manual creation is required before use. + +**SCORING_DATASTORE_ACCESS_KEY** is the access key for the scoring data Azure storage account mentioned above. You may want to consider linking this variable to Azure KeyVault to avoid storing the access key in plain text. This variable is optional and only needed if you intend to use the batch scoring facility. + + ## Provisioning resources using Azure Pipelines The easiest way to create all required Azure resources (Resource Group, Azure ML Workspace, Container Registry, and others) is to use the **Infrastructure as Code (IaC)** [pipeline with ARM templates](../environment_setup/iac-create-environment-pipeline-arm.yml) or the [pipeline with Terraform templates](../environment_setup/iac-create-environment-pipeline-tf.yml). The pipeline takes care of setting up all required resources based on these [Azure Resource Manager templates](../environment_setup/arm-templates/cloud-environment.json), or based on these [Terraform templates](../environment_setup/tf-templates). +**Note:** Since Azure Blob storage account required for batch scoring is optional, the resource provisioning pipelines mentioned above do not create this resource automatically, and manual creation is required before use. + ### Create an Azure DevOps Service Connection for the Azure Resource Manager The [IaC provisioning pipeline](../environment_setup/iac-create-environment-pipeline.yml) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). @@ -133,14 +142,19 @@ You'll need sufficient permissions to register an application with your Azure AD ## Set up Build, Release Trigger, and Release Multi-Stage Pipeline -Now that you've provisioned all the required Azure resources and service connections, you can set up the pipeline for deploying your machine learning model to production. The pipeline has a sequence of stages for: +Now that you've provisioned all the required Azure resources and service connections, you can set up the pipelines for deploying your machine learning model to production. + +**There are two main Azure pipelines - one to handle model training and another to handle batch scoring of the model.** + +### **Azure [pipeline](../.pipelines/diabetes_regression-ci.yml) for model training and deployment** +This pipeline has a sequence of stages for: 1. **Model Code Continuous Integration:** triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage and publishes a training pipeline. 1. **Train Model**: invokes the Azure ML service to trigger the published training pipeline to train, evaluate, and register a model. 1. **Release Deployment:** deploys a model to either [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/), [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service), or [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) environments. For simplicity, you're going to initially focus on Azure Container Instances. See [Further Exploration](#further-exploration) for other deployment types. 1. **Note:** Edit the pipeline definition to remove unused stages. For example, if you're deploying to Azure Container Instances and Azure Kubernetes Service only, delete the unused `Deploy_Webapp` stage. -### Set up the Pipeline +### Set up the Training Pipeline In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) pipeline definition in your forked repository. @@ -155,7 +169,7 @@ Also check the published training pipeline in the **mlops-AML-WS** workspace in ![Training pipeline](./images/training-pipeline.png) -Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch! +Great, you now have the build pipeline for training set up which automatically triggers every time there's a change in the master branch! The pipeline stages are summarized below: @@ -191,6 +205,46 @@ To disable the automatic trigger of the training pipeline, change the `auto-trig To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the ID of the previous build. + +### **Azure [pipeline](../.pipelines/diabetes_regression-batchscoring-ci.yml) for batch scoring** +This pipeline has a sequence of stages for: +1. **Batch Scoring Code Continuous Integration:** triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage and publishes a batch scoring pipeline. +1. **Run Batch Scoring**: invokes the published batch scoring pipeline to score a model. + +### Set up the Batch Scoring Pipeline + +In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-batchscoring-ci.yml](../.pipelines/diabetes_regression-batchscoring-ci.yml) +pipeline definition in your forked repository. + +Once the pipeline is finished, check the execution result: + +![Build](./images/batchscoring-ci-result.png) + +Also check the published batch scoring pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): + +![Batch scoring pipeline](./images/batchscoring-pipeline.png) + +Great, you now have the build pipeline set up for batch scoring which automatically triggers every time there's a change in the master branch! + +The pipeline stages are summarized below: + +#### Batch Scoring CI + +- Linting (code quality analysis) +- Unit tests and code coverage analysis +- Build and publish *ML Batch Scoring Pipeline* in an *ML Workspace* + +#### Batch Score model + +- Determine the model to be used based on the model name, model tag name and model tag value bound pipeline parameters. +- Trigger the *ML Batch Scoring Pipeline* and waits for it to complete. + - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. +- Use the scoring input data supplied via the SCORING_DATASTORE_INPUT_* configuration variables. +- Once scoring is completed, the scores are made available in the same blob storage at the locations specified via the SCORING_DATASTORE_OUTPUT_* configuration variables. + +**Note** In the event a scoring data store is not yet configured, you can still try out batch scoring by supplying a scoring input data file within the data folder. Do make sure to set the SCORING_DATASTORE_INPUT_FILENAME variable to the name of the file. This approach will cause the score output to be written to the ML workspace's default datastore. + + ## Further Exploration You should now have a working pipeline that can get you started with MLOpsPython. Below are some additional features offered that might suit your scenario. diff --git a/docs/images/batchscoring-ci-result.png b/docs/images/batchscoring-ci-result.png new file mode 100644 index 0000000000000000000000000000000000000000..d07d41a86d2832684115e46ee6d738d5113c6b3d GIT binary patch literal 19207 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 literal 0 HcmV?d00001 diff --git a/docs/images/batchscoring-pipeline.png b/docs/images/batchscoring-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..2b79fe03cd0a04abb1406873b3db5c808d794b52 GIT binary patch literal 17956 zcmeIac{r5q`#(-4W$h_a3H4M8p{zxSLXs_8hM^J~4B6KiMN&zUt!!i88Qa*IP?T*j zn9LYMvW_wKnK8zEZ|~33^ZES$`~JSa<9i&xIS#oe+|!R z;^E-n;5WE)`#uN9K|$cU=g>jmUz=0=OMq{jKKJ!?ILiA^F92^2xM&+`b8u9~^6ot1 z0^T2fcE`qtgF~QW?~Aj`v+xNAhi-$xZEcG{dkT@a+1h-Uy=oGAZj5Odh%M=aS>E z1A7De&+F!aw*7yuk7%#_x#YP0|M|zwaw526wRY>pLY69PAGU=*{C8Zh4+vVkE^pre zpy+zx5Wjfz+4;rZRbO@P_QSE+(a|k0I6ck_Dx9^v z*hR*w^w8|jC&WfS6~9Fb=I?lurD}{OZ>I;?3TY2D&%ak0tGWF>-vlB4Kki#-dDK-W zGl|u~Bdug5EWlG3lWet)=C>^pfTxfV(Q&Gn}rKK;*cak!>=w_LH|TGV1QFlFE-e--E6 zPY*Bu`Dvj*xA2V*VgciWeulXL`wC^w{rQQhMuK{vX^E9=31G>};XnUvAu=N%{$zcN z;7Q=*KK&38wi|TC`B+OD{ikEBpS)#~u#DBu?{VkAs&|5|!^4kqi}`*CIlEp1!Hz36 zJUtoAZujaEb1_O$lCteIQYAi7bnZQrFMTgmLjzS+KN-%u)G6xei@+frsEr?`lnzYo*O%x$S~9`L5*Qe)`q#rmBF1Hy_l*F0rlR40;iuAr2D6k zPf5S&Br}_q8%x{?4q+@mGO?*HMqC3gEBeo9p6dXk$+Y5P@6ym<*?}E za2CzRCEZCQc;i_|q=@}I&!BuO{c+P$RnIs(zVKmd7<;#zgN4G``>ZpZ3OO96;hQB6 zV>8JP9`TY!JhRdQsGIeS*;Ftz3{_LVSX{DHnDgEnUG_YD-*I(HO}yKS3g3mHhvh~> zy`~jY%T3hU0t6h-Woj{xWS~w{L}jhz3tE>O$tt$5;Orz@4=<7yduQE=P#%Pm^K510 zyYc_=)|**?W0_iC7u4FR@S{!;;Tt&;T#oB=O$%mcX;V=W87D%Y{;bFX2hAjomRQSM zf7vAlkhn+*pqi&~;4s$a78bEPES!b|CZFznEXMqqHu+j8{h4jGv(bvtH%L&4HL}(X z*)n=c)#LO#VlI?WE4PxR6Ut@tOOrmizll;ySn5}&-Xn5@Iwjb2eN{9_=w;DJn>w|5 zy4FM<`5s$K1!k%3;vc_WvwpU6lX}*)PDcW^5eJ5Cj+D>BvW6euB<>Ur+z{nD(yzr1 zwGPzu`t|jpyA(?AlU7*k<^r~Bq}3#66RRZs6+;u_VGJ<&w>QaiqgRazjMMEVAMemt z+dkdrdHn9g)%M`6rO!SRdvQeWX13g?Vf+{KWHVQz!A$Ll{|j zpA6<)Jas7<96%glSzUEFQ#u)ylxhUHpnI&wR>fyUmqsg|jPMgY&V{L2cFauUbTzp{ zSsvNL_;z!*{Vm5HFON60o%k~=Z_ix~Tp73}I2NZbZljVGy7ptMR}u4|$)959u*)M^ zXxiLtk*aCk)?|%_!w62vU^`Wf*4Y-GLCa6&I)1|Cb3>&ziiAf|Vk+eA!oO=+21MaV z2(e~YRK@*ubA^pI9~b``kvmulRcoUyio6viu&g_{xP3=fQF=OZ;Ll!2k-8d~3E#3j zAttW5vvP~J%!%6fz2MtT6=@43SRE}MUrX>%x28+v>-Y-iBjDQ$%V5rigIogkfNwoq zmNn7lYgxa^`8szqMo|B>*X=8Fl4=Ko|Ed8=(38)LR6G5f7-psE>D-n-STquK0``IW z!Qv1)57-UgGD4OczHZ(-wcJ9pcf;lzT?r_f?Mo$S(8e7xn#|G|QPut}Vt|7>ZQLh% z+k^Wbvv2m9&qQ#$;mTt+HYM_D^7Ad63;_zEPH=X7Ekya}E-im*{s}eTLckCFw!Z8aT#-BQ$FR2AJ1dzV!q)*` zz+Xg!KIWDPeRd^ZDKInnl3TOAUNdS8h|$oQ?!?5k_u)Xg#gDllpw@O?ku5uGJ$u=C z@=uuJSgY0z=RS7PxTbC*SjMF+5QY>HtAi3oH|MBQftezzB_$bUs~6h#BAr<9e3nY^ z#{As{&>i_)4_tYAUxr5NI~Pxg=E=R0Yn=aEeeL@>$~(pW3IJ^Y zv1myB$VN*zcip&mblHQ-zv+^9m8qKo&qJs!swd2q=Pz^>qcQ7K zc3V64NBl)wG@Rw${_=3!&-*}rY=F_HqTZCL4v%2hFew+s`@omjZ}kw8;Eo(`u(^*`tnEZE2~OK0VuBC}_(3 zvNF|C1~`~M0a`cq>8j(ncTF>|T>Y1=aUT<$?niiu^q>mA_>G^zv}Gue4y)pg)qd!` zJ25p1?f|ma(~B8_*}OG19z?vF|I&$Go4eF^^WzQGsd`vfacI+4+iI5tHT>WlBCM5w z`(v)qG^(vL$k$d!?3;Zx0D_*;YCzfV1ois-2+=PhX4@8 zqwtj$5q<&Q3PfydUjb}omq{h?tByYu)Y$kyfd4Uw$Fk&n5h?ZV27NlV>D1PLfvEpR zH`28adj5sHrpkZ)Z-K?P%RauFWdE^%qvpSFYW9Bv*8YDN_?wlSKSvKUJAM6WehXu) zcrt#>uO*crVeIi&sDh|^P@)k6-EX`&{yjzIjQ^iKdDGH-V~DBFtnuZHa9<7%suc6> z;}f~_?+jZS4n}aZKUa1x!<{OLUe1Q()&SPSB}omn(YnJC_^}IJN+`tm4eah3GOtbb z&#z@lUvgc!DSKEB=AO}V^_dH^uhJ-@^2Y`%N)=V@6V-=e-*Y(jFMQ{)1(`)~qfe`J zl~alB0#6-qFwFwnW8}fg7tFAuMg_-t<}{UnZ66waT()Y@vG;bFs1`i*O6}uU0%ES1 z8|(L04wJaUPOo2o1t4ZrD~#C~^v9M+8PLikRpN3$Scj|teASUlP=(rf=^j=dRGHIEDU!OQV95CE}DSyAHM zP0m440%GCpk;{vEi+z~8QIK^Umt&67gh|d>32C|(wRzp0zB1+1^<=!>OYX{_LHyhn zmJPh(zt&x~{FWz=F_D%Q*5;F{0xbo=SM9SY9okp`BnM9|=0}27vzH?Qv^#$ghFnlu ze!(sN3}M*;=9-uSZNSw`uop*49U8pzQnhwdEniHW9o(@tC-N4>p0-e1@?TJDT3QWi z6Uy6w^Tg1wPX|KBCbY9C7L(4yg=V$PuH!CbVYz&nQf>dxL=OZl{5T^2}DwlsSifG>DfR zt8(hGJEG0iu1fTc-vg!P2b*0x1cB%&eBQz9o3Q_SpK6mfc%tyR?Qr5?#iNcTpaQBJ zDY0%^fXN2S>i1y1VHIC+OGt+~3SB(8%SG_9i)*nijWm)f8v3-BJ%s1qM{-0iGi5`>(M*PsuHmzbA*x=l4dw;$gygp95LB zr1Z*z7YD{X(X4S&V9Cq#K>Yza{~@#enL{)jxa+epVT-5#m5bFYJNFV!_v`{t@htk< zhBr#^phL20>7>Tv2Mw(}Y9h+hAE7WQzjha^JINs?>qSjD?(M{zk+vu3c-Gh!~m+q ze!aQq-WJZ)R@V@@|5$O`ZX35m{bYoFKLO=tUDxYQoTzy^*uDq%L-A`h^3>oUuazH5 z7&QJz2Fu7zBsVCR^nMHTLY*MyQtOLQwkL(8AkCYWh$cp|BfMSSd@F)y zcRkM|rhUEm$~f++wYBc4f-~WbU&c=DG?0w_I|{j$)45L>w~}qu1Af}67x|oHev3`5 zU(OqDzqw}+6QWE?hk*_n;>Up<@pP|r{>9{KucBb75g_%QtvWQS1lg)K*Z9wRa%8_f zeq(;3vX!-vXoMp2deLN}mva00BTO1Lm&UMu`ik(KKRk(?Y!%M` z7>zWu%$fZ1Qk$~$(J=*7*Fq+|;a2u8HsY)!q(u-`j2KyzF zdGzJyM%Xab>tl^4-kLwEpVe5dpYEQO0I(<1SpMGD^eeuTk8$=P6e}#3agwbIt4h)z$rKJrsmHb6BED6SkczUT{*; z`F2v-LN~MZ0P6H$6#!{kzD1n;$H)p)q2r+OQ`@AI`!{9jk@l@)@ zKOf@AToW#vc~RIT+VX++J=FzIyxw@_e)N8>Q%V{y{>2Ez@3U)ftPJm)O756_Q2okp zDNRDvtBsR&w+xh5#=i^?swDrqBfr%*iq`ydU;3`)-Ibfik>gJRuWw*&mgQ|BPP(}p z%&u?oyAn7li}>rrl=^`4e?I@bxL_#!PnE#&kZds=@Gl&EUMBH>jG_ZFwIc7W$`D;80HI6+giK*VxJQe=pCx{TI4(ygn27=N=q?|2MXMe(1l4c_#e- z|G4Xum4`r8<-x&`J8ggXcPu$Cc$&WNlKip+$MgC;!{meP{l%@PL~fXNLc0^BJkA{B z=J-)>y^k>+Tr_d5m7_bF$<1-b1E9m?z@Ic>!B-9z;$1CPZl0_KHpgB`KAy?$QuJ~g zEv@7iRXKp*$ef+}ACEzXE=yE9_hoNMaSWf)d^k|?=$6}9RUY#+Mqk?Vu*C%~Zo%WS zpeF?x!Nrt@xs1I!|A1p(XRHLZlV40t>4f=R?9=Ai!Djow>j0nHPzFLt)19$Z?dYoj zLrMk^%2*)(DydudbG63S&yL06qUnPyhv{}9PP@v-x+{loS{`lne928zY|e%3Xh`m+ zFH1Gn1sbfojv3G-j0zUMk>+-S>6j_)>7h}Fh-H^uCSAjf6j`uI(>*M&ctewtktVpD zsBAvO_)NJGi%6cL4h=2U_}Fd0=qVdLf+plS8adH(;tayiBt>4rPCk{+d@td<Mq@hWGSIP+UEjF-l6_;>=OQEu*7e9oGH{6fj9>I@={rs0AN%K4V1r>2XqAqL z)^*xlgX7u}J8tzu_$% zkO!IxF77}f#e3>Co89|ak?3NA9eJX>Ier*39ksH>2L@?qHa#@N!VXvXXxGy`!0AfLxh3vGg|8SOFL5<>G=?$`;H zZ`t^0IG_>64qB@08dvIw5)^DT$Y0n|6F7ZsfVh7zM^<@FK|U_KG)67vYXxsSt&`iW zLzU)!mBeXWcNmv(QwgKYr;7(v>lu4G>;F38D}GU{@_WZ|hEh%s{Nx2BqH|(3@c?_0vff${lGA_ItktY56JX4_ zi1O1l@Amk>nX4?XQPPTrhQw(Hiwlh3VUqVgnQqz5Ac_R8|30D`yQY<{=I0%O;ayP2 zI5@7ZK5AHIGFH$zP}2;_9nwf48aWu|{EBn`dO!O9L+`)6Sed+`X-zq}}DhA_7%5hmaD{j>sh z8r@hMgjMf?K)5V4HM&TrEh0DOka?%2Ak-zz>lIG#2I+0kGde#YNE%YjYntxf5 z;|UfW78Y<0WBIHVK-bns@Og$J)|V~-xDOffU^r$6sE7j&H}IqaT?A??E+9qHSP&k( zVzr@$xc!BM8MbRVB7McOZD9}7iM!GO-x#L!`I#K#$?~<0lvMK+4(-vy-NTiG!Hwv> zmW%r;-${ksOD`&wx_ybE>wQ67(jR(Bq;`g?a6N+wQR$Xg%qR}AZPqaeT1XpFTR1)1 za2Z1Ledv~uz+M%^5}N`7A~K4k$rCp3nDGD97c=s<@baHEG2J4IyB6it5Q zS*~M6j$D9IWkkQCv7w02wKq)78!ZwarKNI5&hyKwpFTevaB9x2Te44rot_K%^`eWe zG?h{h2Y;+phZ1+#@dshtPh{jv@3bly>0)IyE;g^U^R``dH&C7#|4}zyq)>ake7tSH zla*hl#W@w(wO{-9?GZI0fri~*q^k?4p+<@hOm_f(3gmM<_ia2|3s4|L)%L&U>H*rV zY4YZM%3}omrNr&(Rhra=GmP;Mu*dmU{E-8pcliWwtbBRcoBvX#wS_Sr|3ZgO)|uPm zR>CWP_-aUr;TZV;G;siaTDpFap}E&;ai3Yixm;U+v%_E|TO3mpo#9Q?8fMXIu*N=f z=@>1mm;E+n@d{)Y1Z>NhVe-%|8JJBP#qs_1PX2~9Jz=v!W-G!$@LS|?CngC|!nbRm z%_?R^FB%3xz>39A(!~#iG|@Y>;=#{lmeu_yVMt8zr!(8+Il~bD*SPciJ(dP{cXmKw z=|}?z0-;A1^VrO3hrvH>6*Owd z&-eK4HX*a_OWUvgD*fNu8y^kp2^zY_VQGH9Pg(fHf_-*Kq(UnX46Mf>^2zWQKswa+)DL591o&_xO=8QE>frnU;pN zZkhGs`l*?C1n(TD@}-#9>x3+-WrP~#1yD!4HITm}uJqJ&rO0CFn)^w$x&*eFQNO#a zJQ`zlKaKr`(T=CjqyHkp}4@?OWE06D+wXU5}S zVr5zH8_T866aPxIwf7y=T~0xku7el806j{vP-&oe@9G-yRh}CEVYw`XK??h%Vl6HO zW~S$Z9(QLhJd)ZOC`&Kp%fmE7_Mey9Pj(w=-NL(hbY0>!E@{iYZ8Yf0-@vmxG+#D* z>c*y4(LPo7mx3s*3%LN|t7h_Lx&oDaN)!7fRdfok-72VlL2eOe#l^@@^**a=Ner_% zrmqTTX<7gNiJM@wy8e99bTOHm)}10{UoB@V%bo7nD5(T(#ypkMOOXwhc+*V(744)f z)Bbi<-8H8u=}ruSd_aWR>TH%ZoZb~g+lRGKh9t3t2qUAy$*H`A3X zXT4!y^joXWZP1m8f|hP`srf>vKtRA*pgI}@?N4$ca;)NP_V&VWnRq(0B`Jp_<*9ov zPeZdXUx)SftrqqY)Kt4#@c6uHLfyUKt)d^U?F~63EHyt-{lX0HEvgS9Ep+3<9;Ez`%7c-un{MLO0{y|Q#JlRO7!m`scNNuF|-n5(gE8cC3PbbjS3kI%IACGekF>+Eg zQ|u$lX4+PDEsp^^fp&fYk462KIO7M+L*b?Kb;=Deb?+}x{Z3*qmIuqwJW{@}xy5#Q zqajv~W7m7R=PSwRop1a&JD(VtYwbzXyxBm{?MAZmSBK06v~^7XW0b2v&*+*yuBv=9 z)K-M)l6s9T$`d$`m(rWb*TM0B(COw~@3WrGcC$rKHN_e<8iz*zjk;!7d^6AKsknxl zb;4Sl7pQjMp>AtwFm_!tsHZT+dpQA!@ec^6t*0hm_`h{+e8uQ3^)HtnzyE8|E#aGD z1?W}E^U#e!eGix8_$Z6Y`CpcL?|FrO24C_)GVhiPj4V%S%&8ea%pNk?bQhB+3Nk;gI+z{_dFXY#xNn}%Z=Bbk44_105Kg(Xa zc5h}gOVB2a(9AX8Zo7h2lvpD7#%FhjPoJ!8hpf@K9^1F52 zgsSuWv|H{{t2?n6+)J5940e>;v}KYV?#ahByX3JopKtjgA9!x-f(6bCAGCP6EGE4( z;CbZQ&$Wa(D_P?_u=MX$NQ#JnFY`+{Pe2taT z^NpOEh)-qB6*m~&b~_ElB-2Nw?7nBw)(E*g%comCh4=9NM1Mj|vr~AA|MG9!|n1F^I4P3ovFIrr49Zn_IOXwvHYWTU zgMOUifu*e-l5pK*u0)gsBn*Ty$rn0r5JLpUNI@OBO-?Uvf%n)u{T>0S7j&;#=$hLL8{ zJI7m|IcU2Jj~324(?cBM9U}FM+mQQ2&7j6y8SRn!(!*viKJK%Fw7F>+H4jL&+HZro z8Z4fk-!_i4US*){U9V@|Y(~gaRGaCIOsB$!_t1Yih*%!{;X?e1k=c%UeB7Cnqg6r| z@(*)ep=_>Q--tEm5B8Hv9CcN&E}7Mt!LI4|Y;mo6!QotrfG}XRM{^)9nr9oeJmpk~ zgi3IH*RS>4&*4sd`Y-*>@%R6{{=bbO0LZ0PAg&#d__tqSG#Ad@#{Tn`W4`v#AO7R^ z|DG1p{{x|xS-UkK%kZm`R22D%!Huk4ii6frlBg%7?M{TY$`R?T%&^IE!BzI?i{70o@@ zcsI+o=?AGC6*ckT@p{ro>D%HjqjC#2-C7~VYg3dulE)?)Czx;CxqjOV;2|?@I`CUa z64f0?^ALYmblNA${aGYcROTYF)I#g0mo4-0Q*I`;JSO5Q3E8ctN5WO=_l?whIqnIZ zmZIfbpLNuGO}l^paCRhHG6-m6ch{1EN~L5u>QP=h?U*scQWBx|V%JIc1sHL@?7An@J)^aBY_lOcyRFwTxP>%d8jPdverC zGx0D#GP+#9%ng5IOeiGC_LvwIkVxRb5r87^aOXabicJu@^6LcKHKvS5xKQ4%vTc_& z;z}?za9VQc2fKKh*g&Pwy-sHSK6d5ij8wqN0mXcN+$H$g$)V3yB(yrH8ZG5B z+HicIU)XA%D17sKKwQ3~sN$PdLy58qmHn+%dUG&{>Mks+j9_}|FVowsS7yA#K>qy* z&_fwq(odOqE4)`-pZ8(H3taCdvVws!M~x;336^K!cURlIMT&51ubL~qgY4;+V`?Q^ zVISSG#w?F?W+`Q0`(3E#XHg`HMP<$=#As2o8n%c-L$|Ft-&={moRT#(G0>dGz_sZb zv1~7Wl0r{;;N#X*2W-sYk;emUlm=+Gp<@;ltF1`9F-CWqSliKY+bSvY2-)2ky{@*a-gqdGw^)%X@`)%DS@1f``Y7s zjWIyvAYZa@db$5LmrXGz`P}GgN{@_n`Q>QWE;qxdxlIyed{0n<(PB3P0;+<``{W?X zxylG+T)HRJPPiFRg*3U3fifIw9rSAb4x31bBcLH22@fOyd0yMaYJl`o9nv{drWZgD znC`*t1_7eI@eNSaUgN2>wi4hRPaZ%ce{p85Q~^RRGiHax?uW+RM{4>OPt_ee`DoWe z;qyq%s913GGqs&`1X9g>wpSuzr6Gq^7!EV*G-|uxxu;{Giia%y#VA=#p_W$ndn0t` zMuzeXdu9)dD!V4A3o6CJY16SFvv2k0)nwg9ykC|M3X4&S2fr>Gi9 zXbS2wNe%^L?|Ds$^P$LhzISjbXsX-mf(S_ag5!?bh+nCj9qHTp{wcD`LWa%LMsk=8 z6d#Jyy%nn7yrQskWLJZw)w*;AYL2fm^9yZy+L9iMbEmoEDV?8He5Qh}JD=e-e3rhw zky&~XCRd4fG4jInN|Q`&UUr`kRn-{FKszn{wj6~_`qsTmmuKK7nBFL|ZdQk9Yb_gA zS7X=4?23|cuS+6;x>N{Uj=j6ob<0{;iXOR9UxQ|YnU)S1sBX#_^z6RjV+cC=_K8fu zKmcA3>NdSz(CEU*t>UA^%di7l33|}z?nnzwArblYfl%qXL515+I-qg~Hm^9NAGLO< z$0{kIgzpyVqF+|7l~_P?&3Cc=W$5m+JDLMGPKk&cH%{A%s`~kjLJjaHjHE1!fJUu+ zB0?rxvH*M(W8Q_+Z|_;TMW=1B%Va4-YHlsJ$&{WWzX%0T8s=CwdN=e96h=yz546dcH7Selfb2UY6#myQGaaC4af9pfmCK-|VaL^DO9&LJ0MhzXzSk z-9yRf`MdMEk>eD9A~?W@qy=lNAL>AZ*d3Z@N1uEhYGmZvL&+ z$t{m&*RwmpUz_jv=!}TdH);j^+48nrj@iI!CQ|Bp{8b*AhA{=o`Xc6ZMZ9g)N#0R{vPoaSVNW?wxvSw0vlCnzFsJ9g?!&9Nj+7yI8g%hq zddVY9!@J3+UU{SgXorQL?DgB_v`w=Wynlbc^NardT5%BL;Yv=;d5XE0OfA@-o zIv!JE#Sy_R=)Yb#x&88(aYdJSNa^K$%g3aQN>ciZgGvs7dxk<&97s+jtkd~As=}?1 zF_4Jx$L&+Y(hsp~HEA_|gH+}Mpxd5*STsnXjFcqHl*V8cgf6cz|28J%jf%HAv-h~t z&XW8(2`bGd@TBx5iwb=*2x-3%5nC6y`Z$EOi6eRqDJaqJW$wPJE7FcQsN%o$fCkou zzyO`xY*GnnG-whNS2GO)N5;OWwTb)!Q1lKf6iKytoO>i`8%eJnxiQ3w9`PN*llcq2DblA?S z(~BrN<03q0TW%rvP_#T!4clUfi{E!=Dzp4Nr6fW??R&Z>&pk+U%HL6t>pUt8pWePl z_H)Ky{Ove?d(QTLUe?Sb-(egE7Z@yreJZB_(uuCVoU>{6U)N2inAHbi)H!qet~$N= zXN@HxI-0Wm33UUoGX}MOs~)Y4*{aPSR@GOnOFAWXCb{1*q$wpp--jDvny9h0rO>oQ z&)?dafl{h_73nQV+1i7Iky>tyo0C2T`=y`Zbu1M|_3$5^ilG!m+cs4lN;GKpqx6qf z8Hm-rtC^!-HykBAN5fsZBnAd%Ss0J4FY>l|TbUKlf*`yR6I!lM_{mAf#|lkhznglN zej4*byCezq`+WV}a=oLhkrQKyw`w4bMxzQs@@3v;{SwTFtqKvim(z(`W z9lGT5`M~|SjXEs{r*%bD>fo^?0z==!leyfSE-IuHI2Uc1&xB%M`PpUpuIr%`Z;3JI zQwnmVPgt9BQC@HKDs z0GU#ollT^-DP3$htDIHilhd~q)#(5aRjkV>wxOoOZXc@?96DWT4Xa~;I^U#=;?us7 z!Hyu_e#{YD>SL2DwfB>Py;y;ZB z-6C5d5(W$~n08r#pLmd=F~P#1?Q)gS@F`veWlusa^jOof+2f6F8Dzr9htXRFu1+$m zrc)4LE$m)Ecgji0qOfG2rB;jU<~BR3&bsHY$k$gz z944QIxuk!^1qll*sv{@9qRP!}TM-ww|#`7`)r_QwfT%ac@zMf!i`o$puc# zhi?lH*12;3zV(^g>F;(~srKRYcUt;2{ZZnyNYVFYE=o1ua{3U+&$AA z>Yimx0xe2^=9yMRVrx1esgB#=wZwAiLp}AEY)J5CYYp`$b-_+8g7YU^msL=uyR|6y zE(-ZUPB01_&>|ge`uQc#CpT`V9tegc{meRRwS7iZ5j$FC&#h9^p@1PUDfe;tM3h^u z`t%#c(ME;CiPeD)7+aTk=WGl~^cKGLoWV`!GuiZ4! z?tW$ol0~)tDS_JVY1CNzNZ8#IiCKfY7BL=uq6JRhx?~E?C)&53-Mj=D8=F^6TyYDN zI=gqwribUV&tbL)-m6T?S6nJ*MyfE^M@Lz4!+1a94YnbR57loQ2FT#TjvV0zs=EaWzaLWRt4)f$kYyu9Z$Q_=Q7)e$)Bt6vC&%-CM2@9NbouUEEUkI(vP`^2u_c z{H`$JNkDhdTr*>-j~{(ja+IjL@i3RER~w=)*Ih_HYtR!2v@On^+{~TMUf{TG>%y># zZlH4jXMir}HStuC?Mp-afP)>~;h>d1uKjlro12%3&5xi2*-=E8rqd zi`M2UG5O3RnqJYkCCm2G+d6}fFI;o=NGhvs%oh~#h~!;oO}Z6!NkvSi?%!^^_^jKa z5R%p!HlG#sH&-#FT~;iiUTTq&+EZlXtWwNn)|)KqmTK8S5NVe7$>lS$8=|j`&PPYf z+aBI3wW$s_N#&Igp+Rg2(D|R05}YzCA9wTr^$OwQ`D9y}Nz< z^e@F42vIxNi9S77rO=xq2RS)Kw!T&S<-sZ0Tam<7E9uqVl7nbjpvcXYMXC+e7Tb8% zb0zNcI%Y0lN_cz(I$FY1${Fe|trMJoe0gJXSuvEYeR!`8q|~ z8iwsj)MX79`J*SKo{`AW(DoW-|Fzgt4U%xz;sQ8%g6^BhYc;QjgtKlNEm}Dr<@O89 znXgFsU1a%un~n{J1U0Ufc(N`k9IpO*?5^E#pP32-D?V1)8ePR+{=wzJaD^A{?zhB- zVbW`>MKff@kjHuIT#jPn)l|LvCZ&semN&<1FU4&!=PB~uF0Q)rmfNrFO< z@~pM(KPm8O#)VErir7sh@#I@P$a{Ig)&h^E7T;8~E_?0XH}k8eT>7-NlDhrFl(NIQ zqq?Xw799kas)Wgz^)pM5utJrW1wodVE`hj5?wJlxP*q#zEtqPW_FefWh$uQ~xN?n< zmGYPLGr5DCGxLgqY7=V9pgH$0OG2TK@j4`ZxbYi8rZ~nS4liN*5d@-Z%A>$)v7y#F zjsESQFB{FdeZACC%;Dre_B!dDbR#k<&&yv;hWKp$rbI=?z>Ts3BWN>>|Cg z{RRw6f1RAU1`hbeTcArQfE{VgZ>}M?v9%yU*_*3pUml*V8_ z+0l^lVw6S~_}*oHCpAqcNc4;pn;{Yf&Bb+Tsxyf8vc(F&`_Qdder^psk=R+Jk1}pk z?m(h`v$~UIE|)fby$-}P|E)E}N|U%an6oSh`zLfsjKUw1DrX>pjS%B@e<0xj4-DfQ+<^_m*;`8jM*viY~x zz8cM(V*e<`l;wzw$v3HbQ9lgqVw;ZCh>g`=kh4DdcKJms7joI9n=Pevtp8kijm+g{ zxiQd#t~h_)8C%JCicJUAhn*(9jn2p`DFL{e;mH1qbx^~Br=*es0@DF$44Z2c_P%YJs`bKx^cUjCP&|h#6BFO9)+3j{A`J8Y@9?Jd@?x$sY zITRZ_|45~IsUp|Utc+KY2j6d?XPd*+gP=FDOsxt{4~43s#D+oA3w#fbzfiW|izY~0UyzIlVG z6Ur~)bj`1f;fO>pF5jJNM2bzvrb~p*+TdRA6Esk^ZJ%pRDk2?n@yC`s@Nc6#7n*9` zd8a85rzG3$cXoJ@Vff86ke-tF8yxw}+o86?6=suqI3s-Pn&9PAh~t6STUq;HQyiwX z)B7y+A(0c`a+&`Bk=@K^wu^vM4Nw{#%DO;(1$*=w-5(F)`R2CvO~&+fQUNpM8Y!1u z;->9zLL>ESKF$3-|dCULolAD0!{l)tOF{QQ-ZEZr23ifpc@rznaxhZZ@&KtxtDLinj1wGD{{db#L8s8liHYHuqJuDB}YH z6R2`Azn*(!b~1I`Fvkh%>`-#FF#Mb<3zj8A8^|0LEWVKnwf$(Jcd~o*bxnyya2_TV09`MgLPlRFADh=5-?b}Bx?3^A@L1UX*pD-oXHdQewS9UbqNz}qJNLon zLXWlQq0ZbUW}@x|F=UFBg3IbQa3sV6{JGcW2XIb!cGv1F)MylG=#S7gh;G~q!p|J@+a7j?nIf0t9cuYZz2wSnu*3V;J9b0`*lcX zjA(KS-1YO_9OW2**LMrW2M131UT=*Vds%0VbpwuYK*1XiJCVn>wZQt;BWQINGhWJqK~HDdc`N@b~33%83feZk=?a&*~d-cV#7ue z6G4+`8Tme>l~pm9ZJeKe-$!cn#}{Rs5bK#d@TqQWyPAk>at$xURVw_*j)di~D(`4h zz6Ua_d8mc&DI2_qhq7BDSihtA?c&>&M4V>Lu&o#6Cw^=;B=_z0j0NA>Joe-p|13i1 zDD)n_XJMqKvAO=>9e1d#wGo6D)^?nOVgX{!GpJUsAqiM{{CS30=apX=9N PAKyUN_;$I@!|?wFon4u8 literal 0 HcmV?d00001 diff --git a/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py b/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py new file mode 100644 index 00000000..d7acbf46 --- /dev/null +++ b/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py @@ -0,0 +1,482 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" +import os +from azureml.pipeline.steps import ParallelRunConfig, ParallelRunStep +from ml_service.util.manage_environment import get_environment +from ml_service.pipelines.load_sample_data import create_sample_data_csv +from ml_service.util.env_variables import Env +from ml_service.util.attach_compute import get_compute +from azureml.core import ( + Workspace, + Dataset, + Datastore, + Model, + RunConfiguration, +) +from azureml.pipeline.core import Pipeline, PipelineData, PipelineParameter +from azureml.core.compute import ComputeTarget +from azureml.data.datapath import DataPath +from azureml.pipeline.steps import PythonScriptStep +from argparse import ArgumentParser, Namespace +from typing import Tuple + + +def parse_args() -> Namespace: + """ + Parse arguments supplied to the pipeline creation script. + The only allowed arguments are model_tag_name and model_tag_value + specifying a custom tag/value pair to help locate a specific model. + + + :returns: Namespace with two attributes model_tag_name and model_tag_value + and corresponding values + + """ + parser = ArgumentParser() + parser.add_argument("--model_tag_name", default=None, type=str) + parser.add_argument("--model_tag_value", default=None, type=str) + args = parser.parse_args() + return args + + +def get_model( + ws: Workspace, env: Env, tagname: str = None, tagvalue: str = None +) -> Model: + """ + Gets a model from the models registered with the AML workspace. + If a tag/value pair is supplied, uses it to filter. + + :param ws: Current AML workspace + :param env: Environment variables + :param tagname: Optional tag name, default is None + :param tagvalue: Optional tag value, default is None + + :returns: Model + + :raises: ValueError + """ + if tagname is not None and tagvalue is not None: + model = Model(ws, name=env.model_name, tags=[[tagname, tagvalue]]) + elif (tagname is None and tagvalue is not None) or ( + tagvalue is None and tagname is not None + ): + raise ValueError( + "model_tag_name and model_tag_value should both be supplied" + + "or excluded" # NOQA: E501 + ) + else: + model = Model(ws, name=env.model_name) + return model + + +def get_or_create_datastore( + datastorename: str, ws: Workspace, env: Env, input: bool = True +) -> Datastore: + """ + Obtains a datastore with matching name. Creates it if none exists. + + :param datastorename: Name of the datastore + :param ws: Current AML Workspace + :param env: Environment variables + :param input: Datastore points to the input container if + this is True(default) or the output storage container otherwise + + :returns: Datastore + + :raises: ValueError + """ + if datastorename is None: + raise ValueError("Datastore name is required.") + + containername = ( + env.scoring_datastore_input_container + if input + else env.scoring_datastore_output_container + ) + + if datastorename in ws.datastores: + + datastore = ws.datastores[datastorename] + + # the datastore is not registered but we have all details to register it + elif ( + env.scoring_datastore_access_key is not None + and containername is not None # NOQA: E501 + ): # NOQA:E501 + + datastore = Datastore.register_azure_blob_container( + workspace=ws, + datastore_name=datastorename, + account_name=env.scoring_datastore_storage_name, + account_key=env.scoring_datastore_access_key, + container_name=containername, + ) + else: + raise ValueError( + "No existing datastore named {} nor was enough information supplied to create one.".format( # NOQA: E501 + datastorename + ) + ) + + return datastore + + +def get_input_dataset(ws: Workspace, ds: Datastore, env: Env) -> Dataset: + """ + Gets an input dataset wrapped around an input data file. The input + data file is assumed to exist in the supplied datastore. + + + :param ws: AML Workspace + :param ds: Datastore containing the data file + :param env: Environment variables + + :returns: Input Dataset + """ + + scoringinputds = Dataset.Tabular.from_delimited_files( + path=DataPath(ds, env.scoring_datastore_input_filename) + ) + + scoringinputds = scoringinputds.register( + ws, + name=env.scoring_dataset_name, + tags={"purpose": "scoring input", "format": "csv"}, + create_new_version=True, + ).as_named_input(env.scoring_dataset_name) + + return scoringinputds + + +def get_fallback_input_dataset(ws: Workspace, env: Env) -> Dataset: + """ + Called when an input datastore does not exist or no input data file exists + at that location. Create a sample dataset using the diabetes dataset from + scikit-learn. Useful when debugging this code in the absence of the input + data location Azure blob. + + + :param ws: AML Workspace + :param env: Environment Variables + + :returns: Fallback input dataset + + :raises: FileNotFoundError + """ + # This call creates an example CSV from sklearn sample data. If you + # have already bootstrapped your project, you can comment this line + # out and use your own CSV. + create_sample_data_csv( + file_name=env.scoring_datastore_input_filename, for_scoring=True + ) + + if not os.path.exists(env.scoring_datastore_input_filename): + error_message = ( + "Could not find CSV dataset for scoring at {}. " + + "No alternate data store location was provided either.".format( + env.scoring_datastore_input_filename + ) # NOQA: E501 + ) + + raise FileNotFoundError(error_message) + + # upload the input data to the workspace default datastore + default_datastore = ws.get_default_datastore() + scoreinputdataref = default_datastore.upload_files( + [env.scoring_datastore_input_filename], + target_path="scoringinput", + overwrite=False, + ) + + scoringinputds = ( + Dataset.Tabular.from_delimited_files(scoreinputdataref) + .register(ws, env.scoring_dataset_name, create_new_version=True) + .as_named_input(env.scoring_dataset_name) + ) + + return scoringinputds + + +def get_output_location( + ws: Workspace, env: Env, outputdatastore: Datastore = None +) -> PipelineData: + """ + Returns a Datastore wrapped as a PipelineData instance suitable + for passing into a pipeline step. Represents the location where + the scoring output should be written. Uses the default workspace + blob store if no output datastore is supplied. + + + :param ws: AML Workspace + :param env: Environment Variables + :param outputdatastore: AML Datastore, optional, default is None + + :returns: PipelineData wrapping the output datastore + """ + + if outputdatastore is None: + output_loc = PipelineData( + name="defaultoutput", datastore=ws.get_default_datastore() + ) + else: + output_loc = PipelineData( + name=outputdatastore.name, datastore=outputdatastore + ) # NOQA: E501 + + return output_loc + + +def get_inputds_outputloc( + ws: Workspace, env: Env +) -> Tuple[Dataset, PipelineData]: # NOQA: E501 + """ + Prepare the input and output for the scoring step. Input is a tabular + dataset wrapped around the scoring data. Output is PipelineData + representing a location to write the scores down. + + :param ws: AML Workspace + :param env: Environment Variables + + :returns: Input dataset and output location + """ + + if env.scoring_datastore_storage_name is None: + # fall back to default + scoringinputds = get_fallback_input_dataset(ws, env) + output_loc = get_output_location(ws, env) + else: + inputdatastore = get_or_create_datastore( + "{}_in".format(env.scoring_datastore_storage_name), ws, env + ) + outputdatastore = get_or_create_datastore( + "{}_out".format(env.scoring_datastore_storage_name), + ws, + env, + input=False, # NOQA: E501 + ) + scoringinputds = get_input_dataset(ws, inputdatastore, env) + output_loc = get_output_location(ws, env, outputdatastore) + + return (scoringinputds, output_loc) + + +def get_run_configs( + ws: Workspace, computetarget: ComputeTarget, env: Env +) -> Tuple[ParallelRunConfig, RunConfiguration]: + """ + Creates the necessary run configurations required by the + pipeline to enable parallelized scoring. + + :param ws: AML Workspace + :param computetarget: AML Compute target + :param env: Environment Variables + + :returns: Tuple[Scoring Run configuration, Score copy run configuration] + """ + + # get a conda environment for scoring + environment = get_environment( + ws, + env.aml_env_name_scoring, + conda_dependencies_file=env.aml_env_score_conda_dep_file, + enable_docker=True, + use_gpu=env.use_gpu_for_scoring, + create_new=env.rebuild_env_scoring, + ) + + score_run_config = ParallelRunConfig( + entry_script=env.batchscore_script_path, + source_directory=env.sources_directory_train, + error_threshold=10, + output_action="append_row", + compute_target=computetarget, + node_count=env.max_nodes_scoring, + environment=environment, + run_invocation_timeout=300, + ) + + copy_run_config = RunConfiguration() + copy_run_config.environment = get_environment( + ws, + env.aml_env_name_score_copy, + conda_dependencies_file=env.aml_env_scorecopy_conda_dep_file, + enable_docker=True, + use_gpu=env.use_gpu_for_scoring, + create_new=env.rebuild_env_scoring, + ) + return (score_run_config, copy_run_config) + + +def get_scoring_pipeline( + model: Model, + scoring_dataset: Dataset, + output_loc: PipelineData, + score_run_config: ParallelRunConfig, + copy_run_config: RunConfiguration, + computetarget: ComputeTarget, + ws: Workspace, + env: Env, +) -> Pipeline: + """ + Creates the scoring pipeline. + + :param model: The model to use for scoring + :param scoring_dataset: Data to score + :param output_loc: Location to save the scoring results + :param score_run_config: Parallel Run configuration to support + parallelized scoring + :param copy_run_config: Script Run configuration to support + score copying + :param computetarget: AML Compute target + :param ws: AML Workspace + :param env: Environment Variables + + :returns: Scoring pipeline instance + """ + # To help filter the model make the model name, model version and a + # tag/value pair bindable parameters so that they can be passed to + # the pipeline when invoked either over REST or via the AML SDK. + model_name_param = PipelineParameter( + "model_name", default_value=env.model_name + ) # NOQA: E501 + model_tag_name_param = PipelineParameter( + "model_tag_name", default_value=" " + ) # NOQA: E501 + model_tag_value_param = PipelineParameter( + "model_tag_value", default_value=" " + ) # NOQA: E501 + + scoring_step = ParallelRunStep( + name="scoringstep", + inputs=[scoring_dataset], + output=output_loc, + arguments=[ + "--model_name", + model_name_param, + "--model_tag_name", + model_tag_name_param, + "--model_tag_value", + model_tag_value_param, + ], + parallel_run_config=score_run_config, + allow_reuse=False, + ) + + copying_step = PythonScriptStep( + name="scorecopystep", + script_name=env.batchscore_copy_script_path, + source_directory=env.sources_directory_train, + arguments=[ + "--output_path", + output_loc, + "--scoring_output_filename", + env.scoring_datastore_output_filename + if env.scoring_datastore_output_filename is not None + else "", + "--scoring_datastore", + env.scoring_datastore_storage_name + if env.scoring_datastore_storage_name is not None + else "", + "--score_container", + env.scoring_datastore_output_container + if env.scoring_datastore_output_container is not None + else "", + "--scoring_datastore_key", + env.scoring_datastore_access_key + if env.scoring_datastore_access_key is not None + else "", + ], + inputs=[output_loc], + allow_reuse=False, + compute_target=computetarget, + runconfig=copy_run_config, + ) + return Pipeline(workspace=ws, steps=[scoring_step, copying_step]) + + +def build_batchscore_pipeline(): + """ + Main method that builds and publishes a scoring pipeline. + """ + + try: + env = Env() + + args = parse_args() + + # Get Azure machine learning workspace + aml_workspace = Workspace.get( + name=env.workspace_name, + subscription_id=env.subscription_id, + resource_group=env.resource_group, + ) + + # Get Azure machine learning cluster + aml_compute_score = get_compute( + aml_workspace, + env.compute_name_scoring, + env.vm_size_scoring, + for_batch_scoring=True, + ) + + input_dataset, output_location = get_inputds_outputloc( + aml_workspace, env + ) # NOQA: E501 + + scoring_runconfig, score_copy_runconfig = get_run_configs( + aml_workspace, aml_compute_score, env + ) + + trained_model = get_model( + aml_workspace, env, args.model_tag_name, args.model_tag_value + ) + + scoring_pipeline = get_scoring_pipeline( + trained_model, + input_dataset, + output_location, + scoring_runconfig, + score_copy_runconfig, + aml_compute_score, + aml_workspace, + env, + ) + + published_pipeline = scoring_pipeline.publish( + name=env.scoring_pipeline_name, + description="Diabetes Batch Scoring Pipeline", + ) + pipeline_id_string = "##vso[task.setvariable variable=pipeline_id;isOutput=true]{}".format( # NOQA: E501 + published_pipeline.id + ) + print(pipeline_id_string) + except Exception as e: + print(e) + exit(1) + + +if __name__ == "__main__": + build_batchscore_pipeline() diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py index dfe3f5b3..03937186 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline.py @@ -16,81 +16,90 @@ def main(): aml_workspace = Workspace.get( name=e.workspace_name, subscription_id=e.subscription_id, - resource_group=e.resource_group + resource_group=e.resource_group, ) print("get_workspace:") print(aml_workspace) # Get Azure machine learning cluster - aml_compute = get_compute( - aml_workspace, - e.compute_name, - e.vm_size) + aml_compute = get_compute(aml_workspace, e.compute_name, e.vm_size) if aml_compute is not None: print("aml_compute:") print(aml_compute) # Create a reusable Azure ML environment environment = get_environment( - aml_workspace, e.aml_env_name, create_new=e.rebuild_env) # + aml_workspace, + e.aml_env_name, + conda_dependencies_file=e.aml_env_train_conda_dep_file, + create_new=e.rebuild_env, + ) # run_config = RunConfiguration() run_config.environment = environment - if (e.datastore_name): + if e.datastore_name: datastore_name = e.datastore_name else: datastore_name = aml_workspace.get_default_datastore().name - run_config.environment.environment_variables["DATASTORE_NAME"] = datastore_name # NOQA: E501 + run_config.environment.environment_variables[ + "DATASTORE_NAME" + ] = datastore_name # NOQA: E501 - model_name_param = PipelineParameter( - name="model_name", default_value=e.model_name) + model_name_param = PipelineParameter(name="model_name", default_value=e.model_name) # NOQA: E501 dataset_version_param = PipelineParameter( - name="dataset_version", default_value=e.dataset_version) + name="dataset_version", default_value=e.dataset_version + ) data_file_path_param = PipelineParameter( - name="data_file_path", default_value="none") - caller_run_id_param = PipelineParameter( - name="caller_run_id", default_value="none") + name="data_file_path", default_value="none" + ) + caller_run_id_param = PipelineParameter(name="caller_run_id", default_value="none") # NOQA: E501 # Get dataset name dataset_name = e.dataset_name # Check to see if dataset exists - if (dataset_name not in aml_workspace.datasets): + if dataset_name not in aml_workspace.datasets: # This call creates an example CSV from sklearn sample data. If you # have already bootstrapped your project, you can comment this line # out and use your own CSV. create_sample_data_csv() # Use a CSV to read in the data set. - file_name = 'diabetes.csv' + file_name = "diabetes.csv" - if (not os.path.exists(file_name)): - raise Exception("Could not find CSV dataset at \"%s\". If you have bootstrapped your project, you will need to provide a CSV." % file_name) # NOQA: E501 + if not os.path.exists(file_name): + raise Exception( + 'Could not find CSV dataset at "%s". If you have bootstrapped your project, you will need to provide a CSV.' # NOQA: E501 + % file_name + ) # NOQA: E501 # Upload file to default datastore in workspace datatstore = Datastore.get(aml_workspace, datastore_name) - target_path = 'training-data/' + target_path = "training-data/" datatstore.upload_files( files=[file_name], target_path=target_path, overwrite=True, - show_progress=False) + show_progress=False, + ) # Register dataset path_on_datastore = os.path.join(target_path, file_name) dataset = Dataset.Tabular.from_delimited_files( - path=(datatstore, path_on_datastore)) + path=(datatstore, path_on_datastore) + ) dataset = dataset.register( workspace=aml_workspace, name=dataset_name, - description='diabetes training data', - tags={'format': 'CSV'}, - create_new_version=True) + description="diabetes training data", + tags={"format": "CSV"}, + create_new_version=True, + ) # Create a PipelineData to pass data between steps pipeline_data = PipelineData( - 'pipeline_data', - datastore=aml_workspace.get_default_datastore()) + "pipeline_data", datastore=aml_workspace.get_default_datastore() + ) train_step = PythonScriptStep( name="Train Model", @@ -99,12 +108,18 @@ def main(): source_directory=e.sources_directory_train, outputs=[pipeline_data], arguments=[ - "--model_name", model_name_param, - "--step_output", pipeline_data, - "--dataset_version", dataset_version_param, - "--data_file_path", data_file_path_param, - "--caller_run_id", caller_run_id_param, - "--dataset_name", dataset_name, + "--model_name", + model_name_param, + "--step_output", + pipeline_data, + "--dataset_version", + dataset_version_param, + "--data_file_path", + data_file_path_param, + "--caller_run_id", + caller_run_id_param, + "--dataset_name", + dataset_name, ], runconfig=run_config, allow_reuse=True, @@ -117,8 +132,10 @@ def main(): compute_target=aml_compute, source_directory=e.sources_directory_train, arguments=[ - "--model_name", model_name_param, - "--allow_run_cancel", e.allow_run_cancel, + "--model_name", + model_name_param, + "--allow_run_cancel", + e.allow_run_cancel, ], runconfig=run_config, allow_reuse=False, @@ -131,16 +148,13 @@ def main(): compute_target=aml_compute, source_directory=e.sources_directory_train, inputs=[pipeline_data], - arguments=[ - "--model_name", model_name_param, - "--step_input", pipeline_data, - ], + arguments=["--model_name", model_name_param, "--step_input", pipeline_data, ], # NOQA: E501 runconfig=run_config, allow_reuse=False, ) print("Step Register created") # Check run_evaluation flag to include or exclude evaluation step. - if ((e.run_evaluation).lower() == 'true'): + if (e.run_evaluation).lower() == "true": print("Include evaluation step before register step.") evaluate_step.run_after(train_step) register_step.run_after(evaluate_step) @@ -156,11 +170,11 @@ def main(): published_pipeline = train_pipeline.publish( name=e.pipeline_name, description="Model training/retraining pipeline", - version=e.build_id + version=e.build_id, ) - print(f'Published pipeline: {published_pipeline.name}') - print(f'for build {published_pipeline.version}') + print(f"Published pipeline: {published_pipeline.name}") + print(f"for build {published_pipeline.version}") -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py index b49ae53d..254f22eb 100644 --- a/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py +++ b/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py @@ -13,16 +13,13 @@ def main(): aml_workspace = Workspace.get( name=e.workspace_name, subscription_id=e.subscription_id, - resource_group=e.resource_group + resource_group=e.resource_group, ) print("get_workspace:") print(aml_workspace) # Get Azure machine learning cluster - aml_compute = get_compute( - aml_workspace, - e.compute_name, - e.vm_size) + aml_compute = get_compute(aml_workspace, e.compute_name, e.vm_size) if aml_compute is not None: print("aml_compute:") print(aml_compute) @@ -31,7 +28,11 @@ def main(): # Make sure to include `r-essentials' # in diabetes_regression/conda_dependencies.yml environment = get_environment( - aml_workspace, e.aml_env_name, create_new=e.rebuild_env) # NOQA: E501 + aml_workspace, + e.aml_env_name, + conda_dependencies_file=e.aml_env_train_conda_dep_file, + create_new=e.rebuild_env, + ) # NOQA: E501 run_config = RunConfiguration() run_config.environment = environment @@ -52,11 +53,11 @@ def main(): published_pipeline = train_pipeline.publish( name=e.pipeline_name, description="Model training/retraining pipeline", - version=e.build_id + version=e.build_id, ) - print(f'Published pipeline: {published_pipeline.name}') - print(f'for build {published_pipeline.version}') + print(f"Published pipeline: {published_pipeline.name}") + print(f"for build {published_pipeline.version}") -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/ml_service/pipelines/load_sample_data.py b/ml_service/pipelines/load_sample_data.py index 717fc7ab..304a8e7b 100644 --- a/ml_service/pipelines/load_sample_data.py +++ b/ml_service/pipelines/load_sample_data.py @@ -5,12 +5,14 @@ # Loads the diabetes sample data from sklearn and produces a csv file that can # be used by the build/train pipeline script. -def create_sample_data_csv(): +def create_sample_data_csv(file_name: str = "diabetes.csv", + for_scoring: bool = False): sample_data = load_diabetes() df = pd.DataFrame( data=sample_data.data, columns=sample_data.feature_names) - df['Y'] = sample_data.target + if not for_scoring: + df['Y'] = sample_data.target # Hard code to diabetes so we fail fast if the project has been # bootstrapped. - df.to_csv('diabetes.csv', index=False) + df.to_csv(file_name, index=False) diff --git a/ml_service/pipelines/run_parallel_batchscore_pipeline.py b/ml_service/pipelines/run_parallel_batchscore_pipeline.py new file mode 100644 index 00000000..ec6cebae --- /dev/null +++ b/ml_service/pipelines/run_parallel_batchscore_pipeline.py @@ -0,0 +1,133 @@ +""" +Copyright (C) Microsoft Corporation. All rights reserved.​ + ​ +Microsoft Corporation (“Microsoft”) grants you a nonexclusive, perpetual, +royalty-free right to use, copy, and modify the software code provided by us +("Software Code"). You may not sublicense the Software Code or any use of it +(except to your affiliates and to vendors to perform work on your behalf) +through distribution, network access, service agreement, lease, rental, or +otherwise. This license does not purport to express any claim of ownership over +data you may have shared with Microsoft in the creation of the Software Code. +Unless applicable law gives you more rights, Microsoft reserves all other +rights not expressly granted herein, whether by implication, estoppel or +otherwise. ​ + ​ +THE SOFTWARE CODE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +MICROSOFT OR ITS LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THE SOFTWARE CODE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +from azure.storage.blob import ContainerClient +from ml_service.util.env_variables import Env +from azureml.core import Experiment, Workspace +from azureml.pipeline.core import PublishedPipeline +import argparse + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--pipeline_id", type=str, default=None) + return parser.parse_args() + + +def get_pipeline(pipeline_id, ws: Workspace, env: Env): + if pipeline_id is not None: + scoringpipeline = PublishedPipeline.get(ws, pipeline_id) + else: + pipelines = PublishedPipeline.list(ws) + scoringpipelinelist = [ + pl for pl in pipelines if pl.name == env.scoring_pipeline_name + ] # noqa E501 + + if scoringpipelinelist.count == 0: + raise Exception( + "No pipeline found matching name:{}".format(env.scoring_pipeline_name) # NOQA: E501 + ) + else: + # latest published + scoringpipeline = scoringpipelinelist[0] + + return scoringpipeline + + +def copy_output(step_id: str, env: Env): + accounturl = "https://{}.blob.core.windows.net".format( + env.scoring_datastore_storage_name + ) + + srcblobname = "azureml/{}/{}_out/parallel_run_step.txt".format( + step_id, env.scoring_datastore_storage_name + ) + + srcbloburl = "{}/{}/{}".format( + accounturl, env.scoring_datastore_output_container, srcblobname + ) + + containerclient = ContainerClient( + accounturl, + env.scoring_datastore_output_container, + env.scoring_datastore_access_key, + ) + srcblobproperties = containerclient.get_blob_client( + srcblobname + ).get_blob_properties() # noqa E501 + + destfolder = srcblobproperties.last_modified.date().isoformat() + filetime = ( + srcblobproperties.last_modified.time() + .isoformat("milliseconds") + .replace(":", "_") + .replace(".", "_") + ) # noqa E501 + destfilenameparts = env.scoring_datastore_output_filename.split(".") + destblobname = "{}/{}_{}.{}".format( + destfolder, destfilenameparts[0], filetime, destfilenameparts[1] + ) + + destblobclient = containerclient.get_blob_client(destblobname) + destblobclient.start_copy_from_url(srcbloburl) + + +def run_batchscore_pipeline(): + try: + env = Env() + + args = parse_args() + + aml_workspace = Workspace.get( + name=env.workspace_name, + subscription_id=env.subscription_id, + resource_group=env.resource_group, + ) + + scoringpipeline = get_pipeline(args.pipeline_id, aml_workspace, env) + + experiment = Experiment(workspace=aml_workspace, name=env.experiment_name) # NOQA: E501 + + run = experiment.submit( + scoringpipeline, + pipeline_parameters={ + "model_name": env.model_name, + "model_tag_name": " ", + "model_tag_value": " ", + }, + ) + + run.wait_for_completion(show_output=True) + + if run.get_status() == "Finished": + copy_output(list(run.get_steps())[0].id, env) + + except Exception as ex: + print("Error: {}".format(ex)) + + +if __name__ == "__main__": + run_batchscore_pipeline() diff --git a/ml_service/util/attach_compute.py b/ml_service/util/attach_compute.py index bcff58da..ad9668db 100644 --- a/ml_service/util/attach_compute.py +++ b/ml_service/util/attach_compute.py @@ -1,3 +1,4 @@ + from azureml.core import Workspace from azureml.core.compute import AmlCompute from azureml.core.compute import ComputeTarget @@ -5,38 +6,33 @@ from ml_service.util.env_variables import Env -def get_compute( - workspace: Workspace, - compute_name: str, - vm_size: str -): +def get_compute(workspace: Workspace, compute_name: str, vm_size: str, for_batch_scoring: bool = False): # NOQA E501 try: if compute_name in workspace.compute_targets: compute_target = workspace.compute_targets[compute_name] if compute_target and type(compute_target) is AmlCompute: - print('Found existing compute target ' + compute_name - + ' so using it.') + print("Found existing compute target " + compute_name + " so using it.") # NOQA else: e = Env() compute_config = AmlCompute.provisioning_configuration( vm_size=vm_size, - vm_priority=e.vm_priority, - min_nodes=e.min_nodes, - max_nodes=e.max_nodes, + vm_priority=e.vm_priority if not for_batch_scoring else e.vm_priority_scoring, # NOQA E501 + min_nodes=e.min_nodes if not for_batch_scoring else e.min_nodes_scoring, # NOQA E501 + max_nodes=e.max_nodes if not for_batch_scoring else e.max_nodes_scoring, # NOQA E501 idle_seconds_before_scaledown="300" # #Uncomment the below lines for VNet support # vnet_resourcegroup_name=vnet_resourcegroup_name, # vnet_name=vnet_name, # subnet_name=subnet_name ) - compute_target = ComputeTarget.create(workspace, compute_name, - compute_config) + compute_target = ComputeTarget.create( + workspace, compute_name, compute_config + ) compute_target.wait_for_completion( - show_output=True, - min_node_count=None, - timeout_in_minutes=10) + show_output=True, min_node_count=None, timeout_in_minutes=10 + ) return compute_target - except ComputeTargetException as e: - print(e) - print('An error occurred trying to provision compute.') + except ComputeTargetException as ex: + print(ex) + print("An error occurred trying to provision compute.") exit(1) diff --git a/ml_service/util/env_variables.py b/ml_service/util/env_variables.py index 747df5ec..753c152d 100644 --- a/ml_service/util/env_variables.py +++ b/ml_service/util/env_variables.py @@ -11,6 +11,7 @@ class Env: """Loads all environment variables into a predefined set of properties """ + # to load .env file into environment variables for local execution load_dotenv() workspace_name: Optional[str] = os.environ.get("WORKSPACE_NAME") @@ -21,23 +22,27 @@ class Env: app_secret: Optional[str] = os.environ.get("SP_APP_SECRET") vm_size: Optional[str] = os.environ.get("AML_COMPUTE_CLUSTER_CPU_SKU") compute_name: Optional[str] = os.environ.get("AML_COMPUTE_CLUSTER_NAME") - vm_priority: Optional[str] = os.environ.get("AML_CLUSTER_PRIORITY", - 'lowpriority') + vm_priority: Optional[str] = os.environ.get( + "AML_CLUSTER_PRIORITY", "lowpriority" + ) # NOQA: E501 min_nodes: int = int(os.environ.get("AML_CLUSTER_MIN_NODES", 0)) max_nodes: int = int(os.environ.get("AML_CLUSTER_MAX_NODES", 4)) build_id: Optional[str] = os.environ.get("BUILD_BUILDID") pipeline_name: Optional[str] = os.environ.get("TRAINING_PIPELINE_NAME") sources_directory_train: Optional[str] = os.environ.get( - "SOURCES_DIR_TRAIN") + "SOURCES_DIR_TRAIN" + ) # NOQA: E501 train_script_path: Optional[str] = os.environ.get("TRAIN_SCRIPT_PATH") evaluate_script_path: Optional[str] = os.environ.get( - "EVALUATE_SCRIPT_PATH") + "EVALUATE_SCRIPT_PATH" + ) # NOQA: E501 register_script_path: Optional[str] = os.environ.get( - "REGISTER_SCRIPT_PATH") + "REGISTER_SCRIPT_PATH" + ) # NOQA: E501 model_name: Optional[str] = os.environ.get("MODEL_NAME") experiment_name: Optional[str] = os.environ.get("EXPERIMENT_NAME") - model_version: Optional[str] = os.environ.get('MODEL_VERSION') - image_name: Optional[str] = os.environ.get('IMAGE_NAME') + model_version: Optional[str] = os.environ.get("MODEL_VERSION") + image_name: Optional[str] = os.environ.get("IMAGE_NAME") db_cluster_id: Optional[str] = os.environ.get("DB_CLUSTER_ID") score_script: Optional[str] = os.environ.get("SCORE_SCRIPT") build_uri: Optional[str] = os.environ.get("BUILD_URI") @@ -45,8 +50,77 @@ class Env: datastore_name: Optional[str] = os.environ.get("DATASTORE_NAME") dataset_version: Optional[str] = os.environ.get("DATASET_VERSION") run_evaluation: Optional[str] = os.environ.get("RUN_EVALUATION", "true") - allow_run_cancel: Optional[str] = os.environ.get("ALLOW_RUN_CANCEL", - "true") + allow_run_cancel: Optional[str] = os.environ.get( + "ALLOW_RUN_CANCEL", "true" + ) # NOQA: E501 aml_env_name: Optional[str] = os.environ.get("AML_ENV_NAME") + aml_env_train_conda_dep_file: Optional[str] = os.environ.get( + "AML_ENV_TRAIN_CONDA_DEP_FILE", "conda_dependencies.yml" + ) rebuild_env: Optional[bool] = os.environ.get( - "AML_REBUILD_ENVIRONMENT", "false").lower().strip() == "true" + "AML_REBUILD_ENVIRONMENT", "false" + ).lower().strip() == "true" + + use_gpu_for_scoring: Optional[bool] = os.environ.get( + "USE_GPU_FOR_SCORING", "false" + ).lower().strip() == "true" + aml_env_score_conda_dep_file: Optional[str] = os.environ.get( + "AML_ENV_SCORE_CONDA_DEP_FILE", "conda_dependencies_scoring.yml" + ) + aml_env_scorecopy_conda_dep_file: Optional[str] = os.environ.get( + "AML_ENV_SCORECOPY_CONDA_DEP_FILE", "conda_dependencies_scorecopy.yml" + ) + vm_size_scoring: Optional[str] = os.environ.get( + "AML_COMPUTE_CLUSTER_CPU_SKU_SCORING" + ) + compute_name_scoring: Optional[str] = os.environ.get( + "AML_COMPUTE_CLUSTER_NAME_SCORING" + ) + vm_priority_scoring: Optional[str] = os.environ.get( + "AML_CLUSTER_PRIORITY_SCORING", "lowpriority" + ) + min_nodes_scoring: int = int( + os.environ.get("AML_CLUSTER_MIN_NODES_SCORING", 0) + ) # NOQA: E501 + max_nodes_scoring: int = int( + os.environ.get("AML_CLUSTER_MAX_NODES_SCORING", 4) + ) # NOQA: E501 + rebuild_env_scoring: Optional[bool] = os.environ.get( + "AML_REBUILD_ENVIRONMENT_SCORING", "false" + ).lower().strip() == "true" + scoring_datastore_storage_name: Optional[str] = os.environ.get( + "SCORING_DATASTORE_STORAGE_NAME" + ) + scoring_datastore_access_key: Optional[str] = os.environ.get( + "SCORING_DATASTORE_ACCESS_KEY" + ) + scoring_datastore_input_container: Optional[str] = os.environ.get( + "SCORING_DATASTORE_INPUT_CONTAINER" + ) + scoring_datastore_input_filename: Optional[str] = os.environ.get( + "SCORING_DATASTORE_INPUT_FILENAME" + ) + scoring_datastore_output_container: Optional[str] = os.environ.get( + "SCORING_DATASTORE_OUTPUT_CONTAINER" + ) + scoring_datastore_output_filename: Optional[str] = os.environ.get( + "SCORING_DATASTORE_OUTPUT_FILENAME" + ) + scoring_dataset_name: Optional[str] = os.environ.get( + "SCORING_DATASET_NAME" + ) # NOQA: E501 + scoring_pipeline_name: Optional[str] = os.environ.get( + "SCORING_PIPELINE_NAME" + ) # NOQA: E501 + aml_env_name_scoring: Optional[str] = os.environ.get( + "AML_ENV_NAME_SCORING" + ) # NOQA: E501 + aml_env_name_score_copy: Optional[str] = os.environ.get( + "AML_ENV_NAME_SCORE_COPY" + ) # NOQA: E501 + batchscore_script_path: Optional[str] = os.environ.get( + "BATCHSCORE_SCRIPT_PATH" + ) # NOQA: E501 + batchscore_copy_script_path: Optional[str] = os.environ.get( + "BATCHSCORE_COPY_SCRIPT_PATH" + ) # NOQA: E501 diff --git a/ml_service/util/manage_environment.py b/ml_service/util/manage_environment.py index 43749f3f..54c5a72f 100644 --- a/ml_service/util/manage_environment.py +++ b/ml_service/util/manage_environment.py @@ -1,12 +1,17 @@ + +import os from azureml.core import Workspace, Environment from ml_service.util.env_variables import Env -import os +from azureml.core.runconfig import DEFAULT_CPU_IMAGE, DEFAULT_GPU_IMAGE def get_environment( workspace: Workspace, environment_name: str, - create_new: bool = False + conda_dependencies_file: str, + create_new: bool = False, + enable_docker: bool = None, + use_gpu: bool = False ): try: e = Env() @@ -17,8 +22,14 @@ def get_environment( restored_environment = environments[environment_name] if restored_environment is None or create_new: - new_env = Environment.from_conda_specification(environment_name, os.path.join(e.sources_directory_train, "conda_dependencies.yml")) # NOQA: E501 + new_env = Environment.from_conda_specification( + environment_name, + os.path.join(e.sources_directory_train, conda_dependencies_file), # NOQA: E501 + ) # NOQA: E501 restored_environment = new_env + if enable_docker is not None: + restored_environment.docker.enabled = enable_docker + restored_environment.docker.base_image = DEFAULT_GPU_IMAGE if use_gpu else DEFAULT_CPU_IMAGE # NOQA: E501 restored_environment.register(workspace) if restored_environment is not None: From b21a46e02560db8d306cdfa8efa204d2b0106c11 Mon Sep 17 00:00:00 2001 From: Jenny So Date: Fri, 26 Jun 2020 11:24:46 -0700 Subject: [PATCH 088/109] Convert to new split pipeline approach for CI/CD (#278) * new split pipelines * specify channel * fix pip jq install * fixes and cleanup * add new lines * add docs and clean up naming * use shared image * rename * strip quotes from location * fix env var * remove succeeded condition * remove extra deploy yml * no pr trigger * remove unused template * remove unused pipeline * add more docs and add to bootstrap * linting * fix model package to show logs * Squashed commit of the following: commit 01af8da39c77787a3a533c3cb506cb9b83ec6e43 Author: j-so Date: Fri Jun 12 14:15:35 2020 -0700 fixed failure handling commit 1e6f9068451f24927e4624b22ec9da8b1e9c6191 Author: j-so Date: Fri Jun 12 14:03:09 2020 -0700 test failed conda dep commit a8030d75ec0f2822116554e08eb29a1f6be2da67 Author: j-so Date: Fri Jun 12 13:55:00 2020 -0700 test package fail commit c7845aaca16d98e0b560619b1cf13a11bc7e8eb0 Author: j-so Date: Fri Jun 12 13:46:27 2020 -0700 fail on deploy error' * Squashed commit of the following: commit 5af6eeb242dfbbeeb1782fdabbe3d3eec1c7dd02 Author: j-so Date: Mon Jun 15 18:31:15 2020 -0700 fix bootstrap commit f61e103ed08cdfbaf1dca555f14b286ea28bc003 Merge: 2796b40 08bb6f4 Author: j-so Date: Mon Jun 15 18:30:21 2020 -0700 Merge branch 'master' into jenns/splitpipeline_docfix commit 2796b4002487e058a92f68ce09fbb068b5c8e114 Author: j-so Date: Mon Jun 15 18:30:00 2020 -0700 remove old pipeline commit 08bb6f4a26d3db7ee998a45da62825c47411aec1 Author: David Tesar Date: Mon Jun 15 14:09:12 2020 -0700 Simplify docs flow (#297) commit cd762ecaa9dd1914d4e72dc514d0ce7dad66a58d Author: jotaylo Date: Mon Jun 15 12:28:23 2020 -0700 Move instruction to install AML extension to Azure Devops setup instructions (#298) * remove need for model build id * fix batch scoring * use model version for batch scoring * linting * Squashed commit of the following: commit 493ed3e64f89483005eade0b553db21a98f6f1bb Author: j-so Date: Mon Jun 22 16:42:07 2020 -0700 mark as output commit 1ca7a592ad24ee0fe1e7ba28b41f97431f07039d Author: j-so Date: Mon Jun 22 16:12:10 2020 -0700 fix import commit 743e301081a439472b3bc778b22df3764b16d945 Author: j-so Date: Mon Jun 22 15:59:43 2020 -0700 more fixes commit 44abcac49d1b593da0f87bf8553638887d98f63c Author: j-so Date: Mon Jun 22 15:50:49 2020 -0700 fix batch scoring * improve the docs * fix secret access * pass to cli task and impove naming --- .../diabetes_regression-batchscoring-ci.yml | 35 +++- .pipelines/diabetes_regression-cd.yml | 161 ++++++++++++++++++ .pipelines/diabetes_regression-ci-image.yml | 15 +- .pipelines/diabetes_regression-ci.yml | 119 +------------ ...ression-get-model-id-artifact-template.yml | 48 ++++++ ..._regression-get-model-version-template.yml | 15 -- ...etes_regression-package-model-template.yml | 42 +++++ ...ession-publish-model-artifact-template.yml | 29 ++++ ...diabetes_regression-variables-template.yml | 4 - bootstrap/bootstrap.py | 4 +- diabetes_regression/ci_dependencies.yml | 1 + .../evaluate/evaluate_model.py | 11 +- .../scoring/parallel_batchscore.py | 30 +++- diabetes_regression/util/model_helper.py | 67 +++----- docs/getting_started.md | 95 +++++++---- docs/images/model-deploy-artifact-logs.PNG | Bin 0 -> 104171 bytes docs/images/model-deploy-configure.png | Bin 0 -> 39099 bytes docs/images/model-deploy-result.png | Bin 0 -> 19960 bytes .../images/model-train-register-artifacts.png | Bin 0 -> 8827 bytes docs/images/model-train-register.png | Bin 0 -> 15690 bytes ...sion_build_parallel_batchscore_pipeline.py | 64 +------ ...abetes_regression_verify_train_pipeline.py | 10 +- .../run_parallel_batchscore_pipeline.py | 1 + 23 files changed, 456 insertions(+), 295 deletions(-) create mode 100644 .pipelines/diabetes_regression-cd.yml create mode 100644 .pipelines/diabetes_regression-get-model-id-artifact-template.yml delete mode 100644 .pipelines/diabetes_regression-get-model-version-template.yml create mode 100644 .pipelines/diabetes_regression-package-model-template.yml create mode 100644 .pipelines/diabetes_regression-publish-model-artifact-template.yml create mode 100644 docs/images/model-deploy-artifact-logs.PNG create mode 100644 docs/images/model-deploy-configure.png create mode 100644 docs/images/model-deploy-result.png create mode 100644 docs/images/model-train-register-artifacts.png create mode 100644 docs/images/model-train-register.png diff --git a/.pipelines/diabetes_regression-batchscoring-ci.yml b/.pipelines/diabetes_regression-batchscoring-ci.yml index 79a7f46f..1392fddb 100644 --- a/.pipelines/diabetes_regression-batchscoring-ci.yml +++ b/.pipelines/diabetes_regression-batchscoring-ci.yml @@ -1,12 +1,27 @@ # Continuous Integration (CI) pipeline that orchestrates the batch scoring of the diabetes_regression model. +# Runtime parameters to select artifacts +parameters: +- name : artifactBuildId + displayName: Model Train CI Build ID. Default is 'latest'. + type: string + default: latest + +pr: none + +# Trigger this pipeline on model-train pipeline completion resources: containers: - container: mlops image: mcr.microsoft.com/mlops/python:latest - + pipelines: + - pipeline: model-train-ci + source: Model-Train-Register-CI # Name of the triggering pipeline + trigger: + branches: + include: + - master -pr: none trigger: branches: include: @@ -34,7 +49,13 @@ stages: timeoutInMinutes: 0 steps: - template: code-quality-template.yml + - template: diabetes_regression-get-model-id-artifact-template.yml + parameters: + projectId: '$(resources.pipeline.model-train-ci.projectID)' + pipelineId: '$(resources.pipeline.model-train-ci.pipelineID)' + artifactBuildId: ${{ parameters.artifactBuildId }} - task: AzureCLI@1 + displayName: "Publish Batch Scoring Pipeline" name: publish_batchscore inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' @@ -45,14 +66,18 @@ stages: export SUBSCRIPTION_ID=$(az account show --query id -o tsv) # Invoke the Python building and publishing a training pipeline python -m ml_service.pipelines.diabetes_regression_build_parallel_batchscore_pipeline - + env: + SCORING_DATASTORE_ACCESS_KEY: $(SCORING_DATASTORE_ACCESS_KEY) + - job: "Run_Batch_Score_Pipeline" displayName: "Run Batch Scoring Pipeline" - dependsOn: "Build_Batch_Scoring_Pipeline" + dependsOn: ["Build_Batch_Scoring_Pipeline"] timeoutInMinutes: 240 pool: server variables: pipeline_id: $[ dependencies.Build_Batch_Scoring_Pipeline.outputs['publish_batchscore.pipeline_id']] + model_name: $[ dependencies.Build_Batch_Scoring_Pipeline.outputs['get_model.MODEL_NAME']] + model_version: $[ dependencies.Build_Batch_Scoring_Pipeline.outputs['get_model.MODEL_VERSION']] steps: - task: ms-air-aiagility.vss-services-azureml.azureml-restApi-task.MLPublishedPipelineRestAPITask@0 displayName: 'Invoke Batch Scoring pipeline' @@ -60,5 +85,5 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' PipelineId: '$(pipeline_id)' ExperimentName: '$(EXPERIMENT_NAME)' - PipelineParameters: '"ParameterAssignments": {"model_name": "$(MODEL_NAME)"}' + PipelineParameters: '"ParameterAssignments": {"model_name": "$(model_name)", "model_version": "$(model_version)"}' \ No newline at end of file diff --git a/.pipelines/diabetes_regression-cd.yml b/.pipelines/diabetes_regression-cd.yml new file mode 100644 index 00000000..16bc4724 --- /dev/null +++ b/.pipelines/diabetes_regression-cd.yml @@ -0,0 +1,161 @@ +# Continuous Integration (CI) pipeline that orchestrates the deployment of the diabetes_regression model. + +# Runtime parameters to select artifacts +parameters: +- name : artifactBuildId + displayName: Model Train CI Build ID. Default is 'latest'. + type: string + default: latest + +pr: none + +# Trigger this pipeline on model-train pipeline completion +trigger: none +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + pipelines: + - pipeline: model-train-ci + source: Model-Train-Register-CI # Name of the triggering pipeline + trigger: + branches: + include: + - master + +variables: +- template: diabetes_regression-variables-template.yml +- group: devopsforai-aml-vg + +stages: +- stage: 'Deploy_ACI' + displayName: 'Deploy to ACI' + condition: variables['ACI_DEPLOYMENT_NAME'] + jobs: + - job: "Deploy_ACI" + displayName: "Deploy to ACI" + container: mlops + timeoutInMinutes: 0 + steps: + - download: none + - template: diabetes_regression-get-model-id-artifact-template.yml + parameters: + projectId: '$(resources.pipeline.model-train-ci.projectID)' + pipelineId: '$(resources.pipeline.model-train-ci.pipelineID)' + artifactBuildId: ${{ parameters.artifactBuildId }} + - task: AzureCLI@1 + displayName: 'Install AzureML CLI' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: 'az extension add -n azure-cli-ml' + - task: AzureCLI@1 + displayName: "Deploy to ACI (CLI)" + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring + inlineScript: | + set -e # fail on error + + az ml model deploy --name $(ACI_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(MODEL_VERSION)' \ + --ic inference_config.yml \ + --dc deployment_config_aci.yml \ + -g $(RESOURCE_GROUP) --workspace-name $(WORKSPACE_NAME) \ + --overwrite -v + - task: AzureCLI@1 + displayName: 'Smoke test' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python -m ml_service.util.smoke_test_scoring_service --type ACI --service "$(ACI_DEPLOYMENT_NAME)" + +- stage: 'Deploy_AKS' + displayName: 'Deploy to AKS' + dependsOn: Deploy_ACI + condition: and(succeeded(), variables['AKS_DEPLOYMENT_NAME']) + jobs: + - job: "Deploy_AKS" + displayName: "Deploy to AKS" + container: mlops + timeoutInMinutes: 0 + steps: + - template: diabetes_regression-get-model-id-artifact-template.yml + parameters: + projectId: '$(resources.pipeline.model-train-ci.projectID)' + pipelineId: '$(resources.pipeline.model-train-ci.pipelineID)' + artifactBuildId: ${{ parameters.artifactBuildId }} + - task: AzureCLI@1 + displayName: 'Install AzureML CLI' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: 'az extension add -n azure-cli-ml' + - task: AzureCLI@1 + displayName: "Deploy to AKS (CLI)" + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring + inlineScript: | + set -e # fail on error + + az ml model deploy --name $(AKS_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(MODEL_VERSION)' \ + --compute-target $(AKS_COMPUTE_NAME) \ + --ic inference_config.yml \ + --dc deployment_config_aks.yml \ + -g $(RESOURCE_GROUP) --workspace-name $(WORKSPACE_NAME) \ + --overwrite -v + - task: AzureCLI@1 + displayName: 'Smoke test' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python -m ml_service.util.smoke_test_scoring_service --type AKS --service "$(AKS_DEPLOYMENT_NAME)" + +- stage: 'Deploy_Webapp' + displayName: 'Deploy to Webapp' + condition: variables['WEBAPP_DEPLOYMENT_NAME'] + jobs: + - job: "Deploy_Webapp" + displayName: "Package and deploy model" + container: mlops + timeoutInMinutes: 0 + steps: + - template: diabetes_regression-get-model-id-artifact-template.yml + parameters: + projectId: '$(resources.pipeline.model-train-ci.projectID)' + pipelineId: '$(resources.pipeline.model-train-ci.pipelineID)' + artifactBuildId: ${{ parameters.artifactBuildId }} + - template: diabetes_regression-package-model-template.yml + parameters: + modelId: $(MODEL_NAME):$(MODEL_VERSION) + scoringScriptPath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/score.py' + condaFilePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/conda_dependencies.yml' + - script: echo $(IMAGE_LOCATION) >image_location.txt + displayName: "Write image location file" + - task: AzureWebAppContainer@1 + name: WebAppDeploy + displayName: 'Azure Web App on Container Deploy' + inputs: + azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' + appName: '$(WEBAPP_DEPLOYMENT_NAME)' + resourceGroupName: '$(RESOURCE_GROUP)' + imageName: '$(IMAGE_LOCATION)' + - task: AzureCLI@1 + displayName: 'Smoke test' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + export SUBSCRIPTION_ID=$(az account show --query id -o tsv) + python -m ml_service.util.smoke_test_scoring_service --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score" diff --git a/.pipelines/diabetes_regression-ci-image.yml b/.pipelines/diabetes_regression-ci-image.yml index 6282fd31..d7c925bf 100644 --- a/.pipelines/diabetes_regression-ci-image.yml +++ b/.pipelines/diabetes_regression-ci-image.yml @@ -30,14 +30,9 @@ variables: value: 'scoring/scoreB.py' steps: -- task: AzureCLI@1 - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - workingDirectory: $(Build.SourcesDirectory) - inlineScript: | - set -e - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python3 -m ml_service.util.create_scoring_image - displayName: 'Create Scoring Image' +- template: diabetes_regression-package-model-template.yml + parameters: + modelId: $(MODEL_NAME):$(MODEL_VERSION) + scoringScriptPath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/$(SCORE_SCRIPT)' + condaFilePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/conda_dependencies.yml' diff --git a/.pipelines/diabetes_regression-ci.yml b/.pipelines/diabetes_regression-ci.yml index 56258d50..5a539af0 100644 --- a/.pipelines/diabetes_regression-ci.yml +++ b/.pipelines/diabetes_regression-ci.yml @@ -1,4 +1,4 @@ -# Continuous Integration (CI) pipeline that orchestrates the training, evaluation, registration, deployment, and testing of the diabetes_regression model. +# Continuous Integration (CI) pipeline that orchestrates the training, evaluation, and registration of the diabetes_regression model. resources: containers: @@ -27,7 +27,6 @@ pool: stages: - stage: 'Model_CI' displayName: 'Model CI' - condition: not(variables['MODEL_BUILD_ID']) jobs: - job: "Model_CI_Pipeline" displayName: "Model CI Pipeline" @@ -48,8 +47,8 @@ stages: displayName: 'Publish Azure Machine Learning Pipeline' - stage: 'Trigger_AML_Pipeline' - displayName: 'Train model' - condition: and(succeeded(), not(variables['MODEL_BUILD_ID'])) + displayName: 'Train and evaluate model' + condition: succeeded() variables: BUILD_URI: '$(SYSTEM.COLLECTIONURI)$(SYSTEM.TEAMPROJECT)/_build/results?buildId=$(BUILD.BUILDID)' jobs: @@ -91,116 +90,8 @@ stages: - job: "Training_Run_Report" dependsOn: "Run_ML_Pipeline" condition: always() - displayName: "Determine if evaluation succeeded and new model is registered" + displayName: "Publish artifact if new model was registered" container: mlops timeoutInMinutes: 0 steps: - - template: diabetes_regression-get-model-version-template.yml - -- stage: 'Deploy_ACI' - displayName: 'Deploy to ACI' - dependsOn: Trigger_AML_Pipeline - condition: and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['ACI_DEPLOYMENT_NAME']) - jobs: - - job: "Deploy_ACI" - displayName: "Deploy to ACI" - container: mlops - timeoutInMinutes: 0 - steps: - - template: diabetes_regression-get-model-version-template.yml - - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 - displayName: 'Azure ML Model Deploy' - inputs: - azureSubscription: $(WORKSPACE_SVC_CONNECTION) - modelSourceType: manualSpec - modelName: '$(MODEL_NAME)' - modelVersion: $(MODEL_VERSION) - inferencePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml' - deploymentTarget: ACI - deploymentName: $(ACI_DEPLOYMENT_NAME) - deployConfig: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aci.yml' - overwriteExistingDeployment: true - - task: AzureCLI@1 - displayName: 'Smoke test' - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - inlineScript: | - set -e # fail on error - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.util.smoke_test_scoring_service --type ACI --service "$(ACI_DEPLOYMENT_NAME)" - -- stage: 'Deploy_AKS' - displayName: 'Deploy to AKS' - dependsOn: Deploy_ACI - condition: and(succeeded(), variables['AKS_DEPLOYMENT_NAME']) - jobs: - - job: "Deploy_AKS" - displayName: "Deploy to AKS" - container: mlops - timeoutInMinutes: 0 - steps: - - template: diabetes_regression-get-model-version-template.yml - - task: ms-air-aiagility.vss-services-azureml.azureml-model-deploy-task.AMLModelDeploy@0 - displayName: 'Azure ML Model Deploy' - inputs: - azureSubscription: $(WORKSPACE_SVC_CONNECTION) - modelSourceType: manualSpec - modelName: '$(MODEL_NAME)' - modelVersion: $(MODEL_VERSION) - inferencePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/inference_config.yml' - deploymentTarget: AKS - aksCluster: $(AKS_COMPUTE_NAME) - deploymentName: $(AKS_DEPLOYMENT_NAME) - deployConfig: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/deployment_config_aks.yml' - overwriteExistingDeployment: true - - task: AzureCLI@1 - displayName: 'Smoke test' - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - inlineScript: | - set -e # fail on error - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.util.smoke_test_scoring_service --type AKS --service "$(AKS_DEPLOYMENT_NAME)" - -- stage: 'Deploy_Webapp' - displayName: 'Deploy to Webapp' - dependsOn: Trigger_AML_Pipeline - condition: and(or(succeeded(), variables['MODEL_BUILD_ID']), variables['WEBAPP_DEPLOYMENT_NAME']) - jobs: - - job: "Deploy_Webapp" - displayName: "Deploy to Webapp" - container: mlops - timeoutInMinutes: 0 - steps: - - template: diabetes_regression-get-model-version-template.yml - - task: AzureCLI@1 - displayName: 'Create scoring image and set IMAGE_LOCATION variable' - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - inlineScript: | - set -e # fail on error - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.util.create_scoring_image --output_image_location_file image_location.txt - # Output image location to Azure DevOps job - IMAGE_LOCATION="$(cat image_location.txt)" - echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" - - task: AzureWebAppContainer@1 - name: WebAppDeploy - displayName: 'Azure Web App on Container Deploy' - inputs: - azureSubscription: '$(AZURE_RM_SVC_CONNECTION)' - appName: '$(WEBAPP_DEPLOYMENT_NAME)' - resourceGroupName: '$(RESOURCE_GROUP)' - imageName: '$(IMAGE_LOCATION)' - - task: AzureCLI@1 - displayName: 'Smoke test' - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - inlineScript: | - set -e # fail on error - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.util.smoke_test_scoring_service --type Webapp --service "$(WebAppDeploy.AppServiceApplicationUrl)/score" + - template: diabetes_regression-publish-model-artifact-template.yml diff --git a/.pipelines/diabetes_regression-get-model-id-artifact-template.yml b/.pipelines/diabetes_regression-get-model-id-artifact-template.yml new file mode 100644 index 00000000..b9e61306 --- /dev/null +++ b/.pipelines/diabetes_regression-get-model-id-artifact-template.yml @@ -0,0 +1,48 @@ +# Pipeline template that gets the model name and version from a previous build's artifact + +parameters: +- name: projectId + type: string + default: '' +- name: pipelineId + type: string + default: '' +- name: artifactBuildId + type: string + default: latest + +steps: + - download: none + - task: DownloadPipelineArtifact@2 + displayName: Download Pipeline Artifacts + inputs: + source: 'specific' + project: '${{ parameters.projectId }}' + pipeline: '${{ parameters.pipelineId }}' + preferTriggeringPipeline: true + ${{ if eq(parameters.artifactBuildId, 'latest') }}: + buildVersionToDownload: 'latestFromBranch' + ${{ if ne(parameters.artifactBuildId, 'latest') }}: + buildVersionToDownload: 'specific' + runId: '${{ parameters.artifactBuildId }}' + runBranch: '$(Build.SourceBranch)' + path: $(Build.SourcesDirectory)/bin + - task: Bash@3 + name: get_model + displayName: Parse Json for Model Name and Version + inputs: + targetType: 'inline' + script: | + # Print JSON + cat $(Build.SourcesDirectory)/bin/model/model.json | jq '.' + + # Set model name and version variables + MODEL_NAME=$(jq -r '.name' <$(Build.SourcesDirectory)/bin/model/model.json) + MODEL_VERSION=$(jq -r '.version' <$(Build.SourcesDirectory)/bin/model/model.json) + + echo "Model Name: $MODEL_NAME" + echo "Model Version: $MODEL_VERSION" + + # Set environment variables + echo "##vso[task.setvariable variable=MODEL_VERSION;isOutput=true]$MODEL_VERSION" + echo "##vso[task.setvariable variable=MODEL_NAME;isOutput=true]$MODEL_NAME" diff --git a/.pipelines/diabetes_regression-get-model-version-template.yml b/.pipelines/diabetes_regression-get-model-version-template.yml deleted file mode 100644 index 870985a6..00000000 --- a/.pipelines/diabetes_regression-get-model-version-template.yml +++ /dev/null @@ -1,15 +0,0 @@ -# Pipeline template that attempts to get the latest model version and adds it to the environment for subsequent tasks to use. -steps: -- task: AzureCLI@1 - inputs: - azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' - scriptLocation: inlineScript - inlineScript: | - set -e # fail on error - export SUBSCRIPTION_ID=$(az account show --query id -o tsv) - python -m ml_service.pipelines.diabetes_regression_verify_train_pipeline --build_id $(modelbuildid) --output_model_version_file "model_version.txt" - # Output model version to Azure DevOps job - MODEL_VERSION="$(cat model_version.txt)" - echo "##vso[task.setvariable variable=MODEL_VERSION]$MODEL_VERSION" - name: 'getversion' - displayName: "Determine if evaluation succeeded and new model is registered" diff --git a/.pipelines/diabetes_regression-package-model-template.yml b/.pipelines/diabetes_regression-package-model-template.yml new file mode 100644 index 00000000..7725b19c --- /dev/null +++ b/.pipelines/diabetes_regression-package-model-template.yml @@ -0,0 +1,42 @@ +# Pipeline template that creates a model package and adds the package location to the environment for subsequent tasks to use. +parameters: +- name: modelId + type: string + default: '' +- name: scoringScriptPath + type: string + default: '' +- name: condaFilePath + type: string + default: '' + +steps: + - task: AzureCLI@1 + displayName: 'Install AzureML CLI' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: 'az extension add -n azure-cli-ml' + - task: AzureCLI@1 + displayName: 'Create model package and set IMAGE_LOCATION variable' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + inlineScript: | + set -e # fail on error + + # Create model package using CLI + az ml model package --workspace-name $(WORKSPACE_NAME) -g $(RESOURCE_GROUP) \ + --model '${{ parameters.modelId }}' \ + --entry-script '${{ parameters.scoringScriptPath }}' \ + --cf '${{ parameters.condaFilePath }}' \ + -v \ + --rt python --query 'location' -o tsv > image_logs.txt + + # Show logs + cat image_logs.txt + + # Set environment variable using the last line of logs that has the package location + IMAGE_LOCATION=$(tail -n 1 image_logs.txt) + echo "##vso[task.setvariable variable=IMAGE_LOCATION]$IMAGE_LOCATION" diff --git a/.pipelines/diabetes_regression-publish-model-artifact-template.yml b/.pipelines/diabetes_regression-publish-model-artifact-template.yml new file mode 100644 index 00000000..00e45105 --- /dev/null +++ b/.pipelines/diabetes_regression-publish-model-artifact-template.yml @@ -0,0 +1,29 @@ +# Pipeline template to check if a model was registered for the build and publishes an artifact with the model JSON +steps: +- task: AzureCLI@1 + displayName: 'Install AzureML CLI' + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: 'az extension add -n azure-cli-ml' +- task: AzureCLI@1 + inputs: + azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' + scriptLocation: inlineScript + workingDirectory: $(Build.SourcesDirectory) + inlineScript: | + set -e # fail on error + + # Get the model using the build ID tag + FOUND_MODEL=$(az ml model list -g $(RESOURCE_GROUP) --workspace-name $(WORKSPACE_NAME) --tag BuildId=$(Build.BuildId) --query '[0]') + + # If the variable is empty, print and fail + [[ -z "$FOUND_MODEL" ]] && { echo "Model was not registered for this run." ; exit 1; } + + # Write to a file + echo $FOUND_MODEL >model.json + name: 'getversion' + displayName: "Determine if evaluation succeeded and new model is registered (CLI)" +- publish: model.json + artifact: model diff --git a/.pipelines/diabetes_regression-variables-template.yml b/.pipelines/diabetes_regression-variables-template.yml index cf4ef9cf..502753fb 100644 --- a/.pipelines/diabetes_regression-variables-template.yml +++ b/.pipelines/diabetes_regression-variables-template.yml @@ -65,10 +65,6 @@ variables: # - name: ALLOW_RUN_CANCEL # value: "true" - # For debugging deployment issues. Specify a build id with the MODEL_BUILD_ID pipeline variable at queue time - # to skip training and deploy a model registered by a previous build. - - name: modelbuildid - value: $[coalesce(variables['MODEL_BUILD_ID'], variables['Build.BuildId'])] # Flag to allow rebuilding the AML Environment after it was built for the first time. This enables dependency updates from conda_dependencies.yaml. # - name: AML_REBUILD_ENVIRONMENT # value: "false" diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index cbc49e18..9e52af55 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -84,11 +84,13 @@ def replace_project_name(project_dir, project_name, rename_name): files = [r".env.example", r".pipelines/code-quality-template.yml", r".pipelines/pr.yml", + r".pipelines/diabetes_regression-cd.yml", r".pipelines/diabetes_regression-ci.yml", r".pipelines/abtest.yml", r".pipelines/diabetes_regression-ci-image.yml", + r".pipelines/diabetes_regression-publish-model-artifact-template.yml", # NOQA: E501 + r".pipelines/diabetes_regression-get-model-id-artifact-template.yml", # NOQA: E501 r".pipelines/diabetes_regression-batchscoring-ci.yml", - r".pipelines/diabetes_regression-get-model-version-template.yml", # NOQA: E501 r".pipelines/diabetes_regression-variables-template.yml", r"environment_setup/Dockerfile", r"environment_setup/install_requirements.sh", diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index 52bdeb44..c54f3e32 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -12,6 +12,7 @@ dependencies: - r=3.6.0 - r-essentials=3.6.0 + - conda-forge::jq - pip=20.0.* - pip: diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index 125a16a5..5a69addb 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -26,7 +26,7 @@ from azureml.core import Run import argparse import traceback -from util.model_helper import get_latest_model +from util.model_helper import get_model run = Run.get_context() @@ -45,7 +45,7 @@ # sources_dir = 'diabetes_regression' # path_to_util = os.path.join(".", sources_dir, "util") # sys.path.append(os.path.abspath(path_to_util)) # NOQA: E402 -# from model_helper import get_latest_model +# from model_helper import get_model # workspace_name = os.environ.get("WORKSPACE_NAME") # experiment_name = os.environ.get("EXPERIMENT_NAME") # resource_group = os.environ.get("RESOURCE_GROUP") @@ -108,8 +108,11 @@ firstRegistration = False tag_name = 'experiment_name' - model = get_latest_model( - model_name, tag_name, exp.name, ws) + model = get_model( + model_name=model_name, + tag_name=tag_name, + tag_value=exp.name, + aml_workspace=ws) if (model is not None): production_model_mse = 10000 diff --git a/diabetes_regression/scoring/parallel_batchscore.py b/diabetes_regression/scoring/parallel_batchscore.py index aef6f3fb..cd42c79c 100644 --- a/diabetes_regression/scoring/parallel_batchscore.py +++ b/diabetes_regression/scoring/parallel_batchscore.py @@ -29,7 +29,8 @@ import joblib import sys from typing import List -from util.model_helper import get_latest_model +from util.model_helper import get_model +from azureml.core import Model model = None @@ -59,6 +60,18 @@ def parse_args() -> List[str]: model_name = model_name_param[0][1] + model_version_param = [ + (sys.argv[idx], sys.argv[idx + 1]) + for idx, itm in enumerate(sys.argv) + if itm == "--model_version" + ] + model_version = ( + None + if len(model_version_param) < 1 + or len(model_version_param[0][1].strip()) == 0 # NOQA: E501 + else model_version_param[0][1] + ) + model_tag_name_param = [ (sys.argv[idx], sys.argv[idx + 1]) for idx, itm in enumerate(sys.argv) @@ -83,7 +96,7 @@ def parse_args() -> List[str]: else model_tag_value_param[0][1] ) - return [model_name, model_tag_name, model_tag_value] + return [model_name, model_version, model_tag_name, model_tag_value] def init(): @@ -94,13 +107,18 @@ def init(): try: print("Initializing batch scoring script...") + # Get the model using name/version/tags filter model_filter = parse_args() - amlmodel = get_latest_model( - model_filter[0], model_filter[1], model_filter[2] - ) # NOQA: E501 + amlmodel = get_model( + model_name=model_filter[0], + model_version=model_filter[1], + tag_name=model_filter[2], + tag_value=model_filter[3]) + # Load the model using name/version found global model - modelpath = amlmodel.get_model_path(model_name=model_filter[0]) + modelpath = Model.get_model_path( + model_name=amlmodel.name, version=amlmodel.version) model = joblib.load(modelpath) print("Loaded model {}".format(model_filter[0])) except Exception as ex: diff --git a/diabetes_regression/util/model_helper.py b/diabetes_regression/util/model_helper.py index ceceff41..f90237e5 100644 --- a/diabetes_regression/util/model_helper.py +++ b/diabetes_regression/util/model_helper.py @@ -22,8 +22,9 @@ def get_current_workspace() -> Workspace: return experiment.workspace -def get_latest_model( +def get_model( model_name: str, + model_version: int = None, # If none, return latest model tag_name: str = None, tag_value: str = None, aml_workspace: Workspace = None @@ -35,53 +36,29 @@ def get_latest_model( Parameters: aml_workspace (Workspace): aml.core Workspace that the model lives. model_name (str): name of the model we are looking for + (optional) model_version (str): model version. Latest if not provided. (optional) tag (str): the tag value & name the model was registered under. Return: A single aml model from the workspace that matches the name and tag. """ - try: - # Validate params. cannot be None. - if model_name is None: - raise ValueError("model_name[:str] is required") + if aml_workspace is None: + print("No workspace defined - using current experiment workspace.") + aml_workspace = get_current_workspace() - if aml_workspace is None: - print("No workspace defined - using current experiment workspace.") - aml_workspace = get_current_workspace() - - model_list = None - tag_ext = "" - - # Get lastest model - # True: by name and tags - if tag_name is not None and tag_value is not None: - model_list = AMLModel.list( - aml_workspace, name=model_name, - tags=[[tag_name, tag_value]], latest=True - ) - tag_ext = f"tag_name: {tag_name}, tag_value: {tag_value}." - # False: Only by name - else: - model_list = AMLModel.list( - aml_workspace, name=model_name, latest=True) - - # latest should only return 1 model, but if it does, - # then maybe sdk or source code changed. - - # define the error messages - too_many_model_message = ("Found more than one latest model. " - f"Models found: {model_list}. " - f"{tag_ext}") - - no_model_found_message = (f"No Model found with name: {model_name}. " - f"{tag_ext}") - - if len(model_list) > 1: - raise ValueError(too_many_model_message) - if len(model_list) == 1: - return model_list[0] - else: - print(no_model_found_message) - return None - except Exception: - raise + if tag_name is not None and tag_value is not None: + model = AMLModel( + aml_workspace, + name=model_name, + version=model_version, + tags=[[tag_name, tag_value]]) + elif (tag_name is None and tag_value is not None) or ( + tag_value is None and tag_name is not None + ): + raise ValueError( + "model_tag_name and model_tag_value should both be supplied" + + "or excluded" # NOQA: E501 + ) + else: + model = AMLModel(aml_workspace, name=model_name, version=model_version) # NOQA: E501 + return model diff --git a/docs/getting_started.md b/docs/getting_started.md index cba7e424..c3abed02 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -140,30 +140,31 @@ Create a new service connection to your Azure ML Workspace using the [Machine Le **Note:** Similar to the Azure Resource Manager service connection you created earlier, creating a service connection with Azure Machine Learning workspace scope requires 'Owner' or 'User Access Administrator' permissions on the Workspace. You'll need sufficient permissions to register an application with your Azure AD tenant, or you can get the ID and secret of a service principal from your Azure AD Administrator. That principal must have Contributor permissions on the Azure ML Workspace. -## Set up Build, Release Trigger, and Release Multi-Stage Pipeline +## Set up Build, Release Trigger, and Release Multi-Stage Pipelines -Now that you've provisioned all the required Azure resources and service connections, you can set up the pipelines for deploying your machine learning model to production. +Now that you've provisioned all the required Azure resources and service connections, you can set up the pipelines for training (CI) and deploying (CD) your machine learning model to production. Additionally, you can set up a pipeline for batch scoring. -**There are two main Azure pipelines - one to handle model training and another to handle batch scoring of the model.** - -### **Azure [pipeline](../.pipelines/diabetes_regression-ci.yml) for model training and deployment** -This pipeline has a sequence of stages for: - -1. **Model Code Continuous Integration:** triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage and publishes a training pipeline. -1. **Train Model**: invokes the Azure ML service to trigger the published training pipeline to train, evaluate, and register a model. -1. **Release Deployment:** deploys a model to either [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/), [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service), or [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) environments. For simplicity, you're going to initially focus on Azure Container Instances. See [Further Exploration](#further-exploration) for other deployment types. +1. **Model CI, training, evaluation, and registration** - triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage, and publishes and runs the training pipeline. If a new model is registered after evaluation, it creates a build artifact containing the JSON metadata of the model. Definition: [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml). +1. **Release deployment** - consumes the artifact of the previous pipeline and deploys a model to either [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/), [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service), or [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) environments. See [Further Exploration](#further-exploration) for other deployment types. Definition: [diabetes_regression-cd.yml](../.pipelines/diabetes_regression-cd.yml). 1. **Note:** Edit the pipeline definition to remove unused stages. For example, if you're deploying to Azure Container Instances and Azure Kubernetes Service only, delete the unused `Deploy_Webapp` stage. +1. **Batch Scoring Code Continuous Integration** - consumes the artifact of the model training pipeline. Runs linting, unit tests, code coverage, publishes a batch scoring pipeline, and invokes the published batch scoring pipeline to score a model. + +These pipelines use a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. -### Set up the Training Pipeline +### Set up the Model CI, training, evaluation, and registration pipeline In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) pipeline definition in your forked repository. -![Configure CI build pipeline](./images/ci-build-pipeline-configure.png) +If you plan to use the release deployment pipeline (in the next section), you will need to rename this pipeline to `Model-Train-Register-CI`. Once the pipeline is finished, check the execution result: -![Build](./images/multi-stage-aci.png) +![Build](./images/model-train-register.png) + +And the pipeline artifacts: + +![Build](./images/model-train-register-artifacts.png) Also check the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): @@ -171,6 +172,12 @@ Also check the published training pipeline in the **mlops-AML-WS** workspace in Great, you now have the build pipeline for training set up which automatically triggers every time there's a change in the master branch! +After the pipeline is finished, you'll see a new model in the **ML Workspace**: + +![Trained model](./images/trained-model.png) + +To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. You can also override the variable at runtime execution of the pipeline. + The pipeline stages are summarized below: #### Model CI @@ -186,32 +193,62 @@ The pipeline stages are summarized below: - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. - Determine if a new model was registered by the _ML Training Pipeline_. - If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the _ML Training Pipeline_ will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' - - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the ML pipeline reporting logic. + - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic. - [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. -#### Deploy to ACI +#### Create pipeline artifact -- Deploy the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). -- Smoke test - - The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. +- Get the info about the registered model +- Create a pipeline artifact called `model` that contains a `model.json` file containing the model information. -The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image **_mcr.microsoft.com/mlops/python:latest_** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and **_diabetes_regression_**. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. +### Set up the Release Deployment and/or Batch Scoring pipelines -After the pipeline is finished, you'll see a new model in the **ML Workspace**: +--- +**PREREQUISITE** -![Trained model](./images/trained-model.png) +In order to use these pipelines: + +1. Follow the steps to set up the Model CI, training, evaluation, and registration pipeline. +1. You **must** rename your model CI/train/eval/register pipeline to `Model-Train-Register-CI`. + +These pipelines rely on the model CI pipeline and reference it by name. -To disable the automatic trigger of the training pipeline, change the `auto-trigger-training` variable as listed in the `.pipelines\diabetes_regression-ci.yml` pipeline to `false`. You can also override the variable at runtime execution of the pipeline. +--- -To skip model training and registration, and deploy a model successfully registered by a previous build (for testing changes to the score file or inference configuration), add the variable `MODEL_BUILD_ID` when the pipeline is queued, and set the value to the ID of the previous build. +These pipelines have the following behaviors: +- The pipeline will **automatically trigger** on completion of the Model-Train-Register-CI pipeline for the master branch. +- The pipeline will default to using the latest successful build of the Model-Train-Register-CI pipeline. It will deploy the model produced by that build. +- You can specify a `Model-Train-Register-CI` build ID when running the pipeline manually. You can find this in the url of the build, and the model registered from that build will also be tagged with the build ID. This is useful to skip model training and registration, and deploy/score a model successfully registered by a `Model-Train-Register-CI` build. -### **Azure [pipeline](../.pipelines/diabetes_regression-batchscoring-ci.yml) for batch scoring** -This pipeline has a sequence of stages for: -1. **Batch Scoring Code Continuous Integration:** triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage and publishes a batch scoring pipeline. -1. **Run Batch Scoring**: invokes the published batch scoring pipeline to score a model. +### Set up the Release Deployment pipeline + +In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-cd.yml](../.pipelines/diabetes_regression-cd.yml) +pipeline definition in your forked repository. + +Your first run will use the latest model created by the `Model-Train-Register-CI` pipeline. + +Once the pipeline is finished, check the execution result: + +![Build](./images/model-deploy-result.png) + +To specify a particular build's model, set the `Model Train CI Build Id` parameter to the build Id you would like to use. + +![Build](./images/model-deploy-configure.png) + +Once your pipeline run begins, you can see the model name and version downloaded from the `Model-Train-Register-CI` pipeline. + +![Build](./images/model-deploy-artifact-logs.png) + +The pipeline has the following stage: + +#### Deploy to ACI + +- Deploy the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). +- Smoke test + - The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. -### Set up the Batch Scoring Pipeline +### Set up the Batch Scoring pipeline In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-batchscoring-ci.yml](../.pipelines/diabetes_regression-batchscoring-ci.yml) pipeline definition in your forked repository. @@ -247,7 +284,7 @@ The pipeline stages are summarized below: ## Further Exploration -You should now have a working pipeline that can get you started with MLOpsPython. Below are some additional features offered that might suit your scenario. +You should now have a working set of pipelines that can get you started with MLOpsPython. Below are some additional features offered that might suit your scenario. ### Deploy the model to Azure Kubernetes Service diff --git a/docs/images/model-deploy-artifact-logs.PNG b/docs/images/model-deploy-artifact-logs.PNG new file mode 100644 index 0000000000000000000000000000000000000000..2dfee3057bb122de04b0ceea2a7bb1247a623781 GIT binary patch literal 104171 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 IjV)sAT+2qSh$xE@6H> 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
    LMjdY!oQB+ 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 literal 0 HcmV?d00001 diff --git a/docs/images/model-deploy-configure.png b/docs/images/model-deploy-configure.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd8775012c39f58da4bf456bcf5fa093f851a53 GIT binary patch literal 39099 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 b+&g^4Cqf|L;P{&Z@ZWV+tt%gtO&|YX^MA8c literal 0 HcmV?d00001 diff --git a/docs/images/model-deploy-result.png b/docs/images/model-deploy-result.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3d166e289f31b68b231bae8c4ecf96285003da GIT binary patch literal 19960 zcmeIa2~<-_yEckLgE&EB+e#~gtqd|Mh!GhAiW8&EG6if55fEa73;~je+Cn>_9YSP` zqRc~-QHBtQuSF6dYLEy4qAg)a2+@QjCLzh)LHq0e&N+A8`>%D*|KGFjaV@~?)ZSJ5 zt*W=4_pRrtUypkqS-1L!)oN;L>y90D^HWn>S+1tGY;Ki0aOM5_Z*~KJmL>ZgIiS`! zxOEozuoC9#<*KIkFmKJ`$!~zqnrDxOB&(@?Z>0KJcFb?bM>RFC>&M(&1JWVfaar?@ zvGXRW`!s*q~)@6 z9Ipw#f#XPZjxGZ(xfra`@YTd8*-xaAWaE9ewjXKxeub)RbBele^MUH{-*C-$=R2m$ z`YviYKWg2q`s#K=uy&wTUmb6qkN{XS?5gVGdC3jU^3iPp$h`sc>#!95d>5~$@5x1t z_U~2Is0jdru+CJ=cqCE>cqn^?M%&lx1MAA!&3E0kg{8bKSQ0%VEx~f>m8Qb><&v+H zc|-F~U=@1M${MkB9U`(s2ZT`LAu(rpy!%#Ka&qEj1 zmnYrh>$u4|Bt_kqYro9x%aw}SNyOGwsvBDuzIjDsC>b}*Uu7Auma2=@stHsWp2=;+Z0h;=3no%p z5n1FocTy{!t?85gbdn24XEy82jlF-CW8#CB(oEp#&$hHx&RtuwL$1>nH|RJ-SR0&> zhm)LZ)f?ej}PSIg-xD4i!5sp?W=+7Uze>bpHM2qpllj-v7hQW0Zfd& zcU5C@pMBEg(dI;6dar}An2AQ)!ZibIl$%JOe~J5N?2#2v3~2@BEhzt^?F4mNYMyG z_Wo5KYGKlehww>$z6E%v2OzG*L!fhdQ5dOAX>N>|5H_ZHl}U%H_PQRMqF(R!ah6OP z&-Lv+qFJYtG5PS4zQjJ|)9;%MHr8h;1b8s}`3y-EPa3X&rfE{LOM;D*U}Hk{#&*2O z5O*=h`!OjmIvpi_K8Yyrh>Y0^28ARX4l~I^FMcS7=BM;Y^$E?tR(|8Fp`~B4IL}ig zZrH(kSV!o|;6KqqJt%A^dih?cp35$B;JKA2f6I zUXDY`M0U7MQ#Q{Wm8}FMR}=yXse)&H*fOAdAeytfya_@;48#`+z0U?wQ2PY^wkCO5 zliN+0i&LQXN(JDnQjNOZa|0f$uuheSpNBVq&?-oI$bK+1}3`xCoAJ)eRBO^I@vn>DOG8pT(+Gy7+z*+*pj2ME`I19dAs zG=p`P8-2HvQhTsUr+SAASy97kg(#(TP#*4`vCND@ZVAD%o~wEq~R6k z1dy%PKobr$m%JAOHcW^oztVZZ>aV&K$3l6J^sMxV1fEfhXYkXBc#6>#&5Z(Q=Z}w9 z44hLn2Of6Su=YhK>$i@T_CnUl<_pzlKGXpof_vOloRcx1jAw-ZRPeZB{ZXA4r^=*< zr(5~ynu+{wM=%Yd;Nw7IH+JpVI|pD1gyJGn`<<$jjD2O5Q_(Z4%SZ3}hKW2xKE%8! zrz*~;u@?C+)>$Vv^s}zDgL*z)ADGqx>VMlcY?gav?4l`Xg-e6#GB)r$UZ;02Mf5t@lfkyRUf93K`IWF8V?q0?uoOEzMsjj#0$5PO3L zXKF82qd(`MZzB!|IGd2fnIw96V(|R*9_w5(3fUj6Pm>gqGm|C|({?8V=BZfQMxY7j ziLu-Z)%zD`fhK1kmswPnb5O@SEGz{DTdvWYeE3^Fv7t~B@!dDprz?pc^mzN&pg!R( z@iv%WN&|Cq(#{C08jsHbJI=dn+wt^$g&z2{KmV2TZjEU4C zXrfWByY_Dh*Um%^-Xt&V&vpNtuWd$)l)lC#YM6v5@W847qWPzs&UZ1UB~fcsbA&-C zP3ZyFS`!{h+*Qo&Qz-jk&a^qfk7#S$4^#Dbce8Asgzr5O`N!rEddatYIqg$Uv&Vem ztQySSwXq)h0?E!Mtt74Lm7Yd>u61j1Us`P&uD5-tve!7As_v_K(ETH=ape}x5;DAu zV)WC}?E8?H{*Ud(g!JFdi&&GtwfEy^J3#(}aqjPK6&JLl;~{z_`Sd69E zxJX=I-lP>NYQovkDDfp(e4rPr`Nkae(oLC$pL(y7juIP z>+&2FT;MTxWiIcMmnOZbVI;?3@tsDoho&ueG@dYCBavU|&AQE!0cVdrZDtfTG zuM-b=d9RPR&an6R{D}u2$ z@*&WkDo55%%o^+Nt<;P14p3c!U1@`Iq8)Z=zFTy3qkStdIRTfI}_D2 z5-ymk{v6(xt8&Lt-~H!*d}sn-Bf;z9y-li$L^iHN`ewj?&J#VgTXR&vGRitR@4vbc z{{^q-@r|!|B9rj9;D<=oRe>k9YX`of;3X{eKOg@ytx!XrHLf z_hX~YopuvqeBI{kdk$%co>&w=Ib_PRV*b8|lhrQkrtv zUK&uzy^GaJ(Fd59)%tOe!m`4N4*IN8O%D7N$5tyyuUrFCPp>|Y8m@q|m1m7V^9uBhulkSYC;q3P$~<XK8W#vFTS0uHy_Uk zOiKBrOfUlgvtt25Ewy>KZ0hFou^ZQlgTsIReNsq3%O?SRSX2T;BVH_CVL`8r*5kxV zrM0(GWBAF^Q$GSvmE{=2JEe<#$2K`t1w$tsHKIU2+=JgZd5!xb9r6B`O^F8S{dN7E z^DEyrEGQKV=%~`Qs=isV-Ys}6BQSZ`Klt6AI(~`crl@w^PWTPz4EHlTn6w}9eof>f zOcM@Zb`gAqSKYKhew+G?4_Mx7x0fn{M{?6N)q+P#3 zp@p2o${gY`CEi=fJEAn8{u$~PBjtCskf-C#=K59UZT&;9^TqW(Sx`ZTzbXhWQXgtG zaeS|d!4c=67;{2*6N1#+HoM{#kkkPKaKDUpM)?7VG5dOuvNrv~`6n6%XL@#Le%Qi% z+l^)s7b}2JdkSnJL|O1M6_)~kD2MB79X!*UIUy*UQv1=4Tl}$|$W0hPy4v)3W2OsO zrwSb^lsxaN3(7fsKknkMTLXsXiQ`Rca0cO4_Vae#TEp0v3B?pR7MN6el2o{8YQ0@HBpL(xkYTRz(70 zcDNVvXoiGVCTfW(JM?Ua>vwf~+?e0FHJr`S&w6(pc5|rRYVoy(@iatIFxcBPS9*J| z_8Z~bUgx%E$+}q3Iydm*do2^ZVxh{!I{nF-!wjw9NTg8o#5Hb0?G_rNd51mSQn$X8 zEQ9!54BY&a;eP!fqMq&+%9Cd;nHPZQ+ma!e3{Io&-(17f{SC^yqyRG$c}m)aY6JPq z5ll1HxeH-&GDsexSeynkvs`@(m{uA)=JFLxFC`C-k)jnm)N@_f9!Ake>)z2;Ri2=% zdp?E0K!H1-)&j#R9+LyK5VOI1-$_0&wUF^~;0vZfvAGKC+|c*yBc{|@!6?q%EgQ-Z z68m1q9@-XM+BZ4~v|!zwWExMBL#-m2Uc=lXz@OsLF)cp{K4@ z#wvIAE!ae|mm+_I3yWd>od%BSXH{YIS^j()DU+jn!Su52KU~f^)@L|0KKkRz)SYdl zWw8ZPeM73lNoitfcCQ8xh;$h_mE2zYzEd3`MK3)uj)04W?^uvO5 zv%7&4_d=K7cNAp;Va>q9&p)!c8{8h&Z3t8Jd9YP0|z+F6TJBOB7KmfQ~rqh8tc{WitjGV=qSnIJ~V=abiNy4q#-=5g_$5;3!cy z0=N5Yv?5^kfT@yVlBAdm4|^SDO&%$L{G;gjc>~H` zmd)>~P?13y++?8J%wG(Zlsgh`J)C`Jp!k^js1OYPn60%32mU^SBlu$zDSb-%Aam_2 z!8~bld2{ZKoIv;y`|25)c{`27zIbclR+~kg zW6uVua$;V2OOELk;Ke`=yvzRG099fuyVIcH|H$}l3&w|mIsy2bhJ{#pq!M07jdQ<^ z@u=9|JE}?4sUA=NaGfC-68~zJ9VQAM5gk1qAUZkh-~^VLgXz%+^%fUL@bZui>!F#d zm2@x7uP{g%X3Fzvr%GF{i5gg&dJ|A+WeJS#$@y*j(Q}-1beP4 zEBTfrIrQhss*Zf-`XM`QXvn6>teC&`BwE1y#m~YQOESlrnlYR6& z&3R*6L*g~zoz0T^s!vl7!Ab#`>3safvO`uFilQ(6)C2a1V&-BD?QC+$VXIfUe1mL@ zI=NJm=L&JS=qXQl>4*e;z^`9@fbaUv-`i{VfyP;gUXF{Kl1Y?P>SjOL3+lSHgd2 zx2GqgXV3LLd7YAtv7LqOJwHPbrT3>h5UG}6Scbkeb9vf2H|WO~EuF76LQDBvmk#kE z^|rNVxywu_o)`+qIK`H06K`ndwbu(gKq@c}=@}mc=}Ly9%l3@-N21OB&|$y9e`d4t zSGN<&5zKud1|WlwIx0Bf~rMpj#*) zf&HUmv1L}Gp8`nKG#7%g@>}pbn z$`|_T^^7Ax`>vhHuJ%fw}lwxKK{jqjvK=!faOw}`A5l-elsAFWMH7>b$?8t z-i>^E4Q8=ie}=3^v(p|=Wh4y55^5HS4T({#(AhojlU66jo{PP0AJ~o}hE%R|OZhN> zXNBd2#y*W$ks7902mLs>2z9X{pU;PTu%8$*@@IuT^Y^H-^$xqgF0Ze*FReSXnc6x? zoc(nLsa=LXRmwjxyj!DE^1Y)*2)8&ttxxxx$j?tV6;TvT*8*fsKb*J(j5j!8SP5!Y zPJikT9ZS?aIubItO(0)_!5hA3ywtJIMl)}y9L+~tEGZ6&;O{D+?qkj6gm z=6<^#ZU!%t$;fhMOK`fmd>E>1_=UJxLk-LIGQ@g(lpZw{*7zXfWJ$zETf!YJ)$&VFQvG{Q3>JD8g17k-i7ETAh~yIa z?Ow;J>SiokC@p15N(aTpDI-vvUh?4pBJ&C#GQ_#nJV735??C%o^?9Th(J3t%=zfL< ztJ$}#86!OTb!t62sO5aN+Sbi1@M-nXkJ|#wC=VwhW^MP2#FWC%@vp-*^zS56u|f%_*XKcKCQqH22`&*B?aP^CMcQoW7TmuAJV?EOfYI<>^EA4tr&M zykZt#MDpp%&m7Ho!{(aHNI{}ZO%z$tpE1?{Ncy^?k?KF95fSZ9Y-HJAZPe=p6n>#CprNUaJd0urE$yJ>{9J!@l5Obo(XyAN6QE2RCBq`98fKe|v9Atjd z9hq>B?vnoxFwXc?Xz)cdrfHg8wawWn{jD9p{#10jtsyUVMRH%`jzk`(RV z{tP~-?Zv>vQJ%_>8_1=VEmy|N8Gz}I1d<2F^_OF{KN8z4l zy*_4Q$0` zf?H2^5^$Hx+y%-mlB}z*iz%OPfb}c1R{hhQvuUiPD<$L}e-{6`MSKDw~5r`43zD2 zpgmkaSR?(=$V3xFs2kYPPCK+Iq6K*kq5;;mPWm;qZMV!p*3+$JlxxBBYHP^)R4Nga z!9u4Rz&=2}pSVzAJr2Qj(>23wi74Y+m`+=8KoWOS&Yti2We%{i3dP~%3ci@~}s<=x);Xw?R%qxHJ(J&k+XIzxa3 z?-n(@W6luEa{S}lytfMbi^=qMlI~`5`-Ymv`^cga=g`FT+hh*$kBx-46DC5`Q5NG` zQ^d$70AA+6dV-ujpDXPQAF6sdd@*%0fCZpMM5bP6t^QWB%vTjB*1~TjRCBA*tkm^~ zE0MMnMuK5b6IWLE_|H&6WanBRk8qZX27N)4P_f{ z|6wPV@;QlF7dkGZWSnA7JCR%F7_UEY-c7gAyyM#{h>^C$m1PJm8^x&%1XC4rf?yK` zv%;Sbjg)oApgiJ-ji@{EnC_sSl{-6!O(;IlQ1&6~4Brja4`pBSDQn$!bDp!1@l_yG zLdrU~Snb%&#|9Wx#cj~2essCV_Cb8Ceyjy6EDxB{%F|WLrowJ^dz+!*TF+_f-JsWg(X#eDo~cB?IgW!;cU5t;ExP~EJK*xkRD4i>DM1Q=&3?jBJ;5|dTKfg zHMQ=5B&HKij`aR@e)RHUSO4CEsZvQ(qeR`5IXMPwAcQ45FQA52sMkNeiA?r9nAmGa z4{t{9x+R@C0`3&PI45*+^$U64w4g+#CM&I<_&MZWxuyw>-focnX>#`HH=Dv=hI{)> zwDZfRg)r{H+eegmAHWw@9W%sb8e-*G{Rt5;-#bF``Z3lfIt8t)6cu_i-b&8E3CZ$W z{$f&0u-@WiePu~@e)MG<^x%Pb9=&84F6=_Sco(c+Z{OJ{8FCPRNVA;(0}$}E8>2sM zLchxLZc<3LGJ*YsBiwtX^;%uMOX;qcF5lS~$C}_~S@x7NO}n-XLv~z!wCM_8*_j`s zQZCOIN9$%d@DoxyJhx+e^8Mc=ALm;u`PN^OXXGrzU=#CFo|iIb;Eqy!PnqYT1Us`0 zYvqTI;r8c}lSjfX&lF#%UZzq0LS8yG{s$nFDjUL1$ez&`T1M7gn}hM_Aa}6-{;47r~JB_8~4GJ z*hbcIgBbwXK$Xd(LQ)(x%B6=hB1q%QPn7;W^>;|XP3!pfOJ1;Tla|ZsrKgkj$b{|kq z(ptx=Oa}qEgW>IukN@A7{@<3fZCDuSn(vJF!Tr0Ou{*PSzLO(52PB>UHNy&IKqgSz&-_<{beD--}Opzsxr_dAR3&-!! zP*gtrM+95spT0!S`xs3gPX za}iQB2uN$E9b7=W4qZt*E%K0iz35&B+bCUohI4=Gd05vbqud|)_^Q;8nM%1B6v!!p zuSG_J^77>PC)=b`pB}KeGcriM2gz9<@AU5TQoiSL=a!|IwEG~(HKu+UEJD4lXQi)2 zUDo9(;X|l%JY}W}CGm+ueox;FcrI01=^otR1P;YrG5~;CHHOE(0?yE|Q;(0?`uM|n z^u=)e$v1C4Q#g}nZmhioop8SR({5f0Is0cPA4q%9R9};hC|^Q$K218D8750Sf+!Vn zaL5y7!91BLzG{@xK(~JbAamb_@ZS{0``$hiujHtl0K-=umt!x8n0 zthq^W36gG2u;((5gyb|O*4dn6ZlwUNT)3PX8E1~iOOt&wd=QC>dL~^e*hTQcvc!5? zHfUmZ)B08s4A>ZfmUDkzeggh)jN7nw6>_~B#W09RU%QWcI8yz3Mvo`OFy+;uO$l0i zSm)D6-}!SwW7G@zorM$ncgWHhy{j1y%qV68=r|jB3!0J;hUc0R{0TlGz5GrVf-A=h zf!FGsO0c%>ti&SeFmSWOIV7sGFVl(3jFKaEDuVuwlE}c8t)=w)V5cLjCnadEvs25ow`1(y<{t^od zV9@bPM41ypdrLtZIIOUp3cJUX0t*_#FM={4s1#lgT-x^mU>1|oC^p6a`Z}18n9U$D z@WoC2BG_)W^Tr4~^+i)tf77+5{!|{Elv==4g!i`4mkr|-;IP>`DfmI+m$g&9{KxB^ z`i3#FTC1DOiV^H(QKQ`wds>(Jt#YTC7M5M5-rF{fHol-c+j5k8y@&A%HQ$mlmvOz( zwKYC;h~pFw9uhp1VX3rwr5np>0KKCMX*G(cHBv+8CYxWu?cgrE!+T7F4s-rd|D|jevQjulRh1A2D^3ME}GLd9} zGYu}_3PYd2L?&BAC-kyPb7R4UyP7fDN0(@*y-Vmapx@C zd0!jZ#2eM%MsVnRxpw4t&OFJS6$@DhUL#OgekWPmqKxp7Wi3d~q|AnrtZ0z-VPRq9 z*Crlu4i>`hC>AFlHeS3Xnyy@UEXs<&WBO@Tc_K+SRk}4M6pyxkEPbim1YiWtPq{ri zbALE%SgTQj7`^Cr&Q99sYD}}a{f2-QTdfGe(|H-CJtR9qSrDXIKJvm*c;^S`gj9lT zj~-6u&<7Vg){`a_A)MC}!68A!?nb&PZIp6K{33Hm;W=f?L{V)l?R*O8iu!X%jsaIn;t=Ck80NC>y>E+7D-k1o)QYQ+Pt0*GTdFT-D zE}t~vd{ej7jy!#*EXWzmrH06C^QkeJa&n6(egy~ESCRo}I=`SiQPxhk?tbDtM6{=9lBZhQ!Ydx&d` zzV*q~;G4_k$~<5`q+VP?3b?gytl}FY(6`0^P+Q%_Ok@{R-g+?JyR3Y>ZbA8JR{1z_ zmuh-*FJzmpIIMmnwrVhO^$OEDR96MuD&9IFXT`TspqI+tD&>l7ayt@;i9IU@{RmzHR%5 zEo#jb!IiMewD}Y%*adx12tX(0_iFNb52j<*=d;av07YBeu)*ewLhzmB&`So(tOvLAK;b?)x`kv{F9z>hb z1fO3H@6I)o34QZ2h9*S}IJ0OpVKnnN4}Ef+9gdQ)FhEus*=6o^dd%|7r4%=h^=OQGh`1HjJD2Q1>9wHK1)f19K;Kl#`EW;v!d- zU&c%n*xmpF7MsXH#~=LZQm7sv8@l3YAgymG`kURVApG*^<@XV9*592-<#z3#rZfdt z_`Dq2cp=}gVvKrv^n+$Jf6*qgRv> z(FegPB1PoMAPF6jo{S?F1kPN!6_A0|yaa?NFH2ej=IQxmCkBt3(K;{Oa~|b@IQ>=K ziAV$_WV&fRbUf&giUtVG&(^0aYGX;3ynIroV$vxx11*3#5#g(_PrcGKDj=5EE6)V&WMHJ*(vN`0{b0dY9x?vgLj(Z^1lfWTf+rhxJ*eIq#GIYANB z0qN3U9zURMcR)LZM?$wF78yC>gdE?imyXwb&~r=q#ndR>Y?-&DBff)syh1K$xoOI# z&xeYg85<%9zGY!;clTN@#F;Z9o;JNm=8t8B(w$2VX}9jzj3tkFaHC?2_$8^IF?a^W zRM2*?s=qkOlz6TH!2to(_vF_Yf!GM@6!h`LqfF~98LP8SGw0zn?f0te)Sf6wr_piPk*E~gO*&h&_V-412SN5Pw#A=~qeuEi1PfV2DJ@_>1~AIKdJ zYS#p4-t$xSu*!?1+gj!Vu^j7*06X#bB^?gl@ zyZ#~5jSpgn_iq$DEf;l8Pxo-lff=q@%C@~W3j5v*a~w8fSj&^94A2XDW1M=HWOgd= zeMPH!;+#-Y>grcBR=+5=cDN^a7>k8A`b{t!qiQbMM7%$8pfEgcc>Nixp3i@95fp)K zBy!lNjAqvWM7j9Xj~Gek(>wf7$vPyLd%M!HinuOQIfg&V*FKfDa zaDQE)NvG)Bs~($&=7Tk3Mwj_AAIAW6cc#$%uD^Vg%QCs&2_#>NNWCq>(93`Nir>Gi zFKjrKaSR#~GG&I{wd1`<7yChV!zEkcV#;y<3x!JnoR#*A741NQCjkdG&)q2)44rPv zkO(`|5*XdA0=4+zEZWmr{#fc8PCjW(c>(UMF-!-WXbGODX1b>|N^+Jwp+2#0WAs3B+=EU%c z_8`PX{_bnKZdiIP)o}S`6BUOYKm$K~JZ}cG%S-R`0tOM{>$G$ zg@R<3GPXj-1K8ppAhSniJ?eh^+Uue3mj#MK=-GhuS&tVQxY_8h>sZ^n`F>rkukk^y zfAi^$7r_i@fBK~hrWHe%hs^#Qd@Ft3Yu42SYJbIVn&tU^ zTm0$_zt*AyK<>Tw|M`5QTtD}OqYW3n&SZB0Rgc~b{pRav&j+x0>$d+R703C|IS_GY zpU>hye75?lD6&hUS7SgnbYxnPKl+cqH4-S>Vpu!$L0|l+kKQ9{9h`2=RFS_hbdo}d z0n2IN(yjZ?RVVAWhWzbahRPas+*ni_ZjWrfI6QR(iowe|@bUVY-1ta_XC1y>QkFoD{%+yS&dv+f0T-%DH1m5=oOV=v6I!Xbr_a2k<5rXUH*2<5#fNHRJ3l^M zQ{1bPi+axk8F%iiWGkBOk1r}oBJaeg2n%J4lRk>c$#%4?-9*LzHObL3m?$Hxv_~ig zK+Lg{5Uhj>uBOhCWrC{Zmn^fOBaDHxFlO*1YXh)E1G7i@Ux1ZiBa(Y8L%7B z5S8rf6tf4}+YM0+03;#!1d3SC11mm&y_dwo;CAuPW|TfYN*Ih5Rv3{Dtx^pcMz7WDyyispar1@}nov1h9imlM*z82s#-ovF$Gt|*fN1#Rhq^2>;V0E-bGIb00IS|8rSQ$ zM4_{=6-=ktHt4yrdcqMz#{%ICrbjOJr8UJuQ2Xg`GpyPv0zj)5?yRwTbVt)&=XQSc zc|ZFNY#3SuE8aB;Fjws3GN!y9C)2z@b~N|1`D7MSGuZuTtEV2!szTyS8uBU%JhB6u#IZ~U7jD~G~B2K1eRX=3M4A!b>9(Z{;k0~H5SRC z+QJ4nvQBfnNnwAmKAem*<3!AZupX;Od@NyW^EDldH^7AfyE^Has!-&=wU5zSGV%K0 zeolSNsLGcZAKeL18$Jy>;T6DyX=-ll=96O-A@5&)T3ep75Ely`y4ONZ(K zxOfI)G`ExVhA^Q8E#$gXb1W)>KDpDQ5E6X!Wp8`;(vqGB7J{$|fUrIi+253;Z1Aju zFE*wg`4@Am{Nl|?z#GQv13FU>Gb`Cv4hLp#QLO!z8Ks=0Y)9@r?#uv9q<@$Mx|EZ8 z+SYn2AeJ6E5FC*b*nDk~VTx0)biacsYVAf40+)`f$Xd8(Fz!q-$C7ZikCSKu8@Y-B zZ)=%-9Q7fx5OSefHJv10h{A#`9r)xy`+)^uzd)+a3-LzTMpnXR|?EwE# zM0}*Ps8X;1g+vJ`3}mpyj5d`1Z-;9D8<_lsi_hVU0G)qu>{$A5)I=+QY!@)!tWs4b zGON3Kt|dVB<)5t^^WTY$G7(3(e+Jxs)gIbE+iu1wNa^RCVl>UOAimtkJ4uDsoc!LT zm=p8cvD&rkuaJ|PuElbYav>c=8C(b`D4d3ldH`-CCNz@>9B80f!yjEbD}cUJTtUvr zN4)trtqgGus9n6=F*ZH30sq;}))FR}v}ra0OZop3SvlX&p>~P+U1tVp#o=bHnSYxlrWG;6Dz`QE)=4=}X$e>V z%*TsnXV5 zc{pji_|kEs^X{9m%-c9-waKMXhkq&azXyR0t=6h;%IjRO0ECL^!BW~kQC?8G3l=$? zqE-#0L%aSC82?yNI|qUt-dU0AQDM+v_Rr|(ze|oZ8W1}&61y7g?__*@qS0Qdw#zF6 znh}!$D2^X{pE;-93TO6A-7#ZmJU;U!1r3O19Ui`N9Rd_%#TRSkGO>gC>Zr>LFP2i> z-ay8n^erI1B!~FgKPIQHzOSbLTiNZ269-IT2UQ8qw_jAAjFYM(gJ!XSyb{O+Kk(mT z;I^@2Xop4!K%WHi(WtCw{=#A02jGq`uJgY{?fhRLH2%+*WdFZw;%zmxsW0E|x-#LaI&SHKo}1qObElhtK5jUq`u=g2 z!|HO?kx9n6OT*#oc}fFo%iTBI0g0C^RiT%?z~MxChX(*PMkl9n32Qd|zI68)B5-O) z8P3oQWTBi8_s~}!2lx=Tvj7m96tvVFB5*Dd89wNtEga{e+9d-B)fqIv$pm@>OHbZK z88WQB1ZJ)^C zOmcwZIVPWPftQQ{j5!Qif>hv+g+V%Iy$a0;-dd^vofT!F& zm{VkXj~}*>R5-zHXF7Lq+ZaVrW-#{(fNl%#uU~oM&x5vrIFJ~B*RU2D6kzqrV>8zF zUQ#S%@CF%9qY&@uc(Oce;Ak0xfxYwB4ekjsdK-Yeq_1WTWPnVExc^$5hM!S>Es(+U!~T%0yGPQy3iRJj8tOaXrW)<_IT1EbW61$)@+3l3+h#^13+-foQtqAvVj(X5sF literal 0 HcmV?d00001 diff --git a/docs/images/model-train-register-artifacts.png b/docs/images/model-train-register-artifacts.png new file mode 100644 index 0000000000000000000000000000000000000000..0d3eed26b63f5988289b64772d1491adeff808cf GIT binary patch literal 8827 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 literal 0 HcmV?d00001 diff --git a/docs/images/model-train-register.png b/docs/images/model-train-register.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce4ef417fa3dbf55e83418dabfe8feea9186ff5 GIT binary patch literal 15690 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 literal 0 HcmV?d00001 diff --git a/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py b/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py index d7acbf46..ac3d3407 100644 --- a/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_build_parallel_batchscore_pipeline.py @@ -33,65 +33,15 @@ Workspace, Dataset, Datastore, - Model, RunConfiguration, ) from azureml.pipeline.core import Pipeline, PipelineData, PipelineParameter from azureml.core.compute import ComputeTarget from azureml.data.datapath import DataPath from azureml.pipeline.steps import PythonScriptStep -from argparse import ArgumentParser, Namespace from typing import Tuple -def parse_args() -> Namespace: - """ - Parse arguments supplied to the pipeline creation script. - The only allowed arguments are model_tag_name and model_tag_value - specifying a custom tag/value pair to help locate a specific model. - - - :returns: Namespace with two attributes model_tag_name and model_tag_value - and corresponding values - - """ - parser = ArgumentParser() - parser.add_argument("--model_tag_name", default=None, type=str) - parser.add_argument("--model_tag_value", default=None, type=str) - args = parser.parse_args() - return args - - -def get_model( - ws: Workspace, env: Env, tagname: str = None, tagvalue: str = None -) -> Model: - """ - Gets a model from the models registered with the AML workspace. - If a tag/value pair is supplied, uses it to filter. - - :param ws: Current AML workspace - :param env: Environment variables - :param tagname: Optional tag name, default is None - :param tagvalue: Optional tag value, default is None - - :returns: Model - - :raises: ValueError - """ - if tagname is not None and tagvalue is not None: - model = Model(ws, name=env.model_name, tags=[[tagname, tagvalue]]) - elif (tagname is None and tagvalue is not None) or ( - tagvalue is None and tagname is not None - ): - raise ValueError( - "model_tag_name and model_tag_value should both be supplied" - + "or excluded" # NOQA: E501 - ) - else: - model = Model(ws, name=env.model_name) - return model - - def get_or_create_datastore( datastorename: str, ws: Workspace, env: Env, input: bool = True ) -> Datastore: @@ -331,7 +281,6 @@ def get_run_configs( def get_scoring_pipeline( - model: Model, scoring_dataset: Dataset, output_loc: PipelineData, score_run_config: ParallelRunConfig, @@ -343,7 +292,6 @@ def get_scoring_pipeline( """ Creates the scoring pipeline. - :param model: The model to use for scoring :param scoring_dataset: Data to score :param output_loc: Location to save the scoring results :param score_run_config: Parallel Run configuration to support @@ -362,6 +310,9 @@ def get_scoring_pipeline( model_name_param = PipelineParameter( "model_name", default_value=env.model_name ) # NOQA: E501 + model_version_param = PipelineParameter( + "model_version", default_value=env.model_version + ) # NOQA: E501 model_tag_name_param = PipelineParameter( "model_tag_name", default_value=" " ) # NOQA: E501 @@ -376,6 +327,8 @@ def get_scoring_pipeline( arguments=[ "--model_name", model_name_param, + "--model_version", + model_version_param, "--model_tag_name", model_tag_name_param, "--model_tag_value", @@ -425,8 +378,6 @@ def build_batchscore_pipeline(): try: env = Env() - args = parse_args() - # Get Azure machine learning workspace aml_workspace = Workspace.get( name=env.workspace_name, @@ -450,12 +401,7 @@ def build_batchscore_pipeline(): aml_workspace, aml_compute_score, env ) - trained_model = get_model( - aml_workspace, env, args.model_tag_name, args.model_tag_value - ) - scoring_pipeline = get_scoring_pipeline( - trained_model, input_dataset, output_location, scoring_runconfig, diff --git a/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py index 306f2259..28511f9b 100644 --- a/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py +++ b/ml_service/pipelines/diabetes_regression_verify_train_pipeline.py @@ -3,7 +3,7 @@ import os from azureml.core import Run, Experiment, Workspace from ml_service.util.env_variables import Env -from diabetes_regression.util.model_helper import get_latest_model +from diabetes_regression.util.model_helper import get_model def main(): @@ -53,8 +53,12 @@ def main(): try: tag_name = 'BuildId' - model = get_latest_model( - model_name, tag_name, build_id, exp.workspace) + model = get_model( + model_name=model_name, + tag_name=tag_name, + tag_value=build_id, + aml_workspace=exp.workspace) + if (model is not None): print("Model was registered for this build.") if (model is None): diff --git a/ml_service/pipelines/run_parallel_batchscore_pipeline.py b/ml_service/pipelines/run_parallel_batchscore_pipeline.py index ec6cebae..c046eb9c 100644 --- a/ml_service/pipelines/run_parallel_batchscore_pipeline.py +++ b/ml_service/pipelines/run_parallel_batchscore_pipeline.py @@ -115,6 +115,7 @@ def run_batchscore_pipeline(): scoringpipeline, pipeline_parameters={ "model_name": env.model_name, + "model_version": env.model_version, "model_tag_name": " ", "model_tag_value": " ", }, From 090698692697114d6fb322f28ad8b8a7f843c76d Mon Sep 17 00:00:00 2001 From: Tom Care Date: Fri, 3 Jul 2020 16:16:10 -0700 Subject: [PATCH 089/109] Restore call convention compatibility in get_model (#304) A bug surfaced where first time evaluation of a model fails due to the Model constructor throwing if the model does not exist. Looking deeper, we see that most calls to get_model expect a possible None response and check at the call site. Unfortunately we get the same WebserviceException class for a model not being found as we do a REST error or similar. This change is a stopgap mitigation to restore compatibility with the existing callers, and compromises by allowing the model version dependent behavior to continue passing on exceptions. In a future follow up we should settle on a convention and allow version checks to propagate failure while still giving the possibility for handling a service exception in the caller. --- diabetes_regression/util/model_helper.py | 45 ++++++++++++++++-------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/diabetes_regression/util/model_helper.py b/diabetes_regression/util/model_helper.py index f90237e5..0fd20ef0 100644 --- a/diabetes_regression/util/model_helper.py +++ b/diabetes_regression/util/model_helper.py @@ -8,8 +8,8 @@ def get_current_workspace() -> Workspace: """ - Retrieves and returns the latest model from the workspace - by its name and tag. Will not work when ran locally. + Retrieves and returns the current workspace. + Will not work when ran locally. Parameters: None @@ -30,8 +30,8 @@ def get_model( aml_workspace: Workspace = None ) -> AMLModel: """ - Retrieves and returns the latest model from the workspace - by its name and (optional) tag. + Retrieves and returns a model from the workspace by its name + and (optional) tag. Parameters: aml_workspace (Workspace): aml.core Workspace that the model lives. @@ -40,25 +40,40 @@ def get_model( (optional) tag (str): the tag value & name the model was registered under. Return: - A single aml model from the workspace that matches the name and tag. + A single aml model from the workspace that matches the name and tag, or + None. """ if aml_workspace is None: print("No workspace defined - using current experiment workspace.") aml_workspace = get_current_workspace() - if tag_name is not None and tag_value is not None: + tags = None + if tag_name is not None or tag_value is not None: + # Both a name and value must be specified to use tags. + if tag_name is None or tag_value is None: + raise ValueError( + "model_tag_name and model_tag_value should both be supplied" + + "or excluded" # NOQA: E501 + ) + tags = [[tag_name, tag_value]] + + model = None + if model_version is not None: + # TODO(tcare): Finding a specific version currently expects exceptions + # to propagate in the case we can't find the model. This call may + # result in a WebserviceException that may or may not be due to the + # model not existing. model = AMLModel( aml_workspace, name=model_name, version=model_version, - tags=[[tag_name, tag_value]]) - elif (tag_name is None and tag_value is not None) or ( - tag_value is None and tag_name is not None - ): - raise ValueError( - "model_tag_name and model_tag_value should both be supplied" - + "or excluded" # NOQA: E501 - ) + tags=tags) else: - model = AMLModel(aml_workspace, name=model_name, version=model_version) # NOQA: E501 + models = AMLModel.list( + aml_workspace, name=model_name, tags=tags, latest=True) + if len(models) == 1: + model = models[0] + elif len(models) > 1: + raise Exception("Expected only one model") + return model From 6d02555358ed6943b1c13cf1dccd758ad357681e Mon Sep 17 00:00:00 2001 From: Tom Care Date: Fri, 3 Jul 2020 16:26:50 -0700 Subject: [PATCH 090/109] Fix CD deployment break (#305) Recently the step to get the model version had a name associated with the step. We need to also update the references in future step to use the step name as a prefix. This resulted in the MODEL_VERSION variable causing failures in each CD deployment step. This did not show up in CI because the MODEL_VERSION var is hard coded in the variable group. We should also remove that. --- .pipelines/diabetes_regression-cd.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pipelines/diabetes_regression-cd.yml b/.pipelines/diabetes_regression-cd.yml index 16bc4724..8dd35e47 100644 --- a/.pipelines/diabetes_regression-cd.yml +++ b/.pipelines/diabetes_regression-cd.yml @@ -59,7 +59,7 @@ stages: inlineScript: | set -e # fail on error - az ml model deploy --name $(ACI_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(MODEL_VERSION)' \ + az ml model deploy --name $(ACI_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(get_model.MODEL_VERSION)' \ --ic inference_config.yml \ --dc deployment_config_aci.yml \ -g $(RESOURCE_GROUP) --workspace-name $(WORKSPACE_NAME) \ @@ -105,7 +105,7 @@ stages: inlineScript: | set -e # fail on error - az ml model deploy --name $(AKS_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(MODEL_VERSION)' \ + az ml model deploy --name $(AKS_DEPLOYMENT_NAME) --model '$(MODEL_NAME):$(get_model.MODEL_VERSION)' \ --compute-target $(AKS_COMPUTE_NAME) \ --ic inference_config.yml \ --dc deployment_config_aks.yml \ @@ -137,7 +137,7 @@ stages: artifactBuildId: ${{ parameters.artifactBuildId }} - template: diabetes_regression-package-model-template.yml parameters: - modelId: $(MODEL_NAME):$(MODEL_VERSION) + modelId: $(MODEL_NAME):$(get_model.MODEL_VERSION) scoringScriptPath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/scoring/score.py' condaFilePath: '$(Build.SourcesDirectory)/$(SOURCES_DIR_TRAIN)/conda_dependencies.yml' - script: echo $(IMAGE_LOCATION) >image_location.txt From 27b7d2a7bbf0cd2cc73a549cd7fb3d5e3a8e6f95 Mon Sep 17 00:00:00 2001 From: Jenny So Date: Mon, 6 Jul 2020 18:50:33 -0700 Subject: [PATCH 091/109] Update docs and pipeline status badge (#303) * docs * fix pipeline status badge and tf naming uniqueness * add a note about how to change the name of the pipeline * extra clarification on workspace connection --- README.md | 4 +- bootstrap/bootstrap.py | 1 - data/README.md | 3 + docs/code_description.md | 8 +- docs/custom_container.md | 6 +- docs/getting_started.md | 22 ++++- docs/images/custom-container-variables.png | Bin 0 -> 16148 bytes .../iac-create-environment-pipeline-tf.yml | 2 +- ...abetes_regression_verify_train_pipeline.py | 79 ------------------ 9 files changed, 36 insertions(+), 89 deletions(-) create mode 100644 data/README.md create mode 100644 docs/images/custom-container-variables.png delete mode 100644 ml_service/pipelines/diabetes_regression_verify_train_pipeline.py diff --git a/README.md b/README.md index 0f9ab4a6..434be0df 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,9 @@ description: "Code which demonstrates how to set up and operationalize an MLOps # MLOps with Azure ML -[![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=151&branchName=master) +CI: [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/Model-Train-Register-CI?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=160&branchName=master) + +CD: [![Build Status](https://aidemos.visualstudio.com/MLOps/_apis/build/status/microsoft.MLOpsPython-CD?branchName=master)](https://aidemos.visualstudio.com/MLOps/_build/latest?definitionId=161&branchName=master) MLOps will help you to understand how to build a Continuous Integration and Continuous Delivery pipeline for an ML/AI project. We will be using the Azure DevOps Project for build and release/deployment pipelines along with Azure ML services for model retraining pipeline, model management and operationalization. diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 9e52af55..02f51bbc 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -98,7 +98,6 @@ def replace_project_name(project_dir, project_name, rename_name): r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py", # NOQA: E501 r"ml_service/pipelines/diabetes_regression_build_train_pipeline.py", # NOQA: E501 - r"ml_service/pipelines/diabetes_regression_verify_train_pipeline.py", # NOQA: E501 r"ml_service/util/create_scoring_image.py", r"diabetes_regression/conda_dependencies.yml", r"diabetes_regression/evaluate/evaluate_model.py", diff --git a/data/README.md b/data/README.md new file mode 100644 index 00000000..a25aa451 --- /dev/null +++ b/data/README.md @@ -0,0 +1,3 @@ +This folder is used for example data, and it is not meant to be used for storing training data. + +Follow steps to [Configure Training Data]('docs/custom_model.md#configure-training-data.md') to use your own data for training. \ No newline at end of file diff --git a/docs/code_description.md b/docs/code_description.md index 8dc3c756..d30295e9 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -8,7 +8,7 @@ High level directory structure for this repository: ├── .pipelines <- Azure DevOps YAML pipelines for CI, PR and model training and deployment. ├── bootstrap <- Python script to initialize this repository with a custom project name. ├── charts <- Helm charts to deploy resources on Azure Kubernetes Service(AKS). -├── data <- Initial set of data to train and evaluate model. +├── data <- Initial set of data to train and evaluate model. Not for use to store data. ├── diabetes_regression <- The top-level folder for the ML project. │ ├── evaluate <- Python script to evaluate trained ML model. │ ├── register <- Python script to register trained ML model with Azure Machine Learning Service. @@ -52,7 +52,10 @@ The repository provides a template with folders structure suitable for maintaini - `.pipelines/code-quality-template.yml` : a pipeline template used by the CI and PR pipelines. It contains steps performing linting, data and unit testing. - `.pipelines/diabetes_regression-ci-image.yml` : a pipeline building a scoring image for the diabetes regression model. - `.pipelines/diabetes_regression-ci.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. -- `.pipelines/diabetes_regression-get-model-version-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci.yml` pipeline. It finds out if a new model was registered and retrieves a version of the new model. +- `.pipelines/diabetes_regression-cd.yml` : a pipeline triggered when the code is merged into **master** and the `.pipelines/diabetes_regression-ci.yml` completes. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. +- `.pipelines/diabetes_regression-package-model-template.yml` : a pipeline triggered when the code is merged into **master**. It deploys the registered model to a target. +- `.pipelines/diabetes_regression-get-model-id-artifact-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-cd.yml` pipeline. It takes the model metadata artifact published by the previous pipeline and gets the model ID. +- `.pipelines/diabetes_regression-publish-model-artifact-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci.yml` pipeline. It finds out if a new model was registered and publishes a pipeline artifact containing the model metadata. - `.pipelines/helm-*.yml` : pipeline templates used by the `.pipelines/abtest.yml` pipeline. - `.pipelines/pr.yml` : a pipeline triggered when a **pull request** to the **master** branch is created. It performs linting, data integrity testing and unit testing only. @@ -62,7 +65,6 @@ The repository provides a template with folders structure suitable for maintaini - `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py` : builds and publishes an ML training pipeline. It uses R on ML Compute. - `ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r_on_dbricks.py` : builds and publishes an ML training pipeline. It uses R on Databricks Compute. - `ml_service/pipelines/run_train_pipeline.py` : invokes a published ML training pipeline (Python on ML Compute) via REST API. -- `ml_service/pipelines/diabetes_regression_verify_train_pipeline.py` : determines whether the evaluate_model.py step of the training pipeline registered a new model. - `ml_service/util` : contains common utility functions used to build and publish an ML training pipeline. ### Environment Definitions diff --git a/docs/custom_container.md b/docs/custom_container.md index 8c031d15..46e692f9 100644 --- a/docs/custom_container.md +++ b/docs/custom_container.md @@ -61,7 +61,11 @@ Edit the [environment_setup/docker-image-pipeline.yml](../environment_setup/dock and modify the string `'public/mlops/python'` with an name suitable to describe your environment, e.g. `'mlops/diabetes_regression'`. -Save and run the pipeline. This will build and push a container image to your Azure Container Registry with +Save and run the pipeline, making sure to set the these runtime variables: `amlsdkversion` and `githubrelease`. The values are up to you to set depending on your environment. These will show as tags on your image. + +![Custom Container Vars](./images/custom-container-variables.png) + +This will build and push a container image to your Azure Container Registry with the name you have just edited. The next step is to modify the build pipeline to run the CI job on a container run from that image. diff --git a/docs/getting_started.md b/docs/getting_started.md index c3abed02..629e0dc2 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -73,7 +73,7 @@ More variables are available for further tweaking, but the above variables are a ### Variable Descriptions -**BASE_NAME** is used as a prefix for naming Azure resources. When sharing an Azure subscription, the prefix allows you to avoid naming collisions for resources that require unique names, for example, Azure Blob Storage and Registry DNS. Make sure to set BASE_NAME to a unique name so that created resources will have unique names, for example, MyUniqueMLamlcr, MyUniqueML-AML-KV, and so on. The length of the BASE_NAME value shouldn't exceed 10 characters and must contain letters and numbers only. +**BASE_NAME** is used as a prefix for naming Azure resources and should be unique. When sharing an Azure subscription, the prefix allows you to avoid naming collisions for resources that require unique names, for example, Azure Blob Storage and Registry DNS. Make sure to set BASE_NAME to a unique name so that created resources will have unique names, for example, MyUniqueMLamlcr, MyUniqueML-AML-KV, and so on. The length of the BASE_NAME value shouldn't exceed 10 characters and must contain letters and numbers only. **LOCATION** is the name of the [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/) for your resources. There should be no spaces in the name. For example, central, westus, westus2. @@ -133,7 +133,7 @@ Check that the newly created resources appear in the [Azure Portal](https://port At this point, you should have an Azure ML Workspace created. Similar to the Azure Resource Manager service connection, you need to create an additional one for the Azure ML Workspace. -Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above. +Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above (eg. 'aml-workspace-connection'). ![Created resources](./images/ml-ws-svc-connection.png) @@ -213,9 +213,25 @@ In order to use these pipelines: These pipelines rely on the model CI pipeline and reference it by name. +If you would like to change the name of your model CI pipeline, you must edit this section of yml for the CD and batch scoring pipeline, where it says `source: Model-Train-Register-CI` to use your own name. +``` +trigger: none +resources: + containers: + - container: mlops + image: mcr.microsoft.com/mlops/python:latest + pipelines: + - pipeline: model-train-ci + source: Model-Train-Register-CI # Name of the triggering pipeline + trigger: + branches: + include: + - master +``` + --- -These pipelines have the following behaviors: +The release deployment and batch scoring pipelines have the following behaviors: - The pipeline will **automatically trigger** on completion of the Model-Train-Register-CI pipeline for the master branch. - The pipeline will default to using the latest successful build of the Model-Train-Register-CI pipeline. It will deploy the model produced by that build. diff --git a/docs/images/custom-container-variables.png b/docs/images/custom-container-variables.png new file mode 100644 index 0000000000000000000000000000000000000000..24a6a92a473c1ce8fdb60fd1dc13cb6e614005db GIT binary patch literal 16148 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 Date: Fri, 10 Jul 2020 16:09:30 -0700 Subject: [PATCH 092/109] Fix default parameters to batch scoring pipeline + doc fixes (#310) * fix default params in build batch score * docs * fix image * fix images * update to azure ml studio pics --- docs/getting_started.md | 15 +++++++++------ docs/images/model-deploy-artifact-logs.PNG | Bin 104171 -> 0 bytes .../images/model-deploy-get-artifact-logs.png | Bin 0 -> 53016 bytes docs/images/trained-model.png | Bin 61705 -> 28871 bytes docs/images/training-pipeline.png | Bin 69220 -> 37895 bytes ...sion_build_parallel_batchscore_pipeline.py | 4 ++-- 6 files changed, 11 insertions(+), 8 deletions(-) delete mode 100644 docs/images/model-deploy-artifact-logs.PNG create mode 100644 docs/images/model-deploy-get-artifact-logs.png diff --git a/docs/getting_started.md b/docs/getting_started.md index 629e0dc2..430ae0a6 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -13,8 +13,9 @@ If you would like to bring your own model code to use this template structure, f - [Create an Azure DevOps Service Connection for the Azure Resource Manager](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) - [Create the IaC Pipeline](#create-the-iac-pipeline) - [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) -- [Set up Build, Release Trigger, and Release Multi-Stage Pipeline](#set-up-build-release-trigger-and-release-multi-stage-pipeline) - - [Set up the Pipeline](#set-up-the-pipeline) +- [Set up Build, Release Trigger, and Release Multi-Stage Pipeline](#set-up-build-release-trigger-and-release-multi-stage-pipelines) + - [Set up the Model CI Training, Evaluation, and Registration Pipeline](##set-up-the-model-ci-training-evaluation-and-registration-pipeline) + - [Set up the Release Deployment and/or Batch Scoring Pipelines](#set-up-the-release-deployment-andor-batch-scoring-pipelines) - [Further Exploration](#further-exploration) - [Deploy the model to Azure Kubernetes Service](#deploy-the-model-to-azure-kubernetes-service) - [Web Service Authentication on Azure Kubernetes Service](#web-service-authentication-on-azure-kubernetes-service) @@ -166,7 +167,7 @@ And the pipeline artifacts: ![Build](./images/model-train-register-artifacts.png) -Also check the published training pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): +Also check the published training pipeline in the **mlops-AML-WS** workspace in [Azure Machine Learning Studio](https://ml.azure.com/): ![Training pipeline](./images/training-pipeline.png) @@ -254,7 +255,7 @@ To specify a particular build's model, set the `Model Train CI Build Id` paramet Once your pipeline run begins, you can see the model name and version downloaded from the `Model-Train-Register-CI` pipeline. -![Build](./images/model-deploy-artifact-logs.png) +![Build](./images/model-deploy-get-artifact-logs.png) The pipeline has the following stage: @@ -289,7 +290,9 @@ The pipeline stages are summarized below: #### Batch Score model -- Determine the model to be used based on the model name, model tag name and model tag value bound pipeline parameters. +- Determine the model to be used based on the model name (required), model version, model tag name and model tag value bound pipeline parameters. + - If run via Azure DevOps pipeline, the batch scoring pipeline will take the model name and version from the `Model-Train-Register-CI` build used as input. + - If run locally without the model version, the batch scoring pipeline will use the model's latest version. - Trigger the *ML Batch Scoring Pipeline* and waits for it to complete. - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. - Use the scoring input data supplied via the SCORING_DATASTORE_INPUT_* configuration variables. @@ -347,7 +350,7 @@ Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must Delete the **ACI_DEPLOYMENT_NAME** variable. -The pipeline uses the [Create Image Script](../ml_service/util/create_scoring_image.py) to create a scoring image. The image will be registered under an Azure Container Registry instance that belongs to the Azure Machine Learning Service. Any dependencies that the scoring file depends on can also be packaged with the container with an image config. Learn more about how to create a container using the Azure ML SDK with the [Image class](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-) API documentation. +The pipeline uses the [Azure ML CLI](../.pipelines/diabetes_regression-package-model-template.yml) to create a scoring image. The image will be registered under an Azure Container Registry instance that belongs to the Azure Machine Learning Service. Any dependencies that the scoring file depends on can also be packaged with the container with an image config. Learn more about how to create a container using the Azure ML SDK with the [Image class](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-) API documentation. Make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. Instructions can be found on the [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app) page. You'll need to run the pipeline once (including the Deploy to Webapp stage up to the `Create scoring image` step) so an image is present in the registry. After that, you can connect the Webapp to the Azure Container Registry in the Azure Portal. diff --git a/docs/images/model-deploy-artifact-logs.PNG b/docs/images/model-deploy-artifact-logs.PNG deleted file mode 100644 index 2dfee3057bb122de04b0ceea2a7bb1247a623781..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104171 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 IjV)sAT+2qSh$xE@6H> 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
      LMjdY!oQB+ z=m|4@`J%^xTn+P(v3BlCFo4A#Vi)=jgw^JnQpL=lKfkPmY^|Ga=solwe{LUPL3v?j z+u?7lEbw-`xF!#e-s;7zTSHo^?H-(xc3g}RS(s>*4jx!EF`$9BDB90vO8WZrb+F17 zZ|j#g@}oPMJvzMKbpzw|O=tUi%6Nq5^r2mJC+TMJg;BT7@$GB@a(n68=ccCUXOq;_ zPX;OEMiChK*^0(zjv_1PJ)BNohY&yBAhDC1s()QrwPHGx437+GAl3L%J5kWAuIEUoI~1FHY_*vC9pFpuKt!>6RI(=qq4i z8aPd{lkZD@26IWfEX(tBP$gy^X@naq9QMvbxMJ{!Oa*T`;IQ%o()3t4qj65Pl0^T{ zua9S=t%*AqW1Y!+2A-x|;G1@euEH=F6_^)rpS$|-@3To{Ke)6fgF7yZ4Rj~cIF6dY zfJ@n3-gVHJT(JaBE(4@nZj5og5_4U+D~o@C^-zZNriU<+{boO+aKaxz$_H*?%e|kN z9sZLV=D|;2`W~6X@^c)F3z~M~hqTo-vbhFyjJ>fdWh$_e0MQ ziJGBR{r3~{aL{9G%~#(QAlESjza9quT*_KrMUzxHq-fF>taQ!-Ny>oqy9K}oR@9vd zM&dW9Zq%g@cK_tF(_>ZMA?si9rxGTYx0LsfE;Wi%B;;Ir^|mCn%Ubf$!DZ5(TxK|d zOu_?Rz>=e~+v%D3Kc}Am_n7v7m2j0>GO&_eG0p zcF+AWZ(Q$v=5=Wz)!EnPPlnp$YWb|OvRsV*$`h6Yn>pcC$n9pC^y;9Wm{F z*k7Nd{1-d#=mmst#8q&7`EAroHTi~H!$_Lplxp<1H>^_^?eCcV6D#1jxcSs4U^VQF zRuiOGt80SEsSf%5qaE zB=L$p1#S`ciD%8BOR6GoMHOj_CndTy)}MG~-ND)IwKpI)V3<(bOHg){<`fpp_%V=sT?`q^=}?Sb&>*|8Y8XuGqx>a~vhbt?<4;?=q@`7N?+1xiiu z=uMXnF_P+!XFsg(zc`U0_DjLB%rS$6@!kl>;ol<$@Ryp-gNDJ1(1Iq}scxZabpa?}*XMf+O2`%*_%9c>F0bOws%SLclrFf9={v6ynfdRC9u1GpOh z5sg%f>7qU6(c`=Mh2!AkEr(T-&j}w^fHGXWqWL+7Zolj+D=1llPBRI)#uZ1_o`|9%g zaON7$o07J(Sa{NtFG0}Rz^-$&YDCV*k>=pyEg@o*{(3Jlp!vK^Xl5L3VZkjmUua}5 zdq;WIr1GVy4yv4hYL=K_b3%0tO<@V|>LJaDhqX&ELLOAx+^O7VhnvmvzkVh4+V72G z$>&WJcwG33j70>V_ENodtnkWL3ExT3UJ%88X|%9~9AV=}#;1n3jrTPN_WCwA>;U@zv)-c1snJf^^c#B|(efBa2Ta|)}=F#t%Ifrzi8?SOuR*k51!V|kUqxf9VJIVpsPhke4|KDVtT54d(JENwDr92xjEx06UW;*;~Bq{MrZ|avd_qLKiy;jvZ>i+RTq#ia)o+q zfM#CJu6)y+UtJaFmlA;UEr#LGzrG)pQ^!>Ho)3O*zH!WY6?iV@iYWC^_Sf~_yOnBr zf4pUUzkD&_VQ$ObDI9r6GuD(mxp&pO!koiMtE*J$d{P>{;)}g>)@-~nKB0cVE5ZP` zI_L<;=%7)c*C|5UfZx;Z3}??ESJ&CK`RsV6pazfaGrZ#1#Cwd>g5(x2~%Deie6$|=OmF*=}q2#|MM{3P{P zQ3=&N24ogR)Nat_vh7f<2*bQzWdIbVNlw)lNqYWudI z0S!MPL?_p{ynJupEt@!A0ErWFqRB^n-eMp&iMY?(YVS*nEe(!(?rPk3Y9ZMj zcgaW~;>>}^yqX;^YBlb|??p_Yg1+&45qf*qG7A?b-FcfDwMCizn{9EG^BW-w%lg10 z<`I#!d|Dw(vDy7?rWb0hqu_CzEwB<67M=;;XIY>lMeTPHh_3X^<6?2eGZZHN#H2Ac zg8jvl@y7kFysFz}d*DFtOt{#@vKJ%h;+eM8bxnNk<8C|bl(S5hx5P}+Ty?sq{j$NB ze^N$g<=xrfdkmtu$VC|#HSe@V76d}OyMWmG&{jR0_lV@jg#!|8XJ%L6`?|4l0S11L zb(y}kFiDRZ4aM1XfxshhX8n2f5`5tmWu~69Ga@>gj$|e|jw<~5sO0Tvzh{{&YDc@q z(A(dZz9j7EuY&!swb#avEl;YgVKUOt2kmqlPKA=~d z<9cF<*V5heT+)@uF?Z{P27RKY#%CKX|draO&3~zkz0D=0}%gKd^8$au`{$^Yypk@X16r9_UrYi(=ZDH$21( z<H86*Yf7cHr<%Ott^fgs^&uZE;*eG_B*$c{TjJ znxaD3@?UF0cD0nuZ*qh<&AEjMzTGOwUKY4?7=H+zNy)hmo=mw^z3pN$ajA=!c}Q`@ z8G>dP-C2`af(Xde{lzA3KC@z%txfl4LuZ>{4~(c`N)k~{LU1Ed27By%s&j*C45|{D z*cDd-9Mc2s?yJ&)O%|7~T)dnQ!!N;BmDTCef^VPGA%l$H-|sc#bYLv__rn#;8q&N? zwuRZDUc)_H(YVuk(f2hjP6hME)kR7Y(gcHCrO%|~HD~d9N&en7|C+oFIrsZDU<3;& zE13g#Nk4D*WR9G79@jpcw!yp=Ym*h2PJjaKI??q{p?Q~(V{7C|jHWqxHbjVwH5!X% z3UQU9{P}amZih8q*WPRq(!>a6U1{L^ENxPd?*2mcxmr(g%0tEX$J$7f6&gLo7J7T4 zXZScG6-6BYrS?7l1JmofCx30@w{qiajMWKp<$Fa?Nif(`xo=#}C|6oeG`0z>U5c*I zIat}bhFr~F-hpiDe**NPmKR%D_`IB(SeW#UspcDf%1PG!`f(lNa3V%J2U2U#goK$g ziPwyoITcIRAg@l9eug*&qYA{1hT_|LA_#rAv5fSfSn3PIsM>VhfbBrM`Pk&PzQYN_9t4)3E#*7(}zp&pmc~XF%(J2p!i2^K^nhc`=tOj4NWgwe5_NBa=5RcS((xm7Z|OGnkDwM*1`RMy_q znk%&w^Xw{-XfqOhC3bY0PwWCj;nT%+JX3z-tG|HWPb}-Wrbw`T#yNCX^t6s^034s2 zHqeFqzc6?S!t^SrUaf-1gFWXf zH~f^@n3!&K53@fQZ8HRI=qeZ$L3$NLmF-NJXK|;%*kOy!Bx+*O6ObT0c3>}HQ@5Oy2E979>kx_JO@dO%nnGvjsCG0vGRrJEj>pwgeaxNp=oEF5NdzM}Mb~AD-nww$c34{m$Wd9;a5BSthKAtzknj2`)82S~U zv7X7o(d96n2}8iryD;}QCX>6b1N=Es#NckWwc)1hTWv)Zm}w`fBkO=Q46h}(78Ue_ z)}^A$fug%lu)~Ro2zSeGIzYtU@)Q7fiWiTa4`RV!Q^1q}ct;e|Ma%nMC?1 z)ixkHHzaOyt-JjfB(&nU3J}%@N@OIBK3w(aHP}X=@o&%0b)bX``|J&7Zb-zl5T>dj zCHk>5T6v@^^ww#gHZr8DZ*@coUjRD!KwR}f=IB$NVxQTX6TCuj>*%}ak8`v zHZ^h0so}CBnZt;9j@i$tKcW@gNifB_TQ_(B>KQwkOgh{#x?X`1*PKvpzCUtV4UZY2 zQe4Y?+@q}Jx;`pK-@DaSR+Ed29uj|0HuA0N@Z7zPeKv%%-#mF0#4WxJO&Y!`KM3T< z1e&B(mUeo+ba;X|ESC=0Ct5v<3)mmq&UD0gM&Ej=vzljm?b(IR9lwfuN#=9z)omuQOr!SV@Wi@1v+J-bIgdB72ujfrwX=a9^)*litH!D(YxH&fjiqNqw+ zmnyqwUxjJ(vwiX?YpM`Uhr@B;^chiBhBy8$w#KE5eO3e}6rJxX$#8mjlPBeN(G%h(5HbuwH_6c#7IT4*g$Rr`15(T);@`jB@ss^|OT4EdCmB?kM!rfYw zJ`A}X$f}Ws6jO+`c96(!U>u7+E5ke-yk{8Jm%+Dbis#3`*2E=bKO z;~v8mH|oGT+>mfOa8lZC@f7{^`r@?gb}y<{ak1mMKv(`*#vV(ETCK!v?)NlOEg>jX zeyb#gvjq5+Gik6}*t*#yjrXjQV{^qP^9ZD~w?r{$7Kv7($q;j@Gd}4UG#p5Z(8hVm)s`Q6TY8hP5KD$;H#GGora#` ztmqg0vFd&wH3uYjQ%UYwo+-SN2CFE4Rk(h;k9o#^S4QJKTNvHY9$JHb?vmUTno2#L zQi-8C4^zu58sL8``OHd?tJhf{y3O1~{Hpk0O-*Q+-ANyKluar&vfA~x#;rBrJ$rbE zm5TVbtK})*424L%-MUE34YB6vsH}W+KM+?d$lm416)qMl&o6ioL55Z8fk^d(5-fL=dJ0px${dZdM zyD;K!!FIVt{meqTwHzz&q-}~@*&GEXEVNkpAtj~6j`+hT3m@j5PhJHDoBsr?w0Hh? zzna_JO@Tl5~v(8Ov-j z&-y*~PYw(tA$_FW!F=esD<#=lD}{m71P7e!gQH=2C%s?Q6JWN72QHp|4aLW#z36Jg z7*4yHF26sZw$|QV*|!`?H_>W2)^EA1&_&Hb4CU#(myJjD)t^{U=8wF6%dq2mgbI@- zr$wrioyv@EuBv*1+3GBQmq0pvCMZYcLF1eSafOAH^|n;^D*^1HVKxb)fcE4y=U4G_6vHQfd*LkcoYI^@E0CGdS3-jj+8)fg>W-v~>6JAO(WXwiolBVp0o zPYd9tWzInO%6kOF_J?ySr*WLAA=F;B$l5;#2yRK>T*%BShTKK%qMCX$8C`bttk0}6 zAggW_XTqJqp^J!lA=ZoDgGXO`LSAF?)e~};7~w4w4%<+>_;*jSkcF&Wo83fLX1`7Y zr3z>IT-=nJP1?`!Z;QdszuSz#Q)n1#>_W40H7gbU8d;^S?1^kV$7lVd7PE9Ga6TGoLj}nO}FXpNBarx>a!R+$c zGUq|7jxQdp!m~kD#T}*K0&A-D9@z08IJSf8g=!@v{-^yNYT{@34{J>vd!*q=QX}{8 zxU#cI41(oUMJ2_^;ZA}H7bzjVhOA*qs^}8f-j3P(Lo@<{Xo@Z)xUpGGDtSuqZ(J<* zxz!PGR&vpk#$u|yt6BdxFa8dPuYHQ*HuLhR?xO1aCCPR6T%hRFN%~k zNkdnr@@_SJNGuS`%Cj7BtUz$OPF6F@BuU|aB=N3f7yUrr2b~vVje`iUr@gG3n|6UAXM-o!gQ(VE+M22A>$V!+{ zJLCg@%c{V*ZT3@vb&TFd@5bRjn4$j+(&5q1Aw(xB`3Kon@F}(vWTz*op2(9NMQx0{ zpp4dns{nP?4k_K;JQQrd&+twu%c-FS3U!dWpN;fgeKa<%c5osIKmK)*Iq-f%h+vB4h;p=2Sp|1)PBX3&OiOQ=MPLQ?n5>rcpVBc=Uc-iso5 zCG?Cok=sMFx5KhFwTot&aWQY>Y54wln(bbdgP3htgPY}JB>6BnzPzn4P~doB_$OL8 zsUtM~NEHW-}pTPt(p3YVS zud1--=j>566AP1h$hdSb5_d9*!B%MU8A+h2EJuOr5siDnVUCda&|sSpmB> zEO)hf86%g{DT|mCp-2wk9yt)qm*~BFcb>iDNE_G+S z(UKqba8prk_*YQ(EV2E@KysV5df(}(eY<&@_!5ttX*(wRtFdubo{`7bC#E=)J-fJe zIjKq-@ZVe%Yh#W^A8upXhPM!<;!Z13e#z*wytFzpJ^C7&61sFn>u#$0}^EKEu!aMfn`fwu1R4S=&Vh3_9_d{k5z*RUF*CB zc=0dxLv)}AGsC!UI*U|TnMu>*8`CGYoPQs}$%n_UWC%9xKf5UyMrlS8ch7C+<=Uar z)_zR1@l4Ha#zhJ>`7lcTcMU<&QW+ck#RlT2@62jyfny+3Q8JA}xJblHn|YmAP{C6? zs#K=@gocf+I&K`7>!B?`Jp$cW>X(9m@o{7I((ve%ZfCClxoBqu$2idFSCA<7|Q#`NohGoz#v4f8`XVEn|uD%$nAyMlIXy6Wxl2F^qOLrkwCIdr$X`=t94^Vn?W&v>i*e#l++nld9;J z>4qvKxZf;7TIfH>!s#5N;0c%75XJx0bT<+yO%&91u)4N%IcCT;n}ptx>z zyqRLH9^}e0RS&LO7N5K%r1%jeu}j&Bhb3Nz>`Q3r$_Oz2Y6t~O*{Vl)VkK@~SOs8f zm6sH@Y7JLUK7TsN5}?hOhu-8Z!`5BVklD0kKGQQT<**%;b7kkM^s#>YF)*#4+$ zw4^9vFC!Nh=}?gawYki(fO_pAk0YvIHG6tiP8{@=447qHn7XiPz2GuoCVC~&IOL1U+xme4q(I;#6koSr653%k^LFvk4ymN1k++QLgn z2fx_=zzGoiuCtrli-daIDvv_p6Bob0!*uo2S#349!pt4s2XBowc=*^Be-0=7F1@45 zl%C2;ogZUmk18fDfurOY<5?qv7`?!JCbKx1QMUY3mt%yd?fI#uuJ@5d(W-rE9%61i z{e_O6bA2n>QuCwCv9ue6mm|yB4`gl(ciJ0La4j+U>ps5Tv2XIj5BgL&Dn$7W%Onm` z19qe;0<2JXA|s-R?B$9z_m=8$Q(e|qAT~7`E5x0kIPFVS0WB6-?lV!44%PYoiqgEz zY?rR&_NE-92@L{+P$MQVP>khi&64ncD~rfc_YwUMXj96KcpoHR;vsDr@)$f{l1QM( zgLimi@BWdp*wG&|z0WDxzsV9fybc zR2?`b_4c~|{(~(WDc!5DH_DRa2tE-8G121ofYRbna;+s->7>GdZ%VVW7r)FHXRyq* zNr*~_;71iX1Rg0v`CW2L&EUVs_mwTaQ%j9-@u{dx0Ql91chQx zpdrk{SCi5c5RtZiR>zS*mfd^8DKk9di>-n+@o=UX|4AQmEUD8cKpJ5uRqCW~y?uOth9ifL71VLgEqu(ch|3mOYp%|!!F%Z`b0_VXLS21 z=m-@1TB})OZ>VWFOYN}~cP)K?=L19o+`-EIq3-^D5v48FTGtH#%Yq4^X_`rVi7pRV z4JkI{+TsWclWn7sS_i_pq#c!pZXX-ka`H$xj1U*mY*Y6Ek}bRVXnpH_QRjZq!0?Eb z6>#Hi%W3z1#h*8+R-~HA zQgX`JdG`683+*$d>8?pi(M>~wUl$B<;2m-OT2Ulr5y#_&lZaIcG-qE*au!eX?Ocr_ zQZD>;6+JK2#(tM(VP{>=94UzmDbubscl@~xtw!@-`F#93g0F1S^M*bm8xsh{JQaIY zG%EHrSadCU8;&VkX?Y+6la)!-`T8kT^+}4G&`qI`M$qJ?b|^2l<#PZg1Z9DY-|o}_ zX!338R1$uv?}M||s%buiyxjdbozLcD780S)u`UUeZ1ZEA0TD6uZNd3%SMctIt@^z|Z3gi}^c@+ny{PLIq14zHH)`aK{jBs56GQigSP%X4l@;W4+IC z5+rHDOR{!k9~0NmI|&0-Y=r`&TGVRM{H=}ct7dzG!Pg9@b%XWc@wW-K)QKeR$|W`+ z-!oLk#}AdkB1>NcH_>7fpwmDqun`rek`|2XZa`oaA8<0Z23{^qFDeONMQUj*)o>IM& z8KbBm5>))4ja|fl>qJ+iqVokUy!7SvqI(I+rLz})vx=-uL`KMnOS|+ThVMsl3Cz2U z7v1%Em{Lcl+%T1c#vPl?Bz_XP%aasMLwR}zkpq53D1cYi*H*?*7GF;s=LdoeQ4eEw zkWdDlI_nsMINAGg(3K2l5UGgGXWGx7E)624RDXl$@o5G}j*1q*a+B|D2x4PR% z#9)=7)!)4_Wy-7xZ;p&EsmfA+uUpDIw+*b8QTe)Ug%&k< z@@!9*-9aHAL&^|Ol<-Ag(cep+FI8`yG8mdtQl6t7uZj;ZoL$hjkHD9&56d5k5e}xC zqx&4Bx{Lw`6S0AAO6R981nMwN8#=wGjr&zc0`q-;A3r_wML|I1;#5?Tc@z!yxll_m z6Ez4qh8uHhA4b1^`AC_c`SO)$+4c28iv+fIXq_>)KPImzTueK{E73*1wreC^(>gcB73wJ^tXWN}lNoVO0O5Gap^k z#?dRhs^r}XN#`|L0lE{K!diqf-)ps~_dqY<&aHI#*;IYEMO=Ze|0_bi;{#MtTG?4M zwcf_7c)(A0^>Y87qeBwYc}X@mdy&^Jwg^Gm9^`4JZMOrl2!S;gT^=!O0`qt%ZP+8QeNiB#%2BlR0K`XwXKv}zYuIYP;uGTcwX zU!O52OIr6Da+R?zCMnI9rkOVnI7T`FHOjtG@`6j!5Mm2oyJ2*AZ?q`%X>r_zcuT)( z=W+wQ!8Q>XPnG$PK0f+TmZet&%P^kSv1~|z$gM;d!RQE9p2Np`bNf%r5828?WTVs} z(8_`$xxIt!h!r)Pu~2%h`?kco7eXN!r;9?bi7eH)IKGQ_=GiR=YFVPiOg=FQ%YGx? zON}l;IWbe5ijP~gR;_d0HW}(9VjMk6KYkQ%FUPj&X=Dqc64Rdr`l|<=bK}7N^=z_$Q3HL z9hav2>b4$=*SnLTm>B>-+PO})BlX}JA%+vvnQy7FNxIs6)-G<}ePchBQuI6UgOgeO zVp(Q~=&Q)Q-!|zZMbTyW0aQn$5+q+WQn|LpL3n|JGglSu*IJ$}pOdn@F&6y+=BN@< zm5UvpgFB{MxA1tunKAx(MR&^apH#f17voHulLOnk_^It~P{Wse3JGzyq1EZtYfaTp z285=e>#mMSsZzvLLA~0krC!@Qq@{XRnz-}aYU?o2LF)j{d@{viDvPVk`;uQD>l!-f z0cML+t7%9r>M7Fl>yhzppWn1TWT$r7GRL!}@CDTj%nGh|xtudhc@0 zu=L=MMIyoBR#v5l6<*_IbQIV3(b}e=#|DhZwnxLGYlu zm=*(8#6gybA%Zqv&LVW-tA=2x5hC4R^&+%v$>ukqPzDUPcY4Djl^UD|ZGY8+Sw=l# zx4ZV0dh5)H-A+WJ-PJ8gzKonYa2D0Gl4thtMHodNLt{6+Ow~z_8#rwgcrT^;W_$6^ zzNDm0?2PaLP3X)uTequ++46|*zs-RZW5zkv4B&iiIr64!1xC-I365uHk#gJF(pwNs zyz4;$>IXQ$b=L+MkRFZ~^8CRf=xR;=$so|ZB^>_z#CFgqxO2}0N z=zWv_I`ZF(m);`Q;9(DtW2Cn;S)lC!=2w@f7rUw2|cz zB(GvQ@$#KIq8tCI9k!i-nt*&>B{P62&<@Rp2wEDS`t)KmlG(0rbbwK@bt$OkO~;Wq zpnIpbJpcd8D!IiX1c`$H=@2sA`xUV=Z;(E1k!*;u>l23uLe3=!Ac=Lv?eAe4irgE+jy91&Z)Tu7Pz?RxN`rg=k;~nd_k~=Fq zWp5+CQM&wwkh_~HDaiMk^

        lZc#XDLKC>uC^q!TUn26-E|Ct+g7+Yp?Lyf{b7xR zVHmURaWMGhVO>HeD}u`b6RwGm;M5X#!{5K98C^2UD31>B&pzQZ^hS#ex{@v7M5U;H zd1j~BxZ+#;KnhkW&3?aZpC2M5zx~5df2Hh8Fwj#R;gnmLZcx? zLfaBpSEtQQt8xed#8z;i__{~Jt>>oBA79L73sQYoF;9QM0Y%l^pjoJ$kPe2bjA1>5 zcxIP(b%O7O$;oG19)AdKHQ%4L;CS~LQMYHM?d{@E(+h0v$PE0w+J?iqhE{wxS?*te z&cL68()9G4Xt)Y(LNN|5K=X*oG`o)(#+1g&%LfQ&HC|L*MP7CHw=cL0oQdXN zgB*sBLj634sa`fk;6=vBs$$2@BG+W1hroxksd*h5HFWb`Wh&U0kT|GWew}WIw?O+> zwx8O=qX>?AP%vjQY6u@^^`-kNc88Av6|FDdqP%5!4{{*hjxy-`1qBFv5Hr#oRw4!2Cxwj7nSDfZ}R3=@vNB3*9_sdvzx>b$TwT-#$gdt~jz zLxYmN@QiJe-=2}Gw$Uh#Y!>YuuRY`8X3rmXDcUcG&5FBL9OvvI@6*YA4#O8B6nv#2q-nHC1=g0nhG49u*wBt0j6CYMj>>-@4$v87w zQtYx<0i&Cx;yCNSN7W|>?$EJ=JkiwSsXhAT-I?{Bj)U60dshO^7-qKkBg6WrjZ=L) z%2Nvq%dE9atK*s-m0tWGH0{zm6U*6|@5rvn;sT}52}cblB)#5#OQ&~goVU{SuyGJ^ ztfVC$>+x0;6~J_F-7nkYsNC-V<@k{i%`86~_VQ@w)Zm~=0`T7H(+6Ltxe|{ithk+K6I>=P>jnJ51ObszTXKw`nsv$kw@8|H*X9sD8 z#{Xg~_n%tjkt$8@t@QITiBR)_<{2H;@5+*pMo{?B(ATu|y4XUgR;`#Emt>}I{+W(` z|Bav{FpQ*lH`-es->N`@(A$I&o6r`33Cy{)2z*)PSmV21rT9HZ&+JNBwFCYB3 zj2wlsjKTE(_iV*r4uj z%w+yHO#jrz77iH%N{erwD5u5Zz+rBr!Xta_#fcE=->L0DaxwCbrj`qhCeM?3Z|0t&R~4xKhAs zbXY*z(j2(-+`AZhhjZCBUP`mf{U`lOHoyKpqz-h;I7uS@F`6>-d<~ddPl3e#JLp(O$Zlk8 zX}4pg_IR0C?$X5cuy4Yxt3<6)8faAY#k{aM9t}f!bR^PN=MhzHZ~3^>>&FNCCN!8C z4adqfj{zsYw4b-6QvkKWJ>}qFg@Wq8;R&;?F8TcNN}p#*j8*3-?xnf@w-y_^STceQ zYQWILG!#RuS=JO75D~8Y$w59b${k_ew%0N7p! zc0M?~^L2LDyb*g;qzcP{7UMd^Yg^a`ZNWHFeOiE6QRmYiJP_+u!Nzl+i*|yfff+}jEq}o=Qos^fH=R;})9uU6v7pSuoXupi-c4VR(DI}CAGO6*eJh0?-FkbZ9@fi7v~WXH>kKDbCNjm z^47#&qL!^9TvnRa&4HX_w?6<*iWu8&eD^VYAZ*;9E)evL0&Q%V@Vkyklx2^F2Uw;q zymWZWX;EvAT-TnN!ddNA)SgX@u%=xEiw-ct;bLIm8Ci(0q_li5=hbtQpugmJ|lRaJu<@xZ>~YI z)Zlx%QO7#$v&B!Vk=|+tzgFZs7l7d0gJ079Bf?*YW+4v2(*_}rOjleQWQRA5(Jb;i z1KWZnTq|Gp)IO&%H&eN>q^(SKyaM7=d#EBg;6;{nA?>1v-TIViCe^#CSQFR{jEt8V3&1Bn2hfx&l!+`3m;$ zR#teHRn}3XI}mOUaX?g(m$K{=I8u=T2QhC6z6BA%Uxk#C?u4Vfsy|0l_>c_A?axPe z-hrQ4?4kabSRU({3QUfearZHv*&^&2p$oC*M~Cj+I^S&5sn%Bio4PNfc)(S-M^LyG z37afh446V3yhZ1oM!*PL#?nC=qa>YIIW`%v>eQ7DH{cDL!sriE>Kk`tBjy z5xF4O6D*$1*s*zlN0uTku={|aidHK*%hEeB6AHH4S0n_^3o9>x9N-J~FQhow4=YuF z`J$?_;_R=qUae?D&PGN^1)p?kqO;KV%}QJ)oBEb`P~Y?Ov3x%wIDMlJ=WzU_Nfjfg-Wdh}-u=DRX&tzlE=M-a} zp1l+(MVCH+Fcmz+BjCau`_0pVEN%XcrC7iNxfhLLP^q8LHBVKh8)NPlUp=b-DTjAY zr~0LI%#ASMmVaRA4K6Ex#dBy&nZ7W(^_o}skPi|b z^I<_!HUPiJUvokm4M`(5QWFn-bQss>WOQZ!%U-w1V-DYZObFWj+kN$Dw{f;O%p3l= zaCu~ap-`1iO9W>K#vE7-lnh>}nHv-9zweDSA7uO0Zawsb*{8sDb?Cdy4;1wEboOsV zOgO{5O!hXH4{b@7tSD}#Jn&h~?-OkOl_hq)=6Ve66BJA>t02)z9U2&J&&Jf^xyo5L zJNrdV4S_oqpF+qy9Ru_VF%r)LK&=|WcC z|FGlz2b(d#o7qG7kkn{!bM&P?S2)OjSm(Pst7VxJ@WW63*resRSsp3Ei9X=8 zsP3UaQ|o9sI~u+e!sPo%ke&>Ea<;=>1049c)-~=V+=(9AHFKsDvse_C^yN)h(eJ$m z()`k942q=5hi{S=Bqm^^WS|_}ANC8o=>Rp2Lse4A!B+>mT9ES|djJg4SS24mAnNjO zK`gZ!nLNgpvdjEBV#%u;xtu~r9yZ^Xj7`Z7qDIvh-rg!4+*geDf8p4W%5ixFA?c5W zbpnsWe!7$z2!mFg?~@>!WxSEmGI}A`Cs&gmls$eDrNT_{M3qXsX+(~>2&Fz;V1C}naf2Wv)p#`DWeyeNg0iIp(? zy2n0VKLTyTKnO09KXmvmRRtv4l+mtN=?G;Oc+snS9?&DO3DCOF|iGQC+A~y-V z=ZM5`UX6>gTfNTKG~L-Q+{mFHl)yH=7$A-|emt`&D_fe;iPWRr3Ekj{;g{b(;__h;0vt~HlHSe2AU^5S0ar-BweOaP z8oqd3w+R5>tQJyN^v^wSv5-ao#Rs7-JBlXIoW(wPv(agXB`j&COJy5`U>w$xN;-C#<_q_#b@&a4RV`*n zPN`<00#H|5@gf9*GY)QZZA z<7NcCwBy7*wL)r(VZfPn9p-Db3mj!>(6cc~+UVJ+x${TQMis!73UjUOdMH*S=<9?3 z;J)m5xKur}sP1?q8tdFTsGrsqI}~8O=Vr^FeH+h!Rt76YxKV_P-m%*f^zEL2`203J zfrA=0fAF)P60e>8Gfo}bsZx&MZ)xE*hHLgSFAP&j$BU?UxXMw!X&%1{0?O!{54iGi zjFd$`gFEAI8T9_6^lRt*q8Tqc7gMbIjhJAZ*xtlRSBA^yJ0-59_8U;N!5`~%a2DEi z?#EdA<{-?R#$;pB7n!^lHxlr$u<(Kj;iGh32gT2?er~`&!x-*REB6SRMRq6w*~6fp znk4pwSz!}W@p%K=JVXBaO#j7wc2-qj*&_YJ;@6Rkx_i>`Mr*380mmddf8Qz`VBYQX zR$2$u+B5&PMJewjcA&Pvt^I~B8}qfxb;$XqWxo9|6!N-0kzw!A?n_eWbga4)G;Xnc zX<159wQK(CCXQ#r8|oY2ZWx8v;N3guw5}cw{Y@bXdXw0LKhk&HndOJ;l(peE(`+_Z z8Dj8tZz{;J6|nTz&!5h05#3kG98CyINt}(G?L5jHVtq^!ja#-*%j2YG&t! zLd)B}*!)jk$BFHJ&G1?xJStkp+R&;pq(K+JT}Ybk|~9EhlF0<0?nPM9K9Mk_chRNgj5l+TF_k_eN2A{<9$5nNq9}qBc97^ zr&gyrSZl_q^DI{C@egw*WOD=B{Qc%2>htpIfOy)(iP$K@MA5D(t1Q|l5HVxBM+2qe zmUKrAEE;l^ak(PR^YK{$m-j7r8X&Oh(bb8jm8Hw*=dAb$qiL1Zb!Zy+x+pXi z$td!eRK7P}KVnv?(<=WysX1GjdC|X*t}t)sf%8sXN}b9LP`w%_9o3TGd*X2m>0Z6f za_yI;>8idJ!m;if!{}-Tap5Zu$BR!J6)i|dgm#@;&)e;9rz@fb@pF`X`IUBI&-S=0 zBdUJ3ZWK~P(U8n{c^)|g_bH*T;}&B$38$X^ynMpY;U@*Yo)c5AngeB8X*VuVs8fsw zMm;N4fpbBfhu)+}PfR!-_ZTf%P1x6Stg?7zXE}F(`DE|RvudNV?wF}x5=PFMCPixx z6uDA|xPMW2N^d=EAY1RSmo?lP1tax*=S~lfo9{JX=nK~Fee^`X z788+R(~wFOo}ZyP!A)Xp$EJ%J=F1N|e)+}s<$=E^R6?4_NSIyN-iop=L*ZLR>qn}2bsZ(RK_FX61&X7eD5`Uhz{oK&0 z$gB)hVHD{f?5WbPtkPCWR58Fr1{Rl3CXw|mScGFlHx@y$!;^NS1c2OznK~n>9%#=e zQ>S+kdd7`M%#?ta>SV??P$j7@nd18J1@6XHp3Etsauwy_?anXje{mYApK3C(@>n1& ztoJMCRxJ)|Vn5DO-Fg}`nCFMw4PS>J+o)Q3JnSPLBP`5eeSM?B;RPr#OYiMbIJN?h z`^;%z0%F_a^eXo-*W&CAn3)R8zhWq!DItLdvwd-6=7GN$g|eQNOD$_!rmkz+8nCO( z(Up}uo2x~dn%x^Co5`eDt28;BbgG}5$8wp`!jIur)9cxRH2d=no)c&*MecQ~moG*s zUnR3u?*dlSbAnRXgI-RN3a{&b`voZW)6|wpVz@HH&$ktC6`oXXP8(#;c#);3_N^(b zWR^=VZWgPE84WyVZ_A zdUDa;kYFI%L6cdx)LaG!%-`QXs6)@pmV;aP=-qv>Halah94RQYhuf7j`HK4L8dXetW9pV%#-U_xjTL)x3$Veu{aaoZQNPbv9go-vvQKt z=lC(>Kya1N=4a4Do?S657Z;~{*<@b~@l30pn3KV@qHtlL@*bi4;REBXteA)rr)e>_ zg;?RV>S4>QRxL3hv#v^t_zcmKC?#^g-rjZ|zp!A(zBgV2M~2dn&UVz8Im^uOqTbA#mS3DO;zWwf1yqP-V@gn8Y67$s&j^!(R0SOP{oM4{f};o?GLUb zI}_dFrtc9w#8kHpNXg(kE%^x_hkw^}yRO|OJaHGOT&pz2)T1vA!^>xdy}BN4;ePB) zF(Qns+Oe7JdD}u(?9u?a^I4}tPFYW-p3fTcJ1%7;uG$~;_4a5rv1mW>q*0l&uIM-9 zxP#GV?6E8^;?~vM>6ZwfQN@USVaU(w>`X@M%__#`cS}~+9C}p)RXg%o>*=@w=A=S- z3nO-0S5{KxV!#h(v=C7)nK&DM#IicmQbb$?Kl2|6g@i9uM{2 z@3p9dPKqK)>J%!aB>NVXPDPt!H#stvX-15Z?1$tbv>vjJr9$=?V{43)qU@=ek+Gbz z3^SH$%!o1E&(Flt>G{v{&;?X|%bH{0O zIpBKeGuv0;#UpHvYU0e2V$1KgMbosC)U$olI|X^k~11V~=#IL+x; zkF_Ak%}r{voSGYXsF)5GJ8B{s!AJ@JU9JhVbp>}c_V=E$20qb@vrQ5vudgF}%FNaa zw}XFEds>-J{aEgE&aq0n!9xy3rFfj__rEopdQ%SErkWoQv1?6=H%Cq0vJs?(NAHnY zLwkB8_-Dc6TER2hV56z%qg>fI%PiItrgsj($}oSkeK(OBRps-xipyAiAK^*=MUt`z{wH|I8`a{HVLs&!U^v z<6w5>iiabCs5`)FGG4)sn!Qg4D`vlz+0;Hb+OIl)SA3E@RzKz9)fFtVO?+#RJ0kpo z*x4^~j?~N|3%|x(yfnILv2s0-`aN}&ee_d>DI>hkeFza#3ga)PilF0U79CkVy7ktJ z+GzOay3fc=;{U-kYY~(YW0gXe0UeYJ(ATff37RRmSIbZb!}bw7k;65}vf%{)4uuS) zH<9S&a6X7dAHbZmb(E%winy=-v$9|D72rNYdwO6I!eLMM(z&;7xW5&_{SeX;I%D8!y136_FrHG z&Y<)93L&=}fQm8@4C@ii!KLLVwXDuGtR8yvVm@Wzj~8Mr=C?2sf`LK6x3|E_llrY0 zH7}K*Zl|sno9~B$mijL+K-#~emz5q`JD{`51pm0IGxZp2*%}xWA)ktjRsYpg$U}(( zm8uhl$3C#Cy4wu!?x%MlYAB!Ja*H*SpniQA@aJCs&)EK3FPtK4#dlePDy!EsFuQr? zBYp%2(Ed*dHmZFR@aBs`xY*TmdA1T!JRShR)lNg-r1W_z*t@?1GwMS{LGc%5CIP|y z>WHM_24efUP}05^PjiTReF{}e8vwu=wrtJ2hA&P{pTu6dxY+|FP9Fz>Hd z=3jf=!zj^ZC_zH}8^U5Ji8VT8ky&8+v*>l?*M0%>0vW{Q^cjXxR2sYdBWT6st&!On zWCXSNB0PRolK6USWI*x0{PR_?fqezA{Klel@`CXSl3HrQ zf5<5AIR44ZJA=H~hCB|5THFxCDXd7?{uxvvv?sQ9Z2@83;c9OI7IJ2YLjG|4t?04<){t}48njh6VPW6QF_k1DQ|HwY1}p;a+OtG8O)gpsn9$iLmmEJa6^}gx4 zQ1nGl75;m(E;kwmgg*9aHW~Q~8`wC1K{T~?c8Yr1xrp>^DE#dnb0IfaG(g;MqeHf; zq0-WNJ!iS%qT>%~Pxh_t%y>Jv{N;t}ji$avS)b22k7q`0wZm<{qhD-Q@7LF@3(g-6 z7kA44cFwl&wMFB(jU#4PKy2oDT>KNf2g&myi^R4o#_mN1%9Sw}Rbw?JWz_6@-O>p3 z8-d0A+NEhxo&T;%HW{Euz~Ym+Z_ zdz2TFMJkbj=lqFawa@Q3hc-=Z@ZIy-{K%R7Qz-B$XT4&_U2GeEZwuyvMb+7$gkATu z{f?1TqYGouxmBH(qadK}jU|K?jwr8ywkG?2l5r{jOWb3@Hf!3xZWSBmrID%*83iz3 z7B{}}<0FgqTjbAYKg*>pdYhjgK*lf?{0{mWJ6g@5~Z%)i^6f2QujOi49Tmsx7+*{QsQcj2|63U^m6hNhY|HmI8WGNtDpWG1#Qf2 zNp>S@QjOXxhG>Joc`#;+%85MloD==rw8>=bkG*|DyjXQ~57wKsV2C|5`LSFQp`f<7%t!gi0J#rA(*nsX9H$I4c&8 ztU91M#4y5>q;);fn(|AH-oW#NjsOjS}<*kYN;b=1CTAdp zm5gMia3zvVoRsoCJ{EZ!g^Mf0-^G_Zy1Y+bm-5H8rrkO3)zv>v=H(aVMR{#(wR~oDcqydk_g9)T{#e+A9_Q- zaj+{ERe9C998TWdjV(Jf4>r1qg}qL$uDbm?qSvPuj{h@8uT=-iw60F*7b8~Xg)UYh z4-8xcZh|(Y5#_F7p+3Yuw$c`2&JN8|#u5ELMHBuo?>Kb{vCOb@ zs{z7O4dH!jB{(y_*Z7tkEJpI#dYe}Jl z%CD7GA<}so5f#RI%G(N2)Y|w|u@t#<#vOl}v4pppiT2w))4$2R)}4m4*nag8IuK8d zu8kf@+E-J-=)ew!5CM}j%S{%xc2`s_^xe@K>ACK2HyKDf>aRXM=>e{BJniLD6I{(c zWBtHQ5%iAMnXj!`LGP4YN*~n2AkETXOdL6)AM6~7KY?bnxz0pxvGhbw)LuGku(GLn zZ*R-U=`L&ndQ{49wP>$dTcYi}ZfFDFc<FCpbDoLJ(DT zv)4Hsx1;Pe_YMi>mN~OSi730q*a+w^iX1)>j$6hIoy~SK{Yaf>QS(C!b&83R@-x9? zS5yN@L2zcr$cuTU=8VfH?kSHcPm$v=EgO8x3QV`g(y3Tlo)rzw;TWS`7D(97*lCg& zoD5%?bEDV5X8*@BY^Y0iMv8lKQl%|301|gvlwyd^j0o9aZ|gloJ7dmLta|L-O2==3 zDZ57|z_hU&QbYn|TMU85z_ppLLo|A!{jG+cbx4J?>qLiW*xIFqF3VW){Z4Qc89Ds@ z+hs-c{*SzM)EMD7EE6eXmSYkZFZ4NxT5GneGuA9V+GT^wMSQm*8c%2M!Jid=_`dJU z53gQ|ZXzAOe%~RrfA?E)%RnDBuNKfzo{;0ypu)-rL?7*|;7W6CtcSi#Sn1NXH14{~ ze|N^X5SdA5UM?t+DDhhVee)FVLn>c(mHA?Po33&rIZZn3i}cc;BKBr>$Y5$->vp&O zSm!Uc^bpw0zw4KAXT30Y4EwtD4abo?+%+jOY0yD1n_S%=BEXh|=p`ElrNtpa9)qqP z_zsv67ZtA7Eu%q2tM1Bt`SK_a!jZXLjj`v%enlpK#emB9ORsP0xHU|xAhm4V?h%5! zv{FeA@==gw9{T-UhcFb$E``J)3WjOC#zdBHxU@Ap?j@11CVn=|3a@na9}*uvVXo|j zKyv{Uf;flLgT9{Nct4`c_)c#OSDQ2Z`)XcOx!XwK!THQHBpAdi-|-Xu58FxmO7CX! z6Mq_6KA^nxn|=b=O`6OvQ7{DIa)2q7qNU8j)eP?vtL_!6{ye?&@9#^|_9Dvs;`UAv zPX!Guy0`8%rsi>vt_)^u4Unu=7#-t=d??yLPGBg34G^WmwLrRHgXc^xQXYA*P8_I$ zVSYZs{a%}l7+w=XdU`!JQO`1OGfPH&SB18p7OhEN@j=EY`xeYuIJs}QQ zHmrE`_Z|2tMGNa0_Y5$1eiS2|5g(_hHEh<_>(_d&Ti#?kMztsx;XtvW)-ObOCu~r6 z$a{pasqGt^`nZF79};=jkx@Tl`bR?w?0t5m+_goml@Rny$DodJq5!qTa`1O7LO>6m zAMR4n_q!k=t5z`Fo{m~gf8O@IZ{_>v3BZLr6Q5>b-_eSB!+(kNL2B%3{IKI$x76|~ z9AQ=tW2Xk~>C!77O4;8AZWrHf4-nN`{k!@HIWutTsPgL?tCpgW!d=K; z_(KfXb#*yH&C8xHR0J-32$`r0VRC+d00o~LAb{fgP}RPR#ZHDwJ!TqwI9*bDw9GrO z_oFIZhp}FdEv_I-$OnvKF>FSo6Z!`#p)BJQ+ zRpQIB`45#K0+4?isPzHaIIopAg(m1%tQ5IKM?YJk=Hdp_U0vC`KFQ-v#*_W^?K>=D-1I&m8GsD=EHV0B4mJQ{iy<~T$meD~q&JbFeLtr>sqqLhPcH;PLQWKkf@qMY> zlKQpz;5&1`6@{K3t~5cXWcK76k7%9KIb|_*8@m@og}2@ZBo}_a?QCY~mC5;_D@;j2 zG62OWfFiLf_a0~nxHt#&)a}Rv2!VRyZ$S`n3e~l`vnEQ^wS6YYnE3P3PHqy(5#c!I zGwgu$sZt!)bO=FrIKo54+nkc5kg`rNxw029q`AbQKqj_=rtvs%+BK*x{kD)ZuH_Rn zsU9)4x|b~1AS~VQa!@OjxUZ{?ta$RxUM^JKRcq6+0(toK+GSkG#;ha_J|CtWI)dgQ z&ol4dZlOyfoRW(t@wKB+n9(-7$XmRRQ~UnoI&~s&=t);f_sfhvIf}))G)zaU-K*>C zJ|M6gghOu0e+ALovDi6fbuMp`v!_^J<6a=#u{00{(7k#S$9ENr*?a7+al6bFjeLJE z3c5@F;0oAty6l?ta%130O<7K~J z=r3CBC>CL7y7Yuo@7x@ZR9p+i@5dJJ)`;~20fODjHl2LKutAr&A=LwRtB%fVa}#Zp z_VvS;(8DTH+Dv@faDUACKMxX;Y(f+%CW&tH@Ay1GW#e7vr5a1uwaX=Bhe84i}k)2YRYqP=0PT+7og{>Odq=D+98n{)N+I>y-Nqc@AiI{$4UFt)d z52z&(YT;=Ou)Pt~(lSN%j)0s{I)*#xRI4R*t1PsgXlU8+0FJc9>_&f8#MV1n1yYix z98K8gJNMnMe~MP2t7~YWk&>lY-yl(Qkq|uFuJMM))k_|rg8nlb8iBbH9(>mCSAdY1 zCgUbhGEiw6t}IZTg>tGQ{*=M#IlZ9=mh2MwoHReXa*$8(_&u*GF=#CKj8rT)8C|_9 zwjQwk9Ivy3n7w7bfo^G%n2ycWx+rurOI|_l{*x`h*-!iAY`t{B&A+BERPCkSaXH!6 zBD!g3nJ>3B_C{~Z<6bh>KBq)~*NB!+Ep(a+jF6Q3fcIZgZj7n29VwEjC1>y1>JX+j zyxA{GtU9g**M6iEL=A~-cyK)wG}bO<528Ce(PEK>_7xZ5{4R3)Xcm%={h%_qT<~b` zihD}Ol1oxLm|8{ZmL097;=+ZsXl9;Oex7S{!jBH^0q>XY-ep}JDL-x<^+Q5z((V!E zWVG@kP7C{?^vNtd$SR6;3F((gAj=dHS-1e-{0g=RvGBuom1I@}9-Sjh`cebE%h{Yw jC;trzw$FUoENbKR>{B0;YeC6DMC8P=(?^R;FNOaH81~u` diff --git a/docs/images/model-deploy-get-artifact-logs.png b/docs/images/model-deploy-get-artifact-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..2249a8d370e86b8bbd1a4718b19f578976eccc2a GIT binary patch literal 53016 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�ar$>Y!7Z?y-U*Xof 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 KCGVPf;Qs)FRfLuR literal 0 HcmV?d00001 diff --git a/docs/images/trained-model.png b/docs/images/trained-model.png index 3753fd7d1b78ddb7b843bb88ac54b46d7560de5c..5bea4fe293ea075da4e08dd10ce58ec09b4a73e5 100644 GIT binary patch literal 28871 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 F{V%?I>tO%@ literal 61705 zcmZ_01yG#L7A=bF-~@MfcXyWrNPqyrWpHEw+srshB-fg>O^;)|o^1Yfo8VV5#6ciMiqJoSD6cmgE6cn^262e=G+R6%{duIm=pshI+ltN@m8lqOx5_aJE>+4Y%UPNH>bQVRI60&IEY*kD=9JW$4 zvg9CWWE_|`@s#7Z@^GHq+uJwY{dbyQODP{CcHE$c2yC_~Xk5Mub$ zeqr=JybBjss%jm;e6F}>K=EF0oW@IqPgr(R(=r1$xK@Hn$+GrAymlu*S+3nxD4eqr zw_AV%#^C5MXH8WPkHyk>Hh3C{=ScrdpTUk6oof+0KyRGcX1if@zy1fFaxRx+ zT;*gky4!;i#F5{L-xTiGRhlR*Z$RL4jucW{zKI|BcR`qc`k`ii;QfLn-h`XB=JsNy z_r|?r!KubZ)ws(5&^?TL0#f5mdBcru>~>&&3}oe4N49v-Z&1n5kN=Xf^2KjDNLVJ+ zOQeIUwju{&TH1mhq25Qs=F^5#zq3?bqRYkk0fYS>u2KT_5DL}^g=OY}B#8JziWwcI zfC6P8gf0=^vPyOFp6Tx{ScN9=5P{N9g_u&dA*fdD`- zz7bp}qA4ca7A2ER2oHt92vS3!Ev4lMEF?rKABllXDO7`kk|u0Hg1A7c9Ii63vH;=G z@(|7yuN`nLahvaNMc@tV2f|8+sp?y<;}pSn2W2>NkifHpG&lDg`LYomg2uLp?kHAa z^1^ESJd6mRV8~>lq~s1G$V?&ysKpc*5(8w%_T`5~I2_e|`p}odd z1PDXeJ0Ro%8B>Auy>z#9DiwGO@ltpfG8fdjIKp1vevSIiI;h{6Q^R8VOO3RRuIkNy zd7nC+!k?0!Qrw85hZpUrII6Wu=!>wuYa!AOT?w%na@+KFgl+vGLRK5p@}px%`qI{y zPK>+`AKSn$~NSROtzI0Z&IsH*NufkuJs zR%suzY++#nm8MgqNwZ1D_J_ffuk0xiN<&IwO133#N-0Y8$q&hLDZo*_(SlLJQQ1+% zWOin8&E6`4s=Eruj}R^EkCPREY0OOMiSVHUyW*cSY|{uIohs=nS$=B$l=>-MxmHPS z&18LJ&1ud2lj)~g1^5tYEq$`EY%c0Z{;=!MRAZARr{$%EUG7hwll^ZP$BjR`=Dm*L zk0*{j=EZF|c%FD>d76Pu)*`b5R+%;+o0{p>Dlf^aJ=>p4_Kkv#s21cIeuk(ET#H|) zKUaUOa#OX@(vugK&@1jze$2j6CT)*RQ>#>~m;~k+8)Vjm*GRNz-A13efQUlC3YN*- zliYHDn*P9C7kmHoUh_76pnI5kXnUA=hyy4fOd^00N)U1os6p+ZE3`!dKB9GgDk4GR z%NTbeH$p!SKF(O)b+c9Lr*WCJQ1e8)Su4nNvh^{reYI)mPcz}<_!7&6ZQK%?%dgem zY=L=y&Vy-n@&B_I;~% zE*<;+jqY`7Ej5k)Mnxt#W=S@4_E$p-tEr}XK%bRZ>jQ_D^_q#Z?_FV{Q~tHj28fyc zzTv9qIp~I@IV6LzsQQ7QmMh2Y*3mw_6_q)f3nMd9O*XsPr zEj%r-_EY;A<2w^oS^S$d=acTW?rB~eBG{t-f8xE4y&6PqMDjcdJ)OFayFlp{<68TY z`^*kD4)wQA=NMu&Vm5w4zE~Sj8!#L8;_rH_dQf_XUmjir?4V4S&XtMa4j^1q2WoW&TSAi zPd^8<@ATl_Au++#YQkz(X^0nxmHt*HR*zG4n4~bHvB<`(M4AgdNIPQDYx^c|MmdTP zPVHdZsP~m2VW~-zNE}RTR{7{E&`!sj;!pp33NlhT{?JNgF*uVl${faATg_$o-RtN3 z=71aZD$XjwD&fV$>ZQ8U09F^fYauIx+4jk6gp;cUjD5J>(+!E`_~xxe{gc(iRS#lQ z{^kSV!QL*KFaCvrX}46jK#xPxN@?Xe=LTx``MPb3*W$hd{Aw_B*g}|jnBi9eS#AHi z`+}$NOIEO6dlYHZt^J_gJNw^j`)zgskgd+YMITzXoyYdxcq%FvqM`UQRwRe zyFTUB;D(C!jCFla0+LiR{}-3-sV@28I9D<^v1Qls!(V4RO*`X-| z_Z@_=%dii9*?%o~8a~r5t&M#?x<2@x(3;S@xV^aJ@O9m~^9{GX7#vvrI^4M>JRcUr z^_{XbZyvlfAB zB8G~`Q=6Dif>C|ONT<2T^Rzz8#g&J$7KVx#g{FWr@F=L_to-@~Dzt!T58g;vxa~!g z2JGIfSwB*JXr;j?_JWr~erW;a`ZAa4|!nht!Cp>C<7_n51WydFv8if zwJg{d*%#=!YAoRjQY_IoV2kXipz8t!g^Kg{3k{W-P4I?$;ec8?t~#nJLZ%LOY{q5| zCgyCOc8+hkp`b)Oh29?R%w3HsJnd}lU4%SEss5Ei=I`&r1v=PM{4Lkm#KFx~l#1$aMgM&M z-A;2);D2kfcll4Z-a5$s_YFHI8wdOUmzgWj;{V6&@0)*{{i|R9u1@4{VM6bLp60f? zGC(_XdzZJSiShDsi~Osa|Le_v8~Q(%I{&p45D@rZ%l~=vKbC)6BBbsNG=CeUze6F$ zDZ>7LrTr(r2>ai0`k!(8w^RO=`sNie6cP4+JS>L7%7pR^1tkHcC?l!m34NM_==)Lj zW*7t0n;k}jN0P<$y$q%g{^0tGiQde|#fGzu=9~4CWgkfcAIT3|GC~STHHAh6is#qQ z2R>gW$95mSB;I0E#Ao<^*~I!Hr_V?2WzG zmHq$=^FQefFvJN^cAp2azkWj_<_jHeho|`A!lZIpZp>%9EYt)qfiDAiGlqGy!IsKj zl_P{P)vDGPbn4PyWur7!*5mT0{}Kz?&(u2e%*qRkTh}A%wlj8QX2=brjy8Ba($U|j z&bJXq6Srr&4W32u|EFdKRixxr1O-c6Nd&%cYVmo6zL)s;$r}N$26U>KTB~MXNyxFG z80!p^acNxWom^U?3vc(&R`3v3qT8GtydLe{f3I*Vsuv})*NFY{JnQZNYijvSWb$%Z zj1%Z~de+NvE)`vtsb(?tJVBJ_1y>RO)q}Uu$d|!n_yB_&W#>rRInqu@ZT7534+a7A zs^a&?(iUS49S#+~bF+T7R6*4J73cc+=ZN|s*Qds!x5vy$qfL*VBqm9L#aU87;fJ=N zA1(eD&jJ9ckk+|V_-WS@WX!o29)BbPi+Y}vf4uTz)oy}3Swg_;;|7<_0*h{oeU84% z1TUB8h0!&?;Gd!A#z)Bz1n@g;eafEan=CJ|&v_SpnxTIii*AF=l}@{BMd{<^Fu6^- z|MLSl4BvpJ%lkSpD*O5Qb|b3DCXxpSxujL6!@XMM@w9RFv2UHreznziPp8|YZS}1r zNZ#v{{Qh`G5hDRu*5Xljc9j?*;N`yTwEd)p%X}2~y1C9mFMGX>`jnC;#Hxop;hTWwX!<@rBUh&=z9gUl+kgO7h!!NWvIUR_QFyl8@9i7*v<4LsITH0F%G7OVBN!9U7B z6!GMEUF{>^i~X6F4&Fx%AucX<|Gms*Hi9X5TGwAJ`TXE~T0dNAVS97BL^L@&pGEUJ zp6A^8e6s?XPf`b;)b`Yv#W zPwNR2m*c#QZmVyMR&65fF#n6H^YO>{Z)=nB&L5AbS7thNHITDnJq2#dpY=3SXu`b;q7uIeAZfIGBNS>9kbcf-Q`#EJy~>) z!F*04PTNqH&z%Z$KVmvLt$KeXTCQ~a`S_{5WB#P&jC3}Fsw=b7Y&ApWN4HC?^3Rs` zHAJGGR|4R}c(2>8Zy#{uchsQlvUC#IzuS)z4rV_&QMyGJ9!)tQVNT0lm-cpDl01&- zRAIX5kohz@N(!S`0Pl<|F*Z1jR~#ODm#nFl&~>}6C%hwi^GkYCU^@85)cN=Zen%>5M*O%F9J^m&0G=ts4qPWyI2kO^!-F*HX zKeIZGES-ri`se-qQCS|3sF1OLJRCJ9Ci=*t-|bqNv0NNsHJ>pBGO3X3^yEtjhS+-# z9u9y9=QkW)IfU^w2&bK52m;#fr0}_xDnQ0`D4Ou|I&)2@6bOU7W`@Ei8Fdy~azJFO zNoKB8b*?V{o7TO~5>Mi-!$js!A^k9sJYPuU!&`YL)h(m27$W&**o2gv@vIPe8@K{9 zE6m^c#ear~?UP~AMI@#Pes@2feL<&U@4hQcBm<##xE>WsXTa%n`?k%Oe~{+Y+XQ4h zoi_S7F#kk{Ji0{8>)O zOQ#mD_gMFmKPUYVDS9=|%_;B6gUtU_e5NK{d>b2jD0*ptSiMLsAEVVXOdgw<*ocL=zgWJ@;JNBU?RzU7S{PoFYTy->tGL86VMxaJ>furUsuFZ>;vrO{qhg=*r z0ZR8Zx5dG1I=Ozz6PwyDJeL8A{U+t({RqWzEVwTJs|kKyQszc#M^5=Z9(BlIt1%y1 z6w5)ji`waoJb8>Cx1&+t@68a5Siy#JW5q=Xf-rxY{AJ%9WOErU4@g$rX4DIljs21w z@cMikC%FC2McRwA%sfia1m8v4p?)V$oNa%f7PubpbSXcMCEw*vqcZ16MAhZtl4YXS zShQ&9e_!&@^~OAUpYPKE*GGo0oLxdp?ERA;+U`Ga${U%+atvmds;~XPSnXY851}La zuU{xs;kXu{ID>;MjAow1cVD!{;$wv^#~4L#K23i2-LpQRcYc4X#{iut7x(M7jO?Z!j5aMf*`Wb(&8AB^;07=Wq{#udPrn@kl9)bL((FI!5LpP%Qt;X= zB)^^3Rab>|ev0E)&cpK8{)`)8l(X4p7G<#Mgs zrt6w)7SY*Bv3+0e5BBmy&=cv}TyoPL{tV(9T9NeS{}#O8O&Y`!^m;o0b~~>oapWZ~ zW;{fNCb;Ey1{$GJIS_=IL+J4S-@{EU zQPU4L% zRhvwk^O-00JRqIX#z5frI0|NFY=hlOvl4o%g%rmwf+i)iSV5}I69GcM5w~F4M{R-# zsG$+W#r@m2>Em1lYzEHB9YFj2nUQb*8s)_&{JSX$WG;Z1*k2cohA1gTkn2oDuG$YO zI_x9_gq5gCZT}-0Aib<#W@}E)Cp%eiS+#Y4F$=)PkBN!Cm-Dmg}qIrF08TBcfPs}N(}ovXd8^EZ3Qcl>XT zLcg2lcuq5a+RV#IH@Jc|4E(}i%{D>A_VLWMof_%P1HQQX39eQflDrI|ZF{MDu4l-~ z14pYz`fGKGiC8DAG3gv$%Yds8`|f)SgFUym>6q1s9oF;ueBSBuWuf~`N%zE+S0>9F_PvPj|U_`4YxKP>jqM5WKA;K*#j6V zDf)>-`z8rjU*Yr4Mr-IyKD$bqU`lKQC#|l`8h5EESS$%WDf%e6pvkl@59@`>iX_m{ zFG^X!%rxWe*_z%PGAxs3!^8!-PB%#ijNr@~4FtV2djtD(YQ)$LL)9eIfMs+Ze3e2F z&-A^tP&}=$u-mF-z-6`@r026^itR?Uq*g&Zj)eul`IA29S%C{ zyU!G$D1|7+bxfqEyNr4f7V?dKqH#t<8q}p3tNLTKL@B}eEC`p3*KtKzWmcB@Ul=~C zI5r@uhsf9`0qD(9oE?BCt|2@#ZQyebK{a13`N=k0VM@qC1BkSXSqT1r9E0l0nW_ikSjdTP6y zwZb@7p*TKEa&5SJvSl|3+bs_fRmUek^-)q`l~KDE`Jm7FX66k~s8>-SpRF+b0adC6 zb4ck{Wa$=j@zdQ4uhZ%JX-_H6qDh8NrQ^O~JZTJZ7rp&_jQMjI&uT|Ejojn>J>aHhR6g^!;`;;PFq=y}ibXHzT`SrFH^>n>Cow=X-)sPXH_N ze%qweo(VV$oMdPwq()5FfWFXEM%|<~FQnI}D`ML*l!uPX3I{46M8YJkBB%HNz0ber zemub6|2?nlo_5tuIS@hw66hWeRSdnFZHDNO`HO5!#EpF~sfM)r8XP0@&(Z*P5d-}3 z*3}#9Y?5MHQ_+te8aB&b&Nek(TAQDc!?)JeVfmkYTdYLJRv_C;b|b81CCWm*|Gw$| zMf^B_k58aQjj5YxM(5rq&q1cv6!~!1gctH|R=c4*1{Y>hI%f1v=}cZATM9GR7Oyh$ z8v_4m7P>;%p0_f$M?UPDFjU>%o>RcwdPZy~Nw!qiH+}g)`sL4hU&il8mza7r+$``9 zfGKCEsn5>cOX%&~W;X*}k^r&rniNAY$tuGv>9V2qFd@B=hOe^c5S3AMe(*bw9z)H@s*95 z2tF;oCS`AxjVvKHr?#VID%Rq7k4BsaBy%Q}(q9l`i~Inz|{c%STl8jG1R9! z-On-nMQ($l zU;Mu|*{*8i-1m2E;Dwv zbUp;A0>{Hk6AhRLUs4^!)`QzVv|UK!?KW|34TXbee8e>af_T8~H0i&u(VYn|r+>7c_34eW;iq&j5$G0wN&!NE@^gm}n zGbS9@7lhiqFIllYQxUys>%vh3{6 zpQz%L71#*1IiYhcfh~1Wt%|9yGDA9v3mJfk_zQzy%zgwpS5UWVYO!gk(82i z*HaemGHJ^LiyI7+a4U4Ry*f>FO1H-N$xGt~ zJ;k$-iW5b@8`C~~5p_Lty@|&}Ld@YI6(!{@D{A~e?yuiy%1PSkb`u{Wdb_HrEvuR- zpvX(;dfa-jyKBWrU>&R?DYEW&YakjNq)K2nMH~SwERuu>lx!MFGAN~FP)=j}&^K^4 zO^1Wr=z!kPD33X8T8Dy`*!M*uo?&(Rf`Z?NsNN6*4zQh?lT!^BN}9N|5n)P0*WTqv zU?1WuA!2(@u7DMa1v7Zee)DsyPWuKm`0hR1%__7oI<5Hz8Q(h^kp@;rJzO5UWtm^0 z2~FQtN0huMl131MLXd)B@0Jy>MQV-y(nJpWDwskQxC0Vqs@_>gy1uPD;;YL__ z1=OpYn3xf`ndCg&#ZmjATl2odi z$<#|_7ZC-Njeup8dXy9^2G?Ql!ip=Paut5e-~kqnj$WdVggjv)MKmo@G4b8;xDD{*qJV>viCm$8VNo)sNTj6cKud+-GNX;EI_5_&T?#E@7nER)8 zFNJcN+W+EXvB+e&iYkriAVlr&3iv&?X{e{a+hU_SMoZ|@!EH+L(jagg|2VZ8ageq# z%Nel!__D7ifO=9!T=Ne@{(c#YVGXXlsR)1fzwk}MC`yJRDzfXXgG$0Mr9iIVn!q&v z5&Zv9rzONe-v*=b1(5|Km4~yo``OMiE5=&ALbxLnt>||}w*9>*kplDFKAlajt<+)n zbNcH{Bv7!4a9%w@X6pp}g)%EqRXv|L-E-0qYBEDg$(^R?P3;xfNiM%;iB;@xZJJ#| zn*QwA6U{z1HtdIecMQEiyW}vZ^cw|ZlHmMWVhh}oAwFXUU}d_rD)HR`&Nr!g2_JJYMCl2$KZl?QBUsI6c9LT|QtR$90+B zZ;ZBAN9zhae**e}S8pdJ8vdY(U33wmtIu zEZOjXR($*(Mv*O}6r$i5I*ge3?MY<-sVp_2Bol)#&&z`6xoHEhiSgdb@~B)}p}Eq2 z>bFTe+({5l;vh3)OE84JLWIvkXvBf;0WjY6ZRJR0r>T#ww7^zBw2{vqLU|o1F@tFY z_HTn+-qQ{+sD)@|x5_3p?@H-XchsBT%(Vz=b?bpstmevOyll%{oYl(;CS*R(9>j&D z@HZ>oL?^b}%fY*|9TLUOSXU{l3% z!DbNi4cu!SLKtYJ8=Bx1I#~%r8hL+?n?&5bJtbNiY4e+HEYMJ(YxNxD`J$!ssnd^N zyt7SDWWQy3%-TN{J%$eCGa=r>S?9PPZs(PrR}y5XNZ>9_Zzs$I;^_rDFcf*YoOd|c zfo!%jv(|Q|c*U7LnD~{eTKSyo`US<^+2Tx8ALydM7WS)G07`D}-y-8TW0t_}aN((J zn^pc+(p7`KH^yU`)>vVqwsALXOBX`&ll(qM@srqU!n>qzY!BvC(P4Y-G|^a^y8{GY zUfi@mR)Vd=={es>QvDUjrXG#Wji3>RMg#2@KOtNV%i$%VzLu}f6CTHtr+E@6FV_T(ME==*HGTnOMRk8zv%w~}{-53Ln#1Y^WZiE2mw1~4 z?11zx+&xEG1oxl9jpZEIi z^anc0c&wlQiamcaT@DMqDT7*`j6F23d^n(Euitte=u zQP2I^I3>b7ZxFlC>uA4mkQcz#ao+uCIBJsf9sD?eqmFbykG;swy!FNRQdaaPe8**+ zUDNB?^OL{(kAS@t?LWR!$1QtU-&s4)bH^tj3=G*}jInlJE+jK=L`5N@GzPhtK1P%M zuet&@;w_>YFOz{fkea z=VtjNcp^cKPP}<9XPh;O%DfmF5*A_c)u_APr!ndN-dBf(86ZldY5^{N%~(EKsClxJwD5sg1$ALT?RMg(V^$L)IOd@SO-5i z$ku4=-f;llV={V2Im0yqF|ve(03E`+J>umx$d)y>(X|Q5pcao4c1DDzT6=T*mrLL0 z>&175L_igHwOB3Jskp1(o~fATx%@HQ2Z+w`b)xFRW3{@C7N0RZ&x&K7;vF4Z&%1pL za@B!E@szVWf+3dmW2M+pxlAwmcq-YlYR@GH z(Mz+I5ohW#!!kD^Nli%cxteVj{NC^{g`^sO!1pE~R-7tmL}lYie5QhE@_QnLlX;it zb|IB^a<8=BnpRic&J!Oakdlz|lh~{JB=@^GPleR^0wi;Pri=EJ?eetf?mNTGGpG@8r1<7deGjQ9JxT~&6cI8(e&Xz=V zV|3!TUd2v0?%5rV$`E=Uuo@m?d0lk}VF5L28H5RfagH<%k;94ajFE;Z7v|B#puApx zpz1fSxgahka?qVj7f7c-NlvSaT*{Shsp$i1Ha_5~Hb1=3uXkB4gB zP!2*^S_~*KME@wlq3in7(NbfX&wXk;`nFly-FDQqEGdswe7F8Vjz_NR*{ZH#=bH+p z9)B5(%I3(vAMibC)n!VQx2qprSmiJA-UY(FcsKW^PkC(yA;MJ;G){?Cq0z950lyrK zpri4zvm0KN<$70kzR3y=Z(kevi^4~yvI6;7{&i33TD0)KQGK$aa%(DV9&=sfsN zn`!23t}G6l@{Octo6$`P<+M8}%k!^J(WzCsaT1@lCcX1xmopq)MgB#gSE$K4Hm|e84WOQt<^$_r9J7yw0_|z8xXV83nLq z-5)SsF5?15RQcD6i<2j_F`$t)-UP#{U%|9+hi}@cRt!OLY`gqDTjzz8*WFfl%AXh# z!G?joGO`T1y>E?^v+X=@(Fvl(4{y?ZS$F?D>pB{bOB1~BxbM^D@B^DfG{Xr^*`Daj z-Ok5dGEu1mIK~8VpCCP z$Gp$+`wtHwGjp{pC|#;Rl)Dt>wwR+;PlLB;6EmcXzG=)N^eDT4$$V&B>3O z0*p$jazggS!%>jCoj4nLb?P5c>iufN5<8Kg!;5~5Mf6Zd*UYy#ggSQwK+eTaCDXs6 z+)0$2cRV@K>f6qupg3!N`_B1IL+enxKv9ij$7;g(OT)${r{yA`o5&RXYPQp}6JU4s z`tGv$*k0@T#g^!GCstUE80yR6-vEri60O~zIYtjj<9mgIIbuHB^zn2~>2TSbbsq;> zVJq9a#J<;Y?kO!VAdgcB!_0KgpIK$4Lt6$|k;6dFcmbggLTp3^O$^KL*PI)D|7^*t zr95Yzwruz>>*T#fRaDxIG}S}K6o^Iw5ui0dk`_YB5hJd*@4T;6`NulN4}j~*9<^OJ zv$07Ba22pNqbMI_QKiDAV3iMo$KTe?PtZ@E5T2)a;BptSL#HG%FDa*C8zx5`MV?xY zP=)Ovt(28ZIdyUpyLklgU`^PDl#KUS*sqMj@b0givdk&bNy)tcJ@eti*% z8~y<66__4N#H)l%KNZ;?iI8^tM$h4eU0C%UB6%SmZO#CUl%)KZv35%VozzcO!W6*g z$J<4ZF!$h2;7YkiyoHeW>U}zJu_kA9Vw&X~`m@OBxXZ3V{@GF+$7if~nsL^5hBBK11MlUUO%zj^uQmEr?{E`3rNh zHDvEg6MrB?&p;#sz1wbL-BDpe#*N6;8e81P_Rhe|s)dX+XJPZZjq7iuQ)<4!2uTOVh`I|k|?48Fj=whM8pab~lqNCDP zk(yH|B;@yqzsN9&o|3aF^!VqE2_9rqmp{!=OdoCL)leD`F-O2NY1;fy2uDDcwv5?A z6PydS_Fpz6ym&7z6}}ARr-mIG-Sx?d#>NZ< z)^hTw^TdbR%+iQCSRAYx)2sqp6C%~3hN3{Es!ASYkI zUVcI04qO0{vk>{}{o$5h3wbDP187S*4?TnjnE%ChOZI2#1+6jxku(uUcd&Ay?Ffj( zNM1e`S{dor8%C?jEXPs*TD3>H=~_7tPh?_Nk{ieke9ymFZCLiU_?tLI^tx{taSRIy z`V!fDD%GSxd=YY4wE?-TXk1*$$&?Nwc;=zSA7aVEZ{PbKOk`C#Cy<}Ti*=VH$7TPG zRuNLwKRe59v%W~-zgnW0BX8dfEq@t z$zDjM;QnmdRFs@VnVl-!M1x!%5S^XhCV`4T7&^Tqj0}e1jsSRRT0Fc(ON>wygM4S2 zs1T<}LrCuC#4fA0>q4_Hogl|mwWE7!hBZ@7ty2qrmDc{4mbt{&iI&4x`2efn@;IYj z3_G+b)c!}rPxQhKqCbF9z}o~2D)VzZ;|ia7!qMS4Z&X41PCHY-DYiqupw)nlXQI5D z1_3u-Qv=q|TRym>3UOnyVJYn9dmUHl)j~>I!bKU1s+`etM8K11D%LSc!py<7QS8_r@c{%AwO3p z5(}%c43*>)dU=~N^s5*BXwqMJE&y(qAC=0acINXXVV^aY>-<9& z@QEY=hUdj#4tO*n!wc7P9u!*hLlFhyx2=UT(%xjQ@@ z8`Fam-YTNm56=%Ns0VFg#!aF}AF)`KQ-+EdB4H2ZW~`gt#ThGfgYL0+GoOeTu5}A-7xovcZ-HdMqrL9k8LdjEttcDMX1T(Im353J()o91Ra&taWn9VOH*l=1 zpP_{ma~b!f#DqRGBYx%siIfkw7TI|&hp__h8O8f~N2K-oFiCDjz5h)6&QKKn2D|5o zz)gI#uv2Eh|I8A>vsXO%;a1*{Ux{)rI+xZhX@kAZWl$#c~{+J}wMUkhnAslm1i2&sOGf2YT^r_PUlk)hT z9e!w>2Rxb=Ex*)2I1EBHrt|r4G2H1<&G6n>zEGiH+t96CZwy8%k@UITCg7S}zu)zq z_Oh7tdIk3ag1JUbw77OOvNgCf07+8PiUQ412x}FEJ9JAqx&WI=B=B>=MWfB^<$2Mf z7K{)Dk)cf;i$mXMT53OtUZZym4B9UOaq=3)s9KpZ#FgkTZ9ZfaN0-yVmzX0Vqb}nC z$V0B}1ap;}7M^-mL!|}gI)G|uaga}W zql$mA@tzkKE{HC$j$r$(m6QEZ*(;&+m_XC zP3yMvBA9(zkjD2}ip8p_QacVqbm;=~7bI6g;V_y~$f_^BsJ8>UIbK9asELEXjG?9g zy0~%E20u|zzV`xUFBrgC7X6e_)|)0MP2X80!k&waK+;;qE$RM5iTD>gToX;aixJ!7 zr&25$TNGyU=D}>zcJ-czS5Ztx+m2=dL`oP;M$IO4mg@+~DuMoBdY8#zG{J$yjPv?jTUDGow~!k8bhGM7U#>R-4PAg< zP)*?=mOK(Qnd>blYBGWjQPhbbT>iv^e>d06i62|QwM;n|SV-BYBU)_#nOuq(RH4}s zJ6O~G(urhgj@;hEh$K=dhsE%;EdO+mm;|4uNYo(E`l zS6Kiv1I@w6jU(+##6^S_T{6XsChU(={76J{BE&Bw`eQfDV4vvHPG6R*AD_%{&(})^ zy4e-Ta>Q~tUp~KY4@@>ER;5%HtH9vtmZK?5FJ4BPsoTw%WtfT2)Z>W>KJz;J;H(rP zxAP-vMA>R8?ITm8!J5@s_xxAWa&4Y{Ic$xR!N-QoTCS( znp|3Uo>zz(U`K$)KQ$8VXP3mc*C(FY61JAkwL^_v>zBG54ORHvN$18XHuuwdE>Kf(HpIF)fb5KzWf^7P4}7hCtR3CKUqMaw=k@qCaOLdIt%Nw`G#9tdMBsz9RlfW%xnM`3qovPef!Mq$Ti+JtYsH(77)PmV1{H2Tv}VcvB^7 z$RFv_NqP)_8zH{@$P;W-!h}z4>=OOJ`};k>Vg;5_1>=yT8YveyxlOz$+f!?q|E$#|%S6sRbNhqQF8$nrg2=I5 z;g<0?o^#PDZKPwiEug^f9Anc)t*tBB$%~=kj9QKE=4k!TiJ@Cv{kZQCQ7vQM-4cwB zV3->JDTRAU$i*TV!&qu-j%~;nnZP(z9L^0dk$v1uLSC)rJXjtHFVTdNRmzm%@jH8l zU`0AV+Jj*2XvDX51iBnwpDbnXRDto~&6&6HHtWjAB+F=@B4@gD&v~3egJ@`cCbN|M zcezEX#i()YM}Bmiwa|iSFIhTEdX+BS3=F189XOIaRoMp3|R*;}?}7 z+AnU4ao5JVvhuGfe<)Q{4o?@pXLUY}jY1*@6n7%@^%@ZeHoK4h8 z$JUqGp;`VcUsbUOmT2(yf$ClPYP9_?B>4sbf8UyCk>^J%fmboz?(Wy2)@G4h&-Ifea zWzqeX)Da>7P`+gJRi50X$-ZU)lUVtEBPmvI++<9>cAjdXs7bnYZy)@__pxjM_ef4s zQqj(6c@!bKX#|GJfHvZrASn~iun)WllWLph<2;om`J&&A``cJ|*?c*+MY{wYrdz~Q zji9QmJ0861`&y`Zc>?=F7}=?d+qjjQqdHt@{4MWu4D-GTe$=U6J7 zQ_2xW;4B3q-;t}#?+{7B2=;Q2(_~1Vz}y@6ku&r9JK+!$#>rQOC?zAC|FTMZAI?cP zBEvYo%a~*yo+@0v5MD1yZOpf7elMvpts+@T!4oQ*f|fpFMNx!o5{tP-h#dm86e>E} zk3tyn7I*7coK;f+h^@O19fh!5xl?AwO+?0to=-4J14o26F#}La;1Ly&e1GhMeZo$e zto2xx_UvDN;SG628S43`z8Xr~3gIV(kvyNM(o1>^np2t5In5?9g|Y#H{;s0wgd(|0 z_b}uUmC#TT34-ZZ+<|yq`wD9Ue*kwE(K>)Yp*YtQKMJb$+7~@$goGeQH z=ztX_oPFM3m4Lni4Rb31_J9)cCm6{<9aX6N;CYE?g%I+jh8cpTG^ByCp%>kmzG<>5 z77C>S?sx6YU(5&qd1V1Wmn4CA$c)G8Z){36Av85Pvv%8kxQlj&J9kaa(l2w6W3}Ev zEKRxQhvNl{NZtWc(*vSe3?$nxZ?PNjH^1{8N>0cOa6$u3>Tu)LzHSwjGe$h={5njp zZNoP!Q(E+Ban&V?aF0YDJ0cKg-R3OHL!Pp=fIpI68I;kWGm`HwO`2LDXfCh%p^>t7 zA+v*cA3C3@S1HgdN>NurRo9Cqo#KHCQ~KPg?{0q?H8Nvw6Z zDiWVixKi`N6yG6wfNJaRvDoS9AUz3KRiu;4WbXFHHhkNpjAoD9KS@dP z0bFX~x)U8XroMEqE*R-Ps7P__Vrle;^!7o2)HsIPAdJQhqm z`FQNoPxI@{h5L0J9|zy8x*ImxwaY8CEhN*S?IqFQ&S5B*j3_}*1Wdi_nOGy~Z!^vi zHk>v!o*Y1`C7FYp<0)da3aLf?dJs10k->z{^#F2wasKrGF!jv=ef44A3tP4H3(NMh zZJSHWu4UU^_Ofl;wwAT5W&1td&wW47`+uvQbH2E)kFJf%s$)afKcaYvQSb>5dT|LX zn`ia>Fl^)@TB(*b>fbwBn=$hOWbTu4t}X4FMod0R&axtZK7=D9sA3`R;?n#&!-?Hp zZCBXB=3Gm|&1!{FX%@n@^XjaWw(vS;ZV1NZ58Z$uqFJ<^0g; zz^d|?Xss}NH)>)ly>57!v~^8L8%@B>FU>2LM1Wmf(7`a))a+Esa{s>$A`K{TGjksT zJ_ku^Sh`cz-x^Q>*{G?X!LY%Z6b+r2y;sLEHZOaZ>z4xR*+myUR%RGidhGCLq8P8a zsT)N-{w}T9H*)$~-V8U!>HT@q;Ot1n4>o7=!YIwWCza}b26!S{YRkXTUat=cysTiE z_Xh}$kOnuB)^=}}p*Q4~@X=oueX5>xp&&mC5iCh5so}U6PkqQ1soBP2lqjug^Yi{! z{2Gr7IWzwOlQ|oLk;JdP7zCZ?u0)7?3GLvAOFDUA1RW%XmNf5c*vP_NK0&TM(3ic2cg3N86iXXpR3P5iNu&s+M0H?o{OxT z5dT%5O26B>40}NAuHy z@PF(!6r<4biy(|X^61PO%>+r+CBT$b7<}Ue;A)KCuO4$9{1ma6tANpnBp{v5TH9AI zu3v7~7}6N9Vgbf9cJ+3*`cE>X!I_c$Mo@pJbHzqeSj;`nZ2t3`^$TYSLr=BbU>h!t z%+*-*|4?st@?0kRk}o7qJ{>Ddm)<6{I3DK1<31$X>U5H4zdvya7-LAjjP$&|KAp`p zSYpF-dEDE;n|nzRqfJlGVBDYZzgwm7@HG31LUrTF0_@2tgi77^^JMt@`8d$w@V6|xW#=nng9a`=Tq5V|Rl zAX?KuPTJ+DYu){f25{6~0@j$3SW>CioFxWE2AA_c!pLdtXV^W9&jhQ@4K7~n6*OfJ z8f`~&CFWD6?RDpgvNd%aZ*WQ#9_x@L!_ITu7QP+NW^oY3C(HFUKW-@7Z+aJ5@Vs!|mS>=y z4uyRl<-hgX8{I>Xj}FBU?>?P%PNIMD-g_xis}}5deKbD=Xtc*loy@}SfN%1AFAoBm z+i0XXc_w<*4C?9^U!C9vMI!LmpQ$aM$4Dyd({nDG$niRb)xvQ8{9X9MF1;!e z5Lqf1_}PkfP#BZTsqFe_PKt}llZ#bsnU-qi(?8vs+x45eq=W{G#C)G3UX5_;mr&1hHHxj!b68!D-0|-E6j@++sFM zAV>TAcQ_@1I*f*`762ft8N_pcx5*(N+6lNo!|DN^s@%iM@AZ1G&s_ zmvnurKMW-=(i!jps?1~y1^2ba(bd}gw<#r%C=x$WTx5R^Ez;~a^P!X~FS#HLfOo~O zmS7sV$Z$W60q7=~cYnaU+I}YhMK&7n@rX=qP2B@gA42HNkG00*GZPTroKbU#TvMM+KO*I5B41NWGnInK%lnx5lA$mQPYbQ8#6wpQ{2qAC?d%ZXoNGCIj+-`V# zb9B9U-ETsbOBIm%S-c$UyeY=Am`)MsZ86=P=f%k?)(CDDunABi z^;Y;E=iUDh#Mg(jD3`_Zr}%j=y-(*+-p@kNupAn7rZFQMHAYgTN&(eXno$3}rmrBI z2qRHr|I{6S^>#0zzXNiGgFA^a)yKRK9IT$NKNrgaN9QKZ{D0rRHOul_dp{l)F6Jj` zW7!LnY`#1mR}QWwx%{2rI+bU;W5I1bu4vWo1Qzb!oG{v->8^Xp)nE{x`a+I_sP&Vy zoYen5Urk0e(^|~00dI1{CoY5^PSN#Cl;=(F7zhw!e19@CZgB%Nb4LWdB>8UMw#0&t7oqJ4949-@B`;L)XX>fx=gRlnx?uqa27M37W z_*52iGDP0{tRIm$9MklGdod0W&SZX7Votd z$62YM?v95&?DYKr2>ZA+G|6GCyJ?rEkN<62SLi$$pE99CwnI4%=Pv3P$uB$jE6tEe zuU~gnXp_uaEr=C!bGZ5LRb9{hU4+iq1~lV7#bppuo1{A?h6B_gdA8tp0%qxe4q!d4 zty5dpL+D*nV&RhgWIPL|Gh!CT5Lf68g5L#R1R7a1txmOOy})0v?I0l>j_(EOu(%jH zk5<2AUT+&a4+|VXBwNH$bh%_Wua;kcJsK!(&~d*7TTh4w?8EXjkIP}VPFCmK?$5ha z2QL5>TYB>oyY%X4^HrcGdBuPv&@IS!N|#!$7ADH}7-P=30~F-eani6-67(5)K2HK= z$*OhlXmFK%L+v}rDP$5jzl;DIzEV#wS0BllQALG8&gJ7_!12G=T?jGgZB+&WKIPo* zlq52ac%B|bGxJ3?;D|umtaUH05S@KpIBnKHn=b8b_QK{n5e((nGA4drKRCGZsA?( zmw3a9LFwxy=XOWAGjkTqZNjc3&Y?tQvxydy;Z;bpFCS+j1-L?k zK1G1^BED7EAQ@m0)MdiGC=Ny(n0~m6YWk}oj8Q(g7h^7z0_}er{9wn`u&Mxq1PPrS z#dXR~YMiYt<^$XKKNXoD|1xAq==iU8XETb~(>0xuwOYD%F%os8$U)N@OCd*RPk|bO zqrzS&;RX6rYz{V>)#g1hg9$`~R|hhSv=9bwPMo*zv-6r57HzzqV`qYZpwb> z#acNrVLpUqp*?UOz`J@0Xm}1u42i!c7R+G=DPg7Y;bFg zhj@(E_RG+{0VZVPC_$W&0{;GbGj)~2eJAbC8wn_@UTQn#SF?7=hD!;6sE%xp~?%75adSc|kyD z?BV^kEGM+>a){wt!|d1YNYvHF2-g<`kF<0(Xjzz5`gw_KFdWIEbsvu5wpc$SWrbH@ zKPhJ5U7@I|X&cy-f7L^eX$6XT7b^v4PobvUPjIB5Q=zzDA7t+Y^8`>MZdEVC!XvvY z2!s@sMw12wN|XZDM#`T^j9g?v54<1(l|lxj6d5%2!vXE@(oL+EKdwEi?f%z`wgqh{ z?L)wN@hN?BnVS*$Z7ibH!GjU`10pmkzOUvNNhIW)({w=lz*)VBI6;rJvo%6h`CDQF zgtoVqRlhl<;4OX>D@Ch711B}+{mj5?0$tN{Bv2=aL5#)Ye*4X?57~9EK3PCR_>sE1 zF`IF#>7~?R5v|4^xB-8hw>Tb+0F^+c9k#1U2R1f?v2sXfNi=JnP}x0WtniMum3G`o z(S*C1T{2EL!oRJ?GjzOtgweEn!n19!7Qb#Tv2HrYl@;KdMYUh~mHgyNPZ#3Ky)%jI zLX3_Uw5g^;Y{tb5*gOuN>xNIyEC%&B*nMxTAGO(Q4Xy| z{h!)Bl7B!*7p%*tt3Z@My|9zP==|y`H2lo!;mIn1r9Aq~O0OEQTX7wo2H#cESTW<< z-}MIlcRq?o0zK@oEldTNuLpFV5H0jEV(6|E#jp&g+0*pw_~8Hk8Fev&j>xvMT+j&q zza`E4K1&uPFn|Zu5_`;fGXB2iTGSy(q?WgVg+@j4?K#pwii7F?-+q|@6NSJQ0AAP4kcw%q%FYta1woD98%hVG-R{)RT&ARa zG+*?MAo^BWCw?NLYPcsq^%FR$R3X2BzsdjlVFADh{(Y0o9)$nu5N>I|@lTstM8d&g zke#iazsLsMX@>d4{7KH%v`-B`W@C?5iE1h2`^nkpeM%SZ1J!5WDPCgUn6{;@2%P45rn|6c#DAy6t;E!-spT#Grn} z+dYvk@5EHq*l72EpT^=4IwDp#i6E0=72MRIAwcs0ia%PNm)$G$;|laLV{7^W2he#j)&5 zPe5r9=L-S#V?AIu7>8IiJQ|QQ4g(F|TaJjNa={(oMX-vQ?m=VV8`RI`RI_uE<`gqI&2PG`{ zb8OLONR_>_R?IoLTB=&&|Luph~)&(ttm_~+wR4~r;-u{hmHUI;7Iy^ z!8!4e;35W;5_UBm6nl?(DOMO|qWzaYDyh%N@LJDzm2f_FsdD3D+B*S#YR>W(*-75_ zs^b7=tJ>+LML5!YzHEAv76*-1lLAPei3jqJbZFbJ6_GkunovHY-wOVf*x=kBLroO&~*tC+m-YE5!P73CTi0d2KUuJRP3T1;C)>nJ-kx zrq(w82q55$M%{yVJeU$-VFy}GM1_PddMHz%DUAVi%o6qd?oKO8zpx#EgqW|JMA|AU ziO57ls*@Q!yLGd&v)8aJ_X7hFF64g>#rd4^BFOAac;vlM?cW5jCT2Y8Qs9tTn zze*LrZxY5d0mU95UuYD^6{`z(VJHl-iT)abFuDaZ$@r*Tsye*NVQ&O9YnShtP46)o z?~vPwM4B!u5BTjW23h&H;+#@C7L-Z5St%5||8m62KLSSpNE0fu*0i59`FR$+{kB`z z6lipRF*GCoB@!V?pe_fJOr4ud z%lmf8q-7G+Ybl)<Z)_~!L41%!`u&ntc5Zfx>7km-^IS6qZG~md zKFPXG_5Inh@uWm!PyL7}FXB7B44~}t@}S_$duT&pA8{Y&0c{+pzGh4-q+mo#wdq2ej8(_=OW8_jOiHvY25Ey%j-=jd?Nf91BsV6bZL|BHRcQd~ z!~G6<0=26nnY}uSU%spFe4LE1w{t0FGVCC)hQ;kL3*TOA^~RUD7f%Bt0Vl6iZ9AQm zar^PAmtV!FHYO%;Q4ypP+PF(<9H<$zM#2cp>p+|1U*)|F05Bz19v0VtrN-;!Ms>{_ ze%wW2Y+#_Af-wN7a~(iKE??9*lPw~vl35v(2Uc*5sLfrCA1&0vLs;!*=%|eT{7$Gj zk2Jm4#^cV^k=gvfY9|2aGLI1#$9TDIAw=JQ4%fs+T_p9#;!adtVsz`zU{w1M!8&kC zIy&b0ZJFp5@eT1e`PnEFDn93~!(-6%1K7x(N;_VqW10xzP!B8V@BKs?jaO3E-F(d* zIV=_4USDX+&fX7fJ7JGV1J1SVi$GPy`VrjK`nh0;W(Nth*atl|$gr^V)pci1Kx%ge z?;2P2}o($`RX| zLtF)So^K(_)*wr&l{OHB7b-ip`aQ*zt2G8g!cHMGEW@cbQaElEf?kBHeZk{UO z2A~_P{){IGtNlm5wQ3#=aiRT*bQFwQ^d%s^t766ZkF~9MRNF{W*g|>Z#;eX&69KG{ zOT)P?xo7xr0bAfRv1bTssooNA0K9QB(=e|&oTq>vXPtGWdwEQJ4DG1@<$KhfWX57h zBBz1jSQWuKVDusp3hLWsa<-_GMj@AdmhvQ&1s1PNV3$fM*z&gzK_0BQ;Pdwd3B>8? z#|Orf8Z<1W2}uJt+gBcxP3dL`-P^=Zn$d-D=71b z`62o~3pLnfp_tC(g`VQc77iuR8~WgbqApSUSrT#Lw!JXSGVT8p~WI?Fc>+Hyg`mFIs>l@YkTuv-kMlnL&0Vx*hPRanmc0i`5#ZL|KU$@0$or!XDgfgC zQg~hBtT$U`j_!r{E$b-sN~_JgxMCEW3e z(A22^L3-Bt*73X*#3B}fMf!Bon91u8q(RDtjy&vVRz@MUF*1;$JP?tW>MqF!Twbhp z;cumk$xjyjBOq;x))?B5;^flaJCheS~EF1TFwk#~=@HW`zn_);&RT;b_h#zVdi+BukFUviEx+kg&{}fbKmP z?1vbh>kiTb5a3sV%NTrr+Pt5!JY;W5hpTryUtS;QwiQb5Ky(PykHt>8q7m`b)2>n2 zY_h|jbOs&Z95_us9za|EqDc<#kRGl$jDGM7-mw|L!~GlGEp&~6$!TVvV5iJT%v>ml4x!jhRafT+nB`F*vd=WnAPJ@b z)ntw<6Heb0j%(Fp4UlpP?(1(etpEi03Br8f8o0tC&~m8SNw28he;!<&yWBk|WiCpqwByC98V;|v?Cq~M!zobbt!bKF1@U!J|T?`Nip}8yk=?FXp z)lf{R*WOr=A)WIc>-0}GU}ySTo!4f%)`b8^zy(4Ip%;dxCM^67p8@uiu8{fe_UKRG zgi5BY5McGnQ*M?tDu>_}3LnND@7+4rEM|&UI)W6#w3Tbmu8`Nx;BxViYA6i`93IUb zd?4--VNV~mT%;6E%M#-RiI=Dmj8h2kKth1~4J1T;mVyVLcQqoC|9JQ1?JAc2!q)Od zC%jok11GM*ik;+#>6E1vypRg>s>c$O^(PsS&L~hf%}!*>J_D%4w;rE@fZDx-szY4@ zcn3F!oWeA_pH7da#)~&;5WW%%bz};dpIZx+a%#KxO7XDA5z=88XTU_@ts1H+2B$#5 zgnU~z6?o~W!tgRvnhSd7g9m>I*Xd-L1lTLS^5un2bRvT@!vk0-6o4QNOiYvIY!3kmX2!q=do}Is>VS54IBZ$e=7HHReZ6!Vmd}F}DIQJ-LO-PG%-D?aM2M`2bR3Zpe|M(Jo` z^ypLbagx=6OkLz3W_4#_gd8wRHjfhq(toOZh#%>HaU zz@ns7!fViI*QsqAJ|fD%NhN=Uy|jZ@Pi43Dv&d|3Z)vrD5x#VgjmGcEF#}Fl7ElTl zCtVyY5d_$3e+(g~o0F7@OE{xZvyI2DlGVufW;@a()rKEt6qRPkL#Q|l)@qqkc|Pd2 zsukgJEI|TOS^RAnl>X5I9bK`J^@-SwLbT$zc3HbU@{w(d#Y(}qpv4x zlohL-k{+!cS0{YC2WyMnZLtH@Ezj0#9|ajpKcpOQbO@C1IbpC@znN8|VU{s}99 zsTuLW&bWE!lMO$@5ny9b$!Tu&yrHaTd~w7%fzJzICe-AHC1y-yWu1gA|8nDVA0O2s z$SuBleaLrsReCf8e})bj?EImo2`B^(5$$AgF0;d<4XTK|!*^9(z6yr;@Eb!Lwjt$Y zrX%6rZIWzzYZL`%IW1RI7&ia3_VRLhTkZfgT#saw;0&*p&obgD1~R~GPee+gqe$)dW``La)G6C(Hm1zfNNCPpZR3~ju4PN*ugEIz6j{}y=sbzUBvsl& zhp{Ys;f%&be(Vu|3faVC1duSVv@Ollf`Ex2grD5D2DG1Drl)o;*%yI>92@6}4hV!iv+x9N*E zM?wkl#j`SL^8#87*hwV{#ASnU?HzxOesZ0*Yv%4o^Ambma$L~5aotjhuD*78)fC&M zD$+jpH8}InSCZH6rX!F?hK`2@V-#4&VNsIBWK^=wT(i{RD11VA=*Xf@Tk;YCT48Ug zYR{#YV;Ygy8S27KbxrV{B-_Wbxy#{$T}4+Jj{{wqeCoq$b4Rmk%QVn~-pTULpA2&* zQ8W*>4LbEULtC4x-tSn4i_r)}AsZL;!r;Xe`rS}!F(28&bw24h zg$ZH2Eq4NXv~k20xv6Gd# z3HOw`USE>JgAjXR`|0M|J;9b?6VKM`Z(kQM^{6%L6hilMU9UbKj09))Gp$TQv31m` zFZsJ|&_Sh7x4B9mg(KQ8E-+m|-!JC?srNq&$)Fk0tb#-{D{Zj|XQ)d*dANKc74gxu zqix?YMcYZ@7S$%s9Km-kW%FvUJ@(s5VC8d1OVy~DAreCkF4A;EJdsw|$hl}HM;NHY zmzb4N4rOt=e~*Ge{pjoGnDQ~N%Y1~(^osn4>Ts-*#(Yv`Vp#$mdSznV_umOYkz>!T6rW0j(eGuRtt-iBKb5Ud5oAZM`AqSVLuxMqgB!j4sfE@q48VO>ejglMITn)3;p}<7{w% zKu(>NRKe?rnx5=wGpVAwMM<8!lnCau0HJagmDsHAYY*I`SudUbE`&*D9zoUX0sI< zDQ-ChKQu*DU51g<9c0*NK$IPexlqK<&3pd`!csbl@6|+~a--7V`hUoM2z4}v;R|MDs0;oj#u zOjOWmeYYU4jQmBY>cK8B->Sv0ggKC*E;+iVZUG+b3*vb^$Zb);LZP-bX{MK=##D5> z942=}{z@gj?s)pQVdOIsG{-Pzzz=^a&^>9b*Gx>5up`rZst^vt+FgW1hGOxaQK$-`%EDSBu+sx=mhZys)>#u zl$hEqhMxc#zDhK(DVQ3b-BYNe)Jv@py&kx;7%^mh1tycZJHM6W=Gr+H+Y_!FWgW1{ zSc?rR(Sw@aBT&|qlVpa6pzI*^u;_JtfSPoNn0#z=*eoVD?<07x2cAm(dwRl5Su)w`9A>nP)BeRaIy-WYw32W#Rqw;|uW;Q@%d zQMmhdw`bMR&(>OWI&I^GUr(b|JHBx`9@+9gs^5+!5yz;YTHqHQrdR?wj84CK=GvQ6 zEicAtOWc{$*2FBO7A&qB-D`7Ci%-YbEW)fC&N6txwwP9Lg#8P~6RuiXn5(l7P?fvrlOF{pJ6KA*vtsB?N@sKAyrOg~ei#SE|40 zlzvSh_Sd!NlT|cko%A#PyLUuhzn29P5@K4P0v0@=3`EAv*5UN294QY*s3qP%nWL``h;J<3@VB8g8r$0h^Vn<_G1rJtg?R2(M{5;0< z4a|MP7S4hNCwxpSPl$p1iqtI(D4=KUkPZd>YbUxpl7oOR}# zOxhoKCcILujLZH0JC3^WW66=1%A_Z~guN;zg}th!lc4E)ed7ZckPAuksQ< z0)}v>!4u~LQT@UUyAnKQ8z61`SQA(Fe0=~uqFMmmKIj)Za<2L~l&!)POJ8){gvmqQW8-l(8~*Vt2$!ZGTU;DHQqzkbW{b=z?JPE~Y}O zqhN5c?l7Khf-!V|bsEG)!;C&-?;Yue+t}hp3{GJSnZU{AGs4BhH0~O0ilf^Zd?&OY zY~W6Ih@dt}vkgj|9T892#o^ik3WbZ8V_=emOz^=J>ld{7sK$CtjpXgoKU6K8pp7yb z%;xGUZj-tnpvC{o7mS8`Cl^U;Y?dh1+i7{bn}4o|Tdh69TNRPJE!PdP)|a3iO09Cz z)zW14oYH9irlr91!Z;Sr)yp*#Im_KtS`$k91>2|2XPl!qj*HF5G&E3!burDGplslh z@SB(4=*yryU}*SRAfDqP)Guk~fw6Hm@#Emjj|BRd??v*GK+cnLdb0?7#AEG4i z@W%w>3u*YSp+=WgWi=I==biNBHL<(1`!1#y9J$kso@XLb|@74xKrkv)RwT; zciroZpz~utE%G?-$2OSl1@tiUhI}wW6FGXO#7O*w=aCZJemI=iW=yA`I3%P~Prf&v z`l`eXd|DuTOZ4O%E;l4TAaYSAHf5eh;hq6((m5~x9%EUHGqmH|C&=_z6Ge3FcVs~m?{XcTs&l0L+D)|_1n zu^u0W)JeNV*25fz)79qMj?5-pmnmOHeLztj7Hj83^3-N)fm{etrI;Yp6cc#;P_%VV zlHnPQfV=aqBgSO^bO;EVlpol?r8fAtACyU_BJ@Wqt)KdXh57J*70Y7Z@fj#0FnGmY z^->AMbOOdP1U}ouOJ?$VGJnQhB~8*KdZ(h-XV0~O$G9x#nh%Kl3#jbhmE{L4`@_|# zu1~ioH(jeemvFE7uwa?t_-+T;l&kL}UQ%lm5f2t!8vcUI1-}o_IhH+#tITkmS6>#m zb8U}0b=k-jL)7b?z1SW+M!3a6>9e~3jmbH#ZFTq5;rVn_&HXzSiCA>#`N4|(bw7hj zE6d`O*&;JKjxlEqMD>n=pHM!BDiYC5gO&!5MT(5|QgtT)b3b+n&=LxRaKsV6v+~M@ zKyaA-E{ZWUF*y!~A&1ullE`XwU%`34Vb=(1H~^t+NA`bS$CxI6kGpVyeefG$+QE^^ z_)3m-4p$7ZGb{m)GhWwa`R56U#-Wl}ftw1X#sw#p^f5)%w}LW#F}knE%aG(JU;$4y z^HD5J>Kmjnyyj{oA$-kjzxq&>)AIV}OG90Cy&eWmROCZMdAry;EgaF=Cp^w48ZkgZ z<`jX25`o2Xi|no+#iHN64wnB_{H(pU{m+}%#7ZsPWaG&R?aD-8qw`*({p8C;dh-Uy z{zSN!z7Y^xH!oLHrdh9ecG}csr_c)AdNoudJRJZgKfLW-7wJAoL=t- z`AUpz{&e|DmJo7y;M-<;-p1@_c+0*A+|q=x90CaU>=~ZEvgr{Rk)PvDpAT#wL=O1$ zpFMEcwR!;!PHp$I08YT%H4mzJIy7`XxJ@9W+Tz%Ee6eYK~^EtzY~r z0f=-$y7$a-XWH$K$i_K+?LD?8;paSEz@i=Xk+%Y-viz|8<3A3_UJ7HeLKL3`J*_At z{J$BCd? zwq4JR)^&Wo<#Y7oj{p%M(E8h~*O6Wxy_}80I=9nQ@;&;ZqW5)_Sosqy3(ahKPkU@Q zL2e;I3l(TXo*oejyu;htK+w{=@X?Je#Bm=;UsFLJ^sAE11;q3vS3tW~MrKFNtC`oF zD>ea4(z@3FPRF??`3(lFwL&lSfw_sb`H9>{+GH}heB-mB1-*I=-Y&peeWL=4+eOdx ztU#eSRiMUbYQj(|lOW7w5kc4SsQwPGMi-D8KI{xk^vOT=vgt;aMqD$~_a2)WcnDsJ zj{1i0FeLyeB)HWJ9^%k@A*7 znV`WHeBV6YKqTe3R+KVc`$FnOu}N2%8slAwy^e9CbHesKV4qFqyK07wsJxz5aB(Yi2B6A+*{=4|_oXz|?82PVyFw^elLbb@@E z-e()t0Q#9jPE<10Av%Mf24l0q(tS;;YA6Avs8WdY*%x|9Hz~TIx|W|$>wv~wZFJjj z(_lo6>U}Ozfa$;(W^5d;#;?%;glSH|{&Iwlu_A%ZrE0@cO^RJ%1MubFuPmE9Uu{$l_z2-TrPi$Ja0>-?j@ zh*W$tl5a6Io?4wp-w%aCsLpoKY1RDaho$>au?U9&Jap1B*5|U5`>zoNYA)FC#Z46h_KfSpzyHT%7WXe&v43B{yZu!O^6sE)`=%ujaGe zBQUtcOjo6(p)1u+s&Ph<&`8G9U7|QEbpox&zOlEBQXFIg`l?-EqMIsuQ1v*ZFa;@F zx47ZT^kPH34UcVD5$$W?I+5-%B?ech7whe{Y?+@n{XoRQA}hmw0Mfmw+cWF#)@%dj z?3cQ;r5i*ru2-Bv%ScO?5_-2bsjFTo2AVZ}HzT{PS?VZ{1f-+d6T%=&HQg96w%(tf zGY^;<8j?1|4F&=kFJ%>*Smox7A;nSz4GyISZo;!MLRHLsK|v~O0}|~}L!Uk*0`YS8 zLvk)z7E%fr7+=Rp@{Q~xg8$ArV;>`G)q}l9s&58+-!^SWD$Nobi=zG7%;f=?qB+Wd zH`GjvC_J7z97lks;AJ6x-9+@3XR0|=YLs_7u8;UI$dTOjYul5H+QN`a;SYG=u>0=M zgqC?C1xzWXnm#Xwl}oeSGN&9Pi2g1UlEPK@K4Q;Xk8Qqk# zZN$Dk9lnY5KRV@#5pckQs;d6fm2?A0&9SSiSQnBFB#!T66hH9z(w{-UUVGg}BvhaI zVWjn}V)6|0hJqxPF8xQHl6t*6tdn=h@sQCPiK1-I5fSFe@znGtaXDdgT}NpvU^NXO zGg3CoQ=_;aL%xTI*FIXfo3=rJ3y!82&3W~h|F8(lHEfXTaW%)LjoNMkJnSFfnF*rp zWT2G;d&K2iCoJ<8CbSH1(ZdW+u4U~0;ERnQbuO}Tqu~>i8p)_lJCLP;ZF<7BvH1={ zKUDnW(I0b1J5Rq9XNaP@OjO2m?4ubl_{lx82u#dV=A*1FdAYc}!3K-8w6d!B{@E2Z zLw@~&HVmYJtN$vp0DeGwxVhi`{^($0Sr^3e?Sp@M)0t2Po)4vrHm`T>x}uyHoWU8u zlpTpAz6Cq$o=*e-ZVc#3+Wq`*ZSEgu48ul{=ggmj%MY)oBCQ?q{H-}nUFC4W{&}60 zVf^*b@;RawJ(BTB6f}~?*VBDARI*sdel8IEO}5((_*6(6Qw$G%0VT-g!kjMOUqreh zot2?Mu*VNLzA-zGD_jd>|Nh@9Kt)L4kmw4NU}^R?sxC7y_1OXvlc5#2a-Xxxddh&=i!-**?Hyza7}t zG3Zv~o|#H(KVyXMk&lGUGc5I8+$@rl#3JFE#D~sD%^vI0?8gTJ zB5=2YLgZ%Td_}mlTP$*dh7fB`AR)iOvSyQlZ;ZICx*$>DntXAHxiNg^{%0+}e_kU( zd1A;S>diTzrDtC%ru`{X>lM#FNSx(b=KC7SN80RbvSOmTHTu-?&uWO|-xkW!M#&n0 zYP>UbCzQvtr5$Iw^j91S%z;^vQnDWW_odK+Y{0*v7rCdd;DW8QPUK#X_uL)(6&H?m zZ9M^c5zAVyqOqQg&Hvd`Q@Tht;JnB@VGifbA^vIRxosmaDlySDf%C$9i{H$^kKgIuAE%D7O95zT*_c&bfKgx+QI0n zd{b-_^15>Kqm!!`xL(bGp4(TbeQ|(zGA%mU265r{Tp*kkm5u}K)ZpZN$9H^`d~&8& z=}4_@>d1y(Cy$n06yn^rXVazolNtw6GD7v{i<9`qGsq%t2kuI3LJ%K}iVBA;MHweB zLCHQ)nf>s7M^ePsp4shkMcCr-Z(%%zh1p*sox6J9*f6M?o(?T(^)SP1*HE|>^7Ze0 zisU3jsaqOXLRgAYGexCaL@h~)g^G*5a#NhG77Ce+P7I1mq=5g4P*v(GM)t@OyG~XD zkw#-dBVlNrGVZY&8H7XsEldk!!dS|^|T_Zy0U~?ry;34rUw<)80kxM z#%~Ww7%WRoqjr!D=-|;(I##fF?YT9+Um(;>W9sqP-V?3T>=}QgJLPWT_pRthu`oL zwqYnmMnoXfLcO(F{APF}>ado+PJ-ey{B-3KtbINKMsJPa%V@{vmVo)I&z*7B=sN+g zyJkz{zNj>CHRvCgU{&|1%ml<7l*4 z-xjwr52c~eb3ME|GI|^7nQ92OHs_yoaIt7uxtqro1ed9it}XI*L`W8m zJz&Id9BUlkM(R%P%8vcE&=O$HIIs;|<^O<2r(IS5`V_-Pdux^Lzgp=VNfsJ?HGb*Lv0yi%IoTWF3JZd*zuI z$S>AJ{OJHvYUOLFq;Z65KY#44pEWM^eoYgxd>SoE?iyngFKv<#*A^#yCF^?P3UNq~ zF%src7L^fJ3S*_AEh|7Q0y!lm?>m8kvwRz)O6PXOlHxJ-PhxH>Ml;%#FX_{zI`(rq z#$HmL`*QqTN}GV!t9>m)cDlx`8{ZLCF_v6uCp(X1m1XwvaM}Yo1Zni8NQ>j;<9?5v z%3?#mAr+ztdADxis z49EId45f9jtqp$_H}-y!&4c{I*}!CbflcVW4Be)>>5E?~V~O|`Ms&R%a!I4HjvTxl zEues0q!yt_WaquBDO$Xnl5bv3r_6JTA{BWiQ6bdPzIT3YNzIly%Dw5HxG6Hns`8aR zndYi+L}K%I{PkU-b)zu^X`Jr(#eYwG|y&8nM=JRc> z<2YVdN!QLK-ilxJZ2AR5K>_;gMkqzYC46CA`?1ShzNQL7zs$Hu0e|YmqLU>x+6@z- z_g7;3g?C z7$y|Cp7^A}us;g8s%%TGZ*V)+~kCbaq zB*PGJsiuT6L3hM`VB(nb^?ZsuRXM7kMAUr16rWBB6Eq!7|=Gm6i5==y9e&I~l#vztT*Y%=y^|iJoefg?9 z+0l0!$F0}1qb4iEi6s8>N-d3;*{*23fx1@97ql`TZqO^k)nZtRTZb@`357$~n z6%T|0NdLOA(@xzer2Lnu9GpdhnzOQ?egd@bvzi*m2P<_u3pb&q!8fd6EprD-MPG85y)MpXrcXmsv8`QfRo> ziv$WsjDil8Ote^unR0Rx@tu8MzZ^iFEr0h8;}74*Cv3t#E%qD|G+(4jvPG> ziIpL~fTf~IJo3xgtO*A&$$qcTPie`!zUP&?Z3iIEnd+JBZWyJ za!qn=SpizIM?6e%jrPRxcU51DWN=H|SqWA17m{bpBrU zksqQI05y(uI0mtKNy!0>NNUO#JTxIP^c{q&)WzYH!ZZN>o&L9)6sT-|(!VpXf=e(Pe*%s~LYcHz%MS$v}(Qzi3GrpytA)s;RRfu`K9M zjXYR5=W%C={|cY)`^-T@#G>yPL&?jtpQHNxF1dnGR>_m@am6Za`V6b%vWk5Jy=XQO z<^^bm-6C~;x}lpQ%Jz(q(Si5tq|fLTx$jMdh-){YpKNk$&m%F-!9 zsq|i5+oH(XXVPaY53B2Ft{m7xd2}ti&g(?;y-`Y~&8pbRzKJODH(+;)=0+*RR{k(S zcwwo$Tpxz9LKRO|vLN^C!?x?Fj~>_S0W0Dbjl!Grc%I{<&w|9ix2^QZ4BbNJ zc~XPNQxI!{7u{Gjsn!s8r)~Wv^A#eV*=D7y?cdgbVXxH@+Q&08Z=4zaz zkHh=LXHuB!v+ju08tN$m|WbWy%sld+Xav4eR#t_=eBtYF{pJ~@DbO8gGAYgyLatF z!Y3J%p_f=;`MByD8ueID{p#Shd(|cRUrEecXP!KMLqv4;YsF-N$G14zm`y)FqUDo5 zN-D=XrQ8(95Ql0rIDHN8VT8y~ncm8XPY}-Bdu5Y%Z8`SF{!Ig+zx?pJ$n-uN zoKmDdvELofzDv@X%o#yM{fL%^U{+f-tz+z8ket;GJ!m^oeqI2mE}TM~fuxx9Kc{s} zAS6yLa_Iu}&k*u=Kq$KgPO-Ind2B)0`?Mh(y(ef#>)+xE!JCXWcV0RCQg!^@z5&yk z-V+8=#Z(-}2w#QTn!SZAxHmW{l_aYwniaz}g62v1W3?W+mkzIIPe7nV?WeQ1PklN7 z%ImNrhhMIsui3G#XOJS(+=5%vil`?d?eJLVY$p<-I(B*KIq5i8Xu#gz2H zy_d|~$-rZ-mo6QOx*DtxuIrL{Bn*ZEI)+k6L`G6(x*e+N%YrWLq!MoIjdK)Dj2Z1~ z8-`BZ&FHbISmINW%mfZ~yy$fKjvsVWRxy4f{}cfy)L0{%5mDAFZ8;KL<+gblIp_L& zu=_brVa$!KML5RQq&eU1+!-{_otqAot5P>|Jk5wJgoRbg_>Rlq;D%A51=;*$K9n_` z#h;ipu?aqIM@JWM;-sgB=wU4hSM?=D`h&WksJr*Ibj&XHu)Vbj;EpeN@hbnYg>fa@NNDN={@PGZl~E>04AH zF?G~<97C0ObWYRqM?`82A{-*8w)G>DA~W(6zdDx>b@m1Jfz?B0NSPsBAZttbp6Je& z00F&Q0ef05OOvP_r4Rw*;8g)E(TKfy4UY-y4QH|x?^+es+kLqt`cEXdmt~{gAnN9n zv=u~nJTe%8${_fq^E!QaRr{@-IY*yDqF@zp@KqLir-sB?;ksCPfC*7MWtt^Jf;#8< zq_TjL_wOAxLPO7>EBzzhAHpO!pN#{1DSK|LP%=Y?dG;Pjqv{%Zn#N$*p_3vW$2k7T zD_{>y{1Rj>GSZRf9@DK6Cwf`zi~P)S8BlghcsulwNm?d&o;u>%pa>Cjt{Hi*hVfq% zONe6meN;lG@sn^$k|951l6msrMaBS{f@s51kT38`;yPJKKh8@E$ZyezfbTWx#|~K` z^h!oCh{e5?q(8PL5sJ4g%Z$eGmU=oaZGRbO7TAyL+cgDcUU;_7m(vuVtd-gk@*w)+ z1$!BjtR~OfhlAP{j=Buo)@mQ>(6r;k{0zeC5s=_Zt;|HUQrNyGX;Xbcj|Pd$pX2Mz zCXUL!KinlP;}5y6PcC5fz(NmheWRFU6-1kl68%v7-LjFv&^%_C9of!&b6A;S5=WSs z8SWbG3&W2;G8F4Y>KZ?ACI5ff0UWG9ttzwf@)|HMAIxfXhKn1zA98?ZGS z_3?E!Ih)1nF9hj40`HT$`MDhiXUrTT+;R1!nC-Q6`!Gy0NfsTarg0waJwA0LIW15b z4RJ4%Xnp3#|LUc4?b&uh4*CacB)=;UC#nZN)iI!VZ?ITiMdvm)J^C}2y1qBeLp*4_xn^&y56 z>@Ty0=g;2R^V$2wM`LUtjBpN4AbUTG5Xd+un;#y)B&k;kLBXEcrEcMFtioOu7q;D- zWPeS@F6-8KCTaL4{krTHXw8N}=zYG*itxPftOu$Npjv1WexbQq$dmc%eD_6XG?C1t zD);`gir$5N=4xw+ZY0Rf^kb=)3 zL5Uu$+9*^m*BVY@)S-B@%x;ID(l+M597V5k}P|!9R(yfK_Dq%QdE_z7lGm9F=m^)|a4~7j*O!m-fi@4Np4BC*e@M5^s7ynpqgwmJ6|>GEtI=I=Y|Wsu zffI(E!5h!75hm7yL;94~NZnO+3xOEhc#B>O0+MkiZazM{tNV@=h$8|6hAY)~&M`md zV-=$1(p8PyckGNaYf5tsl(y8!h^Idp7>ne&<}IvGM{dyVYjXDlVxNZm7EwL!efVaX z32stoBkiS|DWvGpXKvoKDbyh|t_V~Y-Y|?Icmg_l@3#+0mo6>d1!`#uKeYpY#d@4`qRajXTZ4VLQYPNrZ=Asb&3uRCp z`f4C2Zd0a|^#S`(1Y9*g1vl-lye)~Z(VDtC65q?G&W$M>_P6>^b3)y_TpN~Vg(p7H53YyJTj-IX zU~m|$=q^$DjBB*Tdg$hEPdD}v1KLR0jP<-WeYrgB|HK>!CEG!`PJ?c2O1 zyg*Q9RQht8KxQ&;LCq^UW~K2e^0)-*uc@57Z_|3T5IK^Xn(_!9;SutqSCp&-HlLdhwYgEB)Y zi%A>w4EaSLB5~SQ+G$mjDa5QMLeWgPR=`*Lked>1s23r04!1|@-V>iK1xGRJ!n!%6 zOI-BHQ(J8cV%_3Hmmi&EeCGN3?z&^jrWDZdbmy)>csoB>Fx^y5@WEP6?|4@59Xz3P z9X@0bb%HoomjBN7a3D1D1I(i&QM!y&w_i5oyO?(ue6Ym#rt+04W0(BT&7HzJ`WAfz zhp;j|`+b!RB~=KH+FM-jAIE(=;TWgyuy4H||go77aXNjaZ_ikO(SygR%Lxol2bnlj2yZ((X2g`xDjWW^#zc<%J&f3}-K?Y9wqQl+?8GQ0H5_O=9rvoR_hEGr`rLYZCZ#?jIwMyK6r zVYOGm&oTuMU25JwJeKI94yl9;XLsefZn#!Q%5YN$RQZCASZr!8NYpH)5AQ)_w|B4P z3e|;bb+{-G%(`Yl*IO4+YS8N)ZYPJOi^=!s(7tgVT10bXy+B#fltTq_z^rSLCE|j2 z>3Je4iadj5sCL0kg?hp4h)XzwgNk&(UdE48NAjvkj16Um&DbsMER5IFs$p2Olpu5s zU>%8GC!5<#C^bqHGY`l-zX#3Jrx4A{D`2ajgz+#+ba4e`V%UFO>G>IggO8fd))ewc zJiG(L|0hi3%l3S0Sb)G&fbo@x!Mg#M-XCFc#P)jrVxNm1#_CSkP$=NTLnGq|x#Y<# zG&(E9-I4kEHL@uPDVMMid!elD6<6BYt%^rtV;^6SXTG=*Cmg|)&Ukl|Y|uo&rKNMq zHqlJ&XD^0CxQ*(I4ZlHk?b6}nj9Ai!JcNo#IHYT0xm5_& z!V#j`l-BWV1oPFpF{!3v?7E|f3B6;8kyKTOu~%i+-SQy@=%wfcWIn#YR$bRv7X^t} z9BU0#X#ZOKd+=^q!2MlI_#i<`wFmN&i;B7B%i|*KvdHS=tzcHeH>To7LqwNb=mV#I z7geh@yRTYHFtq#yZmNH(L!OIH9l?gRe@61j5uy+@oE`^tb398e9{d_5{(&+*&(Sqv zqg$g7)N0LPp){H+g-Sa1kCrQ@U+~vgJ9%q{!A*ygvrqmV=DJYDgG~z|Gi_v{0<~mop7?EW z0upqtFvh0qaW6mRqClG;Wco%Lk8uGNmNj+nAIBGHA7@7-O}zo)Gkt{k2-VTy#S;sRDQU#PLi6B!_*WkmP!T zYv`MC_k0Bgd`(T$5fOtfRQBY5H=>Uw{u#V@yb`-&>`_iz+eOXrfzE(yQrX^>`d9k1 ztK6^WGrd}ADA2lV-4tu+q1NP!h@4l)u8lw9FvI{J`h#n`FA`X zNE43}ROqNKiyFzm|IhORk4+SOE}H5~k)D|1fF^jM{|(=t2L}Rtf->?TwGjFkm2pV%o2_rJ&F~jTTY95PA4Q}lo3&Lc3FY|AEocl zOzjb4dE;2={{nvASk^~iTDnW+&Q4+rfiy^-DzG3Z+YhIi3sM%Fn1Cm&p8h(;J9H%Z z_5-;-uW!?3D_emcF0*Dvij9Pksn$(f{LYhk2Z9~FfILJxHGvfEb$=-DJQ_v&xvBto zNF`*3MkRmlDkgc5d{QE(-U+6#KjO}jnz=vEkpVyO%s}XVLb#}#V!Z94P$mRnSNS=O z+CYF}gufkQ;}&@y;s`B9Cx>9s`JqD;O4G`qh%3be2n!H6t+Vf1^}f`!B{X^b?)ck3 zZ2v6&XFP~a%3RHrz%hK|YqrUJI}p;z0@|PgLjWtgG#nI~=53CD4Xi;dmKU3AMk`u( zT4+WbgBT_0@6>bLo8VXVs!W5*j9RsUNjFt4<|y1mSPdiLIUeb$lFR%;u`E1=xOYz>)WEt zOAXZczP|ZG*I}aRS_9ayw_clPH86&eK)Qq%2a0yofv!y6XcwU*e8-Irv{C$+LacxdGxa# z`>CFPR|WOm$v4EVt=-toXgDKNdw!(A}UXw7qwAb*;l{f(?j)mm0*)I<3pFxCl>K<6a0O1 z0$ie%U5DvXhk$i^{kvi7!G^r2p^;T?+v=CMzXD9W2l3c?dAiLTKt>pu*BL}-Zi>HU zHQ=A^NgUOg26b-LDs`8JfO1F)^uxg3l?quR93ugkduv~v@0UuV+7I_d;)6!iBjHPy z083<)vB@ra=qYxiF%StLnGa67HXT+Sp6;%woDJXs*EIn&-mguFGO?teXt8y^#e(T% zO!dc()6!2n36J2p61zmhr*5`Y0-*3;zkd&ukR-yvz<7%q@?>Mw2ZNHJ%J(hqgZHh$ zu#xu$G6g66YpM-()KOrD{!)l|rc5u-R-;gH;&`eT`x>~!pohfpBSN352?H-{F1sm4 zFOm3iz~xi{InAe{q2VRMX*LNl!+6Atk2Cdh4i<*5J!KuhUE7TP+jj-y9a}}F}N6|>MDXMAXW&h^Y*ZK)#U0JVI zTe_IDr)5cIbQ=$96&L$hYd3)19DpM`6tI1R2Ncz|eN`O4o&wALd^Z zAJBuwz(|}cq+D`)zG5;~kVXw+MHxh{CgRrSHa|eb1hAm^Q34pBD;K>?2SWQzfWU43 z9GFj*2pd@>1%Re>Yxp8N;9h2|x-RDO7{qK(3AX`aa1G4n9Bc_|;7KQev6`Nov4=;j z+cs3nlKY!qmA1biLC)Fn)Ay+_nI2`;9g8x-qc0K zA79Mb#slFWoQ5atQt=k)hBTd<3$040oe?*&8w|#3f^7TJ1hT%Dzm&-KiTuX#*49< zHgz#CRGh{5i{behGySg8=BquXX_KrYgTuN5vA9$^M(z;BjAwEvJOm`j+z%2c3Kdb2 zXd_#LL5R2f7m<74IRMM7fyC%3!2_a-jw?Gl34D6R@##~TIN&|_&oNYi1LA@D=F!=! zwj*gsNZ2Ou*Npc&pOXQ8+R^GJF8*R2%VDb3K8**iVEg!Vwh7Ffbf_h-92=Jk5o69_ z!PqR9R5n}iay{n#WS@c8BNZ?zR42w3JPZWJAq=ilYBEf#z56mC`n|<%yTn#tuS#N@ zx^V={`SeIt50Sa4L`(Z!>T9s8J&_2sC)38F_kRV4mVadN=mc)o@s+8k>j)J5Fwu7M zTI9FR<6TcH z4feCjTXoVU?JE=#N%L;Clo~at)$F=9eQp5sN2U zL{zqtT>zv9wx&K<;(6Z`Izt-9?a{RYDyBCPE^V$FA@OFdD;jPtQD&EYhnSaJFeE`NM3x4ti6FFGzg} z+E>{_>PQ1_j$p08@T7`JxtDITE^p{MsudLai?jSLLBZ zUAi9_CFbwC_Xi?BYoIUQepl~J>ODC*!j7GM;auFDhUds zme??Ra`$~}_q^*2f+uWB=oGo%4XswpOH*YVC2gmA5&GSUb8)9oYw#e88QNNeY15J_ zlX2fp3n!p$s!eXK`A!)WY)%NH(Gp%)+N4)0Ploc#vzRNRHnlK=tX3(t(>3PdJ~DA@ z_52t`pWr`Q9~q727!?lP0!sK_QY(Q$J(ZO5|s)L|ksj{N}Pwukb2juozK6kJYl77Z{ z?w#pB6Le>QW{yTs5Q=KkqvUacQeFD4DEB?Pk2V5g$;~5O1Y-BZQ1>BmOO$p<<=D3} zh5EVhQI9``Vgt_iCj;gy1El(g{4w8Ldj=Mjei zfiS9-FyuC!FePYZ7^7WA&ewOOj6@D`OlLLZ9&ekBbCg&!;zs#)nqbNa`~7(*&M4s9 zk!J#)H%@Tg@pmd&1!sj%4VIjqg_%Bk4U>mZlo3(2qf??B(u=88(!k37wl6ONs2^EBqAq0 zR%)!1Jj=74a4dB?I!|=k_uK<73=iLahB!r%MB(<7d2e?5dtCw`rtwzbQL-sJq*`d%O?p#(jl z5iL7D6gVy9cHSv0ddKz8t_bUB&u{_jJwMJK#i&WbNj8o^n?g9X$`ALgFi)eO!THRe zpY4qJgb?Amc%bL|Dn?&_>duc|rJ&0x{arvJL&*W)2)buT#OPSj2o7-8@nX%#w1acW7YoRw4SLB?hYiBeciBS(}QM22UgXB!LG`bNvkZ^H|n99O@) z{#62$#KH6&Z!wc5jv@Bzk*UJ*J#D1K>9;8uJIm@BMbA=G2Lh;*3csoyOUxZ3WY;mW zGPANFh;b&0D+)Uv)w)4*vwNys^XD2MF$cAdHD&(Pddb6IzNEm?A$IyRfl)q%T)m@t z@P3kYH`G&)>X*`dlS^KMlVhcEyMAZ0gx6&6n$)Bsxr>@w0xSnANwH(P+AqoJy6>DO z&Jp4Er;&2##d-Owy0(7{OxWG05v6282-RZXhOD}+ zmlxWx&lc#d@Zt_?+s%5BVZGuEg9!8J$Rx7kvd4m>!+t>(IG^$o25`gw#w1kawdIjecC!24hpp+u&RQnb45m z@1>&cJs9zNooaR@01ymoY$m9IQ8}j6vqz5}q3(bFAY^bdZV#j478j#D%`qB!98`C< zJ39&*pL#Z7cAK?PRs|R@5tgPkOeXo(|LC#RPVm^QNdOzL=3s;jA~#uD)Fn?%Y4&eN zb9BT*Saebvc)gA-^hhoAu1{Ysw|UK!Fr6;z+W>?%M@klA<_ID`P!6-5Uc(Z|V9dR1 zL^K#1h!&tiu@AjrmLDMH=N_}qv1Z2)l*Xg*D5M{8#3i9nXx%={Zb!e)Cg--}pk;Rr z)LB|R&p~!x^X>V(Q$@f`j5V?%RQ{*hXg>@XD z?I9ftu@Dahg*G)P9O+8gNUEy}sR0id0Vx7s|br;_^l zWsJizRFUg7?{J~Jy@hG^EB!Xs-EJU4%6D97up8zBbGtg$6g+fYMGqiPqaz35;LQ~Q zFcSfockMCIqoW^ivkE3RucsKms#pjR%#Q$nAsRA%H`T-{a3>jUyAy*9c2Ptwg7n{? z&--xjffN%95Uc|MitAD9AVFWy2lCI+>;lt%W~15=;j(sOKgS{i}s?G|=(p2<+)qUmZd zh8b?l@dyi&co-?Gm~P8B$`1|QCij?>?bYgk4>fR4WrN}R5AGHkUeRS9qZjmE5p#XC zOp}cGK%I4>J@iFLKtQ@p2u*PykMtexj=4ME{msd9 zY+^)1)uDIcU}C<*p6>`+_7)|9GL>Lm)iYcgbYA0dEi~NM%$25QH0~7Rb^|9%Do+17M~8 z$^IVbnOkB$d=I3H6z$YUM1R}_bJ$*rmG%Z7OaAwyB@G$~6@?g?njK7|RU0iR^11#p zJ07|CYMGrNBiq^aII7c2()G;?DSE|pmItl%knRWGVZ*))GOOu}R0I_M7db5v6#zf# zf1SG8It11#D@gMD2un|E`GU-Xl;i{g9@nB+D#qRDZ(vg;BW{qbpvi)~YlvEwU415j zgF){k+gGMnJJl0Jhcr3{qi?q!w3O-xFQXqcn)QZ%>bC*Vl=dv{t}9q)6^@3cTbOz@ z-;y*OUKRw$n?kyuhZ~dv7^~+hLqnNQ>a1H_ifo1fS5fA4NxjXIq$en>6sXYUeV2i* z2G|GC7``H)G>p#zxT2wvv7nI$5M*r&ls!Lls^D2IJ`CgtM zFmO|TJ+$!CPS_K$V<5&GQqiCPeffAyjEKi^nYMqmU971DRk2TT4ToT6h|{b##vS4K z>6-&XqpIkzP`M|&NHc`TX8s7t@V= zOC{5Ew}np|{haqZyh{kH`O{o-_#eTUnC+A%WxsO-wb`NFSWDaJ7spuC4HMXVO4jos zfw&UyWL4yp63%wbb#t!=lt|X2zjmso$CtFA@)&oezYPD7qD^?^nfbQ_jClacN}M_- zXE@CM?vYxvpBsntTh!b0pN!JBUcO>Z(~?VY9FI~qo!EDLsP(c)FnxG~PMv{RZ+%*B zN?IvjYT@0hR5~9&O6|CtU9;_PpYqt{2iqec7`a5h2v`-Ql?pODlmqP^s-^z?XU+kK z0BFQv9GvfeA@qKFyG9$F5g8Lm*B`9pkwQ48k}T8PX2B_povubqzp|!h?Av_d$KrH0 zYFAX|Jrg_4>!rr0otlO-HW`{Il47DwoP=Nga$%xvi|4XIMe(Dbziw)kqM1uKlAccY zAsC40$aF3Ise(VcP^$_dJn9aOj55Wy1^L`$LHS@}lKjlgc;fE}j1;k>Q?}@R&$=bw z5fgS+c&c?M!PxCLp0=NxPyQAz$#J4FxF3%*j~2tj1Cu_4d-NHa{2e!yP~wmq|Nh?` z30A>Pii3&JB>ysIOQTw&VaUN-mS6we0@Y2}Sm8wC`@{c@iDJ9XrMu9^&!ra^6rRAF zr2d}^qr?ibV+-EkCY(rxJEAB45WWfF64vXd+Hd{)1i>$=PB_H`@OI0B=f`a}PV&n| zgi6Q%PLcjx;Lc;%ZSRnK?$gaxe}UMlB1h_z#JK|ZQ=<4WlEIYS47Ja;k<{6blSbc0 zsTEX5*B>XN3!5icQ_+FaOz(NyU!A|MSg6aErO%xrzw!1Fjp&dpR^(JYI3wu0AOC?QVN{ z&BJBB8I(9d&4!b&HNWfWYNmSF@6z!WE9fJ}iqDVIT|`!HgQ!Lu?_`VkFTzi?8F!A| zJv)NG@N5&5Dc1QZ&=lSPFzB>&-+|^Uf{7)sk?hat?XAJtA8bpf`n6Uu8yXd!3e`I} zj!A9+Ch2-wE*#GOSFcPN4o0-`@Ya&WjPc3DuL(v`k~W7!(-qdEnQG}cI#pZT?e2w2 zqo(U4_rRVS532LMlTO&*96`NCJ>>oVV?enJPkkBgv6VA3)44{HPGXh!&A zTbm#sD8(!Q7M_s;6)ez{vFE1mzSky%KRo~6dpU&&dk+lFJ_UVbHEz%^{A$3Sb+Vzb z(!*Ed+^>J>ahE6>{BWu#QC2Q<2p~`NombP9$!(&tlrIRD{jVLpK&@mkkt=0q)Vy7o z33E42u^dg21K}!yXHy!-AU)Ln=wPXp1>Or#F(GwnHz03Plsw?Zr5-0C+&%o++7mO| z=@N+l{`<;om2N-JVJVggkLOq8mlo{w1BKr*3S~ zSn)+;nY{M*S%^%mcYig=pn=pu)l7$*d-Bn=Dk1p$vE3xU1kW15(3jopB(q(olpl+j z&>Bk?Ic)SCmW&&2Ztitp=Bp;2keSKS?%hwI+|0n^*m%XN-rwCm$2Je8+X4l0$_F7IW<9&vima9|j1gzso1GV7=a3Fq zNbFW>^DyJjzwZ{z4Pb{5LCgQ)=l3{*2rK+JfXwTE->9;w5KL?A%`;=J@PU;#rTjyCMbBQ}pbu)vc zgkP_VMQmQfpFqPAZ1~!ewzAZH$)$)R1@f9EP)w~{wt881+9K51M%v^m0`>g>nO*} z9jA&QrG_E+`aWQ>a?tU!E)F~nf4o&Cft>_K9fqKx(EI`fGHY)-ud`sxt$3BdMX$eb z25f$K6$UeLScQmGH;SPA#G;LG7wttpOCr1Sz^0`%;SZJhfyOdhhHY=^R{L2**OL;J zRk&lPq;x7K?0O4yLLrOZyXAIjFc}l%Q1nGb=bbkl4-je=z-$iX#bbecE0D@H3Z8zK zsPWj>celRvbRz2ql)Zf?to5j2pD{+ z%LhA$hPmEpF4gx+aK84Bm@_REb-u9pKC&8JWWNZo`>BOJu*La6tj zBN8k(Zp4f*xprS}rT2CN0X&xLLju{#5L^kA(6bj(-47F=$copR(lKG!J3uYebV*~} zZA`NdT7>CwaRXoI@>lQI#<0AjU}r{eYOR73<8f9fC@hrE7*&Vj{Q2~r{ zl3Mx|kyG-^#`K`g3X1G;9lMiOt6EWI3vvY%tL@^5A6E(MA4<8?a+L61>*mfkI#u%P zXOc6-1)6^?@EYOQA@DlGC zd?>(`nJmNDc95~uZMM;O%jAb(9-YN2y;Z3!6Xeh#M|gapIa<2o_3z>kMTAvmTn;sH zLkk`nk%J9#T5~LMlC&eyD$y&A4WsgnH#>dxOs)Lh&%;|D$2Ja(%l-P>kal^9ebh%B zVz}OSeb<(Nhv?gOsroPE#sm;sB44HFd#?ZX6@NfN7Qj83etf)K@o)R}9d(KrK{;>- z!`tc4Wc(jnjh%<^45IE~ZH>GCe(@Iw?%{yP!5^|r@(1z#$IGNe{Nn&BPG#rOVDjz` zClAEq%*7-^|9y` zrQ9Z@8W@U`RW|Nm#i9_-y4g1$c35KeMe+|h{WUFhb#|a_hZ_}vz-2Z=z0h!bQ3F{X zM0k9Sr)T>($<{I1O4GG>M@vVUF7w3v-=`8tQ3!J3<>8&x+DT9~^`9pAi_z zeKeIL70?StK@`9m(Be0e!cx(}I1iSQz79K80bKXVL3S91hk!%-cryDASTqycuXNn< zjIFP)%elBz!>ot7>}OcJcid+5tmS|k4J=0Q4>v+f$A}I#78g9~!*~7sbkK%m3x*vI zfuanF1uBL@Mq8>~p2(z82qehDL`gM*jx9gVK4`2#4aS zB=SKHqdu1X7Z@DN$H(_4HxX9C!W6dn$}hy^^ufb*Q^LQ@;&)ds#c4^Ny)Ull*#B>9 zTfh!t#-}vs;HPE%&ITay#aIp{bRDo&^4zxPrIvJ9Wd|I?4R*nVT1#i{L*8#q za|HMvZ+uJ^oeE7t;)*grXA(Ofh#{#*)n-7Q0tJVg7@%3@g|zNd(h2G5=>@$gu;DW_ zIVGM27^Wc=%nhJruo#ARFBw;xOF3V!mm;C7hb|ld@G!3A$HMc#Ks|DM(d6jA$AAq8 zk~YK_*LvDjQf)dcpWf-veoEfbY7vg~6}>m_P+@jM_TJyGz-ys`%Y9XPco^%ty;WXb z{+*((z!YyZ=5BzqR17hq;YhJ*ozL?zM~ItcnTT$8t!F6(+# zJrWDQI@@K~nyYXWFyaW+dV40WTjE@)7AFOjh`@rtJX++8z=UPW64}d@C7vu{&HV7C zVSfHI4x_1qH2R2wS=WEo-&?A2R>koJ;UZ%>3)kN303L@gDPQ&%ig&m3S-ZyLmfn_tK<&dbGqJKJ-UK7~5u5uOdtEC!-`Fp+ zN(+B$>@w<53M6>hT-_Ql+9;0I}vzOY&c0J+;BC~ z(qZI|xR(YH1AY(Vzm?cW2gF2wjODjMxUqG0Q>JM1%VObBCK<8_EYz0kZwI3P9VWtdvk~g5{oK@%nPb=g4#n@N&rCrD@%($pX32kt zxTq^YI^?l@GY)=2)92c7Jh{Y}xE7CIpyztL!9_%dr z*@{1YfjL%LkNfm$$(SyDP1J1fnEksNoDt2zg&rr2o8l0N9}C05(bUUHifI-nG)D8L zEw|+Uz0&$f@R@&UuN}z6(yMM}fBxi|E$pjr_pVg&|04Jp?%rl-@DJ+34J)8dCR~>O zE44mq;}rA2_pl|D*;CJX*9V9G-#bemB3h4z^D45~p85k$f71Icf3LHQ&$x%N+VJoJ z56d2!da3=rEv~SEFL8nwzyd6x`Ev7pfGv}ZL0p}q=$0wIXRuUO#+nmbV4$aTC=x45 zig3sD?uDrD>_2rpr7dD2wWzcktTF*+7rBOB>kt@i6ZF@q!NCZ60Oe04MIFnPilzn5 z$&uJzpm3Sq2jk9R&^t_saGO7`{40#XWa6qjhcod33`a%`#Od^-3lPc@oC=|)cS^UGG2%>`p@^XK9Apw+u znjo;H8aAW_O(f?wkRYCq{yMk+amd3?e1KqYI5_F^2gVdNqE@v;uo(FQY|Di2_g?FP zAYA%(P-H+Wj09i-iEH39QejOhEGy0nmIMVZEC~P^-In2yO_-x{UEMSH)W?q>kE$qN zMQ3G#ZjCF-)_bwu!o<@P|(11wxq!9 z`WSqpQ2>#bRj?T9mZ1e7nzHrmyarS*G>|fD0kDfHzcOi9ebX`m$`r^Wvj5lARfk2{ zJ#9J!q(gE^l_jJEk(Lxex*O@15Trp6=`Km>?nY8TSm~6Olvo-iIWu$L_soFk0pZ%!`^&`CA8|)Cu&qM)`2iT0ipj9h)hE3wJh900`x&dJLK#HK zmfQYn!jcQPcyT0>_AjTrFS7i%H)JS^m@t@K0sQhy?Py(+$g$&noilc>UUDWSia=j!O zWE}jFppY<=U25AMJXu$PhvsEFfl>UYy1_pm5uIQa4y1;E*cydPy4Lse$El19-Cnf$ zvzHKw%}gZX%zj$NKc}qiP;AUtiTBNJM&Akk_pzoFK)`01UntLFUY-7ZkJ_IlTx<-@ z62yDo`YQqsT#`WD+`(Cq%Cv`ZKJg~2_(ss*zqH0iByyY&*JwmVvM0x4oT~o!5G&ar zz8DDJtrhN*Bjh3feI#bb5Peec0AL@M^e$eha9wIRu9aDyDo3j3s2lInETpW|1#0S4 zs|V`NbZQmN#&gzf-wQO;B*5y|wVQiJUys(F!7ZB#+2-nJwza9t$Q8ntA``;~s_nwc z3|v=J6E*d{TmNNB2+^^Uc6r5_%UpxNE%gt)N9+qLmO9$NHO132J%vJr5q^(XA!r&n zrZ19nqr5gXtQRsncV{E>?Vg{H)_cwU!w7KDV(XEl5+W8;WEyhJzz2mKC}xE9+XJT; zfB!iJe1B`gtmV!a_HX#a#GeWZ8?_qboEaugFyemx%QY?UAu@)*E3`%8Hj~k3)i00M z7KRI++8bo=3Y%1(Y>norTx-UXyqW03+%j$MxzH>ca?jS0>5y|Rd$No7`$mquAONZ^ zE<)o|?RGBt#4-cUadY-~$Kn$N{nmuC=!u2ru}pp==Fjg2kB z`K9yIbtQf|BXV5W0q0kaF7T5k^7!1mO zGu{46-F!H;%nYGt5IX&z2ago%mVvCN5)_Z&VWDNK!*D$|kFAcjro+|?jmykN8gAmJ z;yB|B7=77R%{TkQwLvc}VYkFDQ|xuEljG^JqM2St@4{(?bujQKnGmTpg60Qfsp*;k zEE&YFfS87OaS7DYY#?!nN6_Fv$Z+5H9A@~U>kW1_AYiwD0j&ZAQ1FPXTo#;7UI0D) zJyRQTYBTeKF3XLr03qf!|3Z=A32M+`Ab8EzK}bCyj}i1ZqDMKaGmvl`fv?dsJKY+W zK{V1ufUss@CS%to^_Qn4@GysIT9okg`FTC&K1B8$OcYTtJKpgh)&c50ig!_Xkla_G zjKbN+@&<*fldYGfzHg;CTT07HE(a3$18X z0ab{cJQhRoPw<7+`bjUL8l_4oC!kauS_Jrq<^c-eke_96Ys*amrNSGR&qObQWMAMB zxUFVjNO?fX9?;n*mFu@yi+UX`Y&c#-{)ZfmEE5z~IC#NA!cR}}Wb_wc@W zoicG~dH%Wpy4I8;#qG8!@^Yq)@kM9#BsMY^$|#5s&gYhX<+s}}H22eb?$RS<&N@0e zU>qy}7#eiEn_unI&fBK10bRUC0IE~h0v~9f&U_D(*3qvXk%Y)8D3GqjzWsto>`e7c zdwO(VTwk05xYH(rPSjww!G;roi27V#6fqZ@!IFE5K`dgeE>VD}cy!gPwT!7ZrC{1k z`~O8;6PPvMmEc*JdN+~(CLq_0t`0}azCjT`e;)v2m3^^uqVGc;)4_ z@f+21St8Y!L)YDLhUe9r2Q+3gk>0rghR~@meOKbJ)Yd$bg5J-jV=g=b;v_bN$|Rr$ z(YY|nc(SvnN05%~@$X^_RLtA)KG&DnJMNVf-x!{-Owo>2q9I0bqz1c&@NPE%fwA*%ZN;)NytcHn8f+8{8H*iMkkJ2Gi?!1pSY;sWi9C@)@BpS5cO?q zE+wGwmJ~5qI6C@Zrr^WN?$grBy}sT9JG|azG;%ks3%siQyf9YGxxoC_)AFh#6o__f zZ-)(X^YTCA|5z*|d2%TvEwzR@MkJbYNFii34{ty0rJ`hOs_S3KjECCR#gHoha0*b*MHjh5ICKZ>0pL`#g+by(Y5IJ+Loema3-0tWkbt& zL*;m5O^<}_1+iwT`Vj4d^X(PnZ3OSR|JS|Pn$o|RGl1g>s%+Htz&(|%7mT9j@FI@v zVwY}%N(08_)hq)#TFoJZnf)<>5Ulj`7IW$|Er0^RXiA4s^uPHfuLhzY{5VhnMgos%^X|P6oB#3Y2z>vmR*P{>tH3YkJHlR={hasI7$h7% zI}o;gJ%L{_SC9LNaGT8BHY19^cbJ{=@n_#`Ar?)E!`~~8l%|NHPgO=`{kf*twK&-L zpG8!Z^;)H*cP9*`Z&Srr^6LxM;gEe$z&>V+;p`wMCzqF&4kjuD>ci`dB=3V*2PbcG zmX8~QCN_2S($evT4S*Zlnkb61oo`e=n|+-5G$b*bX6`N1Vb~JCzK}f@meh31BLL1^;$F5fn_0|$DUwOV(DUi{TadJ(6-;2wzhHTXPd*>f0Mh| zvY7$TxNND|{&noV)bx`nG&J-809Pr3j9Ls zTJ&8&(IaI4Vyw|x&!6_7KJFI4aJA}f?-+Q(`M^}Utg!I-Hf&4^`i1AASFB`L^YNCTp)S*_+kx zP0@jY7ge>&aZDn$g_c(K3O)-5#}HQB%#7CB#>NVe(OFtqbpo9F0cc4n1S-$mznzm; zo_3dg9v=^zz8{a2wJyP zTU&2@!{7JKx};K|X91m~P3K2Amv& zxgQkJF%Ubv0mD&NLBoMA09Qt|*nxbgu(-Gjc)r0i@z)9h?7!EDSmuod3ThPccI1+k zt*y9?JkN&}RY#^`q{Z9(v+s43Xbt^>3vEAnNGNG2(>Pve;7UnLn+&G%xdVtJVp0Y@ zQpbf?A^Ab4?Segjmzlb@ni`n$v=h~fSCk;DZi$X6a!B!8dnT$ zJd7uRBlFREs~U)B6@;R6{CJCyRLGM_RtQ{zjr$|U@kF6r|x|rzlRu~~2TwF_%w>-m}Q1C^HSK;LqMn0%YO<6Xp zL$fNbsNi48Yiyh;#cct4iU?+zRsV_NoB$d0XF!xe$hAE*AUiB3WftW0c5<3u*3mi5 zs>Iahpq3+n6ExU(`ZRQ_pk$C&+A{bP33ETu>-=SwEYatr3zL(R(qCp}n6&6==W8~1 zW&O~=DzR3(xi5aBxnX z-?hFHQpC^>?DyXC-w*4EMvwj|{^&VGDWzs{qb{B0a;X(wU|*S^&vG37k`1_L7Koy6Ov1AuLF-g@!?my5`%(%AnTk-twh^ z5OPgQ_6zQ1>XFUCwL|7i%cU{I<%$H30<~GVi=_hnzc{4(T-QL~ za_nfa2Lu8)++{||^qc>g5E!!inIDQ}vj0nge^1)-T`^>mtLYFPrr#$FV)^DMBx2pT z@!c_h4n-tvG*SO-O!1u>FBjzG{TPvt7PcCh?<*F$H)M^l&>C;qVjavRAS@u8h3`*~ z1F7&HQba0S^^{QZ3l&jazKwkng{0|!8bz%8=ZbpC9V2K;nwWYKW@2g#BU6wHGyI?0 zfr5hcoam@srkp~kR>n6qn|S4hjWZ#?uL~}16oQ6v*Drhy7Q{2iS2%ml(wdTlq8=o+ z<_?kk^jsCXQsYdR;G9xSMJVN8CdTTecH%|e)kkX+(mIp=?;0co6pctkqhrh;nAg@U zW@?=2etEoNW04`Hmt+@Nq-T++C&v zLeO>t6||-)t}S~3kwfvCN#HeDYl>jY5Pb#@Rpv)`g#-# zpyvT)2NEV98h4l;^*unp`r|kdX5~S{VD`gJzvvblL}t2c;GbOhS)@ZHHqOz+H?Og$ z4I`FCPTvrmA5lZ)iU_t*tJR&0j9uqVWaMoZH#f?i!5{Fs2na$I%>{%iy| z((2CQ)3&l{X>0qb-fj+*-$wz)_eaX(SAT93_$@8!?=On^**Zml@Zr1h5s&;qrEL;T z)wfs_3N#k8%nt<7Wi!}4>jR6noy2L_POyndMXl?cS{4r6g=QL^7{MTpHy=JQ%mXP@ zVQJ~7{fuiGL`Pe|&0=bS&H{vDfXMpPutc^Ba??IANy_nR#z_d2L*`!t*dqdBZD-S+ z6D4B(X#%WkWPTzXoM^@XRkU<)=mU_kvW|{5i@Cl@oA%LT0qm1&cJxi^N6_DU%0EWT zXqgOx*FAEn)UBNLgG&31*?%Z@{&s_^mX<&(ySfSeMTwRli@e=_gnUr24kCplpxl1k z+Phnb#LCIp2OMyqrlI%bM3MV_DD;V~EgP-RneoKbRH_fFJ7`R*tk2#TeF9YW-$4DY z)Du%wxBbNk&{^0S_i+Ircke*QL1GsHQpxPfN&*~mcHYEn05Bx~Fo*d3+tA_ID5woc z+H73JerHAZN(v>^6@*!fca#j&!!Cl&)7VP<_!+dfEo65L4s-PFb|adLc{wbA6kPhM z(6dB=?P1JHeQ|Ly_g*F7HX&?mU#OLX;(WMycm~^=8*H^zRpaif+C(;gv9`9(G84?d z#cEez&wXu49qn^;d=wF61ttgPSEMI>{r11WtB~b^BTjVBs3Xd|#h27VGy%RIZa5MX zsX0^h4tEtB+@0p6?5hY!JKqcC$(&efl2WqDe#ptG0(C>j2&rGV`UXHYdWB(0rl;GJ z$p9Xx+6GEFD*Bx3G=?4w{=QG2mZ#ed0zr*(Cz=pB2?+)A36PQ9feitE-OM~KBO?-k z)YO3WK@EJMeem6er%oE(#sht+l>AZLn-lpRC^+y0x5ED7cM)GfvTjDQ3B3JE2ZuQoc3od?FTvPy9Dz$Hnv? zpwhfWcCp9^>(wj~xTO7>En!JQv9bcc5z>`F>c z`z=gsF1j<=!$w`Lg?_tji2r_+m}UCD_|Om64=g5qllI z`moi?&Fc4?dM94a_1dS~aq_m+l=19S!#3bk?df}%slHh+=cXSe4$hU;S9!G5UGHkZ z_|EC3HD~7xf5Iu;Jj=P~rl)ou-s??z*V3arcMqTZ`H3*mz$5hyx!*yItdSC$1WecK zde?WlH^*#0v6@f2{c*NkiEtTa>E`!(hgbgflMmhI#ua&HHB|i$hqqTL{(PT9$KF0p zxUa_Co`*nRwMUC^Nfa4ca{GO^M9kFo_!JYXX$!BpDf>(6iD|dea0f;GuGSMcYd@C{ zq*4B_T?3g2W>-<27fbCH?XNLKHJj>>D{3y?cBr9BDbBbS*Fi@^uRX)X%!Ur_9^Y_V zh`w)_b3ScSYN}};oP#$-?w8VauePjttm}74WT5Zmb_o4vq|}a)z${E}OE)He9|EO8 zM!Kh&K9wfKe-2C^Vv4JljtgpueI{prIw!d=Sr~byM1XpOmEPlK%r{Mtwc|=ZqqJglI{jHasG%TD# zlddpwN4=BKJOd^Ff!8*k&IVNi=WjF|Qu^;8OWVZLk?zI*7wiaN;r@~vVc?aJT>Grs zu2j1!{DOQj=sL;kO<}Fxnj{~ipa?q6Xc0r`1QE%MDZz%ALwuRd|#&LotTEreN{hkdFPHCNpoM^ z%p-`9>jLAIuY6S9h3)04Mtnj>?CQJAvXb#uxPDO7kLz(vx=;aCW9I8Yip^xn1AY9V z&zWLI@ZF`*%fC160R$zGK#XXWF)?!_ku~1y$3vA^lbB3?)D+?Z`tl|;{krwS)EkT4 zPV1x!@HJoQ}-e|J16ZXA=Z0__p>My<-+kPn7=N_$Djn3?9|7Ph*H=cwn zyS@nTP&vbIkB#e#(Lk-x)sI7&s_z@RT=rf8gdziM^Q&Cnf7QA|+hz{2&4=1P)mqtE z^=yzEN`oA)m=z{9FZrRV2&cl%OYzNf^u$Hy%&qsy@!|D9IK0mGbOl_DMC}{b3zAbs zX=p5l_BE)Gr)|QY$5>m2-ypePAa3IWTQm%NWFnqtA)ny9=7w*db3Zhmv$!15yL!Zm zzt`DToA*78xAPvPEqQizq&y3=)xNMB4auQCOB>Qxvlf{v zQ<)3*r>OYd_GaEq^M8Cp7bb9VHB7gfgTL5Ax8#AUPP(3~?O4>JdkER! zY$bbjy~^2hG5)6At65-96}F{e1B01 z5z$RZ@r-;W4`BXp7hzyG`kt38U72TXmLRG~@b;1Ley2~a0SF`ibpUz+izbBN2% zy6B~4h7IwI9SE5xg^m|+u{-34q*K2z-(1E#_VpW!GYg3#hmN(<8Q)B|Jj0FFdBfW# zW9n&;;GU^^H_CK2T)WYH(KVS{n9kQ7-hMFHiAsb;;~(#|ItbI8WIgHKh>(?i+U1Jl z8;~2Xw(6$(lWH7`0g@zNp>3gyv%Ug*5oyTMO;_f%?=^i?+$xlj6C+Gg&gbKWrWSnl}`H>a``Qe6|%*ggBI=X~-I zSG8IUm2Nh>{ph-%%^&17Uv1U+xHPp)70HH%V4c?O82BvB&T^bKhq9^7awE;kyw3H8 zxyGr#wR4?Jj;7#f52A3szV9bJ>$>KJ*z=G^EL=IHbF!vOHrD3S1rcW%vZkLqZ0etr zsZwkw^YT4f^z=~+>eT4!3-O=U_Aj2DoQrXID7X((aN|WNyo}8DR+l}ktqOE}9DpT& zu9S?GrDZTo=yEEc{yPTHKxzB_O?-Ihu1{@?j`^CQE02o9);VUqiL{!0R6%LMvt~-d z+-?j<-J-M63Dr$Y3z*u~iPh@d`p*#NktM^a5Mgn}wBNbp@?(YvlE@Q}<)MPF<&zox zjUglKCU1?IZj1l*q{3)k=J6T&=Ks946-<>Z?fLM@~vnvRuL_;Qs(P C{76v% diff --git a/docs/images/training-pipeline.png b/docs/images/training-pipeline.png index cbdaf0483e37255375b24d9515f4e5d9710dbf5f..48854513753df062b4608f140ca4b9d853b69c23 100644 GIT binary patch literal 37895 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 UKUZU>k0XyC^*U1X&DkIR2OCCYi2wiq literal 69220 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 z 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 Date: Fri, 10 Jul 2020 16:23:01 -0700 Subject: [PATCH 093/109] Update getting_started.md (#317) --- docs/getting_started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 430ae0a6..a59cad0a 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -14,7 +14,7 @@ If you would like to bring your own model code to use this template structure, f - [Create the IaC Pipeline](#create-the-iac-pipeline) - [Create an Azure DevOps Service Connection for the Azure ML Workspace](#create-an-azure-devops-service-connection-for-the-azure-ml-workspace) - [Set up Build, Release Trigger, and Release Multi-Stage Pipeline](#set-up-build-release-trigger-and-release-multi-stage-pipelines) - - [Set up the Model CI Training, Evaluation, and Registration Pipeline](##set-up-the-model-ci-training-evaluation-and-registration-pipeline) + - [Set up the Model CI Training, Evaluation, and Registration Pipeline](#set-up-the-model-ci-training-evaluation-and-registration-pipeline) - [Set up the Release Deployment and/or Batch Scoring Pipelines](#set-up-the-release-deployment-andor-batch-scoring-pipelines) - [Further Exploration](#further-exploration) - [Deploy the model to Azure Kubernetes Service](#deploy-the-model-to-azure-kubernetes-service) From a6014d04ce531e6b27b610496f6e694aa0864693 Mon Sep 17 00:00:00 2001 From: Jenny So Date: Fri, 4 Sep 2020 13:42:01 -0700 Subject: [PATCH 094/109] update azureml sdk (#326) --- diabetes_regression/ci_dependencies.yml | 2 +- diabetes_regression/conda_dependencies.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index c54f3e32..80fc4059 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -17,7 +17,7 @@ dependencies: - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.6.* + - azureml-sdk==1.13.* # Additional pip dependencies for the CI environment. - pytest==5.4.* diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 57f2b999..081cc7cb 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -23,11 +23,11 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.6.* + - azureml-sdk==1.13.* # Minimum required for the scoring environment. Must match AzureML SDK version. # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments - - azureml-defaults==1.6.* + - azureml-defaults==1.13.* # Training deps - scikit-learn From bf34623249121423db630881fa564ef2103eccf4 Mon Sep 17 00:00:00 2001 From: Jenny So Date: Tue, 22 Sep 2020 15:06:27 -0700 Subject: [PATCH 095/109] Update azureml-sdk to use latest (#331) * Update ci_dependencies.yml * Update conda_dependencies.yml --- diabetes_regression/ci_dependencies.yml | 2 +- diabetes_regression/conda_dependencies.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index 80fc4059..542db0c4 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -17,7 +17,7 @@ dependencies: - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk==1.13.* + - azureml-sdk # Additional pip dependencies for the CI environment. - pytest==5.4.* diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 081cc7cb..49405c47 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -23,11 +23,11 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.13.* + - azureml-sdk - # Minimum required for the scoring environment. Must match AzureML SDK version. + # Must match AzureML SDK version. # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments - - azureml-defaults==1.13.* + - azureml-defaults # Training deps - scikit-learn From 74885302c4f8382992b964615b0b989a74578ddc Mon Sep 17 00:00:00 2001 From: Jenny So Date: Wed, 23 Sep 2020 16:37:39 -0700 Subject: [PATCH 096/109] Fix Batch Scoring docs (#333) * docs * more fixes --- data/README.md | 2 +- docs/custom_model.md | 29 +++++++++++++++++++++++++++++ docs/getting_started.md | 14 ++++---------- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/data/README.md b/data/README.md index a25aa451..d43d139c 100644 --- a/data/README.md +++ b/data/README.md @@ -1,3 +1,3 @@ This folder is used for example data, and it is not meant to be used for storing training data. -Follow steps to [Configure Training Data]('docs/custom_model.md#configure-training-data.md') to use your own data for training. \ No newline at end of file +Follow steps to [Configure Training Data](../docs/custom_model.md#Configure-Custom-Training) to use your own data for training. \ No newline at end of file diff --git a/docs/custom_model.md b/docs/custom_model.md index d21c8b8d..a554f376 100644 --- a/docs/custom_model.md +++ b/docs/custom_model.md @@ -10,6 +10,7 @@ This document provides steps to follow when using this repository as a template 1. [Optional] Update the evaluation code 1. Customize the build agent environment 1. [If appropriate] Replace the score code +1. [If appropriate] Configure batch scoring data ## Follow the Getting Started guide @@ -35,6 +36,8 @@ To bootstrap from the existing MLOpsPython repository: * `[dirpath]` is the absolute path to the root of the directory where MLOpsPython is cloned * `[projectname]` is the name of your ML project +# Configure Custom Training + ## Configure training data The training ML pipeline uses a [sample diabetes dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html) as training data. @@ -83,6 +86,8 @@ The DevOps pipeline definitions in the MLOpsPython template run several steps in * Create a new Docker image containing your dependencies. See [docs/custom_container.md](custom_container.md). Recommended if you have a larger number of dependencies, or if the overhead of installing additional dependencies on each run is too high. * Remove the container references from the pipeline definition files and run the pipelines on self hosted agents with dependencies pre-installed. +# Configure Custom Scoring + ## Replace score code For the model to provide real-time inference capabilities, the score code needs to be replaced. The MLOpsPython template uses the score code to deploy the model to do real-time scoring on ACI, AKS, or Web apps. @@ -92,3 +97,27 @@ If you want to keep scoring: 1. Update or replace `[project name]/scoring/score.py` 1. Add any dependencies required by scoring to `[project name]/conda_dependencies.yml` 1. Modify the test cases in the `ml_service/util/smoke_test_scoring_service.py` script to match the schema of the training features in your data + +# Configure Custom Batch Scoring + +## Configure input and output data + +The batch scoring pipeline is configured to use the default datastore for input and output. It will use sample data for scoring. + +In order to configure your own input datastore and output datastores, you will need to specify an Azure Blob Storage Account and set up input and output containers. + +Configure the variables below in your variable group. + +**Note: The datastore storage resource, input/output containers, and scoring data is not created automatically. Make sure that you have manually provisioned these resources and placed your scoring data in your input container with the proper name.** + + +| Variable Name | Suggested Value | Short description | +| ------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| SCORING_DATASTORE_STORAGE_NAME | | [Azure Blob Storage Account](https://docs.microsoft.com/en-us/azure/storage/blobs/) name. | +| SCORING_DATASTORE_ACCESS_KEY | | [Azure Storage Account Key](https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage). You may want to consider linking this variable to Azure KeyVault to avoid storing the access key in plain text. | +| SCORING_DATASTORE_INPUT_CONTAINER | | The name of the container for input data. Defaults to `input` if not set. | +| SCORING_DATASTORE_OUTPUT_CONTAINER| | The name of the container for output data. Defaults to `output` if not set. | +| SCORING_DATASTORE_INPUT_FILENAME | | The filename of the input data in your container Defaults to `diabetes_scoring_input.csv` if not set. | +| SCORING_DATASET_NAME | | The AzureML Dataset name to use. Defaults to `diabetes_scoring_ds` if not set (optional). | +| SCORING_DATASTORE_OUTPUT_FILENAME | | The filename to use for the output data. The pipeline will create this file. Defaults to `diabetes_scoring_output.csv` if not set (optional). | + diff --git a/docs/getting_started.md b/docs/getting_started.md index a59cad0a..7a311cf8 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -64,9 +64,8 @@ The variable group should contain the following required variables. **Azure reso | WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | | AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | -| ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | -| SCORING_DATASTORE_STORAGE_NAME | [your project name]scoredata | [Azure Blob Storage Account](https://docs.microsoft.com/en-us/azure/storage/blobs/) name (optional) | -| SCORING_DATASTORE_ACCESS_KEY | | [Azure Storage Account Key](https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage) (optional) | +| ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | | + Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. @@ -88,10 +87,6 @@ More variables are available for further tweaking, but the above variables are a **ACI_DEPLOYMENT_NAME** is used for naming the scoring service during deployment to [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). -**SCORING_DATASTORE_STORAGE_NAME** is the name for an Azure Blob Storage account that will contain both data used as input to batch scoring, as well as the batch scoring outputs. This variable is optional and only needed if you intend to use the batch scoring facility. Note that since this resource is optional, the resource provisioning pipelines mentioned below do not create this resource automatically, and manual creation is required before use. - -**SCORING_DATASTORE_ACCESS_KEY** is the access key for the scoring data Azure storage account mentioned above. You may want to consider linking this variable to Azure KeyVault to avoid storing the access key in plain text. This variable is optional and only needed if you intend to use the batch scoring facility. - ## Provisioning resources using Azure Pipelines @@ -295,11 +290,10 @@ The pipeline stages are summarized below: - If run locally without the model version, the batch scoring pipeline will use the model's latest version. - Trigger the *ML Batch Scoring Pipeline* and waits for it to complete. - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. -- Use the scoring input data supplied via the SCORING_DATASTORE_INPUT_* configuration variables. +- Use the scoring input data supplied via the SCORING_DATASTORE_INPUT_* configuration variables, or uses the default datastore and sample data. - Once scoring is completed, the scores are made available in the same blob storage at the locations specified via the SCORING_DATASTORE_OUTPUT_* configuration variables. -**Note** In the event a scoring data store is not yet configured, you can still try out batch scoring by supplying a scoring input data file within the data folder. Do make sure to set the SCORING_DATASTORE_INPUT_FILENAME variable to the name of the file. This approach will cause the score output to be written to the ML workspace's default datastore. - +To configure your own custom scoring data, see [Configure Custom Batch Scoring](custom_model.md#Configure-Custom-Batch-Scoring). ## Further Exploration From 31512d3d6ec25e64d4195939b0ac036ce74c9b1a Mon Sep 17 00:00:00 2001 From: Jenny So Date: Wed, 9 Dec 2020 14:23:10 -0800 Subject: [PATCH 097/109] Update docs (#339) * Update getting_started.md * Update custom_model.md --- docs/custom_model.md | 2 +- docs/getting_started.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/custom_model.md b/docs/custom_model.md index a554f376..5c7f8f4a 100644 --- a/docs/custom_model.md +++ b/docs/custom_model.md @@ -80,7 +80,7 @@ To disable the evaluation step, either: ## Customize the build agent environment -The DevOps pipeline definitions in the MLOpsPython template run several steps in a Docker container that contains the dependencies required to work through the Getting Started guide. If additional dependencies are required to run your unit tests or generate your Azure ML pipeline, there are a few options: +The DevOps pipeline definitions in the MLOpsPython template run several steps in a Docker container that contains the dependencies required to work through the Getting Started guide. These dependencies may change over time and may not suit your project's needs. To manage your own dependencies, there are a few options: * Add a pipeline step to install dependencies required by unit tests to `.pipelines/code-quality-template.yml`. Recommended if you only have a small number of test dependencies. * Create a new Docker image containing your dependencies. See [docs/custom_container.md](custom_container.md). Recommended if you have a larger number of dependencies, or if the overhead of installing additional dependencies on each run is too high. diff --git a/docs/getting_started.md b/docs/getting_started.md index 7a311cf8..52bb04d6 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -389,6 +389,7 @@ To remove the resources created for this project, use the [/environment_setup/ia ## Next Steps: Integrating your project - The [custom model](custom_model.md) guide includes information on bringing your own code to this repository template. +- We recommend using a [custom container](custom_model.md#customize-the-build-agent-environment) to manage your pipeline environment and dependencies. The container provided with the getting started guide may not be suitable or up to date with your project needs. - Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. ### Additional Variables and Configuration From aba8aefc4b340f89707f0abcc82528d5b032c92d Mon Sep 17 00:00:00 2001 From: "SATO Naoki (Neo)" Date: Wed, 17 Feb 2021 06:20:23 +0900 Subject: [PATCH 098/109] development_setup.md update (#349) * development_setup.md update development_setup.md updated to use install_requirements.sh. See #158: > Use conda rather than pip packages when possible (as recommended in AML docs). > Dev environment is hence also constrained to conda (no more pip install -r requirements.txt). * Content of install_requirements.sh deleted * build_train_pipeline.py filename fixed * build_train_pipeline.py filename fixed --- docs/development_setup.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/docs/development_setup.md b/docs/development_setup.md index 68e6b6bf..1c8c2479 100644 --- a/docs/development_setup.md +++ b/docs/development_setup.md @@ -10,19 +10,12 @@ In order to configure the project locally, create a copy of `.env.example` in th [Install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). The Azure CLI will be used to log you in interactively. -Create a virtual environment using [venv](https://docs.python.org/3/library/venv.html), [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html) or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv). +Install [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html). -Here is an example for setting up and activating a `venv` environment with Python 3: +Install the required Python modules. [`install_requirements.sh`](https://github.com/microsoft/MLOpsPython/blob/master/environment_setup/install_requirements.sh) creates and activates a new conda environment with required Python modules. ``` -python3 -mvenv .venv -source .venv/bin/activate -``` - -Install the required Python modules in your virtual environment. - -``` -pip install -r environment_setup/requirements.txt +. environment_setup/install_requirements.sh ``` ### Running local code @@ -30,11 +23,11 @@ pip install -r environment_setup/requirements.txt To run your local ML pipeline code on Azure ML, run a command such as the following (in bash, all on one line): ``` -export BUILD_BUILDID=$(uuidgen); python ml_service/pipelines/build_train_pipeline.py && python ml_service/pipelines/run_train_pipeline.py +export BUILD_BUILDID=$(uuidgen); python ml_service/pipelines/diabetes_regression_build_train_pipeline.py && python ml_service/pipelines/run_train_pipeline.py ``` BUILD_BUILDID is a variable used to uniquely identify the ML pipeline between the -`build_train_pipeline.py` and `run_train_pipeline.py` scripts. In Azure DevOps it is +`diabetes_regression_build_train_pipeline.py` and `run_train_pipeline.py` scripts. In Azure DevOps it is set to the current build number. In a local environment, we can use a command such as `uuidgen` so set a different random identifier on each run, ensuring there are no collisions. From 771c8ef1de199cbb77eb5fd95ebf2ad0ec3ca256 Mon Sep 17 00:00:00 2001 From: "SATO Naoki (Neo)" Date: Fri, 19 Feb 2021 04:27:36 +0900 Subject: [PATCH 099/109] fix TRAIN_SCRIPT_PATH value in .env.example (#348) TRAIN_SCRIPT_PATH value updated from 'training/train.py' to 'training/train_aml.py'. This is aligned with /.pipelines/diabetes_regression-variables-template.yml. --- .env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 3c63d969..47311d1e 100644 --- a/.env.example +++ b/.env.example @@ -25,7 +25,7 @@ AML_CLUSTER_PRIORITY = 'lowpriority' # Training Config MODEL_NAME = 'diabetes_regression_model.pkl' MODEL_VERSION = '1' -TRAIN_SCRIPT_PATH = 'training/train.py' +TRAIN_SCRIPT_PATH = 'training/train_aml.py' # AML Pipeline Config @@ -78,4 +78,4 @@ SCORING_DATASTORE_INPUT_FILENAME = 'diabetes_scoring_input.csv' SCORING_DATASTORE_OUTPUT_CONTAINER = 'output' SCORING_DATASTORE_OUTPUT_FILENAME = 'diabetes_scoring_output.csv' SCORING_DATASET_NAME = 'diabetes_scoring_ds' -SCORING_PIPELINE_NAME = 'diabetes-scoring-pipeline' \ No newline at end of file +SCORING_PIPELINE_NAME = 'diabetes-scoring-pipeline' From 2f905b25eb06de673b000450f58520c754577d1a Mon Sep 17 00:00:00 2001 From: Daniel Heinze Date: Thu, 11 Mar 2021 19:22:11 +0100 Subject: [PATCH 100/109] Added AKS compute name details (#355) Added a clarification, that the AKS compute name comes from the inference cluster, which needs to be created to continue. --- docs/getting_started.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 52bb04d6..7a2c25f0 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -313,15 +313,15 @@ Keep the Azure Container Instances deployment active because it's a lightweight In the Variables tab, edit your variable group (`devopsforai-aml-vg`). In the variable group definition, add these variables: -| Variable Name | Suggested Value | -| ------------------- | --------------- | -| AKS_COMPUTE_NAME | aks | -| AKS_DEPLOYMENT_NAME | mlops-aks | - -Set **AKS_COMPUTE_NAME** to the _Compute name_ of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. +| Variable Name | Suggested Value | Description | +| ------------------- | --------------- | ----------- | +| AKS_COMPUTE_NAME | aks | The Compute name of the inference cluster, created in the Azure ML Workspace (ml.azure.com). This connection has to be created manually before setting the value! | +| AKS_DEPLOYMENT_NAME | mlops-aks | The name of the deployed aks cluster in your subscripttion. | After successfully deploying to Azure Container Instances, the next stage will deploy the model to Kubernetes and run a smoke test. +Set **AKS_COMPUTE_NAME** to the _Compute name_ of the Inference Cluster that references the Azure Kubernetes Service cluster in your Azure ML Workspace. + ![build](./images/multi-stage-aci-aks.png) Consider enabling [manual approvals](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals) before the deployment stages. From 2892680a58e49806478f045016ae2b61415c754d Mon Sep 17 00:00:00 2001 From: Jenny So Date: Thu, 11 Mar 2021 10:38:53 -0800 Subject: [PATCH 101/109] Pin AzureML SDK > 1.18.0 for pyyaml fix (#356) * Update conda_dependencies_scoring.yml * Update conda_dependencies_scorecopy.yml * Update conda_dependencies_scoring.yml --- diabetes_regression/conda_dependencies_scorecopy.yml | 2 +- diabetes_regression/conda_dependencies_scoring.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/diabetes_regression/conda_dependencies_scorecopy.yml b/diabetes_regression/conda_dependencies_scorecopy.yml index dffafd08..2d73f4fe 100644 --- a/diabetes_regression/conda_dependencies_scorecopy.yml +++ b/diabetes_regression/conda_dependencies_scorecopy.yml @@ -25,7 +25,7 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.6.* + - azureml-sdk>1.18.0 # Score copying deps - azure-storage-blob diff --git a/diabetes_regression/conda_dependencies_scoring.yml b/diabetes_regression/conda_dependencies_scoring.yml index 60c45c44..748cf6a5 100644 --- a/diabetes_regression/conda_dependencies_scoring.yml +++ b/diabetes_regression/conda_dependencies_scoring.yml @@ -25,7 +25,7 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk==1.6.* + - azureml-sdk>1.18.0 # Scoring deps - scikit-learn From ae60e489f0c658ba313e6e0020c61b40ffe3bdc9 Mon Sep 17 00:00:00 2001 From: Jenny So Date: Thu, 13 May 2021 01:17:44 -0700 Subject: [PATCH 102/109] Pin azureml version to 1.27.* (#361) * Update ci_dependencies.yml * Update diabetes_regression-cd.yml * Update diabetes_regression-package-model-template.yml * Update diabetes_regression-publish-model-artifact-template.yml * Update conda_dependencies.yml * Update conda_dependencies_scorecopy.yml * Update conda_dependencies_scoring.yml --- .pipelines/diabetes_regression-cd.yml | 4 ++-- .pipelines/diabetes_regression-package-model-template.yml | 2 +- .../diabetes_regression-publish-model-artifact-template.yml | 2 +- diabetes_regression/ci_dependencies.yml | 2 +- diabetes_regression/conda_dependencies.yml | 4 ++-- diabetes_regression/conda_dependencies_scorecopy.yml | 2 +- diabetes_regression/conda_dependencies_scoring.yml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.pipelines/diabetes_regression-cd.yml b/.pipelines/diabetes_regression-cd.yml index 8dd35e47..a691cc47 100644 --- a/.pipelines/diabetes_regression-cd.yml +++ b/.pipelines/diabetes_regression-cd.yml @@ -49,7 +49,7 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript workingDirectory: $(Build.SourcesDirectory) - inlineScript: 'az extension add -n azure-cli-ml' + inlineScript: 'az extension add --source https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.27.0-py3-none-any.whl --yes' - task: AzureCLI@1 displayName: "Deploy to ACI (CLI)" inputs: @@ -95,7 +95,7 @@ stages: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript workingDirectory: $(Build.SourcesDirectory) - inlineScript: 'az extension add -n azure-cli-ml' + inlineScript: 'az extension add --source https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.27.0-py3-none-any.whl --yes' - task: AzureCLI@1 displayName: "Deploy to AKS (CLI)" inputs: diff --git a/.pipelines/diabetes_regression-package-model-template.yml b/.pipelines/diabetes_regression-package-model-template.yml index 7725b19c..16fc1c1d 100644 --- a/.pipelines/diabetes_regression-package-model-template.yml +++ b/.pipelines/diabetes_regression-package-model-template.yml @@ -17,7 +17,7 @@ steps: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript workingDirectory: $(Build.SourcesDirectory) - inlineScript: 'az extension add -n azure-cli-ml' + inlineScript: 'az extension add --source https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.27.0-py3-none-any.whl --yes' - task: AzureCLI@1 displayName: 'Create model package and set IMAGE_LOCATION variable' inputs: diff --git a/.pipelines/diabetes_regression-publish-model-artifact-template.yml b/.pipelines/diabetes_regression-publish-model-artifact-template.yml index 00e45105..d666750d 100644 --- a/.pipelines/diabetes_regression-publish-model-artifact-template.yml +++ b/.pipelines/diabetes_regression-publish-model-artifact-template.yml @@ -6,7 +6,7 @@ steps: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' scriptLocation: inlineScript workingDirectory: $(Build.SourcesDirectory) - inlineScript: 'az extension add -n azure-cli-ml' + inlineScript: 'az extension add --source https://azurecliext.blob.core.windows.net/release/azure_cli_ml-1.27.0-py3-none-any.whl --yes' - task: AzureCLI@1 inputs: azureSubscription: '$(WORKSPACE_SVC_CONNECTION)' diff --git a/diabetes_regression/ci_dependencies.yml b/diabetes_regression/ci_dependencies.yml index 542db0c4..73086471 100644 --- a/diabetes_regression/ci_dependencies.yml +++ b/diabetes_regression/ci_dependencies.yml @@ -17,7 +17,7 @@ dependencies: - pip: # dependencies with versions aligned with conda_dependencies.yml. - - azureml-sdk + - azureml-sdk==1.27.* # Additional pip dependencies for the CI environment. - pytest==5.4.* diff --git a/diabetes_regression/conda_dependencies.yml b/diabetes_regression/conda_dependencies.yml index 49405c47..e214c7b2 100644 --- a/diabetes_regression/conda_dependencies.yml +++ b/diabetes_regression/conda_dependencies.yml @@ -23,11 +23,11 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk + - azureml-sdk==1.27.* # Must match AzureML SDK version. # https://docs.microsoft.com/en-us/azure/machine-learning/concept-environments - - azureml-defaults + - azureml-defaults==1.27.* # Training deps - scikit-learn diff --git a/diabetes_regression/conda_dependencies_scorecopy.yml b/diabetes_regression/conda_dependencies_scorecopy.yml index 2d73f4fe..9ed22ccd 100644 --- a/diabetes_regression/conda_dependencies_scorecopy.yml +++ b/diabetes_regression/conda_dependencies_scorecopy.yml @@ -25,7 +25,7 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk>1.18.0 + - azureml-sdk==1.27.* # Score copying deps - azure-storage-blob diff --git a/diabetes_regression/conda_dependencies_scoring.yml b/diabetes_regression/conda_dependencies_scoring.yml index 748cf6a5..e744b369 100644 --- a/diabetes_regression/conda_dependencies_scoring.yml +++ b/diabetes_regression/conda_dependencies_scoring.yml @@ -25,7 +25,7 @@ dependencies: - pip: # Base AzureML SDK - - azureml-sdk>1.18.0 + - azureml-sdk==1.27.* # Scoring deps - scikit-learn From c321a263297d9109860e0371c6c90549dc8306b3 Mon Sep 17 00:00:00 2001 From: Katzmann1983 Date: Tue, 14 Dec 2021 15:15:02 +0100 Subject: [PATCH 103/109] update documentation (#379) Co-authored-by: Jens Humrich --- docs/code_description.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/code_description.md b/docs/code_description.md index d30295e9..81abc78f 100644 --- a/docs/code_description.md +++ b/docs/code_description.md @@ -52,8 +52,8 @@ The repository provides a template with folders structure suitable for maintaini - `.pipelines/code-quality-template.yml` : a pipeline template used by the CI and PR pipelines. It contains steps performing linting, data and unit testing. - `.pipelines/diabetes_regression-ci-image.yml` : a pipeline building a scoring image for the diabetes regression model. - `.pipelines/diabetes_regression-ci.yml` : a pipeline triggered when the code is merged into **master**. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. -- `.pipelines/diabetes_regression-cd.yml` : a pipeline triggered when the code is merged into **master** and the `.pipelines/diabetes_regression-ci.yml` completes. It performs linting, data integrity testing, unit testing, building and publishing an ML pipeline. -- `.pipelines/diabetes_regression-package-model-template.yml` : a pipeline triggered when the code is merged into **master**. It deploys the registered model to a target. +- `.pipelines/diabetes_regression-cd.yml` : a pipeline triggered when the code is merged into **master** and the `.pipelines/diabetes_regression-ci.yml` completes. Deploys the model to ACI, AKS or Webapp. +- `.pipelines/diabetes_regression-package-model-template.yml` : Pipeline template that creates a model package and adds the package location to the environment for subsequent tasks to use. - `.pipelines/diabetes_regression-get-model-id-artifact-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-cd.yml` pipeline. It takes the model metadata artifact published by the previous pipeline and gets the model ID. - `.pipelines/diabetes_regression-publish-model-artifact-template.yml` : a pipeline template used by the `.pipelines/diabetes_regression-ci.yml` pipeline. It finds out if a new model was registered and publishes a pipeline artifact containing the model metadata. - `.pipelines/helm-*.yml` : pipeline templates used by the `.pipelines/abtest.yml` pipeline. @@ -84,11 +84,11 @@ The repository provides a template with folders structure suitable for maintaini ### Evaluation Step -- `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step of an ML training pipeline which registers a new trained model if evaluation shows the new model is more performant than the previous one. +- `diabetes_regression/evaluate/evaluate_model.py` : an evaluating step which cancels the pipeline in case of non-improvement. ### Registering Step -- `diabetes_regression/evaluate/register_model.py` : registers a new trained model if evaluation shows the new model is more performant than the previous one. +- `diabetes_regression/register/register_model.py` : registers a new trained model if evaluation shows the new model is more performant than the previous one. ### Scoring From fa03633cdb562f4d17f478f8ad11d21840e158aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Martins?= Date: Tue, 14 Dec 2021 16:54:49 +0100 Subject: [PATCH 104/109] Revision of getting started guide up to Batch scoring. Also new diagam and fix to ARM template to remove region restrictions. (#387) Co-authored-by: Joao Pedro Martins --- docs/getting_started.md | 84 +++++++++++------- docs/images/aci-in-azure-portal.png | Bin 0 -> 52224 bytes .../arm-templates/cloud-environment.json | 10 --- 3 files changed, 54 insertions(+), 40 deletions(-) create mode 100644 docs/images/aci-in-azure-portal.png diff --git a/docs/getting_started.md b/docs/getting_started.md index 7a2c25f0..3cd1f263 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -36,13 +36,13 @@ If you already have an Azure DevOps organization, create a new project using the ### Install the Azure Machine Learning extension -Install the **Azure Machine Learning** extension to your Azure DevOps organization from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml). +Install the **Azure Machine Learning** extension to your Azure DevOps organization from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) by clicking "Get it free" and following the steps. The UI will tell you if try to add it and it's already installed. -This extension contains the Azure ML pipeline tasks and adds the ability to create Azure ML Workspace service connections. +This extension contains the Azure ML pipeline tasks and adds the ability to create Azure ML Workspace service connections. The documentation page on the marketplace includes detailed instructions with screenshots on what capabilities it includes. ## Get the code -We recommend using the [repository template](https://github.com/microsoft/MLOpsPython/generate), which effectively forks the repository to your own GitHub location and squashes the history. You can use the resulting repository for this guide and for your own experimentation. +We recommend using the [repository template](https://github.com/microsoft/MLOpsPython/generate), which effectively forks this repository to your own GitHub location and squashes the history. You can use the resulting repository for this guide and for your own experimentation. ## Create a Variable Group for your Pipeline @@ -59,15 +59,14 @@ The variable group should contain the following required variables. **Azure reso | Variable Name | Suggested Value | Short description | | ------------------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | BASE_NAME | [your project name] | Unique naming prefix for created resources - max 10 chars, letters and numbers only | -| LOCATION | centralus | [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/), no spaces | +| LOCATION | centralus | [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/), no spaces. You can list all the region codes by running `az account list-locations -o table` in the Azure CLI | | RESOURCE_GROUP | mlops-RG | Azure Resource Group name | | WORKSPACE_NAME | mlops-AML-WS | Azure ML Workspace name | | AZURE_RM_SVC_CONNECTION | azure-resource-connection | [Azure Resource Manager Service Connection](#create-an-azure-devops-service-connection-for-the-azure-resource-manager) name | | WORKSPACE_SVC_CONNECTION | aml-workspace-connection | [Azure ML Workspace Service Connection](#create-an-azure-devops-azure-ml-workspace-service-connection) name | | ACI_DEPLOYMENT_NAME | mlops-aci | [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/) name | | - -Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. +Make sure you select the **Allow access to all pipelines** checkbox in the variable group configuration. To do this, first **Save** the variable group, then click **Pipeline Permissions**, then the button with 3 vertical dots, and then **Open access** button. More variables are available for further tweaking, but the above variables are all you need to get started with this example. For more information, see the [Additional Variables and Configuration](#additional-variables-and-configuration) section. @@ -75,11 +74,11 @@ More variables are available for further tweaking, but the above variables are a **BASE_NAME** is used as a prefix for naming Azure resources and should be unique. When sharing an Azure subscription, the prefix allows you to avoid naming collisions for resources that require unique names, for example, Azure Blob Storage and Registry DNS. Make sure to set BASE_NAME to a unique name so that created resources will have unique names, for example, MyUniqueMLamlcr, MyUniqueML-AML-KV, and so on. The length of the BASE_NAME value shouldn't exceed 10 characters and must contain letters and numbers only. -**LOCATION** is the name of the [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/) for your resources. There should be no spaces in the name. For example, central, westus, westus2. +**LOCATION** is the name of the [Azure location](https://azure.microsoft.com/en-us/global-infrastructure/locations/) for your resources. There should be no spaces in the name. For example, central, westus, northeurope. You can list all the region codes by running `az account list-locations -o table` in the Azure CLI. **RESOURCE_GROUP** is used as the name for the resource group that will hold the Azure resources for the solution. If providing an existing Azure ML Workspace, set this value to the corresponding resource group name. -**WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. You can provide an existing Azure ML Workspace here if you've got one. +**WORKSPACE_NAME** is used for creating the Azure Machine Learning Workspace. *While you should be able to provide an existing Azure ML Workspace if you have one, you will run into problems if this has been provisioned manually and the naming of the associated storage account doesn't follow the convention followed in this repo -- as the environment provisioning will try to associate it with a new Storage Account and this is not supported. To avoid these problems, specify a new workspace/unique name.* **AZURE_RM_SVC_CONNECTION** is used by the [Azure Pipeline](../environment_setup/iac-create-environment-pipeline.yml) in Azure DevOps that creates the Azure ML workspace and associated resources through Azure Resource Manager. You'll create the connection in a [step below](#create-an-azure-devops-service-connection-for-the-azure-resource-manager). @@ -96,11 +95,16 @@ The easiest way to create all required Azure resources (Resource Group, Azure ML ### Create an Azure DevOps Service Connection for the Azure Resource Manager -The [IaC provisioning pipeline](../environment_setup/iac-create-environment-pipeline.yml) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). +The [IaC provisioning pipeline](../environment_setup/iac-create-environment-pipeline.yml) requires an **Azure Resource Manager** [service connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#create-a-service-connection). To create one, in Azure DevOps select **Project Settings**, then **Service Connections**, and create a new one, where: -![Create service connection](./images/create-rm-service-connection.png) +- Type is **Azure Resource Manager** +- Authentication method is **Service principal (automatic)** +- Scope level is **Subscription** +- Leave **`Resource Group`** empty after selecting your subscription in the dropdown +- Use the same **`Service Connection Name`** that you used in the variable group you created +- Select **Grant access permission to all pipelines** -Leave the **`Resource Group`** field empty. +![Create service connection](./images/create-rm-service-connection.png) **Note:** Creating the Azure Resource Manager service connection scope requires 'Owner' or 'User Access Administrator' permissions on the subscription. You'll also need sufficient permissions to register an application with your Azure AD tenant, or you can get the ID and secret of a service principal from your Azure AD Administrator. That principal must have 'Contributor' permissions on the subscription. @@ -111,7 +115,9 @@ In your Azure DevOps project, create a build pipeline from your forked repositor ![Build connect step](./images/build-connect.png) -Select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline-arm.yml](../environment_setup/iac-create-environment-pipeline-arm.yml) or to [/environment_setup/iac-create-environment-pipeline-tf.yml](../environment_setup/iac-create-environment-pipeline-tf.yml), depending on if you want to deploy your infrastructure using ARM templates or Terraform: +If you are using GitHub, after picking the option above, you'll be asked to authorize to GitHub and select the repo you forked. Then you'll have to select your forked repository on GitHub under the **Repository Access** section, and click **Approve and Install**. + +After the above, and when you're redirected back to Azure DevOps, select the **Existing Azure Pipelines YAML file** option and set the path to [/environment_setup/iac-create-environment-pipeline-arm.yml](../environment_setup/iac-create-environment-pipeline-arm.yml) or to [/environment_setup/iac-create-environment-pipeline-tf.yml](../environment_setup/iac-create-environment-pipeline-tf.yml), depending on if you want to deploy your infrastructure using ARM templates or Terraform: ![Configure step](./images/select-iac-pipeline.png) @@ -125,11 +131,13 @@ Check that the newly created resources appear in the [Azure Portal](https://port ![Created resources](./images/created-resources.png) +**Note**: If you have other errors, one good thing to check is what you used in the variable names. If you end up running the pipeline multiple times, you may also run into errors and need to delete the Azure services and re-run the pipeline -- this should include a resource group, a KeyVault, a Storage Account, a Container Registry, an Application Insights and a Machine Learning workspace. + ## Create an Azure DevOps Service Connection for the Azure ML Workspace At this point, you should have an Azure ML Workspace created. Similar to the Azure Resource Manager service connection, you need to create an additional one for the Azure ML Workspace. -Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above (eg. 'aml-workspace-connection'). +Create a new service connection to your Azure ML Workspace using the [Machine Learning Extension](https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.vss-services-azureml) instructions to enable executing the Azure ML training pipeline. The connection name needs to match `WORKSPACE_SVC_CONNECTION` that you set in the variable group above (e.g., 'aml-workspace-connection'). ![Created resources](./images/ml-ws-svc-connection.png) @@ -138,23 +146,25 @@ You'll need sufficient permissions to register an application with your Azure AD ## Set up Build, Release Trigger, and Release Multi-Stage Pipelines -Now that you've provisioned all the required Azure resources and service connections, you can set up the pipelines for training (CI) and deploying (CD) your machine learning model to production. Additionally, you can set up a pipeline for batch scoring. +Now that you've provisioned all the required Azure resources and service connections, you can set up the pipelines for training (Continuous Integration - **CI**) and deploying (Continuous Deployment - **CD**) your machine learning model to production. Additionally, you can set up a pipeline for batch scoring. 1. **Model CI, training, evaluation, and registration** - triggered on code changes to master branch on GitHub. Runs linting, unit tests, code coverage, and publishes and runs the training pipeline. If a new model is registered after evaluation, it creates a build artifact containing the JSON metadata of the model. Definition: [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml). 1. **Release deployment** - consumes the artifact of the previous pipeline and deploys a model to either [Azure Container Instances (ACI)](https://azure.microsoft.com/en-us/services/container-instances/), [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service), or [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) environments. See [Further Exploration](#further-exploration) for other deployment types. Definition: [diabetes_regression-cd.yml](../.pipelines/diabetes_regression-cd.yml). - 1. **Note:** Edit the pipeline definition to remove unused stages. For example, if you're deploying to Azure Container Instances and Azure Kubernetes Service only, delete the unused `Deploy_Webapp` stage. + 1. **Note:** Edit the pipeline definition to remove unused stages. For example, if you're deploying to Azure Container Instances and Azure Kubernetes Service only, you'll need to delete the unused `Deploy_Webapp` stage. 1. **Batch Scoring Code Continuous Integration** - consumes the artifact of the model training pipeline. Runs linting, unit tests, code coverage, publishes a batch scoring pipeline, and invokes the published batch scoring pipeline to score a model. -These pipelines use a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team. +These pipelines use a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. **In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team.** ### Set up the Model CI, training, evaluation, and registration pipeline -In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) +In your Azure DevOps project, create and run a new build pipeline based on the [./pipelines/diabetes_regression-ci.yml](../.pipelines/diabetes_regression-ci.yml) pipeline definition in your forked repository. If you plan to use the release deployment pipeline (in the next section), you will need to rename this pipeline to `Model-Train-Register-CI`. -Once the pipeline is finished, check the execution result: +**Note**: *To rename your pipeline, after you saved it, click **Pipelines** on the left menu on Azure DevOps, then **All** to see all the pipelines, then click the menu with the 3 vertical dots that appears when you hover the name of the new pipeline, and click it to pick **"Rename/move pipeline"**.* + +Start a run of the pipeline if you haven't already, and once the pipeline is finished, check the execution result. Note that the run can take 20 minutes, with time mostly spent in **Trigger ML Training Pipeline > Invoke ML Pipeline** step. You can track the execution of the AML pipeline by opening the AML Workspace user interface. Screenshots are below: ![Build](./images/model-train-register.png) @@ -162,13 +172,13 @@ And the pipeline artifacts: ![Build](./images/model-train-register-artifacts.png) -Also check the published training pipeline in the **mlops-AML-WS** workspace in [Azure Machine Learning Studio](https://ml.azure.com/): +Also check the published training pipeline in your newly created AML workspace in [Azure Machine Learning Studio](https://ml.azure.com/): ![Training pipeline](./images/training-pipeline.png) Great, you now have the build pipeline for training set up which automatically triggers every time there's a change in the master branch! -After the pipeline is finished, you'll see a new model in the **ML Workspace**: +After the pipeline is finished, you'll also see a new model in the **AML Workspace** model registry section: ![Trained model](./images/trained-model.png) @@ -188,19 +198,26 @@ The pipeline stages are summarized below: - Trigger the _ML Training Pipeline_ and waits for it to complete. - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. - Determine if a new model was registered by the _ML Training Pipeline_. - - If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the _ML Training Pipeline_ will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' - - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic. + - If the model evaluation step of the AML Pipeline determines that the new model doesn't perform any better than the previous one, the new model won't register and the _ML Training Pipeline_ will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**' + - See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic. This is a simplified test that just looks at MSE to decide whether or not to register a new model. A more realistic verification would also do some error analysis and verify the inferences/error distribution against a test dataset, for example. + - **Note**: *while it's possible to do an Evaluation Step as part of the ADO pipeline, this evaluation is logically part of the work done by Data Scientists, and as such the recommendation is that this step is done as part of the AML Pipeline and not ADO pipelines.* - [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior. #### Create pipeline artifact - Get the info about the registered model -- Create a pipeline artifact called `model` that contains a `model.json` file containing the model information. +- Create an Azure DevOps pipeline artifact called `model` that contains a `model.json` file containing the model information, for example: + +```json +{ "createdTime": "2021-12-14T13:03:24.494748+00:00", "framework": "Custom", "frameworkVersion": null, "id": "diabetes_regression_model.pkl:1", "name": "diabetes_regression_model.pkl", "version": 1 } +``` + +- Here's [more information on Azure DevOps Artifacts](https://docs.microsoft.com/en-us/azure/devops/pipelines/artifacts/build-artifacts?view=azure-devops&tabs=yaml#explore-download-and-deploy-your-artifacts) and where to find them on the ADO user interface. ### Set up the Release Deployment and/or Batch Scoring pipelines --- -**PREREQUISITE** +**PRE-REQUISITES** In order to use these pipelines: @@ -229,14 +246,17 @@ resources: The release deployment and batch scoring pipelines have the following behaviors: -- The pipeline will **automatically trigger** on completion of the Model-Train-Register-CI pipeline for the master branch. -- The pipeline will default to using the latest successful build of the Model-Train-Register-CI pipeline. It will deploy the model produced by that build. +- The pipeline will **automatically trigger** on completion of the `Model-Train-Register-CI` pipeline for the master branch. +- The pipeline will default to using the latest successful build of the `Model-Train-Register-CI` pipeline. It will deploy the model produced by that build. - You can specify a `Model-Train-Register-CI` build ID when running the pipeline manually. You can find this in the url of the build, and the model registered from that build will also be tagged with the build ID. This is useful to skip model training and registration, and deploy/score a model successfully registered by a `Model-Train-Register-CI` build. + - For example, if you navigate to a specific run of your CI pipeline, the URL should be something like `https://dev.azure.com/yourOrgName/yourProjectName/_build/results?buildId=653&view=results`. **653** is the build ID in this case. See the second screenshot below to verify where this number would be used. ### Set up the Release Deployment pipeline -In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-cd.yml](../.pipelines/diabetes_regression-cd.yml) -pipeline definition in your forked repository. +In your Azure DevOps project, create and run a new **build** pipeline based on the [./pipelines/diabetes_regression-cd.yml](../.pipelines/diabetes_regression-cd.yml) +pipeline definition in your forked repository. It is recommended you rename this pipeline to something like `Model-Deploy-CD` for clarity. + +**Note**: *While Azure DevOps supports both Build and Release pipelines, when using YAML you don't usually need to use Release pipelines. This repository assumes the usage only of Build pipelines.* Your first run will use the latest model created by the `Model-Train-Register-CI` pipeline. @@ -244,11 +264,11 @@ Once the pipeline is finished, check the execution result: ![Build](./images/model-deploy-result.png) -To specify a particular build's model, set the `Model Train CI Build Id` parameter to the build Id you would like to use. +To specify a particular build's model, set the `Model Train CI Build Id` parameter to the build ID you would like to use: ![Build](./images/model-deploy-configure.png) -Once your pipeline run begins, you can see the model name and version downloaded from the `Model-Train-Register-CI` pipeline. +Once your pipeline run begins, you can see the model name and version downloaded from the `Model-Train-Register-CI` pipeline. The run time will typically be 5-10 minutes. ![Build](./images/model-deploy-get-artifact-logs.png) @@ -260,6 +280,10 @@ The pipeline has the following stage: - Smoke test - The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example. +- You can verify that an ACI instance was created in the same resource group you specified: + +![Created Resouces ](./images/aci-in-azure-portal.png) + ### Set up the Batch Scoring pipeline In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-batchscoring-ci.yml](../.pipelines/diabetes_regression-batchscoring-ci.yml) diff --git a/docs/images/aci-in-azure-portal.png b/docs/images/aci-in-azure-portal.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bfa8cd5340b9db52a189ced82aad6db54ee0c5 GIT binary patch literal 52224 zcmdSBbx@qavo=Zu2%eDOmf#ZHJwSlq!JQ4ZIE&jNNeJ#N?oROF4uK8s?yk$??tDw~ zJ9W-?>;7@;R(*BrzE#xD?#}kx)6+9OPe1(<^jT3F3!NAp2?+^H=F>+NBqZeLNJvjH zUOYv7!j6R!k9c|Fs3I+nR60lsL%exzCZ-^Ugj61ZachW-c#mfHN!t+#2^;$O_oNH- z(*y~rFIMKGn3|ix?gH9}*P5%MhbwGvi90CCGnng~pWp~J)ahvH_+CCc&40uE=1;}h z&yp;g2@Og8vx6D^4xJA2@634RU*xhyku|92ax*k^l-0s5vDAIvO0~TZr(SU+5WW%N&gQDl(MW&0$4Zq_Vxw} zgH==%V`5?sB~yRT&d!cG9%l`Ic64-XdGSw=46<2re;M2~UROn1Tb99uTbJ#$6WjCe zi!Xe`$z1=M|GSAYpdBFu`HHDJ8XBEtf0c7W^L**YGIow#Wk4+Ge|vkThhIB8GwZ{5 zHPQi@%6II0TDC`5ZAiuCpMdv*{eI^;n(KGJZmyx%00lx#=IrFwwK?>x+Qr>rb@Z48y-VPp4`YPWLepAtx^h}*5$ zvv;$-e|a@nYZjjauKgpUzMJ)A>;mPF#ns%)dTuJJwd*tZt-#~hK0pL^e9b*P8gg?t zYHa2%oxkF<^#ezNEbo|nZKgXy=3L05%H^0<83%-j%RLO2-7-EZURbi=Z&li~`5UtkZ~n z#(?HE>q!nTp4}6zcfzl0*@qo_?9cZKL}KMD80;MEw8oDrZ!?+Jugs!dS`IE+4edu= zPM_B}Z1m;9IzdEK^D*Pk5WiNLoGZa|Q^b~pQV|E=*i!-As z0}0TBbz1vorb3M|Xz_3|^mp@CwF9?EU^{28o!~HT9n0*lsZ=~;w1!XIVsu(nOs=ar zu)2z%Sp?J($13t*vY^K*eIJ&~=9)0fOY+Z@DsIpKn$71d&|o^#pP zK{8hO{BGfPYv{zacC<-a-PC%a%Nv|8#(5Ho^ZM94af9zcT~}nO5xnOKLdEdNrZm+Z zF2zr6RV*(rA82`E-#s^6Zrqh8pVgQs7Sd^b_f zs?oH+$FVqYvA|q@RJ}z(?i0&WC5G4ybdOQ~*gLLKynmcCAs2B?5UXv0c=XIq!1VXZ zRZ^F>&M6zh#?MMXhv?($XTc$0h1dm5fULntF3A^Ht-CUSlgWmn`VzrtvvP76P-K zj~f53l)vO%;+@V558eGF<*VddZIhEK(L^@whhh!%X`uPtvWO~|**7|H;6U-dr)BiY zBn&6(P@Z#_P5!<(pH;uji$wk9)q_#e4W})kue&(Bc6;TA47YDZg62= zumtQd3CyOY-y*P@)dMJqw(Ex#!*!cm?ykxXO=eVV|As_N|KFxNLM+jfG+Koy?^MR zS%hF>?^P>IGIgky8PhASEw!csa_~tye zewJkLT+R9f@6jS`^w9Y{M?7Y~)dnulHEY}{soAlvY|+Ny;qEp8Tn^(2%@c;$0E7{& zIWO7d`I@e9yr)-oBU}Sb6`WrBP{Gz-UZ9o9W9ig=Ih*YM=_`}SU%epfioYSzOvU^- z&aZ8br|9-T0+Rx5Pppz%c_W_2Wzm6bvcc(d z`-)P7UxDIB(Z7FPhMba#4KK}DO*Y|79^88#WM)S%+|Q$==G54n|C&j@@II<efQP-q_0;m0Mjm>7b-uLl!0u4iulzrunlN|GZ**lscf}t64J6nKY30h)vyLF+k>q%0^t8=Qj>VD53Qem;W1WE=_knE%k8f;uIpw&D6WN~=A2 z)!>kQX+2&_Eo{>$7^270>I55&WzxKKzWanrtGl_83H5rM%0WuIqYbI;{=t_NGRC6C z;VFB$6AzB5p*AEfv6D)*6+eDW^yn=_BtBHN9>u>AjiUG%K_M#Qyff~HL2wMej-r;Y z!9+)2oq9qnPFR|6J8fuFb3Qmv@`P&c!sWBp<>C%!VZ%^<_ z=J8O?Wr?X=hIQW>3<*I#oEZm>UmRNR2pBZ-KTPj3sNv^#Ri<0eAbZA^ z4Lh3dCi#B0c_(ZPA8{X#>)QgpbP8o9Sx3h%8&>wGY2s0 zCS+LGz+f>#G7c4o+}hSwakV@s2rc^Y`2RsOsv|)DF5#TYX0w&oMp9pOOUL18Rfc3n zYP=M#S>}zasaDA&eHS9^iS=>4lkg?Pb^Q^w59%8$SAn~a3a0j*H_1_ z^`T*L#V=i^+CAYt6`DlRTTF?raeu>(ts;w(@; zu)ozKcX4)>#P!z@BlO2sZT0>Oiv)CYDFv_IivD>e(>|C90Hq&~yM|2g=#fhyI$D4U zYiep}MG=stZbGqx%ukRKp*j-M%jO?R-=b&-7d`1Wiul7(M(puFpjzAv%L>+jBEp3E zjQ#}17HRPFW39;vK9OlhU=`CF`Sfb*D~Fahe+3|Alpv4~6BE(2AZ$;q@d2!WqJCE9;5Qh>SUe}O(X z;!IwPfAatT02Kcl%7%_xa<~4pzZkUfM*FA#vi6T8!~YtJfaQOnE>fD!Pon>02-i4A zqv%Rc9{z(&NV4#zgmA%YT{92+Mno&)wm8pUUXCirjrQ8)VV!_!`f>WYfc z%TdM1`?sGBS*;O}V?DNPFTGaSjD;8M-R^pgR*FxNL=J} z(yo?n^a6DM{pj!w`!*YC>qA^(Q2AH+&eQypANy;~%z8}?7ceVXjH{lHU#v$5{^Xb` zL6pl9AXq6~t_0_AX>L&hS{phJupfmiC%TH<=9U{95R;@0l&SXKK065PY$C=@ELoQ$ z_gx(i`?f~s7C=LAg6yB2o%XP+zaC3=GFp0FwpZD22eq3VGR4_1?Ef@rnx825o(|=l zP;kbxDt{*C;{7$&4zP0)$x(GEEicDz-svQ2fAh7kM`YNHATcEQjf47qF6yn~Uy})> ziQ{(W#gxx+kQ>jAv$FCFRmLdmg?<`Xk!wi1H7n<9mDNs(xvWfK_2{o~9gVl{A3VAB z*mB2Bd&rMk@n7M5VAum1SzF5I6OcZC_F&@iPV&k|>&ows^g@5w{jQ~~?H;gSk+xI9 zfCFY|5p&gie1nBY*YfjM1^d+rz2kn%x<*eq-TDF6qeaprb73+)^C~G?S<7*0^x;{O zgK?pD>y#0Oo-$LF*F_PUKAd7cp!8OqBT1As8Mpg%DFiqSDP?L*Oh~8*ni}u^q0FhN zRP;%vZOF31+OVhVi!BG-wpfFcrj^~~%JzvwTnVbhXho3BNEqEQMuQo^eU%_SOd|>w zoKv8g@t!ATZufZl!1ly+pf^6;^uXxNz4R-bC$ zozIDJ2yNxjyO5Kkv1nVTnk)2}`wG}|!EX%{_5*e!m$;o`vjBbBgq@&B7@>cV024^d zrwEF4+-IOVk(J^OR~%RHF7K;4UqPt(HIx1m0l*}|uu?L+%e~dMlWk@dlfmaTQkCxt z4}=G3?)QsbmswB0}A2N5WrJek=L+hExx1c&~Lz2M3`_QkL*O48bUkAz6fekpBSf3!_QB1c%=&U`KR zjJs8`H(I@k30M5qVLFG86u@Pv1z{zh?loX*D+l#`c zQz{OB`%^Nd3N~nH$~vfx&2QByI-(kpmmJ;?Aqbf%_gmlU5RAWS?sYL2Y7;a$Gn2WR z^#WC|un542K?QM?bQTA*$YP6YGd7(~JGEcV%vNtz?lr=*-U@rekKc-3G}vSf^}@X@ zAr$)kiwH1X+S#9(Tn^dHz@m^d?wDB}YF|W4;riAX-+ho;{i=t*f!yG(D@$daF2JWd zJ@%&Gbft&cOX@T#gkbEomP5?lFHKJ#piQ?4ua0>7p+8Q2xOmbleb?jHP0yAPfhzmg z;)aic(1WZtaKWof30sdmmX_*bJ$jw|*3*_e+}R>t`@0 zW@D&{ORW5@#9Cy&m*!nO_aRh23~=4m{Q-LTR?rdGb=&zjW-4!v_vvSS{f;;Y);3RQ zq0ZgUX#LEKW!o&#X)HoV4C4w37qSL_M!2=#55tdCe&?Y*Ka@A05lS8R-4zqx0~g+d zulS=9J#L0-lg-BsVhm~$cg;TIM485WtJciqcSY%HD*(hQsQZ>;*@$K~yJQ`Bat+%>dGa1tNO zh(1VrFc;Z<5hvdL2V((nrh9v|GJgA1#B$Weg*kzE{@pVIrrdz|)*Z46#3}{0q$~jn zxK7;GcfMRC!c|SLMNZY%B?m4r(FNbG49UK`8~Qf!Eln=GcY4C5FecYJ0oMFw>&V(2 zSwCOtvJ@Etz!?H+S}{0ME*+oiRut{8$9A|Uc0t#?Ekxp&$~wKaxzAD?ZZvvMR4-aY zxy?0Q#t8H)QL*&MQW-bCGkG<%FC~_1%_jj+&Y$>Ohn7B6Y|3Q8TTderS85K)?&H%i zC3FQG3*wg7n2mFa)ikZ{ck0B|xwAdHS(K})nJ;`7o}AFpVYnbS$cE`TBsOtKiBZjX zpQL*Hhz6|p21GL{bZM%N0GK-?>yp8u$^fN)?pmDtk1j@4UeN;|T7I5XA3g3Dzd4oM z-zmt8#0e<58pHh zqdBG6VZ(T=b9V9gpL_loext~zC&Z9mniWp(6G)9dgf-eW?+|PB=9;~Ein@e%6LF^n zK2>_!Eupa~y_k8_%pXa%Niz zykdO1Ey|08eysa{fA(-NCuB<^>+Z5O_llZ)uC+XQDO&LAta2~8Ij0Pf#$Bq7QpMxz zFZFuUn#O-V0Va3NTDm{9x|_mYl$*bDF^QdO(AtMlvUV-H4^khg<$&gObRoO9Pa2`G z;S1YI@P^m(_d}*$0%3RZU@F@I^zs;X$Gh#}h{Rik(_EjSx$7VcRjWEfw`n=ydZzDa z_oH8IB}+;fHJO-TI(sD%F*}9mD&j@{^$y;JnW6xXT!L2BZQNLbeNb6WSg_Y32;Mhd*&25C$+q#~L(Jo$wdyVPeNAu<_Q4VLgC$>` zLhZY9YQ8?*ladxUQ!N4Dl?qO%%WV5f`RhYaUs`SYk#7iR(~%9(2? znjjN6j+e;NK-wR0xL?T$9B$N_pb-8p%s`2?&sLr^9rhqOuEHuvtc><8Yz{TO*oj6C zPi8gr++ZZmUF*G`&o#A=QMI2;Om(;wvUH}g4dP<8*+ou@bJCS0oXsWj(zlW)jmY|$JL4UNl>SFV6LKeb z1w9E-3l^~;@2dh}OO2WKXQwKT6NabmPm9$XIkomYc}SU)+1%i5E`{)mHFRj>yUcm_VF;T_PiPxf0a z-~*x;lUH{|yXtvZEncJm@JHOki?1esUvJP+WJL8lZ!}n(e&eFFOKcs6^yfzP2(Z-P zH4CR}1WZmXL8n3nIZJCAbE^iLBvpx1qkqqYXxwn(xleI@Q&si|09Z2LC%>8VOOE65 zev{)g+l!MVn?rsgP8^|S%^d~ahK9bsR|miU z*)8s_Jpe^zRJja{`K3AmO$t_-P3LM24DgRE1H_s=6;{Rp(ri)kp#?>HHoa4 zxkf+xqKVBx*Qq9poAn!qAjBJD^v=OB{UdWtwt>Z|m3l;DfSe7U2Xp4$%X2v_*craC z(~Y6+DKDex5?zmyEhEo1o6w&gqnx5&Nq?4!xzQT9;G-K!!8bd-4*o0F3?vEuhr=U@cjaMd!c1A1+S^Fts~ueBM^9TzBb zk>W!@_)jjNJZsdT54wOf`0pWAsK_=&C|V4NHTTJ}E^bu*I*Kcm9XgQKcrH8l`(0Hm zD^)CasjW3sKj~d#TV7u)-%QQnDrc;UJr(PTyvnWFE5Rw27wG5U2~hH&NTsfr`xf@z zVUJ7qiN~}0Smrstvcnb);h^TQQly1iU!9i?(>uLcf60r^Z(p(DotaqLtbO=TO$3%+L*-*&* z(bAV&gs%xj3zdacqJlJ#nbf&)_9xWn)$~qtMb!%f@Tv}#xflHLN5jOEaRD##zNz5ZK)9kMNN<Xk|n)wiqXoXYnpoUuM+b%T&|=fw>2mL-U6YE`Cat ztUIuVwQz5k?gZeBTeIb5#{XIC4XBE=?xZzrph4ymdP1k1Yforow1oEW$7 zo&ml* zv}Zcr_T;FH&wU!tZY%qFN@~+1fA5uWQJ^uX=M3h*=~5Kz$~vJ<;3hXN*mP;v#)A^t zcvJ(rJVEBxMoNkX;GLMiXVRgR+fyp89k*iP==1E4TTX#{NHX||SqmqS#a+7i%@HK7 z{>41|SSynKQOvom8S3PyDS5zf@Hpr^Qo-7{mG5ezQ?g}$@chnCyj1qmP+eCrV)UiX z+$a;V=~O9v?}wanJGn`Mjc%FszJR!3?Q+Pt+6z}4&KzCj=Gw2>#ZSe6|W(m z%$O2^{ijuC4of&9{O+s6vNev!&oIupgk@c(#0c|f-Lzc}jOC4fsi;e=?L(6aWx2J1 zbSghp7%eDt)Ymm!NJ2z9*I8~;Gaaq3ZtBKkp(^=PR#ozpaMtEYX+B>3GNSd;;8g8jhU=Yx2cokEKXUNPD@WJYP`RDy0;bd%Ds+DaW1&2 z--Y+7t5c$s=mPA(T{p^}BdFh6vc&sqgn~~kUJ-E2FQkHYR#taLaFmXVj{O8hb2#$2 zcpVi1ZeNf+)p$=PjUU5{J~t-ehAK{&*Pu(-x-*wwp>y`Dp&?p6qOhl3;uxa4Ot-J0 z1HKIgQ8*CX4-T7_#!%$M=H{WsPcLAM@t@5}kR1N3eVE<#t7*QYO|t0J@_0|h=)C)H z9RwaXt<&!f%5aU81ntP`UQA81gVv~ZEcn1vJbOGFp9lBD{ag&HTFl8D3S^KVKU!@}ZVr zRp$XI-3}_WIbtwb;ky5_k65#qzEX5f>gIa?!$sl#iJa1FYJo+70nA2>DZq+Rol#(9 zbC~NQ8nYkei$J+ej`{*~SWoBeLIzw-#=A5F%O6$y5_8v(VVqz4CN$@615e-kt;PP{ zh^HE>OK5IDwCb_1zG#+;^j{3@2Bg1d0{R9AbY0RW@1I{BW*V<^97(H^Ojgd!Ui8fq zHoUuUlJCiVn=ACN?O(eXK}A8oyTy7^B5KKAhKR0lpWpQIhIld6EvEIfgya(4;7jY9 zXx?)LlQnBJousdNDyZ5>ij5A|gUo~u@~qU}>Vj*)@JrCzv93z<_Ti?e_$SiRUM-5t z!4{_iy_3vB@i;FxiQ(_hI6C{C?_`(mJ&zz#X{0SD+u9cP3ua=bD>KdM9T4O;5?cit zx7X4S7fr|}H&s}b?bs#+$KcPsCx4Q~@kwj2(j=KI=7x6M!8PdDA8vh!)zr)=FhgVp zAq+c%dQnu16cTel!Nx`*L^0JPamcyiWC`;qwGVIX!eL*dq@TcwLSFr;3|1i{dP+gy!M;*^e zf$Fxvi0`1P3MaANkrl=55UVfIQI}($qMac)om`Z`yje@uHlfCAYHqMWn8EJ}LK-k+W+ zo%iYXmB|m(=5`y3Qm+{&;ip@}+e5JJkHP&z_(P|+Os;|P^LZ`Ru|gj*%_lPV#!e&Z zZl)P>+2I8Jr;{l>?&ot-1W=q17M(oY3%rQX-!Yx<(6pY!W}XODa&c>QO%iwDplgZ+SLiS7c|ti! zr`i&7WtgF)dx7|rnoNMKrG}Z%W5UJ_|4lyasDI-?Rn+DS{pK0ViSfD^f19sgQ0bX5rb)`b*9h6aIt@U@8o7XKIuNs=b+aKHa z@yft_b`jy^rYTdm&H$R+JGgU=(TR-dhJX*EdWQg&>7E(}7f)|~eY43w+|rgrYnSla zYjrqoIVfCXzBBGTE7BR@eJ~e(~_$a1TB>|L*x6nGG|Hh3syc zF2yHtJ5xWe-|7LR*2SSxq&w^v!9qO`NpDSqXQkOTZrV`{3`NBYt!j2xLhp+oo@;Ak z+}B57_l=Ps9UVP+@&v)-ydogjIye|AW5dCvyic%)7^0jt)SBCk0ixsbwl4S;aSLD< zOk}s_;PZ;4A6`!iLwQ0F0CIRN4B_*at2nmtp8 zeGQ>iDyS24dbNrkkLRZ^)4?5bO}r*-wpI|A+NuQ*$^O%!AG`X-i^0Hz$Zfzv%d@vGDmVM*Q|`BO_A z3V-c82h^~iSHiGJBmj1d~h69h(FA^6jH*{G1DvI+NRZi$$yF}OK&Q4zchYX+=YOJi}D9F%o zWui#4va)h0RgezSQ&>3c`;T}M+F-13Ev1x6Fx1<+BDTY&MX;A8B_%yW^YeMqBm0E& z%5_vOHMh677z8Ylr$rh?CB?<0q@4B~$I1|Q zO-xJ_&#d#l^Drw0sz`(|oU?K#fYBKJP;CQ{8$JW=^_39mRv$DSb`I7nB z+|W>rlKo014i%G-&2IUFccaU1ZYc9NtG|4t4(b%9gcrKSrVnmM5A4d_UBxy=Q4WkM zEzMiT`!tVFSD1Z`L|DoO2l~7RQA%{4laoTvz_1b`@U6PKI)7_jGBZ;@@&{V3%2gk0 zYh=FP^Dixd6V2d@Oo@P`1gGC1tadxO|CIKA*s{*mn*|TpXl_P^c3&LpmK*|)JYI;ZWy5K>4{dx*%pX#r=>nMqiDSFN zVr@iCK+l6n8-a89sO*GKnYzhRVgKb?COdSV9{e#aZHu{a;^#!E3;y7<0RWMap@nTb zXyFw)2FBRf*cBcWq4EDDx%2)n%yjJ1S2kVH|6;nh2dbIK@4CA?c!o2h)7|}sV|f@Bzewq~PFvA7BO1dLu|)LhUa+33 z72}^V+zJVu2w6(h6sC25tzM=EsCRk|AahEcE>f^9k2f|ONi~fPaZPo{jL7eJ)AF;2 zAEbHIUU)w|G2x63W{T}x4>!0egQOld{>R1he;{bblUhdUy(SGerHQV7r_L8ENA5Kb z*MOpU)Oq~-&3x~KfrN23p8Ni7ii9WtC(jeh*VPTHMnj~n@u=!i1Grl=9uM_fj=((r zTJosWNc|(h$43hgP%{79H~*C~ALg^my7E5&IQZ_J(nVJE!Ic4rpLJdUaeWC|gnxu}|>iy>L;JnunyCB75 zwi%nYX6bq1zj8BPBS@uC1mis2v1-(Ulu?bzg4uclWp)lzUfQQkZ<(x(K)yL-V&Q02 zFdokhEl*-EHKcP{xp*+OeQ#9CYIJOnNkjc^%%K`V(Rtpn)w{N)nP^UGEGSGcW@kw7 z!m$5ZWR?a@r{H1ilD0KPg2==lM9|f?tk;UEbjLsWU`3=scz-=L`n0~#jCbtN;toZ( z!ns|2$|ChwL#W7W&uX@k`&?10Qclxyr&Y^PZW2O!)d8=~TdRI3i3x>?=E_(x_=S9~ z10D?hT9wGWy4Wdn6|(b@y3`^h8#I0|wPkt=!*0FR?ht zplr%!8(46VGvNn=iljpPj!j+HEOIkn*H|?N=m8~Kl~nR~6jVelq;`;0ImXpSe$wDc z{RY^wyZ;a9)KTxzHH0{0wxCP8>7^$9dQ%7YU#h;c`dy=YYc+E#s@SCikcT7IpGmy( zS@Cv#z1HKi-^LqBt7cl&TYImjEdjO5hJ{C`PJfbbXKT!DI5%@9s;%6*Nw^u!(2>b(b@Tc!C17`m`Y>;bs6uHoFxn`*L04^e^!^wbaUT+qQgLX zym4+(V)BmcXsltu?zQka5Ye<0}6bh7)~Q&nTCZ$VL)72jFED`xfz=)N-~ z9Ql+fY|LR8!;j`24cIpu*=)PkK0kJ(G%$|uGMaEHrUELKn>5)sOKUYnUI%_$7^!EHzSz2tcVBXhP zb!BtalhC-vKv@DwF^~RPWKPK{x}ErWT4ZJnrNOd``ge2=#Ctg&mTzwM>alN8<~UCE z;$mAtj0=u-DQS5w6_+nPwrjEbE}x1s^ojg^j>Uvm*sP;>v1748ZY#IN;mF7X9-XbA z=6yKV#I=Rg=&{Uv{UK?Z?rYnRl@Lkw1^LkQ+BZ%Io%$@rBVN>;>x9Pb=L#Q%K%Jp` znPxjZp*uZ%XBiXSCLDVmp+dc<#YOnE9!Vn-k>g(3Z=PYh<`LJgb2R7hnCIZ>JMX-b z^^RhqkS*mR11L!PR1-?9+V0`o>Betd5tF}b$Dj&z8_VWbSM%%X_XAx@Q=*6H=rh`mCqs)5zZth z8A~e_sw%4QGr38XND$86*}Tm`;N+}ic~2+CL+4TQm$>{#akxiWoZ|Rd{C~awo&%$R}II zJ82rI&TIVrpp;nP8Q?)1wEY&sPSrTZxC8|20Mn9JXbFF_1)23ZRTp?ix&`mM@Ar8% zx_qWoxEOJIOVfy^Gms63F%U!V=W>d2oi;j-$xMLOo17IZ)d<5N9gce(0!nYTH&Ij? zUe)?9y}y3O3VwG{(h@XmINP9aHQ(Kpzn<{1bfuzXi-eMc=}o>>b&N(DB#?=)vvVqJ zk{oUf7l;M+-6p7&kgdxY9TRr;KXBu`1GKZX+b2ilJW{SLt+W7Lf$K6Im@K05pPDSm z|A|iD=k`PA(glatM6v5DZCzK_hNfy z9-&PwF{#EqGsa=c-*VwlVQSiOK~Q*^rSl&WuHp3ioGwA#el{E@CntX6Qw<3l8FOwQ zP3y3aA`0KBoA!Zg{o{CJdgP;qiM23v!Kuuo+=zl_6G#eig?H4Xn_P|Rv)i8CEIwbW zX=~W#iVSd;IX5=(A&82CHU;t2%q8xE^#UMUSwm29D~E!CI)8_WSl1O>iVjFxL&?ApW@9|7DIZ&OZPrR&7^_?ggv&5V$!*qrapZ(kbQsP7WS}h+Ic-9k)cz^ z8EZfv@wQTAGwYh*jQHYpSdJ3-=f)4;Eaz2p>{+Ak2v|;Yy%p4%9~Zo;>8iBu_dUWqN-tw` zx0*%x;qhohH({ssDpP|;BL1}C@OmO0)5@e@*3{E(UYtSDFjAj$VR+h+csH;RUU%9MVL*27Hqe7**T#l7OQ9jvIefOp{B!$TvOMtQq z)(O-@db`6OkX=s)4(upI65aODc%~mS5+C%%D z)uL2H7|7r}bGZL9B%q0Ltn}~=+0ZC)a8W$gb^lGYwt7FQ!b1;MUI7UwOk-5nGeG@& zIVGS1>aX4y%vsQ5vbnK0>p4XwJ|(kgBE>4SiT*;}#fVF$CcG^z+*8I2&jEH-NhFQ4 zduKft(DqGiabM2-5XG$@lLj+_@Jp!*r?#ICvvGBlkhNH{_n~FzrN!_f5W*HkQ$&gC zP&u|#|75%TsFG8vh=n)J$l{>e*>*wjQ>87GXEY^K*h0=i%K4CBA=P*Sw!j(~UY?_K zVyqvaJF2>&Y{K)iD-;_h*{~i#6h{7nm)nDnG~`Lq)&(Y|Psm2BH{kxAjmKB|V-kU; zF1_o3BKf+*uS|vssL>dwg5TMp;86CM*2mIiU&FOVuOVyjG011u|Ki*PUe|lRm^!Kc z3%&Eof10OwR^22;J}dr4@kV!HqvaY6aC8QGlh2wKTJ|L&s-@IA7DRS6^YemE!7iE0 zaqv409GZRJA>(j-9D*!vp@^uBF zO=4UU%Ic~=-ExWxi27@K{WZ$pj0bvqnm86W z%F9G;oxs|xC00}o*1g2aEqdJWcFR+1)8{N1(8ZRB)mHf2ni_frx{ z-W5=a#A0LgcaP!HtiK#v&=IQ3`E6Pu+I*N`#ZV%|$}cNo3rUA!8w_U04{RPOA` zYfKBgxt>+VqeIfq^3%?el;FqE4hM%of)a(El}pO)51PF=qXMd9zH+LN&@F77N9D%$g`HZ*JAFXhp?mDCq?Dhnw;s+6qr1fuRmtV**> zNvt0K>pxAm>LyI@at*+~@3i_1 znM?II5`s~f3iuQiCqdalVj1tOO| z5LC?lxkU{7tFl6bCZ>%l%~k#P8Xt0#70zD)xu3U8_Bf+krttqVW9d&%l$)p7lrBA_EN^9tvOs*8K>ibq8GsrL*0vVv! zfCLybhc0X|3#HfL)}vRn7P|b! zK?S4>+AYaZtGWz%!ls2l#1Hq;x#~D;vg!lzX8XKjGnKu8@7xouRTc2JE0T)wz50ae z{(v(4b`SeFO=Bk*nJ}mv-nP6Eh&(R+v6pGM|5HRksP)_jwl59jRu3Xbw!#^TD9>3; zJAJ!iANn&V**-m^w#0mEG}J?3H*DGnPqVn=;~3awqfIq-{Weid*wY*eLYTlUPupA| z-j;7V`pfODbJb|VkM+o~fJ&=mIi`)#(CuFtzkgNEKD*ZOxNK28rwY2^Nd2fV@+P7| zE?Bp-&9R14rbg6#3dx zny^#!m(8_sDK*`P(GaneLZ>I<2>E_2xa!TX2>G=rsUW?7h7OI}r0tteXY$FBt;^w4 zA2uP7tV*n6pOa5&25Om_eDu~}NMN$M#HzZzyn!CD3cnQuoCo9azXYI@<)6l*CR_0K z{Xb!*X7n0;fr(a#v3vZYK`p)5l~&$@y-L3S`y50XS<+xG33iRiM)d~VFMA*%Sm&#xK+{u=f0{ z6B}gbOKm32oFdTXC!Bkvx-{!-bDc(ZVz6FY&^74;l{HH`f!na6&%3GA9j41ko~qQv z!46&@3hW`%8cQ!1%`3W8w-^v%`abb9Ts>gbZaGZp@s*ySAY-z~DzDP%_(?I6WOxiw zoRD%d@?dARU9B|_+_hAQZqn1Xxky1P^b_oQCWC*2we=Q58C3J3EG**1T03A;QSd<(d;tYxk4@;IY7}?Y5BbxA2MgkG`9H zoq{W9IE-tk{mM7NIK2hFGMv7bJ>K5y-a9%3!4)Aa+4|!01mN}1fvVa$<4Ez7c~8Il zd`WtUY_c%qC2}bR*~6`VL__K+$ZHT4`X$FUuj7{iYgld=myht&JUtItPBymdy~f6A z87PT35%a)|d}C>-A-_~--myg<#*mj0Qx2CP`B2nT`G*k8JK27|8}wPJ=h?*k%x>uOFnPWT_Jn-v`lj;t!eM6vd;n#Ue?6U7p}jwP?mJ}C@h_WI_s(9bm6B>TU} zd&{_}+Wzg=LN29LS_G8tE(uYQE&=Hh=^VO4q@=q`S{S-(KpDEbhY*JD7#JAfS)kW* zU-#bk{r~Le#s2IUd)_HCYpt1ep66QYcO2j2S6t(Fi+xy%^aJQHcdua@Ptg6?y6HO^ zPz5@M$81peC$bGoJ>mMSa+lW@@?)vO_JO+f+Tq?V4?hnuQE!=iVPG|LU6^}2N6Gx5$7E2e>u6$AFJwfFS8B|M*;L=ulY`@F zT`=+N^IDx|RnjDDfxPSuow2OZnsjoZ(lM8NdbKJ_zZDezq=VjSRf2YU@nXTJq~E}w z2p5Qr)%vnuQkCzV&U;cd>9FKK^!p@31!7 zVzIhgzCTP!ogs|Zg9n_vrkPm}8Lnp#>5tztE5Ema9EHmKlf)?<=TS8U_aTzf6* zVv+SU%8*%HJZ_<``#oWEFG$FH+^lN~rcGbhY~lESll#3_ilArv?aGf8+k20*rtH7b z-0~SknEz*Dl9XJa`LfFX+zam1ZO$Ykd#}A6D3jbj*+DdmnA609Jodd4^hQ@s{tlHai+W`iy_i2xOmu#~1yi)$y825%aH@9*@ zlB5W8BdM$7hXxbhMUCIGT`H4+6kd5v%;O^`goo2u3w_vIDm}K3+Yg}wX@I5^KG9tP zQZ~f9|K{mkOShDvzxkALfb z6}he;0}(3_AJEVw0GK6FzW-OaxATv-GUy2mrvHEnzp=9F2c{LPc0C>*m-*BI z+b$!1Hz`?74dWbkn?*fj39UaHf?8!=m;4?wtNZ+W)uwYIe(&(9ATf1iiclK-B4RB45Fu#u7}E*Z~w<(3n~^mne( zp3G|^tA&Fiagryy=XVxjt4P}W&JFXHKo4?eMtA62~*o^c0umn>d`P1h&o{@L# z>PCY{F_oZ$ENx~)VyhfeE94zLP5esz|IUAwyi{>)R?I2LR~Y-wt)$c=Ue1^)C$zBp zXM6G_zIrqVqdw@$+-6N@@s}1|2Sd_019%_y8*X;^IZknfTx)Mb?W6`_%!qt4NE2`I zFlB+q)S*0u^>difn%?QB#Vibt9I3wXv+{WK8h00Rh8rOC8wQ;rvde~?6$A5t>}q(D zeU|H|02`e%vLm1ZA0;Lq+1N^Ij2}YbHqa&5bgvTcib}3iNu@J7{K}VWRuWSPlN^8MxjD0Ej0+b%QKmg)M3Vj-S-0OZ%u1e+wCEvDyh)hRKJkHm-bPVx_30ruKGH9q(17wx#1uc_s8~Z zBA8H|g3-JjWdW)a<9D!Etl(efu2X@U#rZX}_Ac$*zik0)&+vy&OX=TiwjuFDzBOy^ zox#e)hdpDgN4jZr*_C0_tQ&&Ob2N8WUk(YUNuQgAReWZ>ZK9>f%0Z(S9-i(sENKiLpXn>eX_)#pB@R@gp%Z>6ou%gMJ_NXidJnCG-LE$Q$__|4WmJn_?H zoD(%#OIxg4{DKUBHJmV-PqO=Rb3>Tbb~HV-jbBdTH=AFdeyy_dH8?Uf8szCI^j z4US1!gTBqTZ}A7+_FG)5z(His=W*9-jTMi}r^1b7a)Kqt50&Hn=Pvs&>d&Fsu#qCLV_W?#b-{IYTrAh=c-b?{-O|0709O+W}T~JiV(0X-xn~)F(5eP9eYVG z2ZHyj$dRvu?Hz1JmI%g#sa;mQ$6oB%A75nOcT$w#%!JPE>w`X}Z>M&-1i8v<-_1F) zLE9&37|^O^zNCO97Sm=gf|YPioViO%&U+W&0^ut*^74nQN@dOuw6&RNk=DdHX}5A-xoK)julj*{Kt6Q7{$mmy6@$2LSpL63ZmI;vw7VK?$m2Z= z$0|d-#D+V%iBJE4a{^K2eDY673Aj95${qQ~xYacFO#7M2nH4+A6OpTp= z;OKH~?y}=)MbU->Kd{Zp{+?6g1yAna>idA8t<=MHO8Bt8A-8~e*n#`$7qrDL!YP6L zjpKD$`7uyeadz(=E3c!eum>0^g2EiSoB7ekzUZf>og}0g-4^k(e;3wqf48DB2Hz;sPf&%m4UD zk8k^=yKyG`gIQHUuKz{;_}Nr#V?%w5+;=YhNTKgj7YWJ9CqNnn6DE~!@4~rpJD#{e zENZX@Rj#2dyA$iAS@+WKs>rwc{hRbVV{MjSp?37x!QY*@C|#NM#kG9wlELXgI2x+pVjmbP}-gf z71j${NM9agw@~y6QylvnD#q$W_*?0#3PZg0l7Ol6O*`n2r8FP(t5XGA@SXnLuLKl> zx6f|SMTeZR(S<9^=0tD0Jk?g3z;wuL{mHf={{a>9FGu8$B>a5Dt|++>6h_VL7#k2V z``&ut%A-e|5^UPAF1wm}gX3+**=ua{#znw7i&yBGJD5>ai|_coHpAH&wV5Se%fcRc zROjFaojh@BB2_=0j@zZ$lH>4tb=GBpULGBE6n>Iz`$AC!u#WBri01%>CG@KBlisp{ zRRIj5eCM`L+Oa9!qaJ$u10^AFM^CF7kk_Su?uV2RHC)i)PzHIO$QA-Fz|4rp>LozY z(9)|Hw_>p_qO)o)-eT7}&&w@1gX%;J#)MAd#7+pG?-f_C?d1 z)sm*c8!O?eDZKoL=~LHGDnUWFb{M^j7~yYxMzy7 zLs;hlQ^u~ho-O{E!0?WACE~qH-H+9opudV6lLT%qoYnQrJ=vVR=c`j=af(JeE`WNg zw`Jt@xT@c)vgk8dnFql6>X>IwE;LkAU81@LnFxx7k4hdHYqG2*{6(rWe_;BTWd<`W zU85OpHR5_<*fSKvx>7%*X=BMqEXK$55hiYB@CI2#RpDoPYNEBWsp|>potcZ$=6*a` z&kF0?rczH)DCsIakU9Ngl7u)@;7o$z2}$yzY;ZS2{8 z&9yym%mLP#=ArK-oa(3oEMoi+4+%&GK;=1Yr#UQlsnB>u+xxI)lYjyvqAKikoveE- zj7elOD=SYl2rfkbqNHZkIy6Y6T?fC=sA%&dx+wqhNq7EZxx6RDZ&)9j6EKn37YX4; z*$d4-id4_w)83T62Y(ru@a`FjE-wHFY_WZ1L-m9*XjlD|y(m<$i~ZT?Z|-pK&d(p- zce}pi47PL?TFb0QHpe{UvtRbrnpSzx$<$^A`7^V{44GYXYg)m8k2;3LyxYd>)~T zFoVxh)+CXWBpGadbxZCN#>=Idxv(U&GLSa{L!s0vk=VH_D6yyA2c+}L(+$TB9hTKc zXtp=EoR)b7W~S6;9y$5@^TYKG3tqnb=H(`&KvmL-F!Hm+fkA;|uwk-Ga4uIppZdZU zTsoNHpt!2iuOgPNbq0vftQpf4)LPS0u?^P-rFAq$v@hXk${rnO9v;osJLgBB9*L*X zO@xo1Pw$C7y%SGdLE7mv7W+dKG%&G`;u7hgXMZWlPS~ZydrrP<1~XU!%1()f!JJ&7 z@rP5P#NiH`9#v@+-iHm07n=4`59`u$=Pf^ylz-npH2R11mmyze_m$U0C7t^IWB)@d zM$=f<&{_*DYmB(6mXb8C!XdyK`o`yeVsf(P)A(?RG(L1)->N${ISJ<(+sQ8L*?#DI zt^>w!oT{LtPnKPvYdhl}5gmtDR77HENqEy-UO?z!W+08lc4R0p#)3!~eD|YtE9;s^IWyYyC#;vVf#%|Cs zP61cs%2mO&X2r}>6)%a|A^zibQ7U*e_Z+d8I+=7;T8gAA6iq`M97gsB|MHFw7HFQ# ze$l^k1T9+b*;}q>MVmJHWwI@H`gX|t_VQ3?7?%Zo(JB2tTcXQ7XP&e6<$U8udXsNI zW-EfhV-{^CNjhY+TeeF{dWbx!F%*6ttloh#zZNv#gyOH9{Jf9wyjyiA$DxFH>pZzq zM%-^_Bk=AP3F@Kd*Y?u&cs=*o!gpAk*4qKeBmU&v;n}jPGxPPhZ<6zgEOAPc2Wtt` zXh+~m_bW|AfZyzM+}d1l-!nxQ^Rvu4N@K=S&$7w+%gZt6{-;h@HZu@oZpzm;+H=KU`FWPm;gcxm$|E=aF?nBpc9mOcRf0 z;nZ!MQ?p)3c3v&W(9jfWCeoSJs3fyg#KE7vpD|@Rom*iK{_=LmXO)z=$Q&P&By%(4 zaZ3|(oqgit+IuCqk$l?Eb%Z=n%O}vbRm1La`#`1etfFxdihKH^O$4EUdfT5(6P*}e z1Ma7~;^O?uCg>QEnA;tH4>r9qpBrahvFC%1(6;FkOFQllb|^`733O-9Rh}R%M!~M2B#7k*enBV{P5; zG9b@uBl@?yd&=eI7|5d91386W9?NYI?96oln{psT>z9z{mzsG^3_{Q>KCuHIw=k_d z%Ol5b`q=KH(A%R_-tXnxT$GqxO<|G>nP5f^p=Az4)JK>ue`QeUb)cKZd3{AhepDXm zB%krdy#X|V=$s;u>b&Y;s;=2MxExIN{S_eC(s0>{P~PNYHWiFn5S19lOZa| z@lyQeDq-_Vsf}1LQI%r8`_Y;Lkoz=Fep2Dd@3I)Tv2quedPZotNVBF`yFrXV;sXsy zDY`edqKh!^iAv_Xddka+41z} zH%82mBOs0sQEzlTfUqg-pS9&KhJ;j1r)sb3(-`=u*hu#54wvE4>nRbwGr;3i*}2VF z?f%$}YFqrlj8d7wfW2olcH2Zcx_kHW=OW{?k6aBl9k@rIvNE9J4?@ExKNf5|CFK;3 zlRPWX;Az37wm;IwzgSAt*DXrlo}Le(7b3x3A*^I2E50KxCq%L>)JhLmRnH3u+$Cn>5$hxQ?M{S+sioGIzBWN zHa0NOs*iMmaO@U$r50Gh;c(Srtrr1wjEoI-t8&uQ3O+g~R@yo z3Jbn-RK4q(bXu>f#i?~&ia*~#70VEMvrkI^R)p69<;U1Z-wtEGb{;bK@p+tA^nIqPR?RfEY;h*T5AOjQ-{>S6ufwg@%H<6u)PT#gk)YqxFsxi%#7x30Iy2%HxEDME-R-G$+tAa ziI*+Fzpj#HJ?|Cc|nO@=A?^wD$D2(Gkwk>FOM3+aHUbCxgnbVlhQ132u(&ESHw`wKW znB{C>W~QMeg1E;V8|y0kMNn^CNWRE!az{vlt1>*N6g^oQTv_kD_5rdrwK5cyjH5ZC zf9=YC9q@#Yb($+#<(S}^Gp&KoT(J+n%P-(zt>xFxR~3+63D>Cx8o`Dyj0NJy(cgW%^2O^NhiQ?i>xzg#rZw zic4HDS3s`qKuuxC&$Ft0w56iHGfQ2qT#^%Pi9`60|Xjq#>$i&L90UP^a@T2s| zZfX37j!|%`HjuX9lz{aTYt_0E-9znlsbA_pz0vG=TPF~lg^Jx6!zcaeW$Zq{{Wd6R zzTZ_((@m8>_=<<6*>h)mmoG@ga8=YIu#;)|ZbCVm01eZge!Cw;yrUwu$)cE4GGU#> zhwxpFBz_VGK`d{1TLS?KB;i}A#HxoEl3Wu6%0!*W+Ds*h_tC+JEAN7Rj0=n1Oo`fu z-E`o>) zce(215|kh9d87)KMb)y7NJ?^iKkX8mTD28aH7yiNRoj&vq--tkMk(sUf8=&oX9D#6KgOT0k4%-cyM^u ziT5}iGia1go%&*b4pF?F(d+(U7k)$%z9Bl~C7}R>*WS7n9=;v3edT151LTnb{t5Z8 z+1f!+dFO?)V-mqL#Qvhai{E=Ln-AKeC84`{0c(Q--R^%d$^fJda?_x>O<@&$54%Db z1_Z}obI+2gyaEkom?VbmeN(N~^KF^ZknNbVP_903Ulvfh>c(Q_0t&MIj7_>0iSs7! zv#}|yb!v?pSi7J(#wS3aIKzo^mrY)PMaU~~>5=uuvXxv>?$#;)sQPQ2R9{PwDcP~~ z5^bNmu;9yd8*4JfX6(5a1}DwAk;a(}S05*36t?qOCX;!s4%2eTnAg@~=_IjrNd=Dq zEDNS|n7D!-AHBn}p3ABd+nSe5HEcnNNwzm3$8EIZ5w(0})Ryn`zvPAJCjn3A0YX-*e z2&jyuc#L7-o3AVeBiR}l2m7qG}}9UdvPnQ~ZlqD}g<3t{zj;h`ZNPK$?Lh1tGU zX`!rR<0l+d5kK0T$OJxBEjXkbmywvJMbW^aF;dcoZDqN!@$7^$51bdA8pc}_da>ZCX-#_b%j{p;7KVxH6KD)Wo; zlii7ud7xQB9hy}mwJoFi_rk*2azhN5Ax3LQ2l~BxdyM|HEG+$AN#`ru2i$P?K>wlK zj{-wz>pg_TM%l6a5}eaR@cGbB48-lI(Q)C((dpOM>M=PL8x49q|9x(`p&Ry+tv7dJ z5gc$Rny1goJNGh&;X;|8GD9je%c$0Bz;)-^aeix%;U?FXlW5|YRyY-5z$K{y7nQ}C z)ih~fTbb0FR+y^jDmC*r$ExN^y;AMD;;jR{iXp{rh@*ZEbBe)HqQs7_77P4x5)3=iiB~UTAP`0T}D`ce_ROL{w^W8DCPW{ap77 zc3_~D4wleaY~uH`(Q()UPgJ#cyZRHE^jVv8@5g#eiMr*x?JfN5OXdYKXMq@ANsA_@ zT{5TNlF(-zzh7e{5>IwY6-xMDdukaxgsR=^O+H|v)yo8kv+1O2g1){n-U27_Utukz zW#$P0fSHu^%Jt~0F6gU)Hp>nHAz}2IG=ao@8e!6B&uCq-jg^aw3k?m8 zmJplqkI%R7qGMNZg9)h9LL5=3eqp`Rf{O zYAT1CnBGUES2= z#f{#TKA?e)!E{r|JbOMf#*e&;>AT?{NoMMWj}T*v>~NswWuaraD5 z^CRbJPbq%C?Q^x68@k4$eT9|-sdfSgtUb4B&{r};wxduh0Be{NUsX>9+h7573qw0)n^ z_3s7zM^JF^;mOJBzuwLjz0*x4V}FyL2W;b;vh{D?99X9Q@12I^=>T*FH4cB{xx*St znw2`F2C3m6b*5_)#z~JM^k0>81=n*TcZNKi1lg0)}llVI&XV>e8ndh5}HE_hr za+g#r>glaY{NI7ZKXApUaRbmiQ{Hlv4#Hu~y3{Esg{XG9j!!2$Is)@EDnCFHu~N}E zpz}dij$~c*?>RAsK_|sn>Ko}8XOkam5JY5v=S@myW)$;zc32eh&2{D`4uC6ld% zjqA2vExrG+Op?K6Qc_Yes*C)_1M$rv=A_Qtm)Vs&-S_slBFr44({SO-g?OU&(b3WF zf~97{$R7CE*cj>|v~jNm0~JN~op{{;CPDjiebS{E7RN9i~fw1nyl2@Q6q4}OSov^vD6twgl8_6Msf~NFPwdn@u`%LZvKc*Pm zRwpBf{2$DvAOAG*?9n(l`~|{prM~FhNuO;yuBywZ&^|k?;gQdYFrsQFe{5`vZs?0x zg1OIY5eVwY-+SN95&rC}uq_X#xKujn*;g9mSs%i|(%O_Ki(=;DkzK80jgbnr6`5z# z&k@*Di;2^#vmAQdKiUo3!PpmpIge9P8o*tw(dID54d}2x^KTB_B)ap?)Ovrf-p1}R&%-U@ov{5G}>A+ z;afP}&Ju_dsT?NgVO)A%>38g;d82ARjduyxG#u&^Bq2+kvG~cQAn`#i;P`fNZ=idR zfVBfxvTvYbJ{3PxXR=_~7DHtSfD0)LrN(^dvO?Z1JykRb6~~d5m-fWL8X&GtBHcGR zHVpp?2Ch!XWOMDy)VcbNlM#cudKug0?idIAbMMWAx8bu41x0D9F;uN9&5d!evFQ|- zGG1GJW>4*9(XuimS@Pt0alN1cZrwS#x*;mGaRa?B@kZ?vDXd4?p2mJ{C%L|+RVEGE zP4UZXbkJTn?vE~D{X*TZlYw?SIgOXBmV3g4leJSX@YPpx>&^5G5ot(iY(S%X=An8m z>Vd5JsTW6({daO1+y>_3$;a?H80EwY18b1id6Zk)j_0G~lsD~Ln4GqoGXNkgb z%YzS{I1heGmz(MuK?~!_`^b_W2hD*6j=~>kenB_3!i435rIJ&&f8m5n5le^TAjk#! zNY4O0Zym@mW+V`YAI@-#dNNmx_WlIHRmF$RPWIMG5L7WMUezM*KJ!5$cdvfk1$-9P zsLX+I6EcOB0r8WPqnZ~uQdtyktEe`1q;d$n*3XTbRxGWZa)?o2drn5cHA9ZK1wtsrIUe30$cNE>^lO$><<>WVhk zUQgOQi=KUX<%&Jl;(&RSq}Nm_5(yjMX^uWXaDrgG$iEf3)e`^6*}|l} zl`b=~;hf#?5UDj1`9XYkPQ7!&+1xUQZ+;e9));FQzUnhvGIJPhJBMDnFqa_<3!>8M z4-OoWg~4M_WHIC8q8o%I8oNpqd9M=67Q^)(zy+)dkRoio>rV_#P_p5>K}YUm4}dc~ z_!jVwc%ItFWqrO^?Y`gs`b3q`pLR2>RaPPGf$k&b9Ejp>pw4-{oh7HXcPwPHVQ9X{ zhVn7{Qu^a3P1qG_P;?H#=GjaCtWpI^%f;G0@!?nLyGHZ66|BOq=k{^T$ae%T z%NB>qV47--ETvBq_xNxK#&>=mUmXABF`(B>QP?fb$tQV>GiXdpb=ErP!s5f7XF^d* zN?Q6UHdmdm4+-kPV+(<8m4tb)J2kGfc7~w~M0f188A}_kka zHtm|y6_KmVEd5hYq^8|!vOf{GXCg5y=ez4eSCw#k4AYLgX4zO-c`Q}#wWH=09m+d{ z+mm;D=R`3*1@5H?B9+UFy`VrJKKSkxFJa$!C^UVTgL1w~d#M*@zZA-vV#i7Pnqt2Q zJ>vnIz^86%q293OD+-9|VQ>wq&!dyot;%*MQnQb0Oq2KRmAp%m-j~@k*i2_yyGlm@ zITqimxzX~=bZK>mx7?IZrboChRN_3=zTbK;<=k?>>|at@xkPI~!PBvYsrPs(p& zl3H@NDDy+g%ToS9yMuG|a?QvbyeRTtoyK%C5y!#yp#ug29z$=RJZ6k)HJwIw>Fa#0 zKzJ0=^dp}3vQDh;QrKqLB{uFXA1GlD+Jp;DSf=H2w+HzhW`^IXbnH(r+7#dPFtsj{ zU*OQMzANcE&+~PrJ`^)SKyh=!(7R&h9sdApv4DtrH*Xg{RRhcPvx23_@w!Oo=XF8v zR{S*M`8D?p`D1e1y`*_6ur9^FhxN%=c+6|ROZ)4Iic&DL+;MP!L+y_k=wCHIcn>J$ zQl*YlZkG<)L+M&Ln1IF?scbn{Z2HY--_a$HH$K!If5(8bx8PnIX zgHvjicpeRTivM^ne}cr*2rq@PXX zQa$z`){4{kel-0oDfKhK^l}IYPmcY*a|gTIv-YLOK#>cT<-tY9hoN#-juaiWl~Etv zV(LmXKBqFl5Tm<#>dt<6VAC=B7sZ%v@VdpX&W zZh0oQ%g!1)mZU|{I;c4y1sYL5jCrWuKh?Wj3rY7Y(IFyQUVU|#?t+qi7Aun^X>>O5 zKI^?}910JUWcbL@X}M2$ipSphnb>|QT8Z|^mZd{#NL8#*^F3w*HE!svA;e3tKv2Ua zJe|ypU>f3np+H^ZwW9{C0T8D9rMoc?L~#J4kxa*{0r7c$9+-(Nhd!0-{!2$l+U+}t z3-Pfdx9`!A&)DVmN@X+`EULp#Y3`m40=cLP%8wha$Ic+Tj4wh*T0eXXk>^l4oN#p_ z>sb-Yn!`~I&2RE>2zME!@(_8}Gav>LHvKY_ooGkEq)tv&#VQvS9k0vuh^OFtqf)1s z2w}44mYMXP@r)I|B7l6Tb~MOi=Xtao1!)1i!0Fk`2fmBd;KuZ1H%0{t*kdn;x$0-(4yr;& zO{_`SqvvR;`>(fiDeo-3LMbZsimQuaQrJ1P?rYwifP>=j@ad1Ql(GsVbn2)jS)Ut| zJWX3FTR(_6l3P!^eqj1sZhQW@VY>Qtif1h2aETi$&ktDL$c|B62OHfM-ETwt0k~cKb~r$$Pjc+PS4*N>Qmj zBB^<2m8tMBX&UmnVpZiNbt-?LhImA&r52b8U83n#I~3 ze`U^I1t&R0xVbO)^*vWf^Gj}PXsF)&Y-*HZnIM>@pKow{nP&7V zS0=LDRW`_dp}vtAxWOWU=&N??H}{j2%kdjrX@@Vtmn|rzMxzc`0GJj?{Aau4CSF`o zaNd{0ms`T@Mh&X|aAp0QR|^$}T6S;q zWAc{jNugxcu@S1;+EN=2bgybcgKZ*ri5EyC&}|pK3SnUa2vS>jVhEuU_x6Qmhevbf z;#j*%b=c9vxke1tB)Jk59t(6MdI@^-X?AIB@W@_Q7>rzN)`0^vyB z8LOm~GR^eZtQj_r9_j8;?j4&R3A?DZUb`sirOOn2 zqWID$4Adk5g$@(86jqoO^1?;C>Rr+0c! zG4j9$qSJZbdV4ZSZQtZ^w3_={5=Fnq?P<&PsLjucLobl6y|C-Jz7A1rd77m{9e3Yk zW_U393H6#Xn=79;5SdWwSKNl`s$Dec@1V%uEaT)f4zs3_$K@Z%tRL9=v-1j6P1}TD zVZ4%4x$7&$GzA#qUbRYJs}kEWq!oaqB9KX6f#W5jpY2y7z0@BXs{#2q<%;eWy+D1= zBx4+)Sx))bO;WHTk#tXrk;NX8WitCw%~6n|+{WX3ED)fSNPkTNdaS+O?`SZ=>BE`= z%w{$mK!Rvl@w9SVTjyyo%9e8n2C|ocBRwK3!5e4ySVmTdx@Tjsz~Maj&1fu5hbE~G z8~(?i)N%23d_0WYBJG)Ht~ELZp_ds^fx^Mh1In;mphY`f)#Pnq{xR-cRr_feo|Dq( zW*cmMJcm3o{?2`Dk(A9INNizvr!>Do-R0$D|Cx4|&!+!U!S>nN%btCzSyz5)AG||X z$9m5WW0H3=Lx`4Zt29ZE%m9Dk=9${0B+5sRQ`g4J+|rkiSze{!eQ7ikExp-dc1w0G5*tXPWA5e1Sxs} zT%_Edf6IjNc{$qgl$q9nDdu3Ubu5N9|L%{XM0mfzD%()NKP1esstmGpzqGzP^^iF$KK-_|-` z|NYYK+d(`fQ6+i_vOl4!IIF>O9Xg)KPtep&3fV3aiodZli;j77iS&R&%Z-l3?w;o0 zPYmn3aYoYDmyYqCxlMv6Iob`KxIrqSAWvA6POhSng@dkbt&Zp?iKCL;Aq^F&>*AD^ z%#iYs#Uc@EKMhBV#9lH9V&1Dcgmv;BOyOp1ErB`HU@L_9dER_{x~uCj3ubfBU$eDY z+Ln}?v$YPkY?PM3gx=c)P144tHN1}_OUAK0*%&BU7bDv$CngzrI+mYQSA6A(R$)1P zX5a1r3xqW};HXg#oKo2%e+rTwuVB^082hs7*gV(m2>w;gV_E~+R);@meA9nj#%hcPK88g}*}|+et+<|6oBzLy5pc-G@asa54Bwp%xq*;TP? zHb-Xe{klzO^^QZzVd-pm)o#XEj_T#)KBvbUj}%|6CWmtUtK&MAdM!mojXnZp;ZE6R ze(LIO&*uV_Pp;SKnU}06(6p1=gvVZefR7J8xhr$wGk=%UlIe?7s%>4YD7F{Y7i*`h zyRMUVS*Ac0>ZoL5YpQkpWT_JOe4;OvBW(UNdxh;sr&#;%3Qw&3{SMLDJ6?HAKr@7k zEU5C91r66%B_EK7SUK}oSqP4k-6X2AIL;yy)I$-M3(>w;Grugszce^z5F7n-iouW` z)lERTn>q~l7Tmkh|4!L+fXT-1NmJ$-SPRO;=JcR)q)5 z-Ior9A7`cdKFHV1vM|}`TxZyMFuL)#$F|4`BVF{xED?Vcs z^Xhadd^z$d@leP4%!Qjk`TFD(sri%yA-XhpI!h*nFS7X!&M4+4n+rE5PlRr62oKs! zAd3Wv>YSrdADeEbVN1ju`YQG>O`D0?V3-o$CP9Oid_-O!O|G+qls4&2`FZUx!33&pG5K+jJd2v99h+EOtlYI@`1wtB%$3 zIZS!luHgC*ZplM_WsmKGg5~?8W5*rFWY8t2A9L7w@Y9#$OqEOM4gi@YnLr8N$zq<2 z#Lc?(>tjaMB3s+1?eUIxqI_%qJ>5}r7f|=Y$%KBX@+$!$uCB)$Z6#{~M#IyCGEaeB zEfD{7ip+^l^qF7rDmp0TUYxj177TEBFV8u39&_9$ikudTyj_m`Ri7Dn)o!rfC7yn`LFH?sYSI=zqnztyO)FkmNiKzR7g zNds~UC`K`_@AQC$`{$4X=bsPkS%~}(a>aiE7ysuSWB+NC_@DHT|FXfGNYqc8$|@>i z|FPj`QgZU4=%4SgJ&0hFiP~$dvjdbHQM>_t?7b9lPrWDrgXUkoW8m~y3GkdbMIg!-Ax9@BQD4_p? z5|!CMWKYDy@hK+V-kpf$Z!R?O-?>mfU>f~Xf~sG!4yVTK_}c_P1(*Ql=hJW6Fas@c z->%7C4|d>%`G5M`y*3BR{Qo;r^4m+>uG}9FtfEzDdyro`#8`A>`rUh@vcfN9G-MOK z7D$H@R7EH%V%;B9;p~(`%CR^L?N>VWngq zPBgx|x*c9uPhCS}C1WzH>)U@oeMd)zgS28gw$4WMS+zuwNznM$0xy1#GQm2kfG38i zPthM-_T3bba9Y``W~8(F1E#{pTvT5W>lYO}JZ9T!17Au)7tAH;ZvX;$BjKjW7~R3} zuLCMnXx!f2GByS;no-MT2h+9(_GevvI-M<+v_vm=fd-c0Lx(A7zrV@#Pxm7lh!pFO z)H8_e=;v{Y{r>hqBqgfs_`r4vK=a{@~tO~9=dYK>%#6~bcKmYx?{&9gppWgDU=mTY~z_{VjyF*lW-I&~A zLm{lgnK6dsp=uB|>vEDASmjLiH=xfO^6Wfcr5n&g&eMyEKF%$d8rw=&M zRR$8dysch(+AbVib7t*%1$M8q{QcUD^~e3K^LT;Qbk_`AQwKQ8m>lbhEkfW|g6ahU zSCtKzE}M8rZ}+rrB%tu5?0t8O#lErLu1UY%7pH}QhA4Z%)K%z|w%^Dc1b%e8d|>sH zm2du*_ED4j#C%ZWvUZPg(BzXy-9tC9a`XF~PI>IB2w|_2MA@d+pp@*?o;&8@r~Tu# z7OpDpyek3&cA7#8cdvNhGP?fm9~@r4&-t(=Yr%$r-Lz3_=cmVFNeq zBYzao#~Tqag?GBRFbnYuc{3w>qOI`htL7;;g;RoNkH8hBJ9O9s{Drq;!Vr8g#{TW%A*YQ6-&?pLH&Cy4dbeiunm%38Sl^ z%OT%S{AfPFtQV3Lk9tObwU}TZfifr zhVm7Q+1>MFcKY1PYL&ykQ?Qyf8NZ*r{lM$;A-zYSQ2etoGp27h65%sI;!AIwrZgg( zLyX(own{m|-ap4YRJmL=dV4A4DcV!sjQtm}`osyWoSbD(dJx+sC;+8+ms_z*InU!{ zV)lbwd}B(JI=B8jc`~ai8}|wIJc@^{iQ*R-)UbQjt$Xk^nM_=2l3S>d*;p+)k$=CY zefK!FSt#V2-F9+8|ApB66iQ4Jd*R_%H$U@gd`w9?0G;yCIJ}Gnf1itVbXxFd6nNSs zJ}yGmk2SPkpoT~-|Gr3~D}tZb4B_4+P-mOQ<8m%0MT&>Nmz39bacOWLZ!-&|QIP5x zQy?U#np;*Sp=)B_O|QuXI4-lxix&fPf(LkQgxs$Bj1cQFeUZf;`q;`A`ytlOI|^m(eX9mMfdRDodJI60QfgH1+fYlz-Sf^#y9Pj)`9q zyU3cC(nS)`@Up%Z36eK`+`oM=B*y1Cv?|UuV|?jue)y^ zA{!%aU+y-jU;6lul`H459Dr0pK?QYAN#pn=$j0xc81L09U;dgiLgRc*_Z73+r8ZH> zyN`9wt!99Ru^eKC;O3@fN7^?CT-@`Nxz4&DvB^fC0?);m_G4b@*9KJQT4Lb zSovP2A8bpM#jUazUsMGah( zy=g6qQI$3$YK}i!W-5Wz>Mp-_RT^!Urox(QTdxZoF37 zsMT^MI-h}qM?=W)mRI#P%|@R9L}4aU_sDY>hyX5u&vCYU$*dF=F`#HGYcz+`$FXAl z2(wRH>i>`>k3%xV$@$P(I#dBt1ee~}y0=eoh5 z&Tj2;zN2n^@{DFVpNM!LMDEwA%oS^9oa@w3$>YCn8XQ`)+9>)!X1~r<2Q;=A6(3)Z z#;r!-uV)+ykxxJ1So{U;T~()EG(P4w`6#&Mx}Cz6psSaV&rTaw zrfF(w#m>WJZKbIXygZMISp1R_PHLu(jBv=y)v{9Jb%e$(UuV};<T z4+=MhGd)RXy~Qg@TYjzH9T<{Vv5O$>NVh4Wh{+ znp|;3mYo#3Pdzpt^PQg#*(vBi#)tn`Yi}9WX4Ag=(o$&g0;M<@3?ob?p zwT0q^;!bb~?h*)4DDDy*g1ftCrO)%eYpqZF*!$T3e8`tf?t6}zx#yml>vx?enKh5| zc!F#Z$CswZDxwwt$sY2-nQ$r<@XXU||( zR}#xmz!bmuv&wkA2En|mpeRJ*Wy>kruZec=FKX7|6+MNyjoTvjakXz_e5iiL*z=7e zj2S20>f4^i#S~n zG+T#;q1x4%ScJf%^sZ=*ymh4gPl?ME8GPW`MIs=vv0dV!Ed*ES;wrDQihCchq#~os zLWjxonUORnyk?=gj{NI*;S8!uap@~4=Mg?{_jd<9t&?}^Es%!h?lax{lRsK#s3zTSP|X^2&oT2)#d5SkFKD=PA*6u1b8S9AT`Ijm#9{+TTzWq z9^Fj}lvP&MUJ+85Aw+sE66#`+gh(y#^}nA$UAt6m%5td~xifj^g+q8qV*b|;(f}3V z2N_VXvbCD)|0?G&(qXOq-b@N0DP{6jcg96nO`db{M}s6M5yJQo?qBY3iUy$^EeEFu ztUgL{@I0xVPn6f_nZSqGW&r2uwf#cE&&lhQ>$UccEWc(7-HU6OQ2HK`_HGaN@&|-+ z*EU++U$d9k?OAd*08)pCVB0Xu8BkdyPAw4)P~w{O-Wog!5J&`?ORpO;h~Fm~S0KFh z&X2^qNR1fsR>%BNAC)vR!MRY)Dd12q@1vZ~U$Jw=IDQ%PvfR3fLPQKzr*&DYOrcW5 z4N?Y}d3i*atE=@PAcZWNzw%dAveM#1KAGdiO@ zeR!5L_3)_av~C3n!dKf39rsA^irCdGiNdyRRr5@1*kxTR$*vmDO6;CE;MrZ<34<6U zzeIVd`j#zv+j-myHl=CiT)My8&@geQyh!UyYUI0$4`9;{XAK>?X#Z30f12eQLK+gt z&I(Nb)KR%36?Xyzu1n0qm@26iZk&EZTM<4p$$Ve*9+gm~M9j%xx!p9!r0>+;SZ@g6cjAkDki( zm1u?*TffJ1x#zuAi_djGZ+ltIHxwMJ)BE_+rdR%4T?aR)&yd{ZVY$y7{X&L!T^Bl%EF|mKZjK>%HtY-eS`2cb7nJabp~=g{9sV6@U75Z;o7@CS1J;V2YOK&Uf+{FT#gFK zfbF5o3CwY!fh|jGS<5RfoN%{m84Deq#BTp0-LrSqQI4-vo}QQa-d)fOXlHGefC8;K zChPZ&4KR$fdY-a&BG!g$4l1B;nzJ;mDaVvziSwAu0lUQ?>7wp$Aoj`Ywp-={Zwl&Jg}Df_4q+#fkmRL;Uy*}g2CF7+<_@PI&;{L-?0|MSn6&^Vf#CF z-~8L8zsDHDksmMU59t+odg81;6wHZ()39ckRE)&@e=qY2O~Qr)p-H3W(T|J@<|2Wr z_wK^&Xrl?GXia$zXLq%|-O7DB@7mk$c^B@hvuv3bKD21RKi<&eGUQD9#3y)A^E!WvX$~ z@Bp&g8@{{~5$mnw9J-o%n1VT-vw-^)DNzq3G|%3b&SPbfNh#r$o0W@ezc(q&jl@yt zndA*_Ai1}uIV%c05{4)s1p8P+PD%BzwL#573wQ?V32NHHbsWlp^orJca~+)5zOpfk?``Ury}kEz~g?uwAsBe40BKQ zJ)RQczwSJssCks2beQ5u<`Sdsni6#Y^Ps!oH+*YQ-)M1Qm;e+W%MgJOWOO$9i;*WP z+Wl&C*80yM=u`tbRp%L!_QA)|hsLMi#z9VloPuA64|*UQUf%q~a+Oe<1Cf*fj9(my_1Wj;tv5yr7CbY2FyM_vLHmqg=x?bUx_flS4W@s6)C|Hgu&e2{gnig`nrl2L6@70*?%9uve<->+NzHneb zkEwb3tb2)@hMj**w`X{mG>aIrV=fM2u+P1p6o=&%90ESjDI!Aso+%r*jXmV=N-H+` zC^V+WElD2T6a2Uz(UiM%x|YcLSQ)r#yUAG_f92J3WRk13k2z$pjkLU9(E6K7TjADL za_KG}?vS~-tDKSJOJt+hgX6J;LW=a)T?Y+rSPUJE?U^EEYiuo9M}JD%SOo^O1^P*_nQ+6<+&o@)rHxc3H@=JEWH5MS_aG8N*DH$b2S`GVODP;GjrW2G)9lE8bNbU)86}Xnmcf1h24HL? z0-_40u+rE1CGJ&XinU)1E7Q`*| zQ{iKdazWoRrLObGHJ#T@VGnFJ+ZL38N#*NZ35rQ%ne$cGWg<8v{s!4`;qCdEsbZ&P zhLD}a?E&XT8JphKzvRID)f@40OcqQIahFHf%mudmeeyT4wv!4{c~C5(>GB9Mw!5D? zD?8%1ZYjjKXeV_t?~l8JFl%irfMENtC=eOXi^4^Bz+_6S*sWxuAo4wXE;3GWGUYUZ zj{Q+LMP*;^HC}_|N90bwj=fv4=DX!&gPEu1oU{@?7y)0KSH0-kD>2A3Rme`k_+>(p zz}}J4Kk1x3*MUwUq=)0e`!gcx90GQV+Q7NNJexy+`VoX&SfIs&W=&bsT=H*n`XIt7 zlZge9Tb~=3I7yV2d@ft%4ClZ~Tm$C6T19!@ykaY;5CiU=XX7ct09)d8C zmzYyDmy-6RS0Y%feBpyV`k@WKHRt4V&Vj8thclbAm0#s;a%tnjwxrZ=LSqhh9;-@h zXda!9;NA9joNmG!0`Hnnk+Ku^LFR$w%x22Q6!SqGg@7n>J1M6KVWm);wAGJZ-GZe> zF&vaSkDZktjM{p=NQ@B4myj=R-m7JJHOS|$B*>Q}8@1qsxyyAYtJtTTlo~3E!@^mV zvBuPFm5#oKMu5#2a*0WSayV=`vxCnc21kaw5khorG5Rd2p*fKS2~O(!v5cf|U_^ZN|nLHJj%XE9hsTPDH!5 zlTE%>s#jCjhVCFgC7mA`w*8;fV^6!-VtBvX1}kLV{*i2%{XYETcYi@#AxZ6K%sIF7 zJzb5XzKannP3qhlx^#TH9Ykk#OblD}Z9Tr?-{I2B<;WVFW7?~);8dE=!4PKD#3YSdw&Bbugkze_X2(d z(9MT&BqbXnvi0k<>OfRTz6r?EO32o?$qWEMg4N7Lm0q*Xx8+T_HRCr*#g#}~fRr2frCNvE<0^%{qlR?#wo zj;p(ebmwhQr<0zadbP3Qr}LC^oD#OV#Iv&|1z^qO& zlM&~zb)K`SD&DLQtvJ^zpSf_j?FnSLY}4YPzM$trS^xWzVe@noH|(Iwc(fKTm7xm> zKOacZycfUvQk9FLoO+T8(e+QwXmT|qjjekY=-MY>jgQC<$m(F1B043fA2K9)f&v<3 zH@Ewo05@L!JS_c4j4oG&Wr^1WHwOLfG2=%T8rh6RIsW;O(T;u%{Lwu zTkas{AXQRN9-a)|B*Kkl*G(+GI2Ihw$A=HJ+MDANf&xk-i!P!PUP|`hc}2vaK-y^; zh!a1JYI@(~EWa#K^hn=gj1I=bgt7XH-Yz`%%%*$Hu)q5uF!v4HUV>u8V4bTo#I|93 z&YhnqIwl4v5hyN#v@|x-^*3yZ5Qfn(oIPrw&U*LOKec&4`z0Q?J6-yPeCe}759q;H zlE;Nxqp)BF`iYl?ICaV60yKLf6lnj(#Sy`;i%A77udPpVOMMeFm!D@R;s%z}l9LB9 zub8b^hTgUefdcmjsxKmrcD7-kUkX>2dwUP95ElRWdt<~$-QCsblOnm~?CogaekwGf zoeWHYsRk4e@`JTG8aVfMZQS*j{}Mx7=pb`OKLHo&d(*KpZ|Rv`TG!K6n*joc{Cl0d zq?(PY(FTV64MJ`HhIcZrBYfu+TApt?Dl^ETJ#Rp**KVFyD%!UU*>t^)>*z+L{vLec za6{+^;CUnr9s+*U)kgsCg9KiQG5de2)VKO|il4KSI=^a=K&b;lq#HD4f>>TzhUBDw zwE8D#E*xA=t;9m}637;4vTs_%1I_XjvrLIn>ff1~nW;=~P6mb>N;D@r$#&A>N3Xs| zF>+{n0tHMLWJLrk?Co~xgbb+4bpBiOcHB~-RW1YF_U+Y`4rgUJ-S5yZ>?^nL(fbTNL~I ze@c!Cz4{+72w+Z(I7IQTK%}@L>`~{QjjbFVIoaC}{ym>TypXTmS%{JbH)CI7=ND$N zad246T|QS*8r+?5MDXS=T<2sH#83egmDByX1$p}$wSP%**@>6iCb zSXpar74>XNMp(jkfI{?mB`|XjYrdinIk(d2+ zg@-Ficl05Ok5BVLqvJgc{WvEo0CmF>I-;1oU2Bt}RraaC7CNYHrtyk}vfqZ1R{n=tD+b;$a*0s2{@ z?p=Z?&kM<{)VIgDD^Ah0KypwB6I{-CWQlT9qF64b;JnqzLCuHWZSz6ka$&VSvC zziwmv<~+?t9MMF#e#_SIC*7%oMPCrg@3*&UbyfT`7a}1UGrkH5cMb%BoNcmAN_w)e zFX4TCq3Pm3`~SM zGX;8bQRj!3o~^9MJb6GG+9V4c{Ob3%N${kHFL-+eE=^iu{vD{R0$+`R(tk3po35*Ba_mz@fPi^fTVAT{evG{^va|X`xGlFENB~D7)OJg67`` z1CX98pMlp-W06z2{b#1Pg_A>I^heuMj!3li;B2b#yIX5dqa@s#17wMRQb;N{eKn(ejL2!y_ec(XlNL3SwFu-TCv3a z=g|;Zg1psM7&R;tj4yhvpzSlHz4%ehW_)zG-}}g0iI9Z`@Foay6zdn<08?wsma~KQ z5O8ld7)NCsI_Ijrx+McPqTV&1Aoz2arNXjS>eTd4lsBn)m2@KLNZCL16{J3NL~Akc zCYx`H!`D%a+07k&hIqTXI$QT=CS}&DR}I8&hnisDmE&CLsrUlMa{qL=95C+SMyw55 ztI}pRT~Cj|E|8(N!U^21#}Dfz42r|9?d5mPA;DI(%6INH;|pC_eB0K52xg#@LiubU zMK}c#l9(djC+JxK>eO5{~+EaV)+Nlacl(v0@?*HsQiAA z?(;N#&h$rlWd0<2a?d2&M&>DdNU|4%cdT23oN4I}b}_ivVm0d}det}1hkopjLj5yg zeWaLU7%V2R)+Uz}C(4fWm7lQ&UTrq%!_AI&L;2|0 zF6WzHWf9`BX$~nN&!X>I2n!~ra(01{+0Bjs%qj;e7JJvpkiI&xw5&HCyJ(4Ndv4yV zkxhtG9PQgNt)!++a{QJjr5werUZqjoax1SlYVbc0`nzlRRDY|;CQ{;d!AjC7<2*7w zGs86lRH}%#`52r9=op$(fa>KM1gx5+zwj{=Gj%MHON2i|8rxfLzam3u1NZM=SCY*< z#Y-UVP#d9zoKrFuKMXMoJM%nN%$exTR7tG&7ZsJH61LDDex1Kzkx^SPQS%<4@#I3R z{?bCuj6zG-N&4hde7W57V^l~t-7kNZ8HKzQu9jwtB5Sg*qnKOrC=tvvKx-au$_sTU zY)nkloGc(=Eg8+9?q=#+n#M>K7jy?HGL!>bL+^m5=V=!|9BFOx1^qlnT zI~yYf{N4I|F)EByF$U`=o3831ZcmL``xX#rXju_Nlc|VRA)kW-VVl3I#b+o_Rd%HU zciU2VojqURRJo!6Y()Lsof`WQMtt%4oSrBm_aHvjbdVHh(m&0)@952NyhhRmTKz!; z?H#5(2RVkpkc0bLRQJ9ad%b^MMDEb~0{q}u8u-@gaRHy*#?L+l`7~APnCcQbA0Njt z3Fxz&Q}C7cpA#}Fy!!bI@lUo`2%(Av?#ENPQ+yh8t^gIWaEqRs~GMB;+ z_-ckA7=aQjpC?y0l&cfw;&NF{-atmKm&V=<@6NynF#NMt(Wx!$ZuP z_BKWLwL&jJD08@qcfd(_+(e;CS(zx8s;Dh8pMtaWQCyR+&phQ|T}~Ubw7ZD6*HJMi z0L$Ku{;;i?1=6Z<9`P~2nw?KNfJ~b}#ou-$lP$KnYe%NoNYTc;1+jHgRye=wauxN2 zMYU>-OE=~topi<}eV`byuE6A9ov$#$!Z8ah>}hHhADby5{jt&1un!TMei0jc$#`aE z%^u^(BVhg{kXWESP?Ouk?Gj>;quCUYQw2Ajwuw zS7bdxgyb%x_v9hG=j*G?KzfnW*-F5*CLGW)hF9Bn+f+}XRSx~p`*g>)(8(Tn6<{|3wFv}_!5PIEF7-E+ zW2kgB-C0ab#Z7Ow!>uRhK-*^1%KTKwQ*~iGgX9p23c=d#E*g)(*}KdzV}-3iwScz1 zZ-xqvchShUY+Z6PSKkN%#hIvv#B}({j|((S*gdvh$K^v=a{nCo*}bt1ouO;3p^w(P zg+98K&7x&OW8-Dj4VTYNX^AN?mSLkK3T+c={`D@gUx(pGt#K4So_QjCyh0DGJfqMu z|Ju2M@i#cMYx-IHz4z@(PaG|%;{v5cM6st|ZO&Jf*{pS_qK&V&&%4spFofXlcE_~i zq%rlPY!UV?$>oBwvbC+@k|tR;h7vyWF%_xKrPIdJE*gv;?_{w9eo|sx-iC};Gt9ic zEgH6?9ERLnmd4Wtk8ia5xkb<2LCd11{`dm{`d8Jt$B4aq44H*I;lAU}jYtcv3dqh` zb@-aBo_+-^V+^*u_m5GE;JMIk)yj!#z3AIqAy+`A;$Xd4c=~+w^A3~Vvs_nZ$y;>K z8O2&y=Nn=3Od{nTBky*(MOqWX_aEjeBb^($&YlnLq zWYmHYN;l142?Rx6O2piM+Iod_!^S7izMN5auKpz_u9-W5dB=Wcx$~`1s`JbrjUYgP z`AZ%e@Q~lciacpeDf;88xX@+Jf3=+ZFEV6y^&9Z5FUnjQ!@(dJ}q$`O0^>CA7Drw3fG2g<=*n zu)x~s2qy%fwCGRt5Y)MK`HgOfFSxZ#rKqHt+HONKd{`(|=@>dr=PDE*GTF6cwpE+m zjx)zrX$(UyhiRJ(3Yq-W-mvNDkW7j z_Gla(G1;>s1UXrQz6URc1yaE;=oX+=(rFp=@D();X#%F|$vkXBSt^t!NDEV574JoT5=P^J0|Ap6d&LcF%P z#Xa~N{3UUTR$%pruX<2|Ypin-vcqhF z-K1HY7-3(V6?=Ee$edP^)H7cgIB(qrG2R`G=HEba7KGyTu zWv#{y=i*Spv!3^NsWAe0p=aKs8{@-pYs-goQL3!+LJLXPR_KR@q<&q~J59CwNh4T~lD0?$XL&!<6B` zk{y3KK}UD-IT?%O!wli<>ZS7O7ig>d*+Iy7PUeP_IT=ICgB$al3t=0G&EKQ=YcxLH zX1Vk@T6`vGv2$tWcYKc#EDwWSzqzwW!pKBG zPPWUp+#yQPhsFNDJL&s^$?oL1J{iHuBHPFmp(||szUZbfEXo&oi=bu=oWQJ!nLIPZ zqFBy=SjBfZILa1e2EkHZUADf6M|WkWn8fiQnNN|kZ|58RQtU%Y0QA(DU6^J&Mo|f7 zcW~I<93gCI)y9q5Lho1Y(hN_cMdw>9kr&=xuJ}=D*F3&49}M^?0(9AQ36cHicxZvk zt-r322L1JsaL@QkIV;MMr&cz+bqpyRWro(BnY@CJ$JMQXhg9NxzMFYTDmljSbl$&c z3Dp6|>u6k=ylLS4 z$UjiKqT(&)M3SLXT#{HgiQbR;;dl~e?qX!F6y7*d6Qq*|BAje|GP;S8MRl=+iCx!` z?>hb8><%1u>6a|j^ox?f^Yx0W`KPQetNkHnHw{|=(5&p3ogub8dC15wJ&StSGnxnyaaNn5dHoDmVC;5PP z%BXcX%I2-0XH`Spb7VpWfW#oMM&`_$p51-=cc#SR@ZK)NXQY$08qbNO+i5V2w&Xm@ zUbk__0Cl(^?G-zLu2b7`P1_)UKLa1if@ve`mBOPFV}A>KqbV{wyYAqsS^qVul&4m; zz?9o0W3AIiU46pjXPsAP86IB~$BU=!IbY9Cs2w-UuJ5u=?m3j*t7o18?oeaRjyek5 z!dWW#3y}Mniw8sxfA+@kUQ$=??!`Mv+-9{#8GKm+$Jdi0fn!vRSi$T^W9CvJWl7ZzW6f9N>UddE-{0Z1H9hGb++l{uDMuct7UY{?ROj zs<9O@sthOG?b+L0wpn~nO*S|0SwG^gv*jt9ZX8EIP!|StO*Wdkrzr!?+h(>?Th5^{ z=QmLGeglb4E~4(mZ?+^3@}WDIKhZ>xA6uKH{ByPRMFQ;GuBrM{TiE6utr8;6((yf~ zw^+mWybm#vPNdR!`%(@ydwCoPCS97f&giMiXOe(UANz#wBYJe%GvUoNO{)CvwOu7_ z5(&lHU&hd!q@&CpLk$guwZ^FT)dF)cJaiL1^1wnx?$WoZtY?a)guFQ|1YdE3?&=ZC zy`oB7jQAqeb?2p;_GIEY^{@a-47|ZWe>{cP-|~is!@tGLHl)xp_P~0B)Eo)84@?+3&SG!8)*gg#jrgi}I$91` z#UfNBOsXnD5mt_siR(M5K!K+}boX%_nM#Z86AP(wQ{kGPffp4GNx5|;${4<0bHC3u zItTop=F3fbGK3j~)n;)0155-)%c$Z{u0EayA2o#Yd=1E2JxTtfQ`FdP56{?|?f$yW z={u|of{Xd^E(W3lrTe(^W`@s?wUmt7Q4n3OU|#k!;AZkQY1XsEV5Q_^axE=!(e^JZ zU5e}aw;j*4ScU#fTn(#Ns(H8sx=oP|X{dx0-$9Ca7s~34uia0McZ-{B#fI)hDpM=` zTZ-a-_=dM8u#?ks9xqv&Esl3h>R>I}%KSn|OQ73B+MCR4waI)QxkOTb^Sw^n<%5Kf zy3<`#BenXyP(HKjniL%dW4w}PADwDFwaj5_atcCQIQa5YbSEL{(vDMj>5WHa5%cp_ zBHm6fUILv4vnN?Nr)&M5P{Fw!_Q%~)`pyw;7Z zeqJuwPZ(z1L-}c~&*_M}d?C}l@IEB>Z<*UtI3?*MJ{$USlq*;@xs(=`O7qcG1F0EP zo)63NpkcMybmgP{jY}Bt(Qo)66`w5R%zFr{Xw4;=LP~t_od~$&;4)X0PG4MC)Yl8H zGQJ&mJ<8w(;rE}Mzllx&5ilI(>@}s4JuQJAOJV2kN0(-{Bz1hQU@(fU%>E! zA2XY7f!#YTWMyxQoqZt}5@O_do>{&5IQ8mkbzkjJOu9QrB{yvO^LbIow;_P?&x>|F z8^U9I>z+d!?rt|T8&$#=@mg0q*C(crG9~7p%LDTI8qsbY-1|xPC-H@hLq34Y#BUaS z-QC`??kmttPDj}R93Szu&nS>O{Afc*9CF`;*IO{}f(xxec?#4Ko(6{#wKfr8l?Arz zL1M=I5`KpPCL;zgH3wZ-hl27Cu2JBiO^KGL?Y9i@OD9IcOODx1joXY6_k8@psG8SkdQSPHTEk#;ClqAn9)Kxe^caa zL+sLzcs|96<$?B&t4qeVJdwn7E(xL9%9)9&w8Z4bT#g~@ux{`)@Vs5)mtB`-F*q#|%t(6n&eNIAdZ7025Fv47EU%S&5 z)t^>uy>$1LL~;I8VciCkHatSFy{E7XnsN$RCifBc>$7EGwxwpTXDvx5zV>d4alI{Lg*S|Glei&VD zF|rRZpZiIJCNTR%s32oB*qTrlS~Hy&sVYaY>r^7xd$~k6HN(nBePH1W#Ou`-gayB| zTleydE#C~%eOtimk7L3JzK^kX9(NvLT%IyrD&cf1!xHdIqid$%?y!=(^iiexS&V1% zgD;mqjR@3gjIZF?)U$42eWDre1ZwOU&%ZOHNbFhT?#v&ycrDGt5g5r?qSn7LiHc-n z5C|lu*Sha=_385(KE%0xacLC_RDWNBpW&TjC|p$ciK$&3Qt++HbC2Ud1V{doZLzrK z_duk8J#D*qzg;Zu{LrvuOs3X*sN_%CM5H_HktS_l0iTaEah>^9UJQ2?k;-7&Se*fj zi&91bA=8Bj;w%h-$B8%oXTiUJrm7>;;8hSXr6_YM{;1=8T$yN2XaD8Z5y{VSXa%my z{LBqixZyW0qqx==iY|z&Ij3oqwR&5-8izPGw_55X4`zXU7_Idcp#9bFe9+Fi*P0KS z*Xf2F1D$E96Q%Om5vA^u(lml&9N{`EfgnW&cEhH&?xHrg0W&F&xS|s3J@v z4HY~T?XFiN=>ENKlG#OW|5j1#SusvTTOOV12jd!^@~nfqR=!^q>EItcyPGbS){Zvip}Rm{F0wa!v5ZIn}bQhiG}YxG;c+rk7AsL$*n7^y3AnEvG_BLf#1~Jrmb8>Cruz(^aBk-gOx!eL=gQOCZ;kDwk1}8_~jFe=@Fg!7Og>Fv7CBUaeT`XHF&WoernpPakSs#a{tK|QK z>}9BAG(86O#N1qlPj2})h{z}l3gRGoQ(Squ)@k(sCO~t+ zN=w+9OHy$Mi@LhvYbW-t0F~tQGhc(Xqp&_cfu(k4<_|D!nOLzqS@-8CNbm2X47VVF z*a*(>sPDa9oo>mri$ZR-xf(js?G)RaOEGuCff{y%S%@@G5i-5L=sj^l0ep_{eayuX zEz+B1xX}j&b3cZ9KUxNb-}9+&24Bj9O}FX0c9o|#^6|b`ZA2Z5pv@z_Ul(GXb=`aD z&s+Vrj8Aqz8kkG(7aE@RjTFcK8h9RfZL6p3xRcRd^mGI5q2pmdpKb0>g&9}fo&Txj zDy6^vP(o&XmZll{J@{bcs=sY*-iyg2>Z6)uX?pOi1Cv# z#CXMi(b``ZO9s0Y67cN#tf?7;O+iJa$iT;xH1X&zB{Ka?V&vZs9C!k)+l$`M$q!RV z`jj(tdot#)t3#15KLzUt)n1oy#N+Em+n@G(W&X?efzm1%s?y&@-C*Nev17sQAo?id zFM3T~+z01gWr>L`fX-d)gs{o{uPOsZ^KSR;*uPvF*R1Zuz#K1Zj1F#nCN)9DA)er` zn5X^MEV}6naXZ?Oy5@BgV}(eT&m|+&bS8JF!|KkMWbf;RFLqou1Kk3B?APifANT`h zgHTW@lmM%{fg_F(A|W3M50`~6%z4@1GZ8m0T?RbV>QXX)gGOXMuw}Wsn54rMB{_c@ zu_i&|eVd8UDvy8PwbbQ`j-C(Xi_>?*{PMnx&tbc}?|m6AyX@w7xZM<@-2Jgcz~Knu za<+r&d!Zc5!2`(!mgm!H;;-p;UmYo_&hID~v(J#c^$_Cnqd>SS=?rzqR(+`ggx08r zRxjt$th;K9DCBN7IEuUjyU}OKUNXze;6}{{bqR)Wh^pu~^m%jH7)R$$@Xc7$LDkoe z7o`#e*%ylazlcJC3N7Y=Mg?uWq(>zk$UHzlU1T)tt;XyFZo1KII+1?n&b|SKyLskc zrqEf74xtDMe$Lbd?(gtBIH}{~FDfEJIV+xyVGIF?UoC!uQ=v$*(U^J^PMg|?co z`21pS{8RX8#39NDz^l_zI$UhK*e`N?{344%sDSq0qDTBEzIn*8C(b{aNR`)K$(71= z((>c;eM7vm5LECx%O+HSm7 zyXr!L5h1Q)^n?2^Z#E|2@qeLojcy$A`wWc}q_Ldq3QO@UYx~^^K{jRez>Q!3GgG5yfRl`R7(DVlfzHxUQF0=>2SAGZ0J^M-++S1Ze zUd|@+w-Lvz-w}nh3<`AVY?^leb3WMYP67Bvqm Date: Tue, 14 Dec 2021 20:56:50 +0100 Subject: [PATCH 105/109] JP aks deployment fix (#388) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Change AKS deployment configuration Deployment config changed from 1CPU/4GB to 0.5CPU/2GB so it fits a AKS created with default parameters * Update custom_model.md Co-authored-by: João Pedro Martins --- diabetes_regression/scoring/deployment_config_aks.yml | 4 ++-- docs/custom_model.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/diabetes_regression/scoring/deployment_config_aks.yml b/diabetes_regression/scoring/deployment_config_aks.yml index 1299dc9d..cd81009d 100644 --- a/diabetes_regression/scoring/deployment_config_aks.yml +++ b/diabetes_regression/scoring/deployment_config_aks.yml @@ -7,8 +7,8 @@ autoScaler: targetUtilization: 70 authEnabled: True containerResourceRequirements: - cpu: 1 - memoryInGB: 4 + cpu: 0.5 + memoryInGB: 2 appInsightsEnabled: True scoringTimeoutMs: 5000 maxConcurrentRequestsPerContainer: 2 diff --git a/docs/custom_model.md b/docs/custom_model.md index 5c7f8f4a..28a15d78 100644 --- a/docs/custom_model.md +++ b/docs/custom_model.md @@ -97,6 +97,7 @@ If you want to keep scoring: 1. Update or replace `[project name]/scoring/score.py` 1. Add any dependencies required by scoring to `[project name]/conda_dependencies.yml` 1. Modify the test cases in the `ml_service/util/smoke_test_scoring_service.py` script to match the schema of the training features in your data +1. Check and modify [project name]/scoring/deployment_config_aks.yml if AKS deployment is planned. The deployment configuration shall suit custom model as well as AKS cluster size. # Configure Custom Batch Scoring From d081fc2fe66f2541b33f6f118f6cbc41640a1a75 Mon Sep 17 00:00:00 2001 From: Katzmann1983 Date: Tue, 14 Dec 2021 21:00:54 +0100 Subject: [PATCH 106/109] Fix evaluate issue (#381) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update documentation * fix evaluate issue * linting Co-authored-by: Jens Humrich Co-authored-by: João Pedro Martins --- diabetes_regression/evaluate/evaluate_model.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/diabetes_regression/evaluate/evaluate_model.py b/diabetes_regression/evaluate/evaluate_model.py index 5a69addb..d1ff3c6a 100644 --- a/diabetes_regression/evaluate/evaluate_model.py +++ b/diabetes_regression/evaluate/evaluate_model.py @@ -118,17 +118,21 @@ production_model_mse = 10000 if (metric_eval in model.tags): production_model_mse = float(model.tags[metric_eval]) - new_model_mse = float(run.parent.get_metrics().get(metric_eval)) + try: + new_model_mse = float(run.parent.get_metrics().get(metric_eval)) + except TypeError: + new_model_mse = None if (production_model_mse is None or new_model_mse is None): - print("Unable to find", metric_eval, "metrics, " + print("Unable to find ", metric_eval, " metrics, " "exiting evaluation") if((allow_run_cancel).lower() == 'true'): run.parent.cancel() else: print( - "Current Production model mse: {}, " - "New trained model mse: {}".format( - production_model_mse, new_model_mse + "Current Production model {}: {}, ".format( + metric_eval, production_model_mse) + + "New trained model {}: {}".format( + metric_eval, new_model_mse ) ) From 4b2667e34be793fa74abe801223279454b502d97 Mon Sep 17 00:00:00 2001 From: Tim Johnson <43890311+Inevitable-Marzipan@users.noreply.github.com> Date: Tue, 14 Dec 2021 20:27:26 +0000 Subject: [PATCH 107/109] Improve readability of exceptions in build pipeline script (#357) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update manage_environment.py * Update attach_compute.py * Update attach_compute.py * Update manage_environment.py Co-authored-by: João Pedro Martins --- ml_service/util/attach_compute.py | 5 +++-- ml_service/util/manage_environment.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ml_service/util/attach_compute.py b/ml_service/util/attach_compute.py index ad9668db..cf8c07a6 100644 --- a/ml_service/util/attach_compute.py +++ b/ml_service/util/attach_compute.py @@ -1,4 +1,5 @@ +import traceback from azureml.core import Workspace from azureml.core.compute import AmlCompute from azureml.core.compute import ComputeTarget @@ -32,7 +33,7 @@ def get_compute(workspace: Workspace, compute_name: str, vm_size: str, for_batch show_output=True, min_node_count=None, timeout_in_minutes=10 ) return compute_target - except ComputeTargetException as ex: - print(ex) + except ComputeTargetException: + traceback.print_exc() print("An error occurred trying to provision compute.") exit(1) diff --git a/ml_service/util/manage_environment.py b/ml_service/util/manage_environment.py index 54c5a72f..b61c97fe 100644 --- a/ml_service/util/manage_environment.py +++ b/ml_service/util/manage_environment.py @@ -1,5 +1,6 @@ import os +import traceback from azureml.core import Workspace, Environment from ml_service.util.env_variables import Env from azureml.core.runconfig import DEFAULT_CPU_IMAGE, DEFAULT_GPU_IMAGE @@ -35,6 +36,6 @@ def get_environment( if restored_environment is not None: print(restored_environment) return restored_environment - except Exception as e: - print(e) + except Exception: + traceback.print_exc() exit(1) From 4a9a1ff7bbf41aa34ada00494db07c52b5faa647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Martins?= Date: Tue, 14 Dec 2021 22:04:31 +0100 Subject: [PATCH 108/109] Add details on the Batch scoring session of Getting Started (#389) * Revision of getting started guide up to Batch scoring. Also new diagam and fix to ARM template to remove region restrictions. * Detail on Batch scoring for Getting Started and additional debug message in the copy to ease of diagnosing issues * Tweaked text and added a NOQA for message Co-authored-by: Joao Pedro Martins --- .../scoring/parallel_batchscore_copyoutput.py | 2 +- docs/getting_started.md | 32 ++++++++++++------ docs/images/batch-child-run-scoringstep.png | Bin 0 -> 9057 bytes 3 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 docs/images/batch-child-run-scoringstep.png diff --git a/diabetes_regression/scoring/parallel_batchscore_copyoutput.py b/diabetes_regression/scoring/parallel_batchscore_copyoutput.py index cc4af42c..1bcde4b6 100644 --- a/diabetes_regression/scoring/parallel_batchscore_copyoutput.py +++ b/diabetes_regression/scoring/parallel_batchscore_copyoutput.py @@ -86,6 +86,6 @@ def copy_output(args): or args.output_path is None or args.output_path.strip() == "" ): - print("Missing parameters") + print("Missing parameters in parallel_batchscore_copyoutput.py -- Not going to copy inferences to an output datastore") # NOQA E501 else: copy_output(args) diff --git a/docs/getting_started.md b/docs/getting_started.md index 3cd1f263..977fe626 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -286,39 +286,49 @@ The pipeline has the following stage: ### Set up the Batch Scoring pipeline -In your Azure DevOps project, create and run a new build pipeline based on the [diabetes_regression-batchscoring-ci.yml](../.pipelines/diabetes_regression-batchscoring-ci.yml) -pipeline definition in your forked repository. +In your Azure DevOps project, create and run a new build pipeline based on the [.pipelines/diabetes_regression-batchscoring-ci.yml](../.pipelines/diabetes_regression-batchscoring-ci.yml) +pipeline definition in your forked repository. Rename this pipeline to `Batch-Scoring`. Once the pipeline is finished, check the execution result: ![Build](./images/batchscoring-ci-result.png) -Also check the published batch scoring pipeline in the **mlops-AML-WS** workspace in [Azure Portal](https://portal.azure.com/): +Also check the published batch scoring pipeline in your AML workspace in the [Azure Portal](https://portal.azure.com/): ![Batch scoring pipeline](./images/batchscoring-pipeline.png) Great, you now have the build pipeline set up for batch scoring which automatically triggers every time there's a change in the master branch! -The pipeline stages are summarized below: +The pipeline stages are described below in detail -- and you must do further configurations to actually see the batch inferences: #### Batch Scoring CI - Linting (code quality analysis) - Unit tests and code coverage analysis -- Build and publish *ML Batch Scoring Pipeline* in an *ML Workspace* +- Build and publish *ML Batch Scoring Pipeline* in an *AML Workspace* #### Batch Score model - Determine the model to be used based on the model name (required), model version, model tag name and model tag value bound pipeline parameters. - If run via Azure DevOps pipeline, the batch scoring pipeline will take the model name and version from the `Model-Train-Register-CI` build used as input. - If run locally without the model version, the batch scoring pipeline will use the model's latest version. -- Trigger the *ML Batch Scoring Pipeline* and waits for it to complete. +- Trigger the *ML Batch Scoring Pipeline* and wait for it to complete. - This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources. -- Use the scoring input data supplied via the SCORING_DATASTORE_INPUT_* configuration variables, or uses the default datastore and sample data. -- Once scoring is completed, the scores are made available in the same blob storage at the locations specified via the SCORING_DATASTORE_OUTPUT_* configuration variables. - -To configure your own custom scoring data, see [Configure Custom Batch Scoring](custom_model.md#Configure-Custom-Batch-Scoring). - +- Create an Azure ML pipeline with two steps. The pipeline is created by the code in `ml_service\pipelines\diabetes_regression_build_parallel_batchscore_pipeline.py` and has two steps: + - `scoringstep` - this step is a **`ParallelRunStep`** that executes the code in `diabetes_regression\scoring\parallel_batchscore.py` with several different batches of the data to be scored. + - `scorecopystep` - this is a **`PythonScriptStep`** step that copies the output inferences from Azure ML's internal storage into a target location in a another storage account. + - If you run the instructions as defined above with no changes to variables, this step will be **not** executed. You'll see a message in the logs for the corresponding step saying `Missing Parameters`. In this case, you'll be able to find the file with the inferences in the same Storage Account associated with Azure ML, in a location similar to `azureml-blobstore-SomeGuid\azureml\SomeOtherGuid\defaultoutput\parallel_run_step.txt`. One way to find the right path is this: + - Open your experiment in Azure ML (by default called `mlopspython`). + - Open the run that you want to look at (named something like `neat_morning_qc10dzjy` or similar). + - In the graphical pipeline view with 2 steps, click the button to open the details tab: `Show run overview`. + - You'll see two steps (corresponding to `scoringstep`and `scorecopystep` as described above). + - Click the step with the with older "Submitted time". + - Click "Output + logs" at the top, and you'll see something like the following: + ![Outputs of `scoringstep`](./images/batch-child-run-scoringstep.png) + - The `defaultoutput` file will have JSON content with the path to a file called `parallel_run_step.txt` containing the scoring. + +To properly configure this step for your own custom scoring data, you must follow the instructions in [Configure Custom Batch Scoring](custom_model.md#Configure-Custom-Batch-Scoring), which let you specify both the location of the files to score (via the `SCORING_DATASTORE_INPUT_*` configuration variables) and where to store the inferences (via the `SCORING_DATASTORE_OUTPUT_*` configuration variables). + ## Further Exploration You should now have a working set of pipelines that can get you started with MLOpsPython. Below are some additional features offered that might suit your scenario. diff --git a/docs/images/batch-child-run-scoringstep.png b/docs/images/batch-child-run-scoringstep.png new file mode 100644 index 0000000000000000000000000000000000000000..6b87f52dbe502d9a9e262aecfa169c24f97301a9 GIT binary patch literal 9057 zcmc(Fbx>Pj`{kt+C{`-Cw$S1Z0SZM5#oet0cPo!5xP{e|JCAu9=#4N-5Q4<1^-Q+@{kmC^V&rda4>+>dhlZUFGO~ z(3hab1bQAUlLHc@Pr3o1>eK(1QzcO=LVUBu!M}1J+{r0gz-p@uQhsCS7}};QYkVh` z+o{O;Ms~oWkZfrQVk_FmRF<+gB}wbW-}?d{yP7Qd`ox1AvuUxa4@8Wt8j6JB%x^|6|)_We5jEx|0K$(A_GZ8?7<$*+WW;I>-nQu@3b~BNi|D7KO+H4D6;-0J?aXiB14njm?ai7!SFwl#Xj8kyyM8*G*BtvW@_L2D@*<`o_D6{Qfx{Zg$o%Zw z$R+g{b@)SGNsbSTuw2QN*m~E~VyIB;j=OIrjdnhw(5$u^v}JpMHGGKj(I9C$l~Bl~ zKSfjoqI~19iPzw!O;4q2zbl0=*2*karWj|c zr&55{a}W`vKA658LBw|NcgiUclY|9rO~eJuX(Tea=?}Y7$?n8V`*Yd_DUCKrb6?{p zdue*g)1Mk~JG|L}CD!1{kJ(IElzACB)X+P4z;0QS5+}ljSNmUZd@_AL=L20S;m*;$ zUI>%5o@}5jbSBw%)OVwS)Yw90gRnr;(@4sMz6uf0Sm^Hoh2pjt2IZfxPQymG zvr9AP-*I8p#y}rJ!xU7bP7KsYAZd6yKE{Og+YbH&HGqwlvqYbaOrg%~?n|MVC<(U_nL z^7Ixy(g=pm@QWWc;)D1)%sqXH^U?$z8i3p0UQYzXKP1;&Ph&WkG+Lu*o)sBH@%p_z z>q!297QfKJ{5H8Qhb;(`K6h{eSXrCmm?~!Q^mA-R&ax~spPq??4w|#EU6l))NzNV| z=xFQe7Rc^tb3G-h5SZz-lz#K&@4*ftJT(@-Ma)+EZQ#xl>321#2?-(GI}-+Dcjqrb zcEOaOA6#CD8s@NuYvUjU#-KXEacMJ@FCJkWq_ML7q5SJhFTnj`66#`Ss&BfjAibt6 zW}s-}F@VAsGHE_+;R_-g*S$*BU)pICOGzlaiRBiLm+?IMmDJAF9+KBpy0(IEr5D^3 zSAyuskgORh%M)+SMaSkbA+=_piuo>Jk=CN&t0eu#c`t6+w zs(OVsH?~`PuPDLy_k|j^3;uf6Z4?+caNY03&(*7MwR5D`VcGfaqSkWq7J88{622{^ z6PK6k7GL;Q)$GEARAv~-W-*c@$DmKSECWB~dX2?~*{8Xtg9y{KOHQer%uIecmFgK* zvlM?&E}+Z*P3ZVD#g#gvSb1=wvpNr=83d}cN9y^{z8q(mQKR7lq4w)nLO(k-2Z1%^hd4R7zm|E#VrKt||0EwjHm&BZyeEj& zs%(+lI>^=O!_CeD1siB9UfQ;KB|JSM%m-;)93ASNq-rwqm$&AzHIfr=)cu`&iHYxM z4%)@OPgE*J%UjJA-a88Uol}Ay9zZxOY89x%jabF-yuqc=`X`*6%u(vemqL;VeUBP^3Ws)Q!`9d4G}5j z{3PsxLA+MYJPAiDu3|=HBWw^oO5s zkig{eO6N9LrU%`w!iXK`ab-g^_)@7owI5A;%TOvkvROUl8cSz+<||7m_^KtGYA<*; z`$v1K)C4Da*&>r;^XXrybK~I2SFP$?VB!T2@p2y}BqMD!J>GleHN7#p8IufHx!nd`05p%yn-5TawEu)j~Js%F!s9@Tr;4Y zsQ|mO{Oh-Z83EPRs}cWd_1{x5WhY)7Mx|7i#-9bki9iim2oVb#)wGyhv;6mEmoh;` zHkSwiSh{DQ1Bs5#wn&GGm#TU90kL<_Qs01wWd9|GI3zlZo-&;kj;DjHRNN zj{miQ&#D-%w!h(`h&tzbW4(|g)8{i(71b4v|JwbOsR%psy2SooyO#D0)n~OLP{)%ETn7~eEb6_)ku^UUeXi9@CR*AtYMT79h- zBc#y;k?;996(@96PV1Hq@bXXGT0Poci=+$bB8-iw=`!f17`=L=L*QUyWI)o=`bB{T zT;K7TUP28ggY;>@=4dFG;Z*a zW#yD~KybN-6xr+2HP8?q-By6xcj53j&;sj#p1tqPH1U`ZZ*VJ|aejh%Kaj;|eEJoI z{Q)FrD!*iMw0r3ab$Z_Ko!HF3r+!wyJoxoA@u1m$Ct-9yXi#HL38_8f8<{jAPuuN#o$A{k^64ZiNhCHUTX@0{w*et)uyTAQ9lb!gr*!u<8( z82KlKb(nL(ZuG4?W7rlUOzq%cLaO?(`819r;Q3yytc0gj1 zWP!k}EzId?Ns^24&?@WYPOh_G2TMj zb|JALsX(NML6#3{b7q)< z^Op+RLoU6=2pS!1CmhD^x+{jhLnh4m>YORBCvb&hq* zCo}UYGW6@k_aKQK@?Y(0n0WegFS8&7CcifiYkB{8h`*zfqQ?9r-8VQ$GZyHKta`Bt z1ODgSl3D!#VApVRa=O2}^~#b$U*Z2Wv1D1gd~gN%uLK?8yOvsSJl1nHwLL~=v)(-d z0RHe^mk*_)$%1#to%q-*|D*lP?ap^(W>-T`oE~xxD{^#oZ(#t*gA+nx0c)2=lRVBu zk52b(?HQ2MXD9e4H)fw9CrxZKHVl{&d|HWg&C~%+KN9W80@#$oR}5KtJsy0SkAuP; zOhm>woCeYcWu1?BfnR=Fi5cua%SH)(3Kjhjb?R`~n_h|8t!1SFn)$1zx z9S7$e<}%jRAmP4}8b3#BPYfUvd^~LS!$S>~$K7eVagZt48ae9!hZUyhN;{&s&%Ea2;K&=S@hPaWM?`;Z4F6IgjIDGtNV(^1M!*`tN@1_yYU{>YXM}Uk@-gP@z>vBzD#L zJX%p4Obaiw469`dd>V%1RU|OJ+|YEBpiDgirJFm3WX>73b_1qAf8A5Q!VcvL} z>AjeWHdRz8NidJitXb@`UVwh3%denQQAZ-U(k9bWi9=60qCh(j+Shy7bZXCK0I`&E{5 zKe|*qj)MidNO~P4-CZ{6LGw_Xe>Ay z1gMakfWnH+jQxLC@>kC({dcs<7NX_1dBNrWXjA0B5J@nxfJaejG@ww<##3~lBsW-dcy0R=vg`F$ry>!cBW&4Wk71o&|?!aP>D_`w_5Es`$ z%lSgH&p9VoyB3YITHf9|NwWSLPvJ_vOD1aN!Y&FL`#cY?6b7-;qr*7-YP(|Gb$G8-ulqas?N6$MJ=hd^x$Y zlP6xs+mvtld2cFgXJC3QM=1ZBqi%)yf zIk#aBF#Koq{3jR;77-EQvFMi=EF~$)sFEr-KK8c!L!+78uW#QTiHnOD(~0}TV`HBq zM-JQWZ=Jnmq;eO?BIWx9e9jzPmfVFY^=j?nJ+T}7{v5(ruMgUWdwa8vitYvl7bBvh z3;KTi_|fWjU3CdaJbx>+b1Uc!=D*_UA0!znHbM&1-0rG3vKSI~VCMT~ zKkY&ITY`kqw4zrV83Fm^mPD28hE*2w8Df5V%2LdvGt`{Mtx9g0sON;5gvf%tJo%hQ zF)=a3o%|A6Zz0=S0*}+WsA*_enDf;4qg9A#X=yPqFko_gSp_*vAb+srMzm>1aHZ*w z#6;OPTMld@+5tO2BHe(vdtz7E^Y8_tv&yo+3A)#3&w&RrnW=pnWUjAIQBD&0^C!8T za}|LjJ>F!Rh=;~X;^4>jK->w5e7y}K#m&(WI{)dRp{T?i?tL(~y9YNhtgNhz{R($5 zSGOE|k{gJ`Go#;uWs+po6=$XY zm>7BNNFO$vXzZUf80mFB??JdV^Ij^L;El`j!xZ1sZ6sVrQhCMTa-rHmg ztn||QV2b{R1IO+4d7J;Ow}Jv5SG|B;+xP>jbydt0_mf;LRq0u3nEzCn5dyJn_&6^w z?@yhhd3?={0{~d`#|b%gv+oPq-F=f!NxqO`K=o2`JI?Y;StEL5nTjAE^!4S*E;9Vi zC@iToD{x%~s72qm1n04iFX{$sUW< zxc%eYcH2eeT;biZJUZr&b^`2&%wv3fa});P#k=OLqeiud8WzvsvyNJ;3m4(Gn=jX| zX5{4DZ*`V@pvUj4o8HsWVSaaW*<(gwCKyOSCq}JLVB%unZjIH0AziV=_W}xqqN7y1 zfcX#z|HO5M1B3^nV*_yG|G(CPN8a7t+(eFz=Uo~fe*tIstDbD~{U8G}&9^)Q{974( zAuN_hm2pgL&ZLJ`>FquQqE1l#!p{ zd6rZq^y*b75~LVFB)SwmYLGPZUYc z^F{js@DnEO;-F?^WTdT)z$e{2Uh5aXzdNjTOCZmq>2>5Q%guh`&O<}+OfCHsQK6cUrR${tVEYfL_|a< zH!v^36%3}W^<~LVOHI{lsYI6OjypGr>DAag%@Zhj2yiEDxj6JJ=P4%ktzuims{hs4 z)wnpW3Z(2gX-30fdoogO7u@I?MEG36!uu&23(227`|=+96DcoGl!yjt?A`6P=8h+7 zeGulU#f$c>nBP?dowyhePfVU8S}I83Ftqs;h6Y{Bc=lQhz@R5i72PICr>;#mgXhkr z#?Y0cn82=IZ8iA)r4+MaQB40BbbF!*?eD6e!I3-q-IWCe1qP+yW+;b`;jpI#V8eIu zy++Q7?uQc}d$RR#y0Wqr7z@~YNcV$ubnWuy5*1*tucV=&v8l!HzNv;Li8i98ZaIcH z`J(~Yfv*@DvyC4B1G!&sJ}UzkrT>N%;3w99dXiClAW{Z{!67?35D171{p=&6wia@} zKaWD8L@xZg;}Du=0sbGo-u(NEpq7lK$TJJGh^D(Ho#~k4!bcSNTc0Tf{+)C1UyUC% z%u$XG4&Eo5qs<=9OiTr>&nQ2-yVq1#S65XnGhm=w#6;`C#Wu2Jm$QC3@-Zy`<=NR; zU0t0vvONIrVE1}o$LXkCYfEGVI?DhpYZ2KgE@5M3Wo2WV=_y@9CllJcy}i9lmJI&> z{^*W?u535~Kx5$L<%M%!2G8&0sr4;VpF@YAeQ%G#nT+g1b3ffkif|vN>2FNV$7#$l z_I`%``0CUFC!?}2U%qr_{Hy(}n23-t4=VhO;;&%#3ZjxFjbwr|pM4?T>$bAZs3--o zYFxnDRmvjdQZzO+RHoyUJZv5j3{mo%mH`nMEB0l2nG}rKyjO=`;yp2}a-RA0K3to4LcA%NLdA-woU;p6wUi~7c zVI4acS9D^^!LQGlY&x*a*oR!057YlFXy|jJgfyc z-m_{vmw!_71WRmK&k8R+y}k4E^X*<6`yOGX0Ru?!^~( z*9V5K?V0NV=%H0njLG|G8L_-<1_l5M8!+{s>2EKuk&S;~dia({_t%N{GMxOh8ORV<0eysIaM;p^A0MKlVR(#i+r zZFk-)U6FTpckDyi+1ZRrKYuY=J0cB4X;TCoz0n?xpvvk(nVOF!t)w`&dTr$;ZZ_ID zO?>3!B3o3>pxFH`R8B zthOE&T=4Ap{d+0RV}U~4|E>1^bY;i<{B1#oKP9ilqrBC0Q6J{yddEMLaa7kfk{!NP zRaLZJt1;%?Q7y-PY&kNK*;t-?wNr(V`}GuO0p1cX)Ox9LTYCD{O0;-BZnOKAWPA({UOH?Z(Y)iO2tt7CSuPxFd4XKX22Z;lm{sR96CR=fH-iqL!7Kzwif*7jikDW5l2 zz}OMQkF@+xfFo){92K*=*BSbJ;&Gk{rLg1i6so)lD%W*{@-H%mms zCxnpTkqdqjQ4zyu|HB5<@=wmCt@DbIPN#9Ic;wD`VqQATGqYeYSp4)d$K%|)x}hzW z5F~K0P`csY0QI;$UJIf1E_7aOh1oPPmDkkNR8(*a3(t;^$3EEKD#&PcUBff)n z>%$HrWAClJf^_e&F-@#&A+e=cGMV4^qh1Endl34ofM zb;J?6o)q@xLgt&JsCuY=u*WRE)uU}~u5qH1{%d~bx9e!b3QkBuv)r*N$C;`%G^iN| z+@9{wH|w{wwA@ZtnrmukFbA<9!otJFuXn2r^ktrF?EHMaUZh#@m`-e9o6hs^=Pap^ zG1yRscmNu`M19UGyv-*kC;8)bN<_VmUk&;$cZTv`qDPH@t+Cez1P1B2&lwvU8`bH@ zos)4R6VlVufBx(#AbXgc%9}`+U4ve{+#5A1my!|JL)+#Gnq% zdN(#U(4oBD9L;fXl~hzI$fonZcqt;1qKhHXYzJNBscmn9R)uMwu3NIi+*@1sE=GUY zuxwc>Ga|ijEr?f}kE2CGd2B{9r@%guW<1Qyn`j$PQjnTjx0k~K=^*>bCddx0-^r-1 zv0wah`DB_S+M=8BjJx-y=M$Q$>Wmt`)mP|zvRP^m+89bpdE>@7m_%!N+GS&q{3giZ z{v^ZcrE*)#qZ=+cK_6Kv9c-@X;qD`4`;M_p{$aJKVe{YMbiz-FrtCc9jn4- zH2a|SI_jU%|Cn`!;1{SR*m?D;Adc#06LJ!(%C;vzq(~0XQKtEQsv;rGdgWN4*!h|6^|Ml8ynDs2QZ-fPweX7mJ*65f%iDs Y>K~DKA#y$FZ83nnw95N3Ns}-C4bb Date: Wed, 15 Dec 2021 18:09:36 +0100 Subject: [PATCH 109/109] Clarified/Fixed getting started instructions for WebApp/AppService deployment (#390) * Revision of getting started guide up to Batch scoring. Also new diagam and fix to ARM template to remove region restrictions. * Detail on Batch scoring for Getting Started and additional debug message in the copy to ease of diagnosing issues * Tweaked text and added a NOQA for message * Clarified/Fixed getting started instructions for WebApp/AppService deployment Co-authored-by: Joao Pedro Martins --- docs/getting_started.md | 47 +++++++++++++----- docs/images/ADO-CD-pipeline-to-webapp.png | Bin 0 -> 8019 bytes .../appservice-webapp-deploymentcenter.png | Bin 0 -> 27306 bytes .../container-registry-webapp-image.png | Bin 0 -> 16757 bytes 4 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 docs/images/ADO-CD-pipeline-to-webapp.png create mode 100644 docs/images/appservice-webapp-deploymentcenter.png create mode 100644 docs/images/container-registry-webapp-image.png diff --git a/docs/getting_started.md b/docs/getting_started.md index 977fe626..4ba694d7 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -366,23 +366,46 @@ When deploying to Azure Kubernetes Service, key-based authentication is enabled ### Deploy the model to Azure App Service (Azure Web App for containers) -If you want to deploy your scoring service as an [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) instead of Azure Container Instances and Azure Kubernetes Service, follow these additional steps. +If you want to deploy your scoring service as an [Azure App Service](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-app-service) instead of Azure Container Instances or Azure Kubernetes Service, follow these additional steps. -In the Variables tab, edit your variable group (`devopsforai-aml-vg`) and add a variable: +- First, you'll need to create an App Service Plan using Linux. The simplest way is to run this from your Azure CLI: `az appservice plan create --name nameOfAppServicePlan --resource-group nameOfYourResourceGroup --sku B1 --is-linux`. -| Variable Name | Suggested Value | -| ---------------------- | ---------------------- | -| WEBAPP_DEPLOYMENT_NAME | _name of your web app_ | +- Second, you'll need to create a webapp in this App Service Plan, and configure it to run a certain container. As currently there is no UI in the Azure Portal to do this, this has to be done from the command line. We'll come back to this. -Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. This app must exist before you can deploy the model to it. +- In the Variables tab, edit your variable group (`devopsforai-aml-vg`) and add a variable: -Delete the **ACI_DEPLOYMENT_NAME** variable. + | Variable Name | Suggested Value | + | ---------------------- | ---------------------- | + | WEBAPP_DEPLOYMENT_NAME | _name of your web app_ | -The pipeline uses the [Azure ML CLI](../.pipelines/diabetes_regression-package-model-template.yml) to create a scoring image. The image will be registered under an Azure Container Registry instance that belongs to the Azure Machine Learning Service. Any dependencies that the scoring file depends on can also be packaged with the container with an image config. Learn more about how to create a container using the Azure ML SDK with the [Image class](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-) API documentation. + Set **WEBAPP_DEPLOYMENT_NAME** to the name of your Azure Web App. You have not yet created this webapp, so just use the name you're planning on giving it. -Make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. Instructions can be found on the [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app) page. You'll need to run the pipeline once (including the Deploy to Webapp stage up to the `Create scoring image` step) so an image is present in the registry. After that, you can connect the Webapp to the Azure Container Registry in the Azure Portal. +- Delete the **ACI_DEPLOYMENT_NAME** or any AKS-related variable. -![build](./images/multi-stage-webapp.png) +- Next, you'll need to run your `Model-Deploy-CD` pipeline + + - The pipeline uses the [Azure ML CLI](../.pipelines/diabetes_regression-package-model-template.yml) to create a scoring image. The image will be registered under an Azure Container Registry instance that belongs to the Azure Machine Learning Service. Any dependencies that the scoring file depends on can also be packaged with the container with an image config. Learn more about how to create a container using the Azure ML SDK with the [Image class](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.image.image.image?view=azure-ml-py#create-workspace--name--models--image-config-) API documentation. + + - This pipeline will **fail** on the `Azure Web App on Container Deploy` step, with an error saying the webapp doesn't exist yet. This is expected. Go to the next step. + +- If you want to confirm that the scoring image has been created, open the Azure Container Registry mentioned above, which will be in the Resource Group of the Azure ML workspace, and look for the repositories. You'll have one that was created by the pipeline, called `package`, which was created by the CD pipeline: + + ![Azure Container Registry repository list](./images/container-registry-webapp-image.png) + +- Notedown the name of the Login Server of your Azure Container Registry. It'll be something like `YourAcrName.azurecr.io`. + +- Going back to the Step Two, now you can create a Web App in you App Service Plan using this scoring image but with the `latest` tag. The easiest way to do this is to run this in the Azure CLI: `az webapp create --resource-group yourResourceGroup --plan nameOfAppServicePlan --name nameOfWebApp --deployment-container-image-name YourAcrName.azurecr.io/package:latest` + - Here, `nameOfWebApp` is the same you put in your Azure DevOps `WEBAPP_DEPLOYMENT_NAME` variable. + +From now on, whenever you run the CD pipeline, it will update the image in the container registry and it'll automatically update the one used in the WebApp. CD pipeline runs will now succeed. + +![build](./images/ADO-CD-pipeline-to-webapp.png) + +To confirm, you can open the App Service Plan, open your new WebApp, and open the **Deployment Center**, where you'll see something like: + +![WebApp Deployment Center page](./images/appservice-webapp-deploymentcenter.png) + +If you run into problems, you may have to make sure your webapp has the credentials to pull the image from the Azure Container Registry created by the Infrastructure as Code pipeline. Instructions can be found on the [Configure registry credentials in web app](https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/webapp-on-container-linux?view=azure-devops&tabs=dotnet-core%2Cyaml#configure-registry-credentials-in-web-app) page. ### Example pipelines using R @@ -424,7 +447,7 @@ To remove the resources created for this project, use the [/environment_setup/ia - The [custom model](custom_model.md) guide includes information on bringing your own code to this repository template. - We recommend using a [custom container](custom_model.md#customize-the-build-agent-environment) to manage your pipeline environment and dependencies. The container provided with the getting started guide may not be suitable or up to date with your project needs. -- Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. +- Consider using [Azure Pipelines self-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install) to speed up your Azure ML pipeline execution. The Docker container image for the Azure ML pipeline is sizable, and having it cached on the agent between runs can trim several minutes from your runs. Additionally, for secure deployments of Azure Machine Learning, you'll probably need to have a self-hosted agent in a Virtual Network. ### Additional Variables and Configuration @@ -434,7 +457,7 @@ There are more variables used in the project. They're defined in two places: one For using Azure Pipelines, all other variables are stored in the file `.pipelines/diabetes_regression-variables-template.yml`. Using the default values as a starting point, adjust the variables to suit your requirements. -In that folder, you'll also find the `parameters.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [_alpha_ hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. +In the `diabetes_regression` folder, you'll also find the `parameters.json` file that we recommend using to provide parameters for training, evaluation, and scoring scripts. The sample parameter that `diabetes_regression` uses is the ridge regression [_alpha_ hyperparameter](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). We don't provide any serializers for this config file. #### Local configuration diff --git a/docs/images/ADO-CD-pipeline-to-webapp.png b/docs/images/ADO-CD-pipeline-to-webapp.png new file mode 100644 index 0000000000000000000000000000000000000000..aac8c9ee5c6da089c683b522edcc94eeadbb3d42 GIT binary patch literal 8019 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 literal 0 HcmV?d00001 diff --git a/docs/images/appservice-webapp-deploymentcenter.png b/docs/images/appservice-webapp-deploymentcenter.png new file mode 100644 index 0000000000000000000000000000000000000000..b79ff615a59944eace04f79e36bc6261499ecc7a GIT binary patch literal 27306 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

        iNuf;M@bp`Gf0UCg_x$BNkQ52O;N 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

        #rx%Wjrlpl&uq$u+^9bPQW@ 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 literal 0 HcmV?d00001 diff --git a/docs/images/container-registry-webapp-image.png b/docs/images/container-registry-webapp-image.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec09f8fa931dae8f9cfca53b8bb526624ad91a7 GIT binary patch literal 16757 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 literal 0 HcmV?d00001

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 Q`yazn!(aRBY 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 GJo!HeL>gEC literal 69008 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 diff --git a/docs/images/create-rm-service-connection.png b/docs/images/create-rm-service-connection.png index 011018d374b05cc8043d09b65af614baa64c1ac2..e677636a0ea14542bb3ec2a1f21327b28fd17c11 100644 GIT binary patch literal 181470 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 z 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