Obtener una recomendación de inferencia para un punto de conexión existente - Amazon SageMaker

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.

Obtener una recomendación de inferencia para un punto de conexión existente

Los trabajos de recomendación de inferencias ejecutan un conjunto de pruebas de carga en los tipos de instancias recomendados y en un punto de conexión existente. Los trabajos de recomendación de inferencia utilizan métricas de rendimiento que se basan en pruebas de carga que utilizan los datos de muestra que proporcionaste durante el registro de la versión del modelo.

Puede comparar y obtener recomendaciones de inferencia para un punto final de SageMaker inferencia existente para ayudarlo a mejorar el rendimiento de su punto final. El procedimiento para obtener recomendaciones para un punto final de SageMaker inferencia existente es similar al procedimiento para obtener recomendaciones de inferencia sin un punto final. Hay varias exclusiones de características que hay que tener en cuenta a la hora de realizar una evaluación comparativa de un punto de conexión existente:

  • Solo puede utilizar un punto de conexión existente por cada trabajo de recomendación de inferencias.

  • Solo puede tener una variante en su punto de conexión.

  • No puede usar un punto de conexión que habilite el escalado automático.

  • Esta funcionalidad solo es compatible con la inferencia en tiempo real.

  • Esta funcionalidad no admite puntos de conexión multimodelo en tiempo real.

aviso

Se recomienda no ejecutar un trabajo de recomendación de inferencia en un punto de conexión de producción que gestione el tráfico en directo. La carga sintética durante la evaluación comparativa puede afectar al punto de conexión de producción y provocar una limitación o proporcionar resultados de referencia inexactos. Le recomendamos que utilice un punto de conexión que no sea de producción o de desarrollador para fines de comparación.

En las siguientes secciones se muestra cómo utilizar Amazon SageMaker Inference Recommender para crear una recomendación de inferencia para un punto final existente en función del tipo de modelo mediante AWS SDK Python (Boto3) y el. AWS CLI

nota

Antes de crear un trabajo de recomendación de Recomendador de inferencias, asegúrese de haber cumplido con los Requisitos previos para usar Amazon SageMaker Inference Recommender.

Requisitos previos

Si aún no tiene un punto final de SageMaker inferencia, puede obtener una recomendación de inferencia sin un punto final o puede crear un punto final de inferencia en tiempo real siguiendo las instrucciones de Cree su punto final e implemente su modelo.

Crear un trabajo de recomendación de inferencia para un punto de conexión existente

Cree una recomendación de inferencia mediante programación utilizando, o el. AWS SDK for Python (Boto3) AWS CLI Especifique un nombre de trabajo para su recomendación de inferencia, el nombre de un punto final de SageMaker inferencia existente, un AWS IAM rolARN, una configuración de entrada y el paquete de modelos ARN desde que registró su modelo en el registro de modelos.

AWS SDK for Python (Boto3)

Utilice el CreateInferenceRecommendationsJobAPIpara obtener una recomendación de inferencia. Defina el campo JobType como 'Default' para los trabajos de recomendación de inferencias. Además, facilite lo siguiente:

  • Proporcione un nombre para su trabajo del Recomendador de inferencias para el campo JobName. El nombre del puesto de Recomendador de Inferencias debe ser único en la AWS región y en su cuenta. AWS

  • El nombre del recurso de Amazon (ARN) de una IAM función que permite a Inference Recommender realizar tareas en su nombre. Defina esto para el campo RoleArn.

  • El paquete ARN de modelos versionado que creó al registrar su modelo en el registro de modelos. Defina esto para ModelPackageVersionArn en el campo InputConfig.

  • Indique en el campo el nombre de un punto final de SageMaker inferencia existente que desee comparar en el Recomendador de inferencias. Endpoints InputConfig

Importe el AWS SDK for Python (Boto3) paquete y cree un objeto de SageMaker cliente utilizando la clase de cliente. Si siguió los pasos de la sección Requisitos previos, el grupo de paquetes del modelo se ARN almacenó en una variable denominadamodel_package_arn.

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<model-package-arn>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<job-name>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = '<arn:aws:iam::<account>:role/*>' # Provide endpoint name for your endpoint that want to benchmark in Inference Recommender endpoint_name = '<existing-endpoint-name>' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, InputConfig = { 'ModelPackageVersionArn': model_package_arn, 'Endpoints': [{'EndpointName': endpoint_name}] } )

