Définition d'une stratégie de mise à l'échelle - 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 d'une stratégie de mise à l'échelle

Avant d'ajouter une politique de dimensionnement à votre modèle, enregistrez la configuration de votre politique sous forme de JSON bloc dans un fichier texte. Vous utilisez ce fichier texte lorsque vous appelez le AWS Command Line Interface (AWS CLI) ou Application Auto ScalingAPI. Vous pouvez optimiser la mise à l'échelle en choisissant une CloudWatch métrique appropriée. Toutefois, avant d'utiliser une métrique personnalisée en production, vous devez tester le dimensionnement automatique avec votre métrique personnalisée.

Cette section présente des exemples de configurations de stratégie pour les politiques de dimensionnement du suivi des cibles.

Spécifiez une métrique prédéfinie (CloudWatch métrique : InvocationsPerInstance)

Voici un exemple de configuration de politique de suivi des cibles pour une variante qui maintient le nombre moyen d'appels par instance à 70. Enregistrez cette configuration dans un fichier nommé config.json.

{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" } }

Pour plus d'informations, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.

Spécifiez une métrique prédéfinie à haute résolution (CloudWatch métriques : ConcurrentRequestsPerModel et ConcurrentRequestsPerCopy)

Avec les CloudWatch mesures haute résolution suivantes, vous pouvez définir des politiques de dimensionnement pour le volume de demandes simultanées que reçoivent vos modèles :

ConcurrentRequestsPerModel

Le nombre de demandes simultanées reçues par un conteneur modèle.

ConcurrentRequestsPerCopy

Nombre de demandes simultanées reçues par un composant d'inférence.

Ces indicateurs permettent de suivre le nombre de demandes simultanées traitées par vos modèles de conteneurs, y compris les demandes placées en file d'attente à l'intérieur des conteneurs. Pour les modèles qui envoient leur réponse d'inférence sous forme de flux de jetons, ces métriques suivent chaque demande jusqu'à ce que le modèle envoie le dernier jeton correspondant à la demande.

En tant que métriques à haute résolution, elles émettent des données plus fréquemment que CloudWatch les métriques standard. Les métriques standard, telles que la InvocationsPerInstance métrique, émettent des données une fois par minute. Cependant, ces mesures à haute résolution émettent des données toutes les 10 secondes. Par conséquent, à mesure que le trafic simultané vers vos modèles augmente, votre politique réagit en s'adaptant beaucoup plus rapidement qu'elle ne le ferait pour les indicateurs standard. Toutefois, à mesure que le trafic vers vos modèles diminue, votre politique évolue à la même vitesse que pour les indicateurs standard.

Voici un exemple de configuration de politique de suivi des cibles qui ajoute des instances si le nombre de demandes simultanées par modèle est supérieur à 5. Enregistrez cette configuration dans un fichier nommé config.json.

{ "TargetValue": 5.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution" } }

Si vous utilisez des composants d'inférence pour déployer plusieurs modèles sur le même point de terminaison, vous pouvez créer une politique équivalente. Dans ce cas, réglez PredefinedMetricType surSageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution.

Pour plus d'informations, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.

Définissez une métrique personnalisée (CloudWatchmétrique :CPUUtilization)

Pour créer une politique de dimensionnement du suivi des cibles avec une métrique personnalisée, spécifiez le nom, l'espace de noms, l'unité, la statistique et zéro ou plusieurs dimensions de la métrique. Une dimension se compose d’un nom de dimension et d’une valeur de dimension. Vous pouvez utiliser n'importe quelle métrique de variante de production qui change proportionnellement à la capacité.

L'exemple de configuration suivant montre une politique de dimensionnement du suivi des cibles avec une métrique personnalisée. La politique adapte la variante sur la base d'une CPU utilisation moyenne de 50 % dans toutes les instances. Enregistrez cette configuration dans un fichier nommé config.json.

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

Pour plus d'informations, reportez-vous CustomizedMetricSpecificationà la section Application Auto Scaling API Reference.

Définissez une métrique personnalisée (CloudWatch métrique : ExplanationsPerInstance)

Lorsque l'explicabilité en ligne est activée sur le point de terminaison, il émet une ExplanationsPerInstance métrique qui produit le nombre moyen d'enregistrements expliqués par minute, par instance, pour une variante. L'utilisation des ressources des enregistrements d'explicabilité peut être différente de celle des enregistrements de prédiction. Nous vous recommandons vivement d'utiliser cette métrique pour le suivi ciblé et la mise à l'échelle des points de terminaison lorsque l'explicabilité en ligne est activée.

Vous pouvez créer plusieurs politiques de suivi des cibles pour une cible évolutive. Envisagez d'ajouter la InvocationsPerInstance politique depuis la Spécifiez une métrique prédéfinie (CloudWatch métrique : InvocationsPerInstance) section (en plus de la ExplanationsPerInstance politique). Si la plupart des appels ne renvoient aucune explication en raison de la valeur de seuil définie dans le EnableExplanations paramètre, le point de terminaison peut choisir la InvocationsPerInstance politique. S'il existe un grand nombre d'explications, le point de terminaison peut utiliser la politique ExplanationsPerInstance.

L'exemple de configuration suivant montre une politique de dimensionnement du suivi des cibles avec une métrique personnalisée. L'échelle de politique ajuste le nombre d'instances de variantes afin que chaque instance possède une ExplanationsPerInstance métrique de 20. Enregistrez cette configuration dans un fichier nommé config.json.

{ "TargetValue": 20.0, "CustomizedMetricSpecification": { "MetricName": "ExplanationsPerInstance", "Namespace": "AWS/SageMaker", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ], "Statistic": "Sum" } }

Pour plus d'informations, reportez-vous CustomizedMetricSpecificationà la section Application Auto Scaling API Reference.

Spécifier les périodes de refroidissement

Vous pouvez éventuellement définir des périodes de recharge dans votre politique de dimensionnement du suivi des cibles en spécifiant les ScaleInCooldown paramètres ScaleOutCooldown et.

Voici un exemple de configuration de politique de suivi des cibles pour une variante qui maintient le nombre moyen d'appels par instance à 70. La configuration des politiques prévoit une période de recharge progressive de 10 minutes (600 secondes) et une période de recharge progressive de 5 minutes (300 secondes). Enregistrez cette configuration dans un fichier nommé config.json.

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

Pour plus d'informations, reportez-vous TargetTrackingScalingPolicyConfigurationà la section Application Auto Scaling API Reference.