Obtener resultados de trabajo de recomendación de inferencia - 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 resultados de trabajo de recomendación de inferencia

Recopile los resultados de su trabajo de recomendación de inferencias mediante programación con AWS SDK for Python (Boto3) Studio Classic o la AWS CLI consola. SageMaker

AWS SDK for Python (Boto3)

Una vez completada la recomendación de inferencia, puede utilizar DescribeInferenceRecommendationsJob para obtener los detalles y las recomendaciones del trabajo. Proporcione el nombre del trabajo que utilizó al crear el trabajo de recomendación de inferencia.

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

Imprima el objeto de respuesta. El ejemplo de código anterior almacenaba la respuesta en una variable denominada. response

print(response['Status'])

Esto devuelve una JSON respuesta similar a la del siguiente ejemplo. Tenga en cuenta que este ejemplo muestra los tipos de instancias recomendados para la inferencia en tiempo real (para ver un ejemplo que muestra recomendaciones de inferencia sin servidor, consulte el ejemplo siguiente).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

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 los tiempos de creación y eliminació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. Puedes usar el punto de enlace y el nombre de la variante para monitorizar en Amazon CloudWatch Events. Para obtener más información, consulte Métricas para monitorizar Amazon SageMaker con Amazon CloudWatch.

El diccionario Metrics anidado contiene información sobre el coste estimado por hora (CostPerHour) de su terminal en tiempo real en dólares estadounidenses, el coste estimado por inferencia (CostPerInference) en dólares estadounidenses para su 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 microsegundos) 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 siguiente ejemplo muestra la parte InferenceRecommendations de la respuesta de un trabajo de recomendaciones de inferencia configurado para devolver recomendaciones de inferencia sin servidor:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Puede interpretar las recomendaciones para la inferencia sin servidor de forma similar a los resultados para la inferencia en tiempo real, con la excepción de ServerlessConfig, que indica las métricas devueltas para un punto de conexión sin servidor, con MemorySizeInMB proporcionado y cuando MaxConcurrency = 1. Para aumentar el rendimiento posible en el punto de conexión, aumente el valor de MaxConcurrency linealmente. Por ejemplo, si la recomendación de inferencia muestra MaxInvocations como 1000, aumentar MaxConcurrency a 2 admitiría 2000 MaxInvocations. Tenga en cuenta que esto solo es cierto hasta cierto punto, que puede variar según el modelo y el código. Las recomendaciones sin servidor también miden la métrica ModelSetupTime, que mide (en microsegundos) el tiempo que se tarda en lanzar los recursos informáticos en un punto de conexión sin servidor. Para obtener más información sobre la configuración de los puntos de conexión sin servidor, consulte la documentación de Inferencia sin servidor.

AWS CLI

Una vez completada la recomendación de inferencia, puede utilizar describe-inference-recommendations-job para obtener los detalles del trabajo y los tipos de instancias recomendados. Proporcione el nombre del trabajo que utilizó al crear el trabajo de recomendación de inferencia.

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

La JSON respuesta similar debería parecerse a la del siguiente ejemplo. Tenga en cuenta que este ejemplo muestra los tipos de instancias recomendados para la inferencia en tiempo real (para ver un ejemplo que muestra recomendaciones de inferencia sin servidor, consulte el ejemplo siguiente).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

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 la hora de creación y eliminació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) utilizado durante el trabajo de recomendación. Puedes usar el punto de enlace y el nombre de la variante para monitorizar en Amazon CloudWatch Events. Para obtener más información, consulte Métricas para monitorizar Amazon SageMaker con Amazon CloudWatch.

El diccionario Metrics anidado contiene información sobre el coste estimado por hora (CostPerHour) de su terminal en tiempo real en dólares estadounidenses, el coste estimado por inferencia (CostPerInference) en dólares estadounidenses para su 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 siguiente ejemplo muestra la parte InferenceRecommendations de la respuesta de un trabajo de recomendaciones de inferencia configurado para devolver recomendaciones de inferencia sin servidor:

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

Puede interpretar las recomendaciones para la inferencia sin servidor de forma similar a los resultados para la inferencia en tiempo real, con la excepción de ServerlessConfig, que indica las métricas devueltas para un punto de conexión sin servidor, con MemorySizeInMB proporcionado y cuando MaxConcurrency = 1. Para aumentar el rendimiento posible en el punto de conexión, aumente el valor de MaxConcurrency linealmente. Por ejemplo, si la recomendación de inferencia muestra MaxInvocations como 1000, aumentar MaxConcurrency a 2 admitiría 2000 MaxInvocations. Tenga en cuenta que esto solo es cierto hasta cierto punto, que puede variar según el modelo y el código. Las recomendaciones sin servidor también miden la métrica ModelSetupTime, que mide (en microsegundos) el tiempo que se tarda en lanzar los recursos informáticos en un punto de conexión sin servidor. Para obtener más información sobre la configuración de los puntos de conexión sin servidor, consulte la documentación de Inferencia sin servidor.

Amazon SageMaker Studio Classic

Las recomendaciones de inferencia se rellenan en una nueva pestaña de recomendaciones de inferencia en Studio Classic. Los resultados pueden tardar hasta 45 minutos en aparecer. Esta pestaña contiene los encabezados de las columnas Results (Resultados) y Details (Detalles).

La columna Details (Detalles) proporciona información sobre el trabajo de recomendación de inferencia, como el nombre de la recomendación de inferencia, cuándo se creó el trabajo (Creation time (Hora de creación)) y más. También proporciona información sobre Settings (Configuración), como el número máximo de invocaciones que se produjeron por minuto e información sobre los nombres de los recursos de Amazon utilizados.

La columna de resultados proporciona una ventana de objetivos y SageMakerrecomendaciones de despliegue en la que puede ajustar el orden en que se muestran los resultados en función de la importancia de la implementación. Hay tres menús desplegables que puede utilizar para indicar el nivel de importancia: Cost (Coste), Latency (Latencia) y Throughput (Rendimiento) para su caso de uso. Para cada objetivo (coste, latencia y rendimiento), puede establecer el nivel de importancia: Lowest Importance (Importancia mínima), Low Importance (Importancia baja), Moderate importance (Importancia moderada), High importance (Importancia alta) o Highest importance (Importancia máxima).

En función de las selecciones de importancia para cada objetivo, Inference Recommender muestra su recomendación principal en el campo de SageMakerrecomendaciones de la derecha del panel, junto con el coste estimado por hora y la solicitud de inferencia. También proporciona información sobre la latencia esperada del modelo, el número máximo de invocaciones y el número de instancias. Para obtener recomendaciones sin servidor, puede ver los valores ideales para la simultaneidad máxima y el tamaño de memoria de los puntos de conexión.

Además de la recomendación principal que se muestra, también puede ver la misma información para todas las instancias que el Recomendador de inferencias probó en la sección Todas las ejecuciones.

SageMaker console

Puede ver sus trabajos de recomendación de instancias en la SageMaker consola de la siguiente manera:

  1. Ve a la SageMaker consola en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación de la izquierda, elija Inference (Interferencia) y, a continuación, elija Interference recommender (Reomendador de inferencia.

  3. En la página Trabajos de recomendador de inferencias, elija el nombre de su trabajo de recomendación de inferencias.

En la página de detalles de su trabajo, puede ver las recomendaciones de inferencia, que son los tipos de instancias recomendados para SageMaker su modelo, como se muestra en la siguiente captura de pantalla.

Captura de pantalla de la lista de recomendaciones de inferencia que aparece en la página de detalles del trabajo de la SageMaker consola.

En esta sección, puede comparar los tipos de instancias en función de varios factores, como la latencia del modelo, el coste por hora, el coste por inferencia y las invocaciones por minuto.

En esta página, también puede ver las configuraciones que especificó para su trabajo. En la sección Supervisar, puedes ver las CloudWatch métricas de Amazon que se registraron para cada tipo de instancia. Para obtener más información sobre la interpretación de estas métricas, consulte Interpretar los resultados.

Para obtener más información acerca de la interpretación de los resultados del trabajo de recomendación, consulte Resultados de las recomendaciones.