Utiliser des machines virtuelles de basse priorité 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)

Important

Les machines virtuelles de faible priorité ont été supprimées pour Azure Machine Learning le 31 mars 2026. Les clusters de calcul qui spécifient tier: low_priority toujours la validation et exécutent toujours des travaux, mais Azure Batch alloue désormais leurs nœuds en tant que machines virtuelles Spot via une migration initiée par le système. Les tarifs Spot et le comportement d’éviction Spot s’appliquent à chaque cluster décrit dans cet article, que vous l’ayez créé avant ou après la date de mise hors service. Pour plus d’informations sur le niveau Batch, consultez Exécuter des charges de travail Batch sur des machines virtuelles Spot rentables.

Azure Batch déploiements 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.

Conseil

L’inconvénient de l’utilisation de machines virtuelles de basse priorité est que ces machines virtuelles peuvent ne pas être disponibles ou qu’elles peuvent être réquisitionnées à tout moment, en fonction de la capacité disponible. C’est la raison pour laquelle cette approche convient mieux aux charges de travail de traitement par lots et asynchrones, pour lesquelles le temps d’achèvement du travail est flexible et le travail est distribué sur de nombreuses machines virtuelles.

Étant donné que ces nœuds sont désormais alloués en tant que machines virtuelles Spot, vous êtes facturé le taux spot actuel pour la taille de machine virtuelle dans la région où le cluster s’exécute. Ce taux est variable plutôt qu’une remise fixe. Il change avec la région et la demande, et il peut approcher le prix de paiement à l’utilisation lorsqu’une région a peu de capacité excédentaire. Vous n’êtes jamais facturé plus que le prix de paiement à l’utilisation pour la même taille de machine virtuelle. Pour plus d’informations, consultez Azure Spot Machines Virtuelles.

Vérifiez le taux actuel pour la taille et la région de votre machine virtuelle avant de choisir une région. Vous pouvez le vérifier dans la calculatrice de prix Azure ou via l’API Azure prix de vente au détail. Pour plus d’informations sur les tarifs généraux, consultez Azure Machine Learning tarification.

Remarque

Azure Batch ne prend pas en charge la définition d'un prix maximal pour les machines virtuelles Spot. Vous ne pouvez donc pas limiter le taux payé par un cluster de calcul. Les nœuds ne sont supprimés que pour des raisons de capacité, jamais en raison du prix. Consultez Exécuter des charges de travail Batch sur des machines virtuelles Spot rentables.

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 basse priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de basse 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 basse priorité par région ont une limite par défaut comprise entre 100 et 3 000 unités, en fonction de votre 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é. Utiliser des machines virtuelles de basse priorité peut introduire des retards d’exécution lorsqu’une désallocation des machines virtuelles se produit. Si le temps qui vous est nécessaire pour terminer des travaux est flexible, vous pouvez accepter d’éventuelles baisses de capacité.

Lorsque vous déployez des modèles sous des points de terminaison de lot, la re-planification peut être effectuée au niveau du mini-lot. Cette approche à l’avantage 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é. Toutes les progressions terminées sont conservées.

Limites

  • Une fois qu’un déploiement est associé à un cluster de machines virtuelles de basse priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de basse priorité. La configuration par travail individuel n’est pas possible.
  • Le rescheduling est effectué au niveau du minibatch, quelle que soit la progression. Aucune fonctionnalité de point de contrôle n’est fournie.
  • Vous êtes facturé pour chaque nœud du cluster pendant qu’il est activé, y compris les nœuds qui sont supprimés avant qu’ils ne terminent tout travail, et y compris le temps que chaque nœud de remplacement dépense au démarrage. L’éviction ne produit pas de remboursement ou de crédit, et les machines virtuelles Spot n’ont pas de contrat SLA. Consultez les états des machines virtuelles et l’état de facturation et les meilleures pratiques pour Azure Batch.
  • Les évictions fréquentes peuvent faire en sorte qu’un cluster coûte plus cher qu’un dedicated cluster pour la même charge de travail, en particulier dans les régions où le taux Spot est proche du taux de paiement à l’utilisation.

Avertissement

Dans les cas où l’ensemble du cluster est réquisitionné ou qu’il 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, il faut soumettre à nouveau.

Créer des déploiements par lots qui utilisent des machines virtuelles de basse 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é.

Remarque

Une fois qu’un déploiement est associé à un cluster de machines virtuelles de basse priorité, tous les travaux produits par ce déploiement utilisent des machines virtuelles de basse 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éer une définition de calcul YAML comme la suivante, 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

Après avoir 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 un fichier de configuration YAML, endpoint.yml :

$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 sur 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 le panneau de surveillance des ressources qui montre les métriques pertinentes pour les machines virtuelles de basse priorité.