-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a module for Data Quality Monitoring Job for a SageMaker Endpoint.
- Loading branch information
Patrick Cloke
committed
Jun 11, 2024
1 parent
37ec764
commit 2bd0ae7
Showing
18 changed files
with
887 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# SageMaker Model Monitoring | ||
|
||
## Description | ||
|
||
This module creates a SageMaker Model Monitoring job for data quality. | ||
It requires a deployed model endpoint and the proper check steps | ||
for each monitoring job: | ||
|
||
* Data Quality: [QualityCheck step](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-quality-check) | ||
|
||
### Architecture | ||
|
||
![SageMaker Model Monitoring Module Architecture](docs/_static/sagemaker-model-monitoring-module-architecture.png "SageMaker Model Monitoring Module Architecture") | ||
|
||
## Inputs/Outputs | ||
|
||
### Input Parameters | ||
|
||
#### Required | ||
|
||
- `endpoint-name`: The name of the endpoint used to run the monitoring job. | ||
- `security-group-id`: The VPC security group IDs, should provide access to the given `subnet-ids`. | ||
- `subnet-ids`: The ID of the subnets in the VPC to which you want to connect your training job or model. | ||
- `model-package-arn`: Model package ARN | ||
- `model-bucket-arn`: S3 bucket ARN for model artifacts | ||
- `kms-key-id`: The KMS key used to encrypted storage and output. | ||
- `data-quality-checkstep-output-prefix`: The S3 prefix in `model-artifacts-bucket-arn` which contains the output from the corresponding [Check step in the SageMaker Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#build-and-manage-steps-types). | ||
- `data-quality-output-prefix`: The S3 prefix in `model-artifacts-bucket-arn` to contain the output of the monitoring job. | ||
|
||
|
||
#### Optional | ||
|
||
- `sagemaker-project-id`: SageMaker project id | ||
- `sagemaker-project-name`: SageMaker project name | ||
- `data-quality-instance-count`: The number of ML compute instances to use in the model monitoring job. | ||
- `data-quality-instance-type`: The ML compute instance type for the processing job. | ||
- `data-quality-instance-volume-size-in-gb`: The size of the ML storage volume, in gigabytes, that you want to provision. | ||
- `data-quality-max-runtime-in-seconds`: The maximum length of time, in seconds, the monitoring job can run before it is stopped. | ||
- `data-quality-schedule-expression`: A cron expression that describes details about the monitoring schedule. | ||
|
||
### Sample manifest declaration | ||
|
||
```yaml | ||
name: monitoring | ||
path: modules/sagemaker/sagemaker-model-monitoring | ||
parameters: | ||
- name: sagemaker_project_id | ||
value: dummy123 | ||
- name: sagemaker_project_name | ||
value: dummy123 | ||
- name: model_package_arn | ||
value: arn:aws:sagemaker:<region>:<account>:model-package/<package_name>/1 | ||
- name: model_bucket_arn | ||
value: arn:aws:s3:::<bucket name> | ||
- name: data-quality-checkstep-output-prefix | ||
value: model-training-run-1234/dataqualitycheckstep | ||
- name: data-quality-output-prefix | ||
value: model-training-run-1234/monitor/dataqualityoutput | ||
- name: endpoint_name | ||
valueFrom: | ||
moduleMetadata: | ||
group: endpoints | ||
name: endpoint | ||
key: EndpointName | ||
- name: security_group_id | ||
valueFrom: | ||
moduleMetadata: | ||
group: endpoints | ||
name: endpoint | ||
key: SecurityGroupId | ||
- name: kms_key_id | ||
valueFrom: | ||
moduleMetadata: | ||
group: endpoints | ||
name: endpoint | ||
key: KmsKeyId | ||
- name: subnet_ids | ||
valueFrom: | ||
moduleMetadata: | ||
group: networking | ||
name: networking | ||
key: PrivateSubnetIds | ||
``` | ||
### Module Metadata Outputs | ||
- `ModelExecutionRoleArn`: SageMaker Model Execution IAM role ARN | ||
- `ModelName`: SageMaker Model name | ||
- `ModelPackageArn`: SageMaker Model package ARN | ||
- `EndpointName`: SageMaker Endpoint name | ||
- `EndpointUrl`: SageMaker Endpoint Url | ||
|
||
#### Output Example | ||
|
||
N/A |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
import os | ||
|
||
import aws_cdk | ||
import cdk_nag | ||
|
||
from sagemaker_model_monitoring.settings import ApplicationSettings | ||
from sagemaker_model_monitoring.stack import SageMakerModelMonitoringStack | ||
|
||
# Load application settings from env vars. | ||
app_settings = ApplicationSettings() | ||
|
||
environment = aws_cdk.Environment( | ||
account=os.environ["CDK_DEFAULT_ACCOUNT"], | ||
region=os.environ["CDK_DEFAULT_REGION"], | ||
) | ||
|
||
app = aws_cdk.App() | ||
stack = SageMakerModelMonitoringStack( | ||
scope=app, | ||
id=app_settings.settings.app_prefix, | ||
env=environment, | ||
**app_settings.parameters.model_dump(), | ||
) | ||
|
||
aws_cdk.Aspects.of(app).add(cdk_nag.AwsSolutionsChecks(log_ignores=False)) | ||
|
||
app.synth() |
25 changes: 25 additions & 0 deletions
25
modules/sagemaker/sagemaker-model-monitoring/deployspec.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
publishGenericEnvVariables: true | ||
deploy: | ||
phases: | ||
install: | ||
commands: | ||
- env | ||
# Install whatever additional build libraries | ||
- npm install -g [email protected] | ||
- pip install -r requirements.txt | ||
build: | ||
commands: | ||
- cdk deploy --require-approval never --progress events --app "python app.py" --outputs-file ./cdk-exports.json | ||
# Export metadata | ||
- seedfarmer metadata convert -f cdk-exports.json || true | ||
destroy: | ||
phases: | ||
install: | ||
commands: | ||
# Install whatever additional build libraries | ||
- npm install -g [email protected] | ||
- pip install -r requirements.txt | ||
build: | ||
commands: | ||
# execute the CDK | ||
- cdk destroy --force --app "python app.py" |
Binary file added
BIN
+55.4 KB
...odel-monitoring/docs/_static/sagemaker-model-monitoring-module-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions
1
...agemaker-model-monitoring/docs/_static/sagemaker-model-monitoring-module-architecture.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<mxfile modified="2024-06-10T19:00:42.984Z" host="design-inspector.a2z.com" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0" etag="ymXan4Qe_-5LTGC5bwpJ" version="10.1.8" type="device"><diagram id="Slb-7FiMrRCHa78ZGk73X" name="Page-1">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</diagram></mxfile> |
41 changes: 41 additions & 0 deletions
41
modules/sagemaker/sagemaker-model-monitoring/pyproject.toml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
[tool.ruff] | ||
exclude = [ | ||
".eggs", | ||
".git", | ||
".hg", | ||
".mypy_cache", | ||
".ruff_cache", | ||
".tox", | ||
".venv", | ||
"_build", | ||
"buck-out", | ||
"build", | ||
"dist", | ||
"codeseeder", | ||
] | ||
line-length = 120 | ||
target-version = "py38" | ||
|
||
[tool.ruff.lint] | ||
select = ["F", "I", "E", "W"] | ||
fixable = ["ALL"] | ||
|
||
[tool.mypy] | ||
python_version = "3.8" | ||
strict = true | ||
ignore_missing_imports = true | ||
disallow_untyped_decorators = false | ||
exclude = "codeseeder.out/|example/|tests/" | ||
warn_unused_ignores = false | ||
|
||
[tool.pytest.ini_options] | ||
addopts = "-v --cov=. --cov-report term" | ||
pythonpath = [ | ||
"." | ||
] | ||
|
||
[tool.coverage.run] | ||
omit = ["tests/*"] | ||
|
||
[tool.coverage.report] | ||
fail_under = 80 |
12 changes: 12 additions & 0 deletions
12
modules/sagemaker/sagemaker-model-monitoring/requirements-dev.in
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
awscli | ||
cdk-nag | ||
cfn-lint | ||
check-manifest | ||
mypy | ||
pip-tools | ||
pydot | ||
pyroma | ||
pytest | ||
ruff | ||
types-PyYAML | ||
types-setuptools |
Oops, something went wrong.