Redimensionner un point de terminaison à zéro instance - Amazon SageMaker AI

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.

Redimensionner un point de terminaison à zéro instance

Lorsque vous configurez le dimensionnement automatique pour un point de terminaison, vous pouvez autoriser le processus d'évolutivité à réduire le nombre d'instances en service à zéro. Ce faisant, vous réduisez les coûts pendant les périodes où votre point de terminaison ne traite pas les demandes d'inférence et ne nécessite donc aucune instance active.

Cependant, une fois le nombre d'instances réduit à zéro, votre point de terminaison ne peut répondre à aucune demande d'inférence entrante tant qu'il n'a pas provisionné au moins une instance. Pour automatiser le processus de provisionnement, vous devez créer une politique de dimensionnement par étapes avec Application Auto Scaling. Ensuite, vous assignez la politique à une CloudWatch alarme Amazon.

Une fois que vous avez configuré la politique de dimensionnement des étapes et l'alarme, votre point de terminaison provisionne automatiquement une instance peu après avoir reçu une demande d'inférence à laquelle il ne peut pas répondre. Sachez que le processus de provisionnement prend plusieurs minutes. Pendant ce temps, toute tentative d'invoquer le point de terminaison produira une erreur.

Les procédures suivantes expliquent comment configurer le dimensionnement automatique pour un point de terminaison afin qu'il puisse évoluer vers et hors de zéro instance. Les procédures utilisent des commandes avec le AWS CLI.

Avant de commencer

Avant que votre point de terminaison puisse évoluer jusqu'à zéro instance et en sortir, il doit répondre aux exigences suivantes :

  • Il est en service.

  • Il héberge un ou plusieurs composants d'inférence. Un point de terminaison peut évoluer jusqu'à zéro instance uniquement s'il héberge des composants d'inférence.

    Pour plus d'informations sur l'hébergement de composants d'inférence sur les points de terminaison SageMaker AI, consultez. Déployez des modèles pour une inférence en temps réel

  • Dans la configuration du point de terminaison, pour l'ManagedInstanceScalingobjet variant de production, vous avez défini le MinInstanceCount paramètre sur0.

    Pour obtenir des informations de référence sur ce paramètre, consultez ProductionVariantManagedInstanceScaling.

Pour permettre à un point de terminaison de passer à zéro instance (AWS CLI)

Pour chaque composant d'inférence hébergé par le point de terminaison, procédez comme suit :

  1. Enregistrez le composant d'inférence en tant que cible évolutive. Lorsque vous l'enregistrez, définissez la capacité minimale sur0, comme indiqué dans la commande suivante :

    aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --resource-id inference-component/inference-component-name \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --min-capacity 0 \ --max-capacity n

    Dans cet exemple, remplacez-le inference-component-name par le nom de votre composant d'inférence. Remplacez n par le nombre maximum de copies de composants d'inférence à provisionner lors de la mise à l'échelle.

    Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez register-scalable-targetla référence des AWS CLI commandes.

  2. Appliquez une politique de suivi des cibles au composant d'inférence, comme illustré par la commande suivante :

    aws application-autoscaling put-scaling-policy \ --policy-name my-scaling-policy \ --policy-type TargetTrackingScaling \ --resource-id inference-component/inference-component-name \ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.json

    Dans cet exemple, remplacez-le inference-component-name par le nom de votre composant d'inférence.

    Dans l'exemple, le config.json fichier contient une configuration de politique de suivi des cibles, telle que la suivante :

    { "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }

    Pour plus d'exemples de configurations de politiques de suivi, voirDéfinition d'une stratégie de mise à l'échelle.

    Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez put-scaling-policyla référence des AWS CLI commandes.

Pour permettre à un point de terminaison de passer à zéro instance (AWS CLI)

Pour chaque composant d'inférence hébergé par le point de terminaison, procédez comme suit :

  1. Appliquez une politique de dimensionnement par étapes au composant d'inférence, comme illustré par la commande suivante :

    aws application-autoscaling put-scaling-policy \ --policy-name my-scaling-policy \ --policy-type StepScaling \ --resource-id inference-component/inference-component-name \ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.json

    Dans cet exemple, remplacez-le my-scaling-policy par un nom unique pour votre politique. inference-component-nameRemplacez-le par le nom de votre composant d'inférence.

    Dans l'exemple, le config.json fichier contient une configuration de politique de dimensionnement par étapes, telle que la suivante :

    { "AdjustmentType": "ChangeInCapacity", "MetricAggregationType": "Maximum", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ] }

    Lorsque la politique de dimensionnement de cette étape est déclenchée, l' SageMaker IA fournit les instances nécessaires pour prendre en charge les copies des composants d'inférence.

    Après avoir créé la politique de dimensionnement des étapes, notez son nom de ressource Amazon (ARN). Vous aurez besoin ARN de l' CloudWatch alarme à l'étape suivante.

    Pour plus d'informations sur les politiques de dimensionnement par étapes, consultez la section Politiques de dimensionnement par étapes dans le Guide de l'utilisateur d'Application Auto Scaling.

  2. Créez une CloudWatch alarme et attribuez-lui la politique de dimensionnement des étapes, comme illustré dans l'exemple suivant :

    aws cloudwatch put-metric-alarm \ --alarm-actions step-scaling-policy-arn \ --alarm-description "Alarm when SM IC endpoint invoked that has 0 instances." \ --alarm-name ic-step-scaling-alarm \ --comparison-operator GreaterThanThreshold \ --datapoints-to-alarm 1 \ --dimensions "Name=InferenceComponentName,Value=inference-component-name" \ --evaluation-periods 1 \ --metric-name NoCapacityInvocationFailures \ --namespace AWS/SageMaker \ --period 60 \ --statistic Sum \ --threshold 1

    Dans cet exemple, remplacez step-scaling-policy-arn par le ARN de votre politique de dimensionnement des étapes. ic-step-scaling-alarmRemplacez-le par le nom de votre choix. inference-component-nameRemplacez-le par le nom de votre composant d'inférence.

    Cet exemple définit le --metric-name paramètre surNoCapacityInvocationFailures. SageMaker L'IA émet cette métrique lorsqu'un point de terminaison reçoit une demande d'inférence, mais que le point de terminaison ne dispose d'aucune instance active pour traiter la demande. Lorsque cet événement se produit, l'alarme déclenche la politique de dimensionnement des étapes de l'étape précédente.

    Pour plus d'informations sur cette commande et chacun de ses paramètres, consultez put-metric-alarmla référence des AWS CLI commandes.