View a markdown version of this page

Implemente una recomendación de inferencia de IA generativa - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implemente una recomendación de inferencia de IA generativa

Cuando se completa un trabajo de recomendación, cada recomendación incluye una configuración lista para la implementación. Puede implementar la configuración elegida en un punto final de inferencia de SageMaker IA con una sola acción desde SageMaker AI Studio o mediante programación a través de la API.

Entender las configuraciones de despliegue

Cada recomendación de la respuesta al trabajo contiene un DeploymentConfiguration objeto con la siguiente información:

ImageUri

El URI de la imagen del contenedor está optimizado para el tipo de instancia recomendado.

InstanceType

El tipo de instancia recomendado para la implementación.

InstanceCount

La cantidad de instancias necesarias para cumplir el objetivo de rendimiento.

CopyCountPerInstance

El número de copias del modelo que se van a ejecutar por instancia. Cuando se establece en un valor superior a uno, se cargan varias copias del modelo en cada instancia para aumentar el rendimiento.

EnvironmentVariables

Variables de entorno configuradas para un rendimiento óptimo, como el tamaño paralelo del tensor y la longitud máxima de la secuencia.

S3

Referencias de canales S3 para artefactos del modelo, incluida cualquier salida optimizada del modelo.

Implemente mediante la API

Para implementar una recomendación mediante programación, usa el paquete de modelos de la recomendación para crear un modelo y un punto final de SageMaker IA. Cada recomendación incluye un ModelDetails objeto con el ARN del paquete del modelo y el nombre de la especificación de inferencia. Esta es la ruta de despliegue más sencilla porque el paquete del modelo ya contiene la imagen del contenedor, las variables de entorno y los canales de artefactos del modelo.

import boto3 client = boto3.client("sagemaker", region_name="us-west-2") # Get the recommendation from a completed job response = client.describe_ai_recommendation_job( AIRecommendationJobName="my-recommendation-job" ) # Select a recommendation (e.g., the first one) recommendation = response["Recommendations"][0] model_details = recommendation["ModelDetails"] deploy_config = recommendation["DeploymentConfiguration"] # Create a model from the model package. # The model package already contains the container image, environment # variables, and S3 data channels (base model + optimization artifacts). model_name = "my-recommended-model" container_def = { "ModelPackageName": model_details["ModelPackageArn"], } # If the recommendation uses a named inference specification (e.g., for # a specific optimization variant), specify it so SageMaker selects the # correct container and instance configuration from the model package. if model_details.get("InferenceSpecificationName"): container_def["InferenceSpecificationName"] = model_details["InferenceSpecificationName"] client.create_model( ModelName=model_name, PrimaryContainer=container_def, ExecutionRoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) # Create an endpoint configuration endpoint_config_name = "my-recommended-endpoint-config" production_variant = { "VariantName": "AllTraffic", "ModelName": model_name, "InstanceType": deploy_config["InstanceType"], "InitialInstanceCount": deploy_config.get("InstanceCount", 1), } copy_count = deploy_config.get("CopyCountPerInstance") if copy_count and copy_count > 1: production_variant["InferenceAmiVersion"] = "al2-ami-sagemaker-inference-gpu-2" production_variant["RoutingConfig"] = {"RoutingStrategy": "LEAST_OUTSTANDING_REQUESTS"} client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[production_variant], ) # Create the endpoint endpoint_name = "my-recommended-endpoint" client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name, ) print(f"Endpoint {endpoint_name} is being created.")

Una vez creado el punto final, puede supervisar su estado mediante la DescribeEndpoint API hasta que alcance el InService estado.

import time while True: response = client.describe_endpoint(EndpointName=endpoint_name) status = response["EndpointStatus"] print(f"Endpoint status: {status}") if status in ("InService", "Failed"): break time.sleep(60)

Implemente desde SageMaker AI Studio

También puedes implementar una configuración recomendada directamente desde SageMaker AI Studio con una sola acción. En SageMaker AI Studio, navega hasta el trabajo de recomendación completado, revisa las recomendaciones y sus métricas de rendimiento, y elige la configuración que deseas implementar.