Consigli di calcolo per i carichi di lavoro di intelligenza artificiale nell'infrastruttura di Azure (IaaS)
Questo articolo fornisce raccomandazioni di calcolo per le organizzazioni che eseguono carichi di lavoro di intelligenza artificiale nell'infrastruttura di Azure (IaaS). L'approccio preferito consiste nell'avviare l'adozione dell'IA con soluzioni PaaS (Platform-as-a-Service) di Azure per intelligenza artificiale. Tuttavia, se si ha accesso alle GPU di Azure, seguire queste indicazioni per eseguire carichi di lavoro di intelligenza artificiale in Azure IaaS.
I carichi di lavoro di intelligenza artificiale richiedono macchine virtuali specializzate per gestire richieste di calcolo elevate e l'elaborazione dei dati su larga scala. La scelta delle macchine virtuali appropriate ottimizza l'uso delle risorse e accelera lo sviluppo e la distribuzione dei modelli di intelligenza artificiale. La tabella seguente offre una panoramica delle opzioni di calcolo consigliate.
Fase di intelligenza artificiale | Immagine di macchina virtuale | Intelligenza artificiale generativa | Intelligenza artificiale non generica (modelli complessi) | Intelligenza artificiale non generica (modelli di piccole dimensioni) |
---|---|---|---|---|
Training dei modelli di intelligenza artificiale | Macchine virtuali di data science | GPU (preferisce la famiglia ND. In alternativa, usare la famiglia NC con macchine virtuali interconnesse ethernet) | GPU (preferisce la famiglia ND. In alternativa, usare la famiglia NC con macchine virtuali interconnesse ethernet) | Ottimizzata per la memoria (CPU) |
Inferenza di modelli di intelligenza artificiale | Macchine virtuali di data science | GPU (famiglia NC o ND) | GPU (famiglia NC o ND) | Ottimizzato per il calcolo (CPU) |
Selezionare l'immagine della macchina virtuale corretta
Scegliere un'immagine di macchina virtuale appropriata, ad esempio data science Macchine virtuali, per accedere rapidamente agli strumenti preconfigurati per i carichi di lavoro di intelligenza artificiale. Questa scelta consente di risparmiare tempo e risorse fornendo al tempo stesso il software necessario per l'elaborazione efficiente dell'intelligenza artificiale
Iniziare con le immagini di data science Macchine virtuali. L'immagine Data Science Virtual Machine offre l'accesso preconfigurato agli strumenti di data science. Questi strumenti includono PyTorch, TensorFlow, scikit-learn, Jupyter, Visual Studio Code, interfaccia della riga di comando di Azure e PySpark. Se usata con GPU, l'immagine include anche driver Nvidia, CUDA Toolkit e cuDNN. Queste immagini fungono da immagine di base. Se è necessario altro software, aggiungerlo tramite uno script in fase di avvio o incorporarlo in un'immagine personalizzata. Mantengono la compatibilità con le soluzioni di orchestrazione.
Trovare immagini alternative in base alle esigenze. Se l'immagine di Data Science Virtual Machine non soddisfa le proprie esigenze, usare Azure Marketplace o altri metodi di ricerca per trovare immagini alternative. Ad esempio, con GPU, potrebbero essere necessarie immagini Linux che includono driver InfiniBand, driver NVIDIA, librerie di comunicazione, librerie MPI e strumenti di monitoraggio.
Selezionare le dimensioni di una macchina virtuale
La selezione di una dimensione appropriata della macchina virtuale è allineata alla complessità del modello di intelligenza artificiale, alle dimensioni dei dati e ai vincoli di costo. La corrispondenza dell'hardware al training o all'inferenza necessita di ottimizzare l'efficienza e impedisce sottoutilizzo o overload.
Restringere le opzioni della macchina virtuale. Scegliere gli SKU più recenti per il training e l'inferenza ottimali. Per il training, selezionare SKU che supportano le interconnessioni RDMA e GPU per il trasferimento di dati ad alta velocità tra GPU. Per l'inferenza, evitare SKU con InfiniBand, che non è necessario. Gli esempi includono la serie ND MI300X v5, la serie ND H100 v5, la serie NDm A100 v4 e la serie ND A100 v4.
Controllare i prezzi delle macchine virtuali. Usare le pagine dei prezzi delle macchine virtuali Linux e Windows per una panoramica dei costi generali. Per una stima dettagliata, usare il Calcolatore prezzi di Azure.
Prendere in considerazione le istanze spot. Le istanze spot sono convenienti per gli scenari di inferenza con un rischio minimo di perdita di dati. Le istanze spot offrono risparmi significativi usando la capacità inutilizzata del data center a uno sconto. Tuttavia, questa capacità può essere recuperata in qualsiasi momento, quindi le istanze spot sono ottimali per i carichi di lavoro che possono gestire le interruzioni. Controllare regolarmente i dati per ridurre al minimo la perdita durante la rimozione. Per informazioni, vedere Uso di macchine virtuali spot in Azure CycleCloud.
Scegliere una soluzione di orchestrazione di calcolo
Le soluzioni di orchestrazione di calcolo facilitano la gestione delle attività di intelligenza artificiale nei cluster di macchine virtuali. Anche per le distribuzioni semplici, un agente di orchestrazione può contribuire a ridurre i costi e garantire che un ambiente sia riproducibile. Gli agenti di orchestrazione consentono di assicurarsi di usare solo le risorse di calcolo necessarie per un periodo di tempo specifico. Selezionare uno strumento di orchestrazione in base alle esigenze di pianificazione, containerizzazione e scalabilità per migliorare le operazioni e la scalabilità.
Usare Azure CycleCloud per utilità di pianificazione open source. Azure CycleCloud è ideale per utilità di pianificazione open source, ad esempio Slurm, Grid Engine o Torque/PBS. Offre funzionalità flessibili di gestione dei cluster, configurazioni personalizzabili e funzionalità avanzate di pianificazione. Le macchine virtuali all'interno del cluster richiedono la configurazione per l'esecuzione del carico di lavoro di intelligenza artificiale. Le macchine virtuali per CycleCloud e Batch non sono persistenti. L'agente di orchestrazione crea e rimuove le macchine virtuali quando necessario per risparmiare sui costi. Per altre informazioni, vedere Area di lavoro di Azure CycleCloud per Slum.
Usare Azure Batch per la pianificazione predefinita. Azure Batch offre funzionalità di pianificazione predefinite senza la necessità di installare o gestire software aggiuntivi. Ha un modello tariffario a consumo e non prevede costi di licenza. Supporta anche le attività in contenitori in modo nativo. Per le procedure consigliate per la distribuzione, vedere Acceleratore Azure Batch.
Usare servizio Azure Kubernetes (servizio Azure Kubernetes) per il ridimensionamento dei contenitori. Il servizio Azure Kubernetes è un servizio gestito per la distribuzione, il ridimensionamento e la gestione dei contenitori in un cluster. È adatto per l'esecuzione di carichi di lavoro di intelligenza artificiale in contenitori su larga scala. Per altre informazioni, vedere Usare servizio Azure Kubernetes per ospitare carichi di lavoro basati su GPU.
Orchestrare manualmente i processi per attività più semplici. Se le esigenze di orchestrazione sono minime, gestire manualmente le risorse di intelligenza artificiale. Considerare i passaggi seguenti per i carichi di lavoro su scala ridotta:
- Definire il flusso di lavoro. Informazioni sul flusso di lavoro end-to-end, incluse le dipendenze e la sequenza di processi. Valutare come gestire gli errori in qualsiasi passaggio.
- Registrare e monitorare i processi. Implementare framework di registrazione e monitoraggio chiari per i processi.
- Convalidare i prerequisiti. Assicurarsi che l'ambiente soddisfi tutti i requisiti del flusso di lavoro, incluse le librerie e i framework necessari.
- Uso del controllo della versione. Tenere traccia e gestire le modifiche usando il controllo della versione.
- Automatizzare le attività. Usare gli script per automatizzare la pre-elaborazione, il training e la valutazione dei dati.
Prendere in considerazione i contenitori
I contenitori offrono un ambiente coerente e riproducibile che viene ridimensionato in modo efficiente. I contenitori semplificano le transizioni tra ambienti, rendendoli essenziali per soluzioni di intelligenza artificiale scalabili.
Installare i driver. Assicurarsi che i driver necessari siano installati per abilitare la funzionalità del contenitore in vari scenari. Per le configurazioni del cluster, sono spesso necessari strumenti come Pyxis e Enroot.
Usare NVIDIA Container Toolkit. Questo toolkit abilita le risorse GPU all'interno dei contenitori. Installare tutti i driver necessari, ad esempio I DRIVER CUDA e GPU, e usare il runtime e il motore del contenitore preferiti per l'esecuzione del carico di lavoro di intelligenza artificiale.