Teste de modelos com variantes de sombra
Você pode usar o SageMaker Model Shadow Deployments para criar variantes de sombra de longa duração para validar qualquer novo componente candidato da sua pilha de serviços de modelos antes de promovê-lo para produção. O diagrama a seguir mostra como as variantes de sombra funcionam mais detalhadamente.
Implemente variantes de sombra
O exemplo de código a seguir mostra como você pode implantar programaticamente variantes de sombra. Substitua o texto do espaço reservado
na política de exemplo por suas próprias informações.
-
Crie dois modelos do SageMaker: um para sua variante de produção e outro para sua variante de sombra.
import boto3 from sagemaker import get_execution_role, Session aws_region = "
aws-region
" boto_session = boto3.Session(region_name=aws_region) sagemaker_client = boto_session.client("sagemaker") role = get_execution_role() bucket = Session(boto_session).default_bucket() model_name1 = "name-of-your-first-model
" model_name2 = "name-of-your-second-model
" sagemaker_client.create_model( ModelName = model_name1, ExecutionRoleArn = role, Containers=[ { "Image": "ecr-image-uri-for-first-model
", "ModelDataUrl": "s3-location-of-trained-first-model
" } ] ) sagemaker_client.create_model( ModelName = model_name2, ExecutionRoleArn = role, Containers=[ { "Image": "ecr-image-uri-for-second-model
", "ModelDataUrl": "s3-location-of-trained-second-model
" } ] ) -
Crie uma configuração de endpoint. Especifique suas variantes de produção e de sombra na configuração.
endpoint_config_name =
name-of-your-endpoint-config
create_endpoint_config_response = sagemaker_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName":name-of-your-production-variant
, "ModelName": model_name1, "InstanceType":"ml.m5.xlarge"
, "InitialInstanceCount":1
, "InitialVariantWeight":1
, } ], ShadowProductionVariants=[ { "VariantName":name-of-your-shadow-variant
, "ModelName": model_name2, "InstanceType":"ml.m5.xlarge"
, "InitialInstanceCount":1
, "InitialVariantWeight":1
, } ] ) -
Crie um endpoint.
create_endpoint_response = sm.create_endpoint( EndpointName=
name-of-your-endpoint
, EndpointConfigName=endpoint_config_name, )