Share via


Utilisation de machines virtuelles de priorité faible dans les déploiements par lots

S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)

Les déploiements Azure Batch prennent en charge les machines virtuelles de faible priorité pour réduire le coût des charges de travail d’inférence par lots. Les machines virtuelles de faible priorité permettent d’utiliser une grande quantité de puissance de calcul pour un coût faible. Les machines virtuelles de faible priorité tirent parti de la capacité excédentaire dans Azure. Lorsque vous spécifiez des machines virtuelles de faible priorité dans vos pools, Azure peut utiliser ce surplus lorsqu’il est disponible.

La contrepartie à leur utilisation est que ces machines virtuelles risquent de ne pas pouvoir toujours être réaffectées ou d’être préemptées à tout moment, selon la capacité disponible. C’est la raison pour laquelle elles sont particulièrement adaptées aux charges de travail de traitement par lots et asynchrone lorsque l’heure d’achèvement de la tâche est flexible et que le travail est réparti entre plusieurs machines virtuelles.

Les machines virtuelles de faible priorité sont proposées à un prix considérablement inférieur à celui des machines virtuelles dédiées. Pour plus de détails sur les prix, consultez Tarification d’Azure Machine Learning.

Fonctionnement du déploiement par lots avec des machines virtuelles de faible priorité

Les déploiements de lot Azure Machine Learning fournissent plusieurs fonctionnalités permettant de facilement utiliser et tirer parti des machines virtuelles de faible priorité :

  • Les travaux de déploiement par lots consomment des machines virtuelles de faible priorité en s’exécutant sur des clusters de calcul Azure Machine Learning créés avec des machines virtuelles de faible priorité. Une fois qu’un déploiement est associé à un cluster de machines virtuelles de faible priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de faible priorité. La configuration par travail individuel n’est pas possible.
  • Les travaux de déploiement par lots recherchent automatiquement le nombre cible de machines virtuelles dans le cluster de calcul disponible en fonction du nombre de tâches à envoyer. Si les machines virtuelles sont préemptées ou indisponibles, les travaux de déploiement par lots tentent de remplacer la capacité perdue en mettant en file d’attente les tâches ayant échoué sur le cluster.
  • Les machines virtuelles de faible priorité ont un quota de processeurs virtuels distinct de celui des machines virtuelles dédiées. Les cœurs de faible priorité par région ont une limite par défaut comprise entre 100 et 3 000 ressources en fonction du type de votre offre d’abonnement. Le nombre de cœurs basse priorité par abonnement peut être augmenté et représente une valeur unique entre les familles de machines virtuelles. Consultez Quotas de calcul Azure Machine Learning.

Considérations et cas d’usage

De nombreuses charges de travail de lot conviennent parfaitement aux machines virtuelles de faible priorité. Bien que cela puisse entraîner d’autres retards d’exécution lorsque la désallocation des machines virtuelles se produit, les baisses potentielles de capacité peuvent être tolérées au détriment de l’exécution avec un coût inférieur s’il existe une flexibilité dans le temps nécessaire aux travaux.

Lors du déploiement de modèles sous des points de terminaison de lot, le re-planification peut être effectuée au niveau du mini-lot. Cela présente l'avantage supplémentaire de limiter l'impact de la désallocation aux mini-lots en cours de traitement et qui ne sont pas terminés sur le nœud concerné. Chaque progression terminée est conservée.

Création de déploiements par lots avec des machines virtuelles de faible priorité

Les travaux de déploiement par lots consomment des machines virtuelles de faible priorité en s’exécutant sur des clusters de calcul Azure Machine Learning créés avec des machines virtuelles de faible priorité.

Notes

Une fois qu’un déploiement est associé à un cluster de machines virtuelles de faible priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de faible priorité. La configuration par travail individuel n’est pas possible.

Vous pouvez créer un cluster de calcul Azure Machine Learning de faible priorité en procédant comme suit :

Créez une définition de calcul YAML comme celle-ci :

low-pri-cluster.yml

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Créez le calcul à l’aide de la commande suivante :

az ml compute create -f low-pri-cluster.yml

Une fois que vous avez créé le nouveau calcul, vous pouvez créer ou mettre à jour votre déploiement pour utiliser le nouveau cluster :

Pour créer ou mettre à jour un déploiement sous le nouveau cluster de calcul, créez une configuration YAML comme suit :

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

Ensuite, créez le déploiement avec la commande suivante :

az ml batch-endpoint create -f endpoint.yml

Afficher et surveiller la désallocation des nœuds

De nouvelles métriques sont disponibles dans le Portail Azure pour les machines virtuelles de faible priorité afin de surveiller les machines virtuelles de faible priorité. Ces mesures sont :

  • Nœuds reportés
  • Cœurs réquisitionnés

Pour afficher ces métriques dans le portail Azure :

  1. Dans le portail Azure, accédez à votre espace de travail Azure Machine Learning.
  2. Sélectionnez Mesures à partir de la section Analyse.
  3. Sélectionnez les métriques de votre choix dans la liste Métriques.

Capture d’écran de la section des métriques dans la lame de surveillance des ressources montrant les métriques pertinentes pour les machines virtuelles à faible priorité.

Limites

  • Une fois qu’un déploiement est associé à un cluster de machines virtuelles de faible priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de faible priorité. La configuration par travail individuel n’est pas possible.
  • La replanification est effectuée au niveau du minilot, quelle que soit la progression. Aucune fonctionnalité de point de contrôle n’est fournie.

Avertissement

Dans les cas où l’ensemble du cluster est préempté (ou s’exécute sur un cluster d’un seul nœud), le travail est annulé, car la capacité disponible est insuffisante pour permettre son exécution. Dans ce cas, une nouvelle soumission est nécessaire.