Consulta la Guía de SageMaker API referencia de Amazon para ver una lista completa de los argumentos opcionales y obligatorios a los que puedes pasárselos CreateInferenceRecommendationsJob.

AWS CLI

create-inference-recommendations-jobAPIUtilízala para obtener una recomendación sobre el punto final de una instancia. Defina el campo job-type en 'Default' para trabajos de recomendación de puntos de conexión de instancia. Además, facilite lo siguiente:

  • Proporcione un nombre para su trabajo del Recomendador de inferencias para el campo job-name. El nombre del puesto de Inference Recommender debe ser único en la AWS región y en su AWS cuenta.

  • El nombre del recurso de Amazon (ARN) de una IAM función que permite a Amazon SageMaker Inference Recommender realizar tareas en su nombre. Defina esto para el campo role-arn.

  • El paquete ARN de modelos versionado que creó al registrar su modelo en Model Registry. Defina esto para ModelPackageVersionArn en el campo input-config.

  • Indique en el campo el nombre de un punto final de SageMaker inferencia existente que desee comparar en el Recomendador de inferencias. Endpoints input-config

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", \"Endpoints\": [{\"EndpointName\": <endpoint_name>}] }"

Obtener resultados de trabajo de recomendación de inferencia

Puede recopilar los resultados de su trabajo de recomendación de inferencia mediante programación con el mismo procedimiento que para los trabajos de recomendación de inferencia estándar. Para obtener más información, consulte Obtener resultados de trabajo de recomendación de inferencia.

Cuando obtenga los resultados de un trabajo de recomendación de inferencia para un punto final existente, debería recibir una JSON respuesta similar a la siguiente:

{ "JobName": "job-name", "JobType": "Default", "JobArn": "arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id", "RoleArn": "iam-role-arn", "Status": "COMPLETED", "CreationTime": 1664922919.2, "LastModifiedTime": 1664924208.291, "InputConfig": { "ModelPackageVersionArn": "arn:aws:sagemaker:region:account-id:model-package/resource-id", "Endpoints": [ { "EndpointName": "endpoint-name" } ] }, "InferenceRecommendations": [ { "Metrics": { "CostPerHour": 0.7360000014305115, "CostPerInference": 7.456940238625975e-06, "MaxInvocations": 1645, "ModelLatency": 171 }, "EndpointConfiguration": { "EndpointName": "sm-endpoint-name", "VariantName": "variant-name", "InstanceType": "ml.g4dn.xlarge", "InitialInstanceCount": 1 }, "ModelConfiguration": { "EnvironmentParameters": [ { "Key": "TS_DEFAULT_WORKERS_PER_MODEL", "ValueType": "string", "Value": "4" } ] } } ], "EndpointPerformances": [ { "Metrics": { "MaxInvocations": 184, "ModelLatency": 1312 }, "EndpointConfiguration": { "EndpointName": "endpoint-name" } } ] }

Las primeras líneas proporcionan información sobre el trabajo de recomendación de inferencia en sí. Esto incluye el nombre del trabajo, la función ARN y las horas de creación y última modificación.

El diccionario InferenceRecommendations contiene una lista de recomendaciones de inferencias del Recomendador de Inferencias.

El diccionario EndpointConfiguration anidado contiene la recomendación del tipo de instancia (InstanceType) junto con el punto final y el nombre de la variante (un modelo de aprendizaje AWS automático implementado) que se utilizó durante el trabajo de recomendación.

El diccionario Metrics anidado contiene información sobre el costo estimado por hora (CostPerHour) para el punto final en tiempo real en dólares estadounidenses, el costo estimado por inferencia (CostPerInference) en dólares estadounidenses para el punto final en tiempo real, el número máximo esperado de InvokeEndpoint solicitudes por minuto enviadas al punto final (MaxInvocations) y la latencia del modelo (ModelLatency), que es el intervalo de tiempo (en milisegundos) que el modelo tardó en responder SageMaker. La latencia del modelo incluye el tiempo de comunicación local empleado en el envío de la solicitud y la recuperación de la respuesta del contenedor de un modelo, así como el tiempo que se tarda en completar la inferencia en el contenedor.

El diccionario anidado EndpointPerformances contiene el nombre del punto de conexión actual en el que se ejecutó el trabajo de recomendación (EndpointName) y las métricas de rendimiento del punto de conexión (MaxInvocations y ModelLatency).