Définition de politiques Auto Scaling pour les déploiements de points de terminaison multi-modèles - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définition de politiques Auto Scaling pour les déploiements de points de terminaison multi-modèles

SageMaker les terminaux multimodèles prennent entièrement en charge la mise à l'échelle automatique, qui gère les répliques de modèles afin de garantir que les modèles évoluent en fonction des modèles de trafic. Nous vous recommandons de configurer votre point de terminaison multi-modèle et la taille de vos instances sur Recommandations d'instance pour les déploiements de points de terminaison multi-modèles et de configurer également la mise à l'échelle automatique basée sur une instance pour votre point de terminaison. Les taux d'invocation utilisés pour déclencher un événement de mise à l'échelle automatique sont basés sur l'ensemble agrégé des prédictions à travers l'ensemble complet des modèles servis par le point de terminaison. Pour plus d'informations sur la configuration du dimensionnement automatique des terminaux, consultez Automatically Scale Amazon SageMaker Models.

Vous pouvez configurer des politiques de dimensionnement automatique avec des métriques prédéfinies et personnalisées sur les deux terminaux, CPU ainsi que des points de terminaison multimodèles GPU soutenus.

Note

SageMaker les métriques de point de terminaison multimodèles sont disponibles avec une granularité d'une minute.

Définition d'une stratégie de mise à l'échelle

Pour spécifier les métriques et les valeurs cibles d'une stratégie de mise à l'échelle automatique, vous configurez une stratégie de mise à l'échelle automatique avec suivi de cible. Vous pouvez utiliser une métrique prédéfinie ou une métrique personnalisée.

La configuration de la politique de dimensionnement est représentée par un JSON bloc. Vous enregistrez la configuration de votre politique de dimensionnement sous forme de JSON bloc dans un fichier texte. Vous utilisez ce fichier texte lorsque vous invoquez le AWS CLI ou l'Application Auto ScalingAPI. Pour plus d'informations sur la syntaxe de configuration des politiques, consultez TargetTrackingScalingPolicyConfiguration la section Application Auto Scaling API Reference.

Les options suivantes sont disponibles pour définir une configuration de stratégie de dimensionnement Suivi de la cible.

Utilisation d'une métrique prédéfinie

Pour définir rapidement une stratégie de mise à l'échelle avec suivi de la cible pour une variante, utilisez la métrique prédéfinie SageMakerVariantInvocationsPerInstance. SageMakerVariantInvocationsPerInstance est le nombre moyen de fois par minute que chaque instance d'une variante est appelée. Nous vous recommandons vivement d'utiliser cette métrique.

Pour utiliser une métrique prédéfinie dans une stratégie de dimensionnement, créez une configuration de suivi de cible pour votre stratégie. Dans la configuration de suivi de cible, incluez une PredefinedMetricSpecification pour la métrique prédéfinie et une TargetValue pour la valeur cible de la métrique.

L'exemple suivant décrit une configuration de stratégie classique pour le dimensionnement avec suivi de cible d'une variante. Dans cette configuration, nous utilisons la métrique prédéfinie SageMakerVariantInvocationsPerInstance pour ajuster le nombre d'instances de variantes afin que chaque instance ait une métrique InvocationsPerInstance égale à 70.

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

Nous vous recommandons d'utiliser InvocationsPerInstance lorsque vous utilisez des points de terminaison multi-modèles. La TargetValue de cette métrique dépend des exigences de latence de votre application. Nous vous recommandons également de tester le chargement de vos points de terminaison afin de définir des valeurs de paramètres de mise à l'échelle appropriées. Pour en savoir plus sur les tests de charge et la configuration du dimensionnement automatique pour vos points de terminaison, consultez le blog Configuration des points de terminaison d'inférence à dimensionnement automatique sur Amazon. SageMaker

Utilisation d'une métrique personnalisée

Si vous devez définir une stratégie de dimensionnement avec suivi de cible qui répond à vos exigences personnelles, définissez une métrique personnalisée. Vous pouvez définir une métrique personnalisée basée sur une métrique de variante de production qui évolue en fonction du dimensionnement.

Toutes les SageMaker mesures ne fonctionnent pas pour le suivi des cibles. La métrique doit être une métrique d'utilisation valide et décrire le degré d'occupation d'une instance. La valeur de la métrique doit augmenter ou diminuer en proportion inverse du nombre d'instances de variantes. En d'autres termes, la valeur de la métrique doit diminuer lorsque le nombre d'instances augmente.

Important

Avant de déployer le dimensionnement automatique dans un environnement de production, vous devez tester le dimensionnement automatique avec vos métriques personnalisées.

Exemple de métrique personnalisée pour un point de CPU terminaison multimodèle soutenu

L'exemple suivant décrit une configuration de suivi de cible pour une stratégie de dimensionnement. Dans cette configuration, pour un modèle nommémy-model, une métrique personnalisée CPUUtilization ajuste le nombre d'instances sur le point de terminaison en fonction d'une CPU utilisation moyenne de 50 % sur toutes les instances.

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

Exemple de métrique personnalisée pour un point de GPU terminaison multimodèle soutenu

L'exemple suivant décrit une configuration de suivi de cible pour une stratégie de dimensionnement. Dans cette configuration, pour un modèle nommémy-model, une métrique personnalisée GPUUtilization ajuste le nombre d'instances sur le point de terminaison en fonction d'une GPU utilisation moyenne de 50 % sur toutes les instances.

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

Ajout d'un temps de stabilisation

Pour ajouter un temps de stabilisation pour la montée en charge de votre point de terminaison, spécifiez une valeur, en secondes, pour ScaleOutCooldown. De même, pour ajouter un temps de stabilisation pour la diminution de charge de votre modèle, ajoutez une valeur, en secondes, pour ScaleInCooldown. Pour plus d'informations sur ScaleInCooldown etScaleOutCooldown, consultez TargetTrackingScalingPolicyConfiguration la section Application Auto Scaling API Reference.

L'exemple suivant illustre une configuration avec suivi de cible d'une stratégie de mise à l'échelle. Dans cette configuration, la métrique prédéfinie SageMakerVariantInvocationsPerInstance sert à ajuster la mise à l'échelle en fonction d'une moyenne de 70 sur toutes les instances de cette variante. La configuration indique un temps de stabilisation de diminution en charge de 10 minutes et un temps de stabilisation de montée en charge de 5 minutes.

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