From 0ef25a2203e17accabd0d9cd074bacf103f2b2f7 Mon Sep 17 00:00:00 2001 From: Hasan Shojaei Date: Thu, 22 Jun 2023 13:29:50 -0700 Subject: [PATCH] adding sample MLOps for batch code to the GitHub repo --- .gitignore | 4 + .gitlab-ci.yml | 90 ++++ README.md | 98 +++- code/lambda_function/index.py | 91 ++++ diagram/architecture_diagram.png | Bin 0 -> 217522 bytes env_files/dev_env.tfvars | 35 ++ events.tf | 331 ++++++++++++++ lambda.tf | 79 ++++ main.tf | 17 + pipeline_scripts/hpo_with_monitor_pipeline.py | 417 +++++++++++++++++ .../hpo_with_monitor_pipeline.yaml | 12 + .../inference_with_monitor_pipeline.py | 423 ++++++++++++++++++ .../inference_with_monitor_pipeline.yaml | 11 + pipeline_scripts/pipeline_helper.py | 59 +++ pipeline_scripts/train_monitor_pipeline.py | 405 +++++++++++++++++ pipeline_scripts/train_monitor_pipeline.yaml | 12 + scripts/data_check_preprocessing.py | 42 ++ scripts/evaluation.py | 49 ++ scripts/inference_evaluation.py | 59 +++ scripts/postprocess_monitor_script.py | 38 ++ scripts/scoring_preprocessing.py | 70 +++ scripts/training.py | 89 ++++ scripts/training_preprocessing.py | 97 ++++ sns.tf | 47 ++ tags.json | 6 + variables.tf | 104 +++++ 26 files changed, 2679 insertions(+), 6 deletions(-) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 code/lambda_function/index.py create mode 100644 diagram/architecture_diagram.png create mode 100644 env_files/dev_env.tfvars create mode 100644 events.tf create mode 100644 lambda.tf create mode 100644 main.tf create mode 100644 pipeline_scripts/hpo_with_monitor_pipeline.py create mode 100644 pipeline_scripts/hpo_with_monitor_pipeline.yaml create mode 100644 pipeline_scripts/inference_with_monitor_pipeline.py create mode 100644 pipeline_scripts/inference_with_monitor_pipeline.yaml create mode 100644 pipeline_scripts/pipeline_helper.py create mode 100644 pipeline_scripts/train_monitor_pipeline.py create mode 100644 pipeline_scripts/train_monitor_pipeline.yaml create mode 100644 scripts/data_check_preprocessing.py create mode 100644 scripts/evaluation.py create mode 100644 scripts/inference_evaluation.py create mode 100644 scripts/postprocess_monitor_script.py create mode 100644 scripts/scoring_preprocessing.py create mode 100644 scripts/training.py create mode 100644 scripts/training_preprocessing.py create mode 100644 sns.tf create mode 100644 tags.json create mode 100644 variables.tf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f1573e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# General +.DS_Store +.AppleDouble +.LSOverride \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..4e92d93 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,90 @@ +variables: + TF_ROOT: . + TF_STATE_NAME: "${CI_COMMIT_REF_SLUG}" + CACHE_FALLBACK_KEY: "test-state" + LAMBDA_FILE_NAME: "lambda_function_payload.zip" # Same as the Lambda function name in lambda.tf file. + GIT_CLEAN_FLAGS: "none" + REGION: "us-east-1" # Modify the default value if your resources are in a different region. + +cache: + key: "${CI_COMMIT_REF_SLUG}" + paths: + - ${TF_ROOT}/.terraform + +stages: + - pipeline + - prepare + - validate + - build + - deploy + - destroy + +buildpipeline: + stage: pipeline + script: + - yum install python3 python3-pip unzip -y + - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + - unzip -o awscliv2.zip + - ./aws/install + - export AWS_DEFAULT_REGION=${REGION} + - aws sagemaker list-domains + - pip3 install boto3 sagemaker pandas pyyaml + - python3 ./pipeline_scripts/train_monitor_pipeline.py + - python3 ./pipeline_scripts/hpo_with_monitor_pipeline.py + - python3 ./pipeline_scripts/inference_with_monitor_pipeline.py + +init: + stage: prepare + script: + - gitlab-terraform init + +validate: + stage: validate + script: + - yum install zip -y + - zip -j ${LAMBDA_FILE_NAME} code/lambda_function/index.py + - gitlab-terraform validate + - ls -lart + artifacts: + paths: + - ${TF_ROOT}/${LAMBDA_FILE_NAME} + expire_in: 1 week + +plan: + stage: build + script: + - yum install -y jq # jq is required by gitlab-terraform + - gitlab-terraform plan -var-file env_files/dev_env.tfvars + - gitlab-terraform plan-json -var-file env_files/dev_env.tfvars + artifacts: + name: plan + paths: + - ${TF_ROOT}/plan.cache + - ${TF_ROOT}/${LAMBDA_FILE_NAME} + reports: + terraform: ${TF_ROOT}/plan.json + +apply: + stage: deploy + script: + - gitlab-terraform apply + dependencies: + - plan + when: manual + +destroy: + stage: destroy + script: + - gitlab-terraform plan -var-file env_files/dev_env.tfvars + - gitlab-terraform destroy -var-file env_files/dev_env.tfvars + when: manual + dependencies: + - plan + +.setup: + script: + - yum install -y git python3 python3-pip + - pip3 --no-cache-dir install --upgrade awscli + - echo "USERID - $(aws sts get-caller-identity --query 'UserId' --output text)" + - echo "AccountID - $(aws sts get-caller-identity --query 'Account' --output text)" + - echo "Region - $(aws configure get region)" diff --git a/README.md b/README.md index 7f92204..79cfeb0 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,97 @@ -## My Project +# MLOps for Batch Inference with Amazon SageMaker, HashiCorp Terraform, and GitLab CI/CD +This repository provides an illustrative example of creating an MLOps workflow to manage batch inference workloads in production, including data/model monitoring and automatic re-training. -TODO: Fill this README out! +You'll find: -Be sure to: +- Details of the MLOps pipeline components with SageMaker, Terraform, and GitLab CI/CD. +- A demonstration of Infrastructure as Code (IaC) with Terraform. +- A structured repository with scripts and data directories for easy reference. -* Change the title in this README -* Edit your repository description on GitHub + +## Prerequisites +Before proceeding with the usage of this repository, ensure that you meet the following prerequisites: + +- An AWS account +- Amazon SageMaker Studio +- SageMaker execution role with S3 read/write and KMS encrypt/decrypt permissions +- One S3 bucket for storing data, scripts, and model artifacts +- Terraform version 0.13.5 or greater +- GitLab with a working docker runner for pipeline execution +- AWS CLI +- jq +- unzip +- Python3 (Python 3.7 or greater) and the following Python packages: + - boto3 + - sagemaker + - pandas + - pyyaml + +## Architecture Diagram +The figure below depicts the architecture diagram for the solution in this repository. + +![example](diagram/architecture_diagram.png) + +## Variables and Configuration +The table below shows the variables that are used to parameterize this solution. + +| Name | Description | Type | Default | +|------|-------------|------|---------| +|bucket_name|An existing s3 bucket that is used to store data, scripts, and model artifacts|String|N/A| +|bucket_prefix|S3 prefix for the ML project|String|N/A| +|bucket_train_prefix|S3 prefix for training data|String|N/A| +|bucket_inf_prefix|S3 prefix for inference data|String|N/A| +|notification_function_name|Name of the Lambda function that prepares and sends notification messages about SageMaker Pipelines step state change|String|N/A| +|custom_notification_config|The configuration for customizing notification message for specific SageMaker Pipelines steps when a specific pipeline execution status is detected|String|N/A| +|email_recipient|The email address list for receiving SageMaker Pipelines step state change notification|List(String)|N/A| +|pipeline_inf|Name of the SageMaker inference pipeline|String|InferencePipeline| +|pipeline_train|Name of the SageMaker training pipeline|String|TrainingPipeline| +|pipeline_trainwhpo|Name of SageMaker training pipeline with HPO|String|TrainingWHPOPipeline| +|recreate_pipelines|If set to true, the 3 existing SageMaker Pipelines (training, inference, training with HPO) will be deleted and new ones will be created when GitLab CICD is run|Bool|true| +|model_package_group_name|Name of the model package group|String|N/A| +|accuracy_mse_threshold|Maximum value of MSE before requiring an update to the model|Float|10.00| +|role_arn|The IAM role ARN of the SageMaker pipeline execution role|String|N/A| +|kms_key|KMS key ARN for S3 and SageMaker encryption|ARN|N/A| +|subnet_id|Subnet ID for SageMaker networking configuration|String|N/A| +|sg_id|Security Group Id for SageMaker networking configuration|String|N/A| +|upload_training_data|If set to true, training data will be uploaded to S3, and this upload operation will trigger the execution of the Training Pipeline|Bool|true| +|upload_inference_data|If set to true, inference data will be uploaded to S3, and this upload operation will trigger the execution of the Inference Pipeline|Bool|false| +|user_id|The employee ID of the SageMaker user which is added as a tag to SageMaker resources|String|N/A| + + +## Solution Deployment + +Follow these steps to deploy the solution in your AWS account: + +1. Clone the GitHub repository into your workspace. +2. Review and modify the GitLab CICD pipeline configuration to suit your environment. The configuration is specified in the `./gitlab-ci.yaml` file. +3. Update the general solution variables in the `./env_files/dev_env.tfvars` file. This file contains variables for both Python scripts and Terraform automation. + + a. Check the additional SageMaker Pipelines parameters that are defined in the YAML files under "./batch_scoring_pipeline/pipeline_scripts". Review and update the parameters if necessary. + +4. Review SageMaker Pipelines creation scripts in `./pipeline_scripts/` as well as the scripts that are referenced by them in `./scripts/` folder. The example scripts provided in this repo are based on the [Abalone dataset](https://archive.ics.uci.edu/dataset/1/abalone). If you are going to use a different dataset, ensure you update the scripts to suit your particular problem. + +5. Put your data files into the `./data` folder following the below naming convention. If you are using the Abalone dataset along with the provided example scripts, ensure the data files are headerless, the training data include both independent and target variables with the original order of columns preserved, the inference data only include independent variables, and the ground truth file only include the target variable. + + a. training-data.csv + b. inference-data.csv + c. ground-truth.csv + +6. Commit and push the code to the repository to trigger the GitLab CICD pipeline run (1st run). + + a. Note: The first pipeline run will fail on the “pipeline” stage since there’s no approved model version yet for the inference pipeline script to use. Review the step log and verify a new SageMaker Pipeline named "Training Pipeline" has been successfully created. + + b. Open SageMaker Studio UI, review and execute the Training Pipeline. + + c. After the successful execution of the "Training Pipeline", approve the registered model version in SageMaker Model Registry; and re-run the entire GitLab CI/CD pipeline. +7. Review the Terraform plan output in the build stage. Approve the manual `apply` stage in the GitLab CICD pipeline to resume the pipeline execution and authorize Terraform to create the monitoring and notification resources in your AWS account. +8. Finally review the SageMaker pipelines execution status and output in the SageMaker Studio UI and check your email for notification messages. The default message body is in JSON format. + +# Clean Up +Upon concluding your exploration of this solution, you can clean up the resources by following these steps: + +1. Employ the `destroy` stage in the GitLab CI/CD pipeline to eliminate all resources provisioned by Terraform. +2. Utilize the AWS CLI to `list` and `remove` any remaining pipelines that are created by the Python scripts. +3. (Optional) Delete other AWS resources such as the S3 bucket or IAM role created outside the CI/CD pipeline. ## Security @@ -13,5 +99,5 @@ See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more inform ## License -This library is licensed under the MIT-0 License. See the LICENSE file. +This sample code is made available under the MIT-0 license. See the LICENSE file. diff --git a/code/lambda_function/index.py b/code/lambda_function/index.py new file mode 100644 index 0000000..88a16c1 --- /dev/null +++ b/code/lambda_function/index.py @@ -0,0 +1,91 @@ +"""Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved""" +import os +import json +import logging +import boto3 +from botocore.exceptions import ClientError + +logger = logging.getLogger() +logger.setLevel(logging.INFO) +sns_client = boto3.client('sns') + +TOPIC_ARN = os.environ['TOPIC_ARN'] + + +def sm_pipeline_exec_notification(pipeline_event): + """To send notification email for FAILED sagemaker pipeline execution.""" + + execution_details = pipeline_event["execution_details"] + exec_status = execution_details["currentPipelineExecutionStatus"] + pipeline_name = execution_details["pipelineArn"].split("/")[-1] + email_subject = f"SageMaker Pipeline: {pipeline_name} Execution - {exec_status}" # noqa: E501 + + try: + sns_response = sns_client.publish( + TopicArn=TOPIC_ARN, + Subject=email_subject, + Message=json.dumps(exec_status,sort_keys=True, indent=4) + ) + logger.info("Email of pipeline failure was sent successfully. %s",sns_response) + + except Exception as error: + logger.error(error) + + +def sm_pipeline_step_notification(pipeline_event): + """To send notification email for SELECTED pipeline steps.""" + execution_details = pipeline_event["execution_details"] + logger.debug(execution_details.items()) + step_name = execution_details["stepName"] + current_step_status = execution_details["currentStepStatus"] + addon_msg = "None" + email_subject = f"SageMaker Pipeline Step: {step_name} Execution - {current_step_status}" # noqa: E501 + + ############################################################### + # Adding extra custom message for predefined steps and status # + ############################################################### + if "notification_setup_list" in pipeline_event: + for custom_notification in pipeline_event["notification_setup_list"]: # noqa: E501 + if custom_notification["step_name"] == step_name and custom_notification["step_status"] == current_step_status: # noqa: E501 + addon_msg = custom_notification["step_msg"] + email_subject += " - Action Required" + + execution_details["Addon_Message"]=str(addon_msg) + try: + sns_response = sns_client.publish( + TopicArn=TOPIC_ARN, + Subject=email_subject, + Message=json.dumps(execution_details, sort_keys=True, indent=4) + ) + + logger.info("Email of pipeline step change was sent successfully.\n %s",sns_response) + except Exception as error: + logger.error(error) + + +def processing_sm_pipeline_notification(event): + """To send notification email based on the pipeline execution types.""" + if "Execution Step Status Change" in event["pipeline_update"]: + logger.info("Pipeline Step Status Notification") + sm_pipeline_step_notification(event) + + elif "Pipeline Execution Status Change" in event["pipeline_update"]: + logger.info("Pipeline Execution Status Notification") + sm_pipeline_exec_notification(event) + else: + logger.error("Invalid pipeline update event.") + + +def lambda_handler(event, context): + """Lambda_handler""" + logger.info(event) + logger.debug(context) + + try: + if "pipeline_update" in event: + logger.info("Received pipeline status notification") + processing_sm_pipeline_notification(event) + + except KeyError as client_error: + logger.error("The event trigger: %s is invalid!", client_error) + return False diff --git a/diagram/architecture_diagram.png b/diagram/architecture_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..f71a7f292e476715bbc4dffa5c55de96373bbfbc GIT binary patch literal 217522 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%0AT@rbM*XXNN%2?}8v#Yzp=mGY3%F(!x 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 T&Go2hV*mnAS3j3^P6 +} +EOF + } +} + +resource "aws_lambda_permission" "execution_eventbridge" { + statement_id = "AllowExecutionFromEvents${var.user_id}" + action = "lambda:InvokeFunction" + function_name = var.notification_function_name + principal = "events.amazonaws.com" + source_arn = aws_cloudwatch_event_rule.pipeline_status_change.arn +} + +############################################ +# EventBridge rule for training step change # +############################################ +resource "aws_cloudwatch_event_rule" "pipeline_train_step_change" { + name = "sm-pipeline-train-step-${var.user_id}-${data.aws_region.current.name}" + description = "Detect the pipeline execution step change on specific pipeline " + tags = local.tags + event_pattern = <, + "notification_setup_list":${local.notification_setup_list} +} +EOF + } +} + +resource "aws_lambda_permission" "step_train_notification" { + statement_id = "AllowStepStatusFromEvents-train-${var.user_id}" + action = "lambda:InvokeFunction" + function_name = var.notification_function_name + principal = "events.amazonaws.com" + source_arn = aws_cloudwatch_event_rule.pipeline_train_step_change.arn +} + +############################################ +# EventBridge rule for inference pipeline # +############################################ +resource "aws_cloudwatch_event_rule" "pipeline_inf_step_change" { + name = "sm-pipeline-inf-step-${var.user_id}-${data.aws_region.current.name}" + description = "Detect the pipeline execution step change on specific pipeline " + + event_pattern = <, + "notification_setup_list":${local.notification_setup_list} +} +EOF + } +} + +resource "aws_lambda_permission" "step_inf_notification" { + statement_id = "AllowStepStatusFromEvents-inf-${var.user_id}" + action = "lambda:InvokeFunction" + function_name = var.notification_function_name + principal = "events.amazonaws.com" + source_arn = aws_cloudwatch_event_rule.pipeline_inf_step_change.arn +} + +########################################################## +# EventBridge rule for failed step - inference pipeline # +########################################################## +resource "aws_cloudwatch_event_rule" "pipeline_infer_step_failure" { + name = "sm-pipeline-fail-${var.pipeline_inf}-${var.user_id}-${data.aws_region.current.name}" + description = "Detect a failure on the inference pipeleine's module quality calculation to trigger the training pipeline" + # The step name of the AWS Model Building Pipeline is ModelQualityCalcStep + event_pattern = <= 0: + return line.rstrip().split("\"")[1] + +# Test for vars file +file_exists(tfvarsfile,"Testing for tfvars file") +log("Pipeline Helper Loaded") \ No newline at end of file diff --git a/pipeline_scripts/train_monitor_pipeline.py b/pipeline_scripts/train_monitor_pipeline.py new file mode 100644 index 0000000..5c1a385 --- /dev/null +++ b/pipeline_scripts/train_monitor_pipeline.py @@ -0,0 +1,405 @@ +import json +import boto3 +import sagemaker +import pandas as pd +import pipeline_helper as ph +from sagemaker.network import NetworkConfig +from sagemaker.sklearn.processing import SKLearnProcessor +from sagemaker.processing import ProcessingInput, ProcessingOutput +from sagemaker.workflow.steps import ProcessingStep +from sagemaker.workflow.check_job_config import CheckJobConfig +from sagemaker.workflow.functions import Join +from sagemaker.workflow.execution_variables import ExecutionVariables +from sagemaker.sklearn.estimator import SKLearn +from sagemaker.inputs import TrainingInput +from sagemaker.workflow.steps import TrainingStep +from sagemaker.processing import ScriptProcessor +from sagemaker.workflow.properties import PropertyFile +from sagemaker.model_metrics import MetricsSource, ModelMetrics, FileSource +from sagemaker.drift_check_baselines import DriftCheckBaselines +from sagemaker.workflow.step_collections import RegisterModel +from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo +from sagemaker.workflow.condition_step import ConditionStep +from sagemaker.workflow.functions import JsonGet +from sagemaker.workflow.pipeline import Pipeline +from sagemaker.model_monitor import DatasetFormat, model_monitoring +from sagemaker.workflow.quality_check_step import ( + DataQualityCheckConfig, + QualityCheckStep, +) + +from sagemaker.workflow.parameters import ( + ParameterInteger, + ParameterString, + ParameterFloat, + ParameterBoolean +) + +region = boto3.Session().region_name +sagemaker_session = sagemaker.session.Session() +s3_client = boto3.client("s3") + +## Variables +# Common variables +accuracy_mse_threshold = float(ph.get_variable('accuracy_mse_threshold')) # the MSE threshold for accepting a trained model +bucket = ph.get_variable('bucket_name') # s3 bucket used by pipeline +user_id = ph.get_variable('user_id') +kms_key = ph.get_variable('kms_key') +model_package_group_name = ph.get_variable('model_package_group_name') # name you chose for your model_package_group_name +prefix = ph.get_variable('bucket_prefix') # the reserved prefix for this project +recreate_pipelines = ph.get_variable('recreate_pipelines') +role_arn = ph.get_variable('role_arn') +sg_id = ph.get_variable('sg_id') # SECURITY GROUP ID +subnet_id = ph.get_variable('subnet_id') # SUBNET ID FROM YOUR VPC + +# Pipeline specific variables +pipeline_name = ph.get_variable('pipeline_train') # name you chose for your training pipeline +training_data_src = ph.get_variable('bucket_train_prefix') +upload_training_data = ph.get_variable('upload_training_data') + +# Built vars +input_data_uri = f"s3://{bucket}/{prefix}/{training_data_src}/training-data.csv" # where the raw input data is stored +role = role_arn +security_group_ids = [sg_id] +subnets = [subnet_id] +tags = [{"Key":"user_id","Value":user_id}] + +# Print out variables +globvars = globals().copy() +ph.printvars(globvars) + +## Pipeline Parameters +framework_version = ph.get_parameter("framework_version","0.23-1") + +acc_mse_threshold = ParameterFloat(name="AccuracyMseThreshold", default_value=float(ph.get_parameter("AccuracyMseThreshold",accuracy_mse_threshold))) +monitoring_instance_count = ParameterInteger(name="MonitoringInstanceCount", default_value=ph.get_parameter("MonitoringInstanceCount",1)) +monitoring_instance_type = ParameterString(name="MonitoringInstanceType", default_value=ph.get_parameter("MonitoringInstanceType","ml.m5.xlarge")) +processing_instance_count = ParameterInteger(name="ProcessingInstanceCount", default_value=ph.get_parameter("ProcessingInstanceCount",1)) +processing_instance_type = ParameterString(name="ProcessingInstanceType", default_value=ph.get_parameter("ProcessingInstanceType","ml.m5.xlarge")) +training_instance_count = ParameterInteger(name="TrainingInstanceCount", default_value=ph.get_parameter("TrainingInstanceCount",1)) +training_instance_type = ParameterString(name="TrainingInstanceType", default_value=ph.get_parameter("TrainingInstanceType","ml.m5.xlarge")) +transform_instance_type = ParameterString(name="TransformInstanceType", default_value=ph.get_parameter("TransformInstanceType","ml.m5.xlarge")) + +# Data quality check step parameters +register_new_baseline_data_quality = ParameterBoolean(name="RegisterNewDataQualityBaseline", default_value=ph.get_parameter("RegisterNewDataQualityBaseline",True)) +skip_check_data_quality = ParameterBoolean(name="SkipDataQualityCheck", default_value=ph.get_parameter("SkipDataQualityCheck",True)) + +# Static parameters +user_id = ParameterString(name="EmpId", default_value=user_id) +input_data = ParameterString(name="InputData", default_value=input_data_uri) +model_approval_status = ParameterString(name="ModelApprovalStatus", default_value="PendingManualApproval") + +# Data quality check step parameters +supplied_baseline_constraints_data_quality = ParameterString(name="DataQualitySuppliedConstraints", default_value="") +supplied_baseline_statistics_data_quality = ParameterString(name="DataQualitySuppliedStatistics", default_value="") + +# Uploading Pre-processing script to S3 +response = s3_client.upload_file('./scripts/training_preprocessing.py', + bucket, + '{}/scripts/training_preprocessing.py'.format(prefix)) +# Uploading Training script to S3 +response = s3_client.upload_file('./scripts/training.py', + bucket, + '{}/scripts/training.py'.format(prefix)) +# Uploading Evaluation script to S3 +response = s3_client.upload_file('./scripts/evaluation.py', + bucket, + '{}/scripts/evaluation.py'.format(prefix)) + +## Create network config +network_config = NetworkConfig( + security_group_ids=security_group_ids, + subnets=subnets, + enable_network_isolation=True, + encrypt_inter_container_traffic=True, +) + +## Pre Processing step +sklearn_processor = SKLearnProcessor( + framework_version=framework_version, + instance_type=processing_instance_type, + instance_count=processing_instance_count, + base_job_name="sklearn-training-preprocess", + role=role, + output_kms_key = kms_key, + volume_kms_key = kms_key, + network_config = network_config, + tags = tags, +) + +step_process = ProcessingStep( + name="TrainingPreProcessStep", + processor=sklearn_processor, + inputs=[ + ProcessingInput(source=input_data, destination="/opt/ml/processing/input"), + ], + outputs=[ + ProcessingOutput(output_name="train", source="/opt/ml/processing/train", destination=f"s3://{bucket}/{prefix}/training/data/processed/train"), + ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation", destination=f"s3://{bucket}/{prefix}/training/data/processed/validation"), + ProcessingOutput(output_name="test", source="/opt/ml/processing/test", destination=f"s3://{bucket}/{prefix}/training/data/processed/test"), + ], + code=f"s3://{bucket}/{prefix}/scripts/training_preprocessing.py", +) + +# Data Quality Step +check_job_config = CheckJobConfig( + role=role, + instance_count=monitoring_instance_count, + instance_type=monitoring_instance_type, + volume_size_in_gb=30, + sagemaker_session=sagemaker_session, + volume_kms_key=kms_key, + output_kms_key=kms_key, + network_config = network_config, + tags = tags, +) + +data_quality_check_config = DataQualityCheckConfig( + baseline_dataset=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri, + dataset_format=DatasetFormat.csv(header=False, output_columns_position="START"), + output_s3_uri=Join( + on="/", + values=[ + "s3:/", + bucket, + prefix, + "monitoring", + ExecutionVariables.PIPELINE_EXECUTION_ID, + "dataqualitycheckstep", + ], + ), +) + +data_quality_check_step = QualityCheckStep( + name="DataQualityCheckStep", + skip_check=skip_check_data_quality, + register_new_baseline=register_new_baseline_data_quality, + quality_check_config=data_quality_check_config, + check_job_config=check_job_config, + supplied_baseline_statistics=supplied_baseline_statistics_data_quality, + supplied_baseline_constraints=supplied_baseline_constraints_data_quality, + model_package_group_name=model_package_group_name, +) + +# configure parameters for SKLearn Estimator +training_code_location = f's3://{bucket}/{prefix}/training/jobs/source' # where the custom training script will be stored as tar.gz file on S3 + +# training_base_job_name = 'sklearn-rf' # training job base-name +training_output_path = f's3://{bucket}/{prefix}/training/jobs/output' # where the outputs of training job including model artifacts will be stored + +# sagemaker SKLearn image +image_uri = sagemaker.image_uris.retrieve( + framework="sklearn", + region=region, + version=framework_version, + py_version="py3", + instance_type=training_instance_type, +) + +script_path = "./scripts/training.py" + +sklearn_train = SKLearn( + entry_point=script_path, + image_uri = image_uri, + instance_type=training_instance_type, + role=role, + sagemaker_session=sagemaker_session, + hyperparameters={"max_depth": 2}, + output_kms_key = kms_key, + volume_kms_key = kms_key, + network_config = network_config, + tags = tags, + code_location = training_code_location, + output_path = training_output_path, + content_type = "text/csv", + data_type = "S3Prefix", + split_type = "Line" +) + +# Model Training step +step_train = TrainingStep( + name="TrainingStep", + estimator=sklearn_train, + inputs={ + "train": TrainingInput( + s3_data=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri, + content_type="text/csv", + ), + "validation": TrainingInput( + s3_data=step_process.properties.ProcessingOutputConfig.Outputs["validation"].S3Output.S3Uri, + content_type="text/csv", + ), + }, + depends_on=[data_quality_check_step.name], +) + +# Evaluation step +sklearn_eval = ScriptProcessor( + image_uri=image_uri, + command=["python3"], + instance_type=processing_instance_type, + instance_count=processing_instance_count, + base_job_name="script-eval", + role=role, + output_kms_key = kms_key, + volume_kms_key = kms_key, + network_config = network_config, + tags = tags, +) + +evaluation_report = PropertyFile( + name="EvaluationReport", output_name="evaluation", path="evaluation.json" +) +step_eval = ProcessingStep( + name="TrainingEval", + processor=sklearn_eval, + inputs=[ + ProcessingInput( + source=step_train.properties.ModelArtifacts.S3ModelArtifacts, + destination="/opt/ml/processing/model", + ), + ProcessingInput( + source=step_process.properties.ProcessingOutputConfig.Outputs["test"].S3Output.S3Uri, + destination="/opt/ml/processing/test", + ), + ], + outputs=[ + ProcessingOutput(output_name="evaluation", source="/opt/ml/processing/evaluation", + destination=Join( + on="/", + values=[ + "s3://{}".format(bucket), + prefix, + "training/evaluation", + ExecutionVariables.PIPELINE_EXECUTION_ID, + "evaluation-report", + ], + ) + ) + ], + code=f"s3://{bucket}/{prefix}/scripts/evaluation.py", + property_files=[evaluation_report], +) + +model_metrics = ModelMetrics( + model_data_statistics=MetricsSource( + s3_uri=data_quality_check_step.properties.CalculatedBaselineStatistics, + content_type="application/json", + ), + model_data_constraints=MetricsSource( + s3_uri=data_quality_check_step.properties.CalculatedBaselineConstraints, + content_type="application/json", + ), + model_statistics=MetricsSource( + s3_uri = Join( + on="/", + values=[ + "s3://{}".format(bucket), + prefix, + "training/evaluation", + ExecutionVariables.PIPELINE_EXECUTION_ID, + "evaluation-report", + "evaluation.json" + ], + ), + content_type="application/json", + ) +) + +drift_check_baselines = DriftCheckBaselines( + model_data_statistics=MetricsSource( + s3_uri=data_quality_check_step.properties.BaselineUsedForDriftCheckStatistics, + content_type="application/json", + ), + model_data_constraints=MetricsSource( + s3_uri=data_quality_check_step.properties.BaselineUsedForDriftCheckConstraints, + content_type="application/json", + ), +) + +# Registering the model in ModelRegister +step_register = RegisterModel( + name="ModelRegisterStep", + estimator=sklearn_train, + model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts, + content_types=["text/csv"], + response_types=["text/csv"], + inference_instances=["ml.t2.medium", "ml.m5.xlarge"], + transform_instances=[transform_instance_type], + model_package_group_name=model_package_group_name, + approval_status=model_approval_status, + model_metrics=model_metrics, + drift_check_baselines=drift_check_baselines, + tags = tags +) + +cond_lte = ConditionLessThanOrEqualTo( + left=JsonGet( + step_name=step_eval.name, + property_file=evaluation_report, + json_path="regression_metrics.mse.value", + ), + right=acc_mse_threshold, +) + +step_cond = ConditionStep( + name="MSECond", + conditions=[cond_lte], + if_steps=[step_register], + else_steps=[], +) + +# Defining the pipeline object +pipeline = Pipeline( + name=pipeline_name, + parameters=[ + processing_instance_type, + processing_instance_count, + training_instance_type, + training_instance_count, + monitoring_instance_type, + monitoring_instance_count, + transform_instance_type, + model_approval_status, + input_data, + user_id, + acc_mse_threshold, + skip_check_data_quality, + register_new_baseline_data_quality, + supplied_baseline_statistics_data_quality, + supplied_baseline_constraints_data_quality, + ], + steps=[step_process, data_quality_check_step, step_train, step_eval, step_cond], +) + +print(pipeline) + +# Validate the pipeline definition +definition = json.loads(pipeline.definition()) +print(definition) + +# Update/create the pipeline +# If set, delete existing pipeline first +if recreate_pipelines == "true": + try: + sm_client = boto3.client("sagemaker") + sm_client.delete_pipeline(PipelineName=pipeline_name) + print('Pipeline {} has been deleted'.format(pipeline_name)) + except Exception as e: + print('An error occured: {} '.format(e)) + +pipeline.upsert(role_arn=role) +print('Pipeline {} has been created'.format(pipeline_name)) + +# training data in it's raw format +local_path = "data/training-data.csv" + +if upload_training_data == "true": + print('Uploading training data') + # Upload training data to S3 + base_uri = f"s3://{bucket}/{prefix}/training/data/raw" + input_data_uri = sagemaker.s3.S3Uploader.upload( + local_path=local_path, + desired_s3_uri=base_uri, + ) + print(input_data_uri) \ No newline at end of file diff --git a/pipeline_scripts/train_monitor_pipeline.yaml b/pipeline_scripts/train_monitor_pipeline.yaml new file mode 100644 index 0000000..aec135c --- /dev/null +++ b/pipeline_scripts/train_monitor_pipeline.yaml @@ -0,0 +1,12 @@ +Parameters: + # AccuracyMseThreshold: 10 # This value will overwrite the variable value provided from tfvars + framework_version: 0.23-1 + MonitoringInstanceCount: 1 + MonitoringInstanceType: ml.m5.xlarge + ProcessingInstanceCount: 1 + ProcessingInstanceType: ml.m5.xlarge + RegisterNewDataQualityBaseline: True + SkipDataQualityCheck: True + TrainingInstanceCount: 1 + TrainingInstanceType: ml.m5.xlarge + TransformInstanceType: ml.m5.xlarge \ No newline at end of file diff --git a/scripts/data_check_preprocessing.py b/scripts/data_check_preprocessing.py new file mode 100644 index 0000000..be7a163 --- /dev/null +++ b/scripts/data_check_preprocessing.py @@ -0,0 +1,42 @@ +""" + script for pre-processing of data quality check +""" + +import logging +import pathlib +import pandas as pd +import numpy as np + +logger = logging.getLogger() +logger.setLevel(logging.INFO) +logger.addHandler(logging.StreamHandler()) + +print("Beginning data check preprocessing step") + +if __name__ == "__main__": + base_dir = "/opt/ml/processing" + + logger.debug("Starting pre-processing.") + + logger.debug("Reading batch inference results.") + with open(f"{base_dir}/inference_results/inference-data-processed.csv.out") as fp: + results = fp.read() + + y = [float(item) for item in results.replace('[','').replace(']','').replace(' ','').split(',')] + + Y = pd.DataFrame(y) + + logger.debug("Reading input data.") + X = pd.read_csv(f"{base_dir}/inference_data/inference-data-processed.csv", + header=None) + + logger.debug("Merging batch inference input and output.") + df = pd.DataFrame(np.concatenate((Y.values,X.values),axis=1)) + + output_dir = f"{base_dir}/output" + pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True) + + logger.info("Writing out the merged data") + df.to_csv(f"{output_dir}/inference-data-combined.csv", index=False, header=False) + +print("Finished data check preprocessing step") diff --git a/scripts/evaluation.py b/scripts/evaluation.py new file mode 100644 index 0000000..ee77490 --- /dev/null +++ b/scripts/evaluation.py @@ -0,0 +1,49 @@ +""" + script for evaluating model results. +""" + +import json +import pathlib +import pickle +import tarfile +import joblib +import numpy as np +import pandas as pd +from sklearn.ensemble import RandomForestRegressor +from sklearn.metrics import mean_squared_error + +print("Beginning evaluation step") + +if __name__ == "__main__": + model_path = f"/opt/ml/processing/model/model.tar.gz" + with tarfile.open(model_path) as tar: + tar.extractall(path=".") + + model = joblib.load("model.joblib") + + test_path = "/opt/ml/processing/test/testing-processed.csv" + df = pd.read_csv(test_path, header=None) + + y_test = df.iloc[:, 0].to_numpy() + df.drop(df.columns[0], axis=1, inplace=True) + + X_test = df.to_numpy() + + predictions = model.predict(X_test) + + mse = mean_squared_error(y_test, predictions) + std = np.std(y_test - predictions) + report_dict = { + "regression_metrics": { + "mse": {"value": mse, "standard_deviation": std}, + }, + } + + output_dir = "/opt/ml/processing/evaluation" + pathlib.Path(output_dir).mkdir(parents=True, exist_ok=True) + + evaluation_path = f"{output_dir}/evaluation.json" + with open(evaluation_path, "w") as f: + f.write(json.dumps(report_dict)) + +print("Finished evaluation step") \ No newline at end of file diff --git a/scripts/inference_evaluation.py b/scripts/inference_evaluation.py new file mode 100644 index 0000000..88fe4ea --- /dev/null +++ b/scripts/inference_evaluation.py @@ -0,0 +1,59 @@ +""" + script for evaluating inference results of the trained model with ground truth values. +""" + +import json +import pathlib +import argparse +import numpy as np +import pandas as pd +from sklearn.metrics import mean_squared_error + +print("Begining inference evaluation step") + +if __name__ == "__main__": + + parser = argparse.ArgumentParser() + parser.add_argument("--mse-threshold", type=float, default=10.0) + args, _ = parser.parse_known_args() + + print("Received arguments {}".format(args)) + + base_dir = "/opt/ml/processing" + + with open(f"{base_dir}/inference_results/inference-data-processed.csv.out") as fp: + results = fp.read() + + y = [float(item) for item in results.replace('[','').replace(']','').replace(' ','').split(',')] + predictions = pd.DataFrame(y) + + ground_truth = pd.read_csv(f"{base_dir}/ground_truth/ground-truth.csv", + header=None) + + mse = mean_squared_error(ground_truth.values, predictions.values) + print("MSE found") + print(mse) + std = np.std(ground_truth.values - predictions.values) + + mse_thresh = args.mse_threshold + model_quality_passed = True if mse