Skip to content
GitHubXDiscord

ModelQualityJobDefinition

The ModelQualityJobDefinition resource allows you to define and manage model quality monitoring jobs in AWS SageMaker. For more details, refer to the AWS SageMaker ModelQualityJobDefinitions documentation.

Create a basic ModelQualityJobDefinition with required properties and common optional settings.

import AWS from "alchemy/aws/control";
const modelQualityJobDefinition = await AWS.SageMaker.ModelQualityJobDefinition("basicModelQualityJob", {
ModelQualityAppSpecification: {
ContainerSpecifications: [{
ImageUri: "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-model-quality-image:latest",
Environment: {
"MODEL_S3_PATH": "s3://my-models/model.tar.gz"
}
}]
},
ModelQualityJobInput: {
EndpointName: "my-endpoint",
GroundTruthS3Input: {
S3Uri: "s3://my-groundtruth-data/",
ContentType: "application/json"
}
},
JobResources: {
ClusterConfig: {
InstanceType: "ml.m5.large",
InstanceCount: 1,
VolumeSizeInGB: 30
}
},
RoleArn: "arn:aws:iam::123456789012:role/my-sagemaker-role",
StoppingCondition: {
MaxRuntimeInSeconds: 3600
}
});

Define a ModelQualityJobDefinition that includes advanced settings such as baseline configuration and network settings.

const advancedModelQualityJobDefinition = await AWS.SageMaker.ModelQualityJobDefinition("advancedModelQualityJob", {
ModelQualityAppSpecification: {
ContainerSpecifications: [{
ImageUri: "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-advanced-model-quality-image:latest",
Environment: {
"MODEL_S3_PATH": "s3://my-models/advanced-model.tar.gz"
}
}]
},
ModelQualityJobInput: {
EndpointName: "my-advanced-endpoint",
GroundTruthS3Input: {
S3Uri: "s3://my-advanced-groundtruth-data/",
ContentType: "application/json"
}
},
JobResources: {
ClusterConfig: {
InstanceType: "ml.m5.xlarge",
InstanceCount: 2,
VolumeSizeInGB: 50
}
},
RoleArn: "arn:aws:iam::123456789012:role/my-advanced-sagemaker-role",
ModelQualityBaselineConfig: {
BaselineS3Uri: "s3://my-baseline-data/",
Constraints: {
Video: {
S3Uri: "s3://my-constraints-data/"
}
}
},
NetworkConfig: {
EnableNetworkIsolation: true,
VpcConfig: {
SecurityGroupIds: ["sg-0123456789abcdef0"],
Subnets: ["subnet-0123456789abcdef0"]
}
},
Tags: [{
Key: "Project",
Value: "ModelQualityMonitoring"
}],
StoppingCondition: {
MaxRuntimeInSeconds: 7200
}
});

Create a ModelQualityJobDefinition with custom tags for better resource management.

const taggedModelQualityJobDefinition = await AWS.SageMaker.ModelQualityJobDefinition("taggedModelQualityJob", {
ModelQualityAppSpecification: {
ContainerSpecifications: [{
ImageUri: "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-tagged-model-quality-image:latest",
Environment: {
"MODEL_S3_PATH": "s3://my-models/tagged-model.tar.gz"
}
}]
},
ModelQualityJobInput: {
EndpointName: "my-tagged-endpoint",
GroundTruthS3Input: {
S3Uri: "s3://my-tagged-groundtruth-data/",
ContentType: "application/json"
}
},
JobResources: {
ClusterConfig: {
InstanceType: "ml.t3.medium",
InstanceCount: 1,
VolumeSizeInGB: 20
}
},
RoleArn: "arn:aws:iam::123456789012:role/my-tagged-sagemaker-role",
Tags: [{
Key: "Environment",
Value: "Production"
}, {
Key: "Owner",
Value: "DataScienceTeam"
}]
});