View a markdown version of this page

Capacité de service Autoscaling - 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.

Capacité de service Autoscaling

La capacité de service varie à deux niveaux HyperPod. Ray Serve adapte les répliques au sein du cluster en fonction de la charge des demandes, et Karpenter gère les nœuds du cluster pour contenir ces répliques. Les deux fonctionnent ensemble : la mise à l'échelle automatique des répliques réagit en premier, et la mise à l'échelle automatique des nœuds ajoute de la capacité lorsque les nœuds existants sont épuisés.

Mise à l'échelle automatique des répliques Ray Serve

Ray Serve ajuste le nombre de répliques pour un déploiement en fonction de la charge des demandes. Définissez une configuration de mise à l'échelle automatique sur le déploiement au lieu d'un nombre de répliques fixe :

deployments: - name: Model autoscaling_config: min_replicas: 1 max_replicas: 8 target_ongoing_requests: 5

Pour que la mise à l'échelle automatique des répliques puisse ajouter et supprimer des pods de travail, l'autoscaler Ray doit être activé pour le cluster. Définissez enableInTreeAutoscaling: true dans la RayCluster spécification, ou dans le cas rayClusterConfig d'un RayService :

spec: enableInTreeAutoscaling: true

Sans cela, le déploiement autoscaling_config modifie le nombre de répliques cibles, mais KubeRay ne crée pas les pods de travail nécessaires pour y répondre.

La mise à l'échelle automatique des répliques reste dans les limites de la capacité de nœud actuelle du cluster. Lorsque Ray Serve a besoin de plus de répliques que ce que les nœuds peuvent contenir, les pods restent en attente jusqu'à ce qu'un nœud soit disponible.

Mise à l'échelle automatique des nœuds avec Karpenter géré

Managed Karpenter HyperPod ajoute des nœuds lorsque les pods Ray sont en attente et les supprime lorsqu'ils sont inactifs. Ainsi, la capacité de service suit la demande sans pool de nœuds fixe. Les instances Spot sont prises en charge en fonction de la capacité des nœuds, ce qui réduit le coût des services tolérants aux interruptions. Pour en savoir plus sur l'installation et la configuration, consultezMise à l'échelle automatique sur EKS SageMaker HyperPod.

Utiliser les deux ensemble

Définissez la mise à l'échelle automatique des répliques sur le déploiement et la mise à l'échelle automatique des nœuds sur le cluster. Les deux niveaux fonctionnent ensemble dans une chaîne qui répond à l'augmentation de la charge de demandes :

  1. Ray Serve détecte une augmentation de charge. L'autoscaler constate que les demandes en cours dépassent le nombre de demandes en cours target_ongoing_requests et décide d'ajouter une autre réplique.

  2. KubeRay crée un nouveau module de travail. Ray Serve envoie des signaux KubeRay pour redimensionner le groupe de travail et KubeRay crée un module pour la nouvelle réplique.

  3. Le pod reste en attente s'il n'y a pas de capacité. Si les nœuds existants ne peuvent pas s'adapter au nouveau pod (carte graphique ou mémoire insuffisante), le pod passe en Pending état.

  4. Managed Karpenter fournit un nœud. HyperPod managed Karpenter détecte le pod en attente, sélectionne un type d'instance approprié et lance un nouveau nœud.

  5. Le nœud s'affiche et le pod commence à fonctionner. Une fois que le nœud est prêt et rejoint le cluster, Kubernetes y planifie le pod en attente. La nouvelle réplique charge le modèle et commence à répondre aux demandes.

En cas de réduction d'échelle, le processus s'inverse : Ray Serve supprime les répliques inactives, KubeRay supprime les pods de travail et Managed Karpenter met fin aux nœuds qui n'ont aucun pod en cours d'exécution après la fenêtre de consolidation.