Usare macchine virtuali con priorità bassa per le distribuzioni batch

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Importante

Le macchine virtuali con priorità bassa sono state ritirate per Azure Machine Learning il 31 marzo 2026. I cluster di calcolo che specificano tier: low_priority ancora superano la convalida ed eseguono ancora processi, ma Azure Batch ora alloca i nodi come macchine virtuali spot tramite una migrazione avviata dal sistema. I prezzi spot e il comportamento di rimozione spot si applicano a ogni cluster descritto in questo articolo, indipendentemente dal fatto che sia stato creato prima o dopo la data di ritiro. Per informazioni dettagliate a livello di Batch, vedere Eseguire carichi di lavoro Batch in macchine virtuali spot convenienti.

Azure Batch distribuzioni supportano macchine virtuali con priorità bassa per ridurre il costo dei carichi di lavoro di inferenza batch. Le macchine virtuali con priorità bassa consentono di usare una grande quantità di potenza di calcolo a un costo basso. Le macchine virtuali con priorità bassa sfruttano la capacità in eccedenza in Azure. Quando si specificano le macchine virtuali con priorità bassa nei pool, Azure può usare questa capacità in eccesso, quando disponibile.

Suggerimento

Il compromesso per l'uso di macchine virtuali con priorità bassa è che tali macchine virtuali potrebbero non essere disponibili o potrebbero essere interrotte in qualsiasi momento, a seconda della capacità disponibile. Per questo motivo, questo approccio è più indicato per carichi di lavoro di elaborazione asincrona e batch, in cui il tempo di completamento del processo è flessibile e il lavoro viene distribuito su diverse macchine virtuali.

Poiché questi nodi sono ora allocati come macchine virtuali spot, viene addebitata la frequenza spot corrente per le dimensioni della macchina virtuale nell'area in cui viene eseguito il cluster. Tale tasso è variabile anziché uno sconto fisso. Cambia con l'area e la domanda e può avvicinarsi al prezzo con pagamento in base al consumo quando un'area ha una capacità di eccedenza insufficiente. Non viene mai addebitato più del prezzo con pagamento in base al consumo per le stesse dimensioni della macchina virtuale. Per altre informazioni, vedere Azure spot Macchine virtuali.

Controllare la frequenza corrente per le dimensioni e l'area della macchina virtuale prima di scegliere un'area. È possibile archiviarlo nel calcolatore prezzi Azure o tramite l'API Azure prezzi al dettaglio. Per informazioni generali sui prezzi, vedere prezzi Azure Machine Learning.

Nota

Azure Batch non supporta l'impostazione di un prezzo massimo per le macchine virtuali spot, quindi non è possibile limitare la tariffa che un cluster di calcolo paga. I nodi vengono rimossi solo per motivi di capacità, mai a causa del prezzo. Vedere Eseguire carichi di lavoro Batch in macchine virtuali spot convenienti.

Come funziona la distribuzione batch con le VM con priorità bassa

Le distribuzioni batch di Azure Machine Learning forniscono diverse funzionalità che semplificano l'utilizzo e i vantaggi delle VM con priorità bassa:

  • I processi di distribuzione batch usano macchine virtuali con priorità bassa eseguendole in cluster di elaborazione di Azure Machine Learning creati con VM con priorità bassa. Dopo una distribuzione viene associata a un cluster di macchine virtuali con priorità bassa, tutti i processi prodotti da tale distribuzione useranno VM con priorità bassa. La configurazione per processo non è possibile.
  • I processi di distribuzione batch cercano automaticamente il numero di macchine virtuali di destinazione nel cluster di elaborazione disponibile in base al numero di attività da inviare. Se le macchine virtuali vengono interrotte o diventano indisponibili, i processi di distribuzione batch tentano di sostituire la capacità persa inserendo in una coda le attività non riuscite nel cluster.
  • Le macchine virtuali con priorità bassa hanno una quota di vCPU che differisce da quella per le macchine virtuali dedicate. I core con priorità bassa per area hanno un limite predefinito di 100-3.000, a seconda della sottoscrizione. Il numero di core a bassa priorità per ogni sottoscrizione può essere aumentato ed è un valore singolo per le famiglie di macchine virtuali. Vedere Quote di calcolo di Azure Machine Learning.

Considerazioni e casi d'uso

Molti carichi di lavoro batch sono particolarmente adatti alle macchine virtuali con priorità bassa. L'uso di macchine virtuali con priorità bassa può introdurre ritardi di esecuzione quando si verifica la deallocazione delle macchine virtuali. Se si ha flessibilità nel tempo necessario per il completamento dei processi, è possibile tollerare i potenziali cali di capacità.

Quando si distribuiscono modelli negli endpoint batch, la riprogrammazione può essere eseguita a livello di mini batch. Questo approccio ha il vantaggio che la deallocazione influisce solo sui mini batch in fase di elaborazione e non sul nodo interessato. Tutto lo stato di avanzamento completato viene mantenuto.

Limiti

  • Dopo una distribuzione viene associata a un cluster di macchine virtuali con priorità bassa, tutti i processi prodotti da tale distribuzione useranno VM con priorità bassa. La configurazione per processo non è possibile.
  • La riprogrammazione viene eseguita a livello di minibatch, indipendentemente dallo stato di avanzamento. Non viene fornita alcuna funzionalità di checkpoint.
  • Ogni nodo del cluster viene fatturato mentre è acceso, inclusi i nodi rimossi prima di completare qualsiasi lavoro e incluso il tempo trascorso per l'avvio di ogni nodo sostitutivo. La rimozione non produce un rimborso o un credito e le macchine virtuali spot non hanno contratto di servizio. Per Azure Batch, vedere Stati delle macchine virtuali e stato di fatturazione e Procedure consigliate.
  • Le eliminazioni frequenti possono comportare un costo del cluster superiore a quello di un dedicated cluster per lo stesso carico di lavoro, soprattutto nelle aree in cui la tariffa spot è vicina alla tariffa con pagamento in base al consumo.

Avviso

Nei casi in cui l'intero cluster viene interrotto o l'esecuzione avviene in un cluster a nodo singolo, il processo viene annullato perché non è disponibile capacità per l'esecuzione. In questo caso è necessario rinviarlo.

Creare distribuzioni batch che usano macchine virtuali con priorità bassa

I processi di distribuzione batch usano macchine virtuali con priorità bassa eseguendole in cluster di elaborazione di Azure Machine Learning creati con VM con priorità bassa.

Nota

Dopo una distribuzione viene associata a un cluster di macchine virtuali con priorità bassa, tutti i processi prodotti da tale distribuzione useranno VM con priorità bassa. La configurazione per processo non è possibile.

È possibile creare un cluster di elaborazione di Azure Machine Learning con priorità bassa come indicato di seguito:

Creare una definizione di calcolo YAML come quella seguente, 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

Creare il calcolo usando il comando seguente:

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

Dopo aver creato il nuovo ambiente di calcolo, è possibile creare o aggiornare la distribuzione per usare il nuovo cluster:

Per creare o aggiornare una distribuzione nel nuovo cluster di elaborazione, creare un file di configurazione 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

Creare quindi la distribuzione con il comando seguente:

az ml batch-endpoint create -f endpoint.yml

Visualizzare e monitorare la deallocazione dei nodi

Nel portale di Azure sono disponibili nuove metriche per monitorare le VM con priorità bassa. Le metriche sono le seguenti:

  • Nodi interrotti
  • Core interrotti

Per visualizzare queste metriche nel portale di Azure:

  1. Nel portale di Azure accedere all'area di lavoro di Azure Machine Learning.
  2. Selezionare Metrica dalla sezione Monitoraggio.
  3. Selezionare le metriche da usare nell'elenco Metriche.

Screenshot della sezione delle metriche nel riquadro di monitoraggio delle risorse che mostra le metriche pertinenti per le macchine virtuali con priorità bassa.