Testen von Modellen mit Schattenvarianten
Sie können SageMaker AI Model Shadow Deployments verwenden, um Schattenvarianten mit langer Laufzeit zu erstellen, um jede neue Kandidatenkomponente Ihres Model Serving-Stacks zu validieren, bevor Sie sie zur Produktion hochstufen. Das folgende Diagramm zeigt, wie dies im Detail funktioniert.
Stellen Sie Schattenvarianten bereit
Das folgende Codebeispiel veranschaulicht, wie Sie eine Schattenvariante programmgesteuert bereitstellen können. Um diese Richtlinie zu verwenden, ersetzen Sie den kursiv gedruckten Platzhaltertext in der Beispielrichtlinie durch Ihre eigenen Informationen.
-
Erstellen Sie zwei SageMaker-AI-Modelle: eines für Ihre Produktionsvariante und eines für Ihre Schattenvariante.
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" } ] ) -
Eine Endpunktkonfiguration erstellen. Geben Sie in der Konfiguration sowohl Ihre Produktions- als auch Ihre Schattenvarianten an.
endpoint_config_name =name-of-your-endpoint-configcreate_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, } ] ) -
Endpunkt herstellen.
create_endpoint_response = sm.create_endpoint( EndpointName=name-of-your-endpoint, EndpointConfigName=endpoint_config_name, )