Cosa sono le destinazioni di calcolo in Azure Machine Learning?
Una destinazione di calcolo è una risorsa di calcolo o un ambiente designato in cui si esegue lo script di training o l'hosting della distribuzione del servizio. Questo percorso può essere il computer locale o una risorsa di calcolo basata sul cloud. L'uso delle destinazioni di calcolo semplifica la modifica dell'ambiente di calcolo in un secondo momento senza dover modificare il codice.
Azure Machine Learning offre un supporto variabile per le diverse destinazioni di calcolo. In un tipico ciclo di vita dello sviluppo di modelli, è possibile:
- Iniziare sviluppando e sperimentando una piccola quantità di dati. In questa fase, usare l'ambiente locale, ad esempio un computer locale o una macchina virtuale (VM) basata sul cloud, come destinazione di calcolo.
- Aumentare le dimensioni dei dati o eseguire il training distribuito usando una di queste destinazioni di calcolo di training.
- Una volta pronto il modello, distribuirlo in un ambiente di hosting Web con una di queste destinazioni di calcolo di distribuzione.
Le risorse di calcolo usate per le destinazioni di calcolo sono collegate a un'area di lavoro. Le risorse di calcolo diverse dal computer locale vengono condivise dagli utenti dell'area di lavoro.
Destinazioni di calcolo del training
Quando il training viene eseguito su set di dati più grandi, o quando si esegue il training distribuito, è consigliabile usare l'ambiente di calcolo di Azure Machine Learning per creare un cluster a uno o più nodi che viene ridimensionato automaticamente ogni volta che viene inviato un processo. È anche possibile collegare una risorsa di calcolo personalizzata, anche se il supporto per scenari diversi può variare.
Le destinazioni di calcolo possono essere riutilizzate per più processi di training. Ad esempio, dopo aver collegato una macchina virtuale remota all'area di lavoro, è possibile riutilizzarla per più processi. Per le pipeline di Machine Learning, usare il passaggio della pipeline appropriato per ogni destinazione di calcolo.
Per la maggior parte dei processi, è possibile usare qualsiasi risorsa seguente come destinazione di calcolo. Non tutte le risorse possono essere usate per Machine Learning automatizzato, pipeline di Machine Learning o progettazione. Azure Databricks può essere usato come risorsa di training per le esecuzioni locali e le pipeline di apprendimento automatico, ma non come destinazione remota per altri training.
Destinazioni ditraining | Machine Learning automatizzato | Pipeline di apprendimento automatico | Finestra di progettazione di Azure Machine Learning |
---|---|---|---|
Computer locale | Sì | ||
Cluster di calcolo di Azure Machine Learning | Sì | Sì | Sì |
Elaborazione serverless di Azure Machine Learning | Sì | Sì | Sì |
Istanza di calcolo di Azure Machine Learning | Sì (tramite SDK) | Sì | Sì |
Azure Machine Learning Kubernetes | Sì | Sì | |
Macchina virtuale remota | Sì | Sì | |
Pool di Apache Spark (anteprima) | Sì (solo modalità locale SDK) | Sì | |
Azure Databricks | Sì (solo modalità locale SDK) | Sì | |
Azure Data Lake Analytics | Sì | ||
Azure HDInsight | Sì | ||
Azure Batch | Sì |
Suggerimento
L'istanza di ambiente di calcolo ha un disco del sistema operativo da 120 GB. Se si esaurisce lo spazio su disco, usare il terminale per cancellare almeno 1-2 GB prima di arrestare o riavviare l'istanza di ambiente di calcolo.
Destinazioni di calcolo per l'inferenza
Quando si esegue l'inferenza, Azure Machine Learning crea un contenitore Docker che ospita il modello e le risorse associate necessarie per usarlo. Questo contenitore viene quindi usato in una destinazione di calcolo.
La destinazione di calcolo usata per ospitare il modello influisce sul costo e sulla disponibilità dell'endpoint distribuito. Usare questa tabella per scegliere una destinazione di calcolo appropriata.
Destinazione del calcolo | Utilizzo | Supporto GPU | Descrizione |
---|---|---|---|
Endpoint di Azure Machine Learning | Inferenza in tempo reale Inferenza batch |
Sì | Calcoli completamente gestiti per gli endpoint online gestiti in tempo reale e l'assegnazione dei punteggi batch (endpoint batch) nell'elaborazione serverless. |
Azure Machine Learning Kubernetes | Inferenza in tempo reale Inferenza batch |
Sì | Eseguire carichi di lavoro di inferenza in cluster Kubernetes locali, sul cloud e perimetrali. |
Destinazione del calcolo | Utilizzo | Supporto GPU | Descrizione |
---|---|---|---|
Servizio Web locale | Test/debug | Usare per attività limitate di test e risoluzione dei problemi. L'accelerazione hardware dipende dall'uso di librerie nel sistema locale. | |
Azure Machine Learning Kubernetes | Inferenza in tempo reale | Sì | Eseguire carichi di lavoro di inferenza nel cloud. |
Istanze di Azure Container | Inferenza in tempo reale Consigliato solo a scopo di sviluppo/test. |
Usare per carichi di lavoro basati su CPU su scala ridotta che richiedono meno di 48 GB di RAM. Non richiede la gestione di un cluster. Adatto solo per i modelli di dimensioni inferiori a 1 GB. Supportato nella finestra di progettazione. |
Nota
Per la scelta dello SKU di un cluster, aumentare prima le risorse dei sistemi esistenti e poi il numero di sistemi. Iniziare con un computer dotato del 150% della RAM richiesta dal modello, profilare il risultato e trovare un computer con le prestazioni necessarie. Dopo aver appreso questo, aumentare il numero di computer in base all'esigenza di inferenza simultanea.
Calcolo di Azure Machine Learning (gestito)
Azure Machine Learning crea e gestisce le risorse di calcolo gestite. Questo tipo di calcolo è ottimizzato per i carichi di lavoro di apprendimento automatico. I cluster di calcolo di Azure Machine Learning, l'elaborazione serverless e le istanze di ambiente di calcolo sono gli unici calcoli gestiti.
Non è necessario creare un'elaborazione serverless. È possibile creare istanze di ambiente di calcolo o cluster di elaborazione di Azure Machine Learning da:
- Studio di Azure Machine Learning
- Interfaccia della riga di comando di Azure e SDK Python:
- Un modello di Azure Resource Manager. Per un modello di esempio, vedere Creare un cluster di elaborazione di Azure Machine Learning.
Nota
Invece di creare un cluster di elaborazione, usare l'elaborazione serverless per eseguire l'offload della gestione del ciclo di vita di calcolo in Azure Machine Learning.
Al momento della creazione, queste risorse di calcolo fanno automaticamente parte dell'area di lavoro, a differenza di altri tipi di destinazioni di calcolo.
Funzionalità | Cluster di elaborazione | Istanza di calcolo |
---|---|---|
Cluster a nodo singolo o multinodo | ✓ | Cluster a nodo singolo |
Si ridimensiona automaticamente ogni volta che si invia un processo | ✓ | |
Gestione automatica dei cluster e pianificazione dei processi | ✓ | ✓ |
Include il supporto per le risorse di CPU e GPU | ✓ | ✓ |
Nota
Per evitare addebiti quando il calcolo è inattivo:
- Per un cluster di elaborazione, assicurarsi che il numero minimo di nodi sia impostato su 0 o usare l'elaborazione serverless.
- Per un'istanza di ambiente di calcolo, abilitare l'arresto per inattività.
Serie e dimensioni di macchine virtuali supportate
Importante
Se l'istanza di ambiente di calcolo o i cluster di elaborazione si basano su una di queste serie, ricrearle con un'altra dimensione della macchina virtuale prima della data di ritiro per evitare interruzioni del servizio.
Queste serie sono state ritirate il 31 agosto 2023:
Queste serie verranno ritirate il 31 agosto 2024:
Quando si seleziona una dimensione del nodo per una risorsa di calcolo gestita in Azure Machine Learning, è possibile scegliere tra le dimensioni di VM selezionate disponibili in Azure. Azure offre un'ampia gamma di dimensioni per Linux e Windows per carichi di lavoro diversi. Per altre informazioni, vedere Tipi e dimensioni delle macchine virtuali.
Esistono alcune eccezioni e limitazioni nella scelta delle dimensioni delle macchine virtuali:
- Alcune serie di macchine virtuali non sono supportate in Azure Machine Learning.
- Alcune serie di macchine virtuali, ad esempio GPU e altri SKU speciali, potrebbero non essere inizialmente visualizzate nell'elenco di macchine virtuali disponibili. Possono comunque essere usate, dopo aver richiesto una modifica della quota. Per altre informazioni sulla richiesta di quote, vedere Richiedere aumenti di quota e limite. Per altre informazioni sulle serie supportate, vedere la tabella seguente.
Serie di macchine virtuali supportate | Categoria | Supportata da: |
---|---|---|
DDSv4 | Utilizzo generico | Cluster di elaborazione e istanze di ambiente di calcolo |
Dv2 | Utilizzo generico | Cluster di elaborazione e istanze di ambiente di calcolo |
Dv3 | Utilizzo generico | Cluster di elaborazione e istanze di ambiente di calcolo |
DSv2 | Utilizzo generico | Cluster di elaborazione e istanze di ambiente di calcolo |
DSv3 | Utilizzo generico | Cluster di elaborazione e istanze di ambiente di calcolo |
EAv4 | Ottimizzato per la memoria | Cluster di elaborazione e istanze di ambiente di calcolo |
Ev3 | Ottimizzato per la memoria | Cluster di elaborazione e istanze di ambiente di calcolo |
ESv3 | Ottimizzato per la memoria | Cluster di elaborazione e istanze di ambiente di calcolo |
FSv2 | Con ottimizzazione per il calcolo | Cluster di elaborazione e istanze di ambiente di calcolo |
FX | Con ottimizzazione per il calcolo | Cluster di elaborazione |
H | High Performance Computing (HPC) | Cluster di elaborazione e istanze di ambiente di calcolo |
HB | High Performance Computing (HPC) | Cluster di elaborazione e istanze di ambiente di calcolo |
HBv2 | High Performance Computing (HPC) | Cluster di elaborazione e istanze di ambiente di calcolo |
HBv3 | High Performance Computing (HPC) | Cluster di elaborazione e istanze di ambiente di calcolo |
HC | High Performance Computing (HPC) | Cluster di elaborazione e istanze di ambiente di calcolo |
LSv2 | Con ottimizzazione per l'archiviazione | Cluster di elaborazione e istanze di ambiente di calcolo |
M | Ottimizzato per la memoria | Cluster di elaborazione e istanze di ambiente di calcolo |
NC | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NC Promo | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NCv2 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NCv3 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
ND | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NDv2 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NV | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NVv3 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NCasT4_v3 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
NDasrA100_v4 | GPU | Cluster di elaborazione e istanze di ambiente di calcolo |
Anche se Azure Machine Learning supporta queste serie di macchine virtuali, potrebbero non essere disponibili in tutte le aree di Azure. Per verificare se sono disponibili serie di macchine virtuali, vedere Prodotti disponibili in base all'area.
Nota
Azure Machine Learning non supporta tutte le dimensioni delle macchine virtuali supportate da Calcolo di Azure. Per elencare le dimensioni delle macchine virtuali disponibili, usare il metodo seguente:
Nota
Azure Machine Learning non supporta tutte le dimensioni delle macchine virtuali supportate da Calcolo di Azure. Per elencare le dimensioni delle macchine virtuali supportate da tipi di macchine virtuali di calcolo specifici, usare uno dei metodi seguenti:
Se si usano le destinazioni di calcolo abilitate per la GPU, è importante assicurarsi che i driver CUDA corretti siano installati nell'ambiente di training. Usare la tabella seguente per determinare la versione CUDA corretta da usare:
Architettura GPU | Serie di VM di Azure | Versioni CUDA supportate |
---|---|---|
Ampere | NDA100_v4 | 11.0+ |
Turing | NCT4_v3 | 10.0+ |
Volta | NCv3, NDv2 | 9.0+ |
Pascal | NCv2, ND | 9.0+ |
Maxwell | NV, NVv3 | 9.0+ |
Kepler | NC, NC Promo | 9.0+ |
Oltre a garantire che la versione CUDA e l'hardware siano compatibili, assicurarsi anche che la versione CUDA sia compatibile con la versione del framework di apprendimento automatico in uso:
- Per PyTorch, è possibile controllare la compatibilità visitando la pagina delle versioni precedenti di Pytorch.
- Per Tensorflow, è possibile controllare la compatibilità visitando la build di Tensorflow dalla pagina di origine.
Isolamento del calcolo
Azure Machine Learning offre dimensioni delle macchine virtuali isolate per uno specifico tipo di hardware e dedicate a un singolo cliente. Le dimensioni delle macchine virtuali isolate sono più adatte per i carichi di lavoro che richiedono un elevato grado di isolamento dai carichi di lavoro di altri clienti per motivi che includono requisiti normativi e di conformità. L'utilizzo di dimensioni con isolate garantisce che la macchina virtuale sia l'unica in esecuzione in una specifica istanza del server.
Le offerte correnti di macchine virtuali isolate includono:
- Standard_M128ms
- Standard_F72s_v2
- Standard_NC24s_v3
- Standard_NC24rs_v3 (con supporto RDMA)
Per altre informazioni sull'isolamento, vedere Isolamento nel cloud pubblico di Azure.
Calcolo non gestito
Azure Machine Learning non gestisce una destinazione di calcolo non gestita. Questo tipo di destinazione di calcolo viene creato all'esterno di Azure Machine Learning e quindi collegato all'area di lavoro. Le risorse di calcolo non gestite possono richiedere passaggi aggiuntivi per mantenere o migliorare le prestazioni per i carichi di lavoro di apprendimento automatico.
Azure Machine Learning supporta i tipi di risorse di calcolo non gestite seguenti:
- Macchine virtuali remote
- Azure HDInsight
- Azure Databricks
- Azure Data Lake Analytics.
Per altre informazioni, vedere Gestire le risorse di calcolo.