Establecer políticas de escalado automático para implementaciones de puntos de conexión multimodelo - 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.

Establecer políticas de escalado automático para implementaciones de puntos de conexión multimodelo

SageMaker Los puntos finales multimodelo son totalmente compatibles con el escalado automático, que gestiona las réplicas de los modelos para garantizar que los modelos escalen en función de los patrones de tráfico. Se recomienda configurar el punto de conexión multimodelo y el tamaño de las instancias teniendo en cuenta Recomendaciones de instancia para implementaciones de puntos de conexión multimodelo y también configurar la instancia en función del escalado automático para el punto de conexión. Las tasas de invocación utilizadas para desencadenar un evento de escalado automático se basan en el conjunto agregado de predicciones a través del conjunto completo de modelos atendidos por el punto de conexión. Para obtener más información sobre cómo configurar el escalado automático de terminales, consulta Escalar automáticamente SageMaker los modelos de Amazon.

Puede configurar políticas de autoescalado con métricas predefinidas y personalizadas tanto CPU en los puntos finales multimodelo como GPU respaldados.

nota

SageMaker Las métricas de puntos finales multimodelo están disponibles con un nivel de detalle de un minuto.

Definir una política de escalado

Para especificar las métricas y los valores de destino para una política de escalado, puede configurar una política de escalado de seguimiento de destino. Puede utilizar una métrica predefinida o una métrica personalizada.

La configuración de la política de escalado se representa mediante un bloque. JSON La configuración de la política de escalado se guarda como un JSON bloque en un archivo de texto. Este archivo de texto se utiliza cuando se invoca el AWS CLI o la aplicación Auto ScalingAPI. Para obtener más información sobre la sintaxis de configuración de políticas, consulte TargetTrackingScalingPolicyConfiguration la APIReferencia de Application Auto Scaling.

Las siguientes opciones están disponibles para definir una configuración de la política de escalado de seguimiento de destino.

Uso de una métrica predefinida

Para definir rápidamente una política de escalado de seguimiento de destino para una variante, utilice la métrica predefinida SageMakerVariantInvocationsPerInstance. SageMakerVariantInvocationsPerInstance es el número medio de veces por minuto que cada instancia de una variante se invoca. Le recomendamos fehacientemente el uso de esta métrica.

Para usar una métrica predefinida en una política de escalado, cree una configuración de seguimiento de destino para su política. En la configuración de seguimiento de destino, incluya PredefinedMetricSpecification para la métrica predefinida y TargetValue para el valor de destino de esa métrica.

El siguiente ejemplo es una configuración de política típica para el escalado de seguimiento de destino para una variante. En esta configuración, utilizamos la métrica predefinida SageMakerVariantInvocationsPerInstance para ajustar el número de las instancias de variantes de manera que cada instancia disponga de una métrica InvocationsPerInstance de 70.

{"TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "InvocationsPerInstance" } }
nota

Le recomendamos que utilice InvocationsPerInstance mientras utilice puntos de conexión multimodelo. El TargetValue de esta métrica depende de los requisitos de latencia de la aplicación. También le recomendamos que realice una prueba de carga de sus puntos de conexión para configurar los valores de los parámetros de escalado adecuados. Para obtener más información sobre las pruebas de carga y la configuración del escalado automático para sus puntos de enlace, consulte el blog Configuración de puntos de enlace de inferencia de escalado automático en Amazon. SageMaker

Uso de una métrica personalizada

Si tiene que definir una política de escalado de seguimiento de destino que cumpla sus requisitos personalizados, defina una métrica personalizada. Puede definir una métrica personalizada en función de cualquier métrica de variante de producción que cambie en proporción al escalado.

No todas las SageMaker métricas funcionan para el seguimiento de objetivos. La métrica debe ser una métrica de utilización válida y debe describir el nivel de actividad de una instancia. El valor de la métrica debe aumentar o reducirse en proporción inversa al número de instancias de variantes. Es decir, el valor de la métrica debe disminuir cuando el número de instancias aumenta.

importante

Antes de implementar el escalado automático en producción, debe realizar la prueba del escalado automático con su métrica personalizada.

Ejemplo de métrica personalizada para un CPU terminal multimodelo respaldado

En el siguiente ejemplo aparece una configuración de seguimiento de destino para una política de escalado. En esta configuración, para un modelo denominadomy-model, una métrica personalizada CPUUtilization ajusta el recuento de instancias en el punto final en función de una CPU utilización media del 50% en todas las instancias.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Ejemplo de métrica personalizada para un punto final GPU multimodelo respaldado

En el siguiente ejemplo aparece una configuración de seguimiento de destino para una política de escalado. En esta configuración, para un modelo denominadomy-model, una métrica personalizada GPUUtilization ajusta el recuento de instancias en el punto final en función de una GPU utilización media del 50% en todas las instancias.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "GPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Incorporación de un periodo de recuperación

Para agregar un periodo de recuperación para el escalado horizontal de su modelo, especifique un valor, en segundos, para ScaleOutCooldown. De forma similar, para agregar un periodo de recuperación para reducir horizontalmente su modelo, agregue un valor, en segundos, para ScaleInCooldown. Para obtener más información sobre ScaleInCooldown yScaleOutCooldown, consulte TargetTrackingScalingPolicyConfiguration en la Application Auto Scaling API Reference.

A continuación se muestra un ejemplo de la configuración de seguimiento de destino para una política de escalado. En esta configuración, la métrica predefinida SageMakerVariantInvocationsPerInstance se utiliza para ajustar el escalado según una media de 70 en todas las instancias de esa variante. La configuración proporciona un periodo de recuperación de escalado descendente de 10 minutos y un periodo de recuperación de escalado ascendente de 5 minutos.

{"TargetValue": 70.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }