Introduzione alla destinazione di calcolo di Kubernetes in Azure Machine Learning
SI APPLICA A:Estensione per Machine Learning dell'interfaccia della riga di comando di Azure v2 (corrente)
Python SDK azure-ai-ml v2 (corrente)
Con l'interfaccia della riga di comando di Azure Machine Learning/Python SDK v2, Azure Machine Learning ha introdotto una nuova destinazione di calcolo, la destinazione di calcolo Kubernetes. È possibile abilitare facilmente un cluster del servizio Azure Kubernetes esistente o un cluster di Kubernetes con abilitazione di Azure Arc (Arc Kubernetes) in modo che diventi una destinazione di calcolo Kubernetes in Azure Machine Learning e usarlo per eseguire il training o la distribuzione di modelli.
Questo articolo contiene informazioni relative agli argomenti seguenti:
- Funzionamento
- Scenari di utilizzo
- Procedure consigliate
- KubernetesCompute e AksCompute legacy
Funzionamento
L'ambiente di calcolo Kubernetes di Azure Machine Learning supporta due tipi di cluster Kubernetes:
- Cluster del servizio Azure Kubernetes in Azure. Con il cluster del servizio Azure Kubernetes autogestito in Azure è possibile ottenere sicurezza e controlli per soddisfare i requisiti di conformità e la flessibilità necessaria per gestire il carico di lavoro di Machine Learning dei team.
- Cluster Arc Kubernetes all'esterno di Azure. Con il cluster Arc Kubernetes è possibile eseguire il training o la distribuzione di modelli in qualsiasi infrastruttura locale, tra più cloud o nella rete perimetrale.
Con una semplice distribuzione di estensioni del cluster nel servizio Azure Kubernetes o nel cluster Arc Kubernetes, il cluster Kubernetes è perfettamente supportato in Azure Machine Learning per eseguire il training o l'inferenza del carico di lavoro. La semplice procedura seguente consente di abilitare e usare con facilità un cluster Kubernetes esistente per il carico di lavoro di Azure Machine Learning:
- Preparare un cluster del servizio Azure Kubernetes o un cluster Arc Kubernetes.
- Distribuire l'estensione Azure Machine Learning.
- Collegare un cluster Kubernetes all'area di lavoro di Azure Machine Learning.
- Usare la destinazione di calcolo Kubernetes dall'interfaccia della riga di comando v2, dall'SDK v2 e dall'interfaccia utente dello studio.
Team delle operazioni IT. Il team delle operazioni IT è responsabile dei primi tre passaggi: preparare un cluster del servizio Azure Kubernetes o Arc Kubernetes, distribuire l'estensione del cluster di Azure Machine Learning e collegare il cluster Kubernetes all'area di lavoro di Azure Machine Learning. Oltre a questi passaggi di configurazione dell'ambiente di calcolo essenziali, il team delle operazioni IT usa anche strumenti familiari, ad esempio l'interfaccia della riga di comando di Azure o kubectl, per gestire le attività seguenti per il team di data science:
- Configurazioni di rete e sicurezza, ad esempio connessione al server proxy in uscita o configurazione del firewall di Azure, configurazione del router di inferenza (azureml-fe), terminazione di SSL/TLS e configurazione della rete virtuale.
- Creare e gestire i tipi di istanza per diversi scenari di carico di lavoro di Machine Learning e ottenere un utilizzo efficiente delle risorse di calcolo.
- Risolvere i problemi relativi al carico di lavoro correlati al cluster Kubernetes.
Team di data science. Quando il team delle operazioni IT completa la configurazione dell'ambiente di calcolo e la creazione di una o più destinazioni di calcolo, il team di data science può individuare un elenco delle destinazioni di calcolo e dei tipi di istanza disponibili nell'area di lavoro di Azure Machine Learning. Queste risorse di calcolo possono essere usate per il carico di lavoro di training o inferenza. Il team di data science specifica il nome della destinazione di calcolo e il nome del tipo di istanza usando le API o gli strumenti preferiti. Ad esempio, questi nomi possono essere Interfaccia della riga di comando di Azure Machine Learning v2, Python SDK v2 o Interfaccia utente dello studio.
Scenari di utilizzo di Kubernetes
Con il cluster Arc Kubernetes è possibile compilare, eseguire il training e distribuire modelli in qualsiasi infrastruttura locale e in più cloud usando Kubernetes. Questo approccio consente modelli di utilizzo non possibili in precedenza nell'ambiente cloud. La tabella seguente fornisce un riepilogo dei nuovi modelli di utilizzo abilitati dall'ambiente di calcolo Kubernetes di Azure Machine Learning:
Modello di utilizzo | Posizione dei dati | Motivazione | Configurazione dell'infrastruttura e implementazione di Azure Machine Learning |
---|---|---|---|
Eseguire il training del modello nel cloud, distribuire il modello in locale | Cloud | Usare il cloud computing. A causa di esigenze di calcolo elastico o hardware speciale, ad esempio una GPU. Il modello deve essere distribuito in locale a causa di requisiti di sicurezza, conformità o latenza |
1. Ambiente di calcolo gestito di Azure nel cloud. 2. Kubernetes gestito dal cliente in locale. 3. MLOps completamente automatizzato in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che eseguono senza problemi la transizione dal cloud all'ambiente locale e viceversa. 4. Ripetibile, con tutti gli asset rilevati correttamente. Il training del modello viene ripetuto quando necessario e la distribuzione del modello viene aggiornata automaticamente dopo la ripetizione del training. |
Eseguire il training del modello in locale e nel cloud, distribuirlo sia nel cloud sia in locale | Cloud | Le organizzazioni vogliono combinare gli investimenti in locale con la scalabilità cloud. Riunire l'ambiente di calcolo nel cloud e in locale in una posizione centralizzata. Una singola fonte di informazioni attendibili per i dati è situata nel cloud e può essere replicata in locale, ovvero in modo differito al momento dell'utilizzo o in modo proattivo. Il cloud computing viene usato principalmente quando le risorse locali non sono disponibili (in uso, manutenzione) o non hanno requisiti hardware specifici (GPU). | 1. Ambiente di calcolo gestito di Azure nel cloud. 2. Kubernetes gestito dal cliente in locale. 3. MLOps completamente automatizzato in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che eseguono senza problemi la transizione dal cloud all'ambiente locale e viceversa. 4. Ripetibile, con tutti gli asset rilevati correttamente. Il training del modello viene ripetuto quando necessario e la distribuzione del modello viene aggiornata automaticamente dopo la ripetizione del training. |
Eseguire il training del modello in locale, distribuire il modello nel cloud | Locale | I dati devono rimanere in locale a causa dei requisiti di residenza dei dati. Distribuire il modello nel cloud per l'accesso al servizio globale o per l'elasticità di calcolo per la scalabilità e la velocità effettiva. |
1. Ambiente di calcolo gestito di Azure nel cloud. 2. Kubernetes gestito dal cliente in locale. 3. MLOps completamente automatizzato in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che eseguono senza problemi la transizione dal cloud all'ambiente locale e viceversa. 4. Ripetibile, con tutti gli asset rilevati correttamente. Il training del modello viene ripetuto quando necessario e la distribuzione del modello viene aggiornata automaticamente dopo la ripetizione del training. |
Usare il proprio servizio Azure Kubernetes in Azure | Cloud | Più sicurezza e controlli. Apprendimento automatico con IP tutti privati per evitare l'esfiltrazione di dati. |
1. Cluster del servizio Azure Kubernetes dietro una rete virtuale di Azure. 2. Creare endpoint privati nella stessa rete virtuale per l'area di lavoro di Azure Machine Learning e le risorse associate. 3. MLOps completamente automatizzato. |
Ciclo di vita di apprendimento automatico completo in locale | Locale | Proteggere i dati sensibili o l'IP proprietario, ad esempio modelli di Machine Learning e codice/script. | 1. Connessione server proxy in uscita locale. 2. Collegamento privato di Azure ExpressRoute e Azure Arc alle risorse di Azure. 3. Kubernetes gestito dal cliente in locale. 4. MLOps completamente automatizzato. |
Limiti
La destinazione KubernetesCompute
nei carichi di lavoro di Azure Machine Learning (training e inferenza di modello) presenta le limitazioni seguenti:
- La disponibilità delle funzionalità di anteprima in Azure Machine Learning non è garantita.
- Limitazione identificata: i modelli (incluso il modello di base) del Catalogo dei modelli e Registro non sono supportati negli endpoint online di Kubernetes.
Procedure consigliate
Separazione delle responsabilità tra il team delle operazioni IT e il team di data science. Come accennato nella sezione precedente, la gestione di infrastruttura e ambiente di calcolo personalizzati per il carico di lavoro di Machine Learning è un'attività complessa. È consigliabile che se ne occupi il team delle operazioni IT, in modo che il team di data science possa concentrarsi sui modelli di Machine Learning per l'efficienza organizzativa.
Creare e gestire i tipi di istanza per diversi scenari di carico di lavoro di Machine Learning. Ogni carico di lavoro di Machine Learning usa quantità diverse di risorse di calcolo, ad esempio CPU/GPU e memoria. Azure Machine Learning implementa il tipo di istanza come definizione di risorsa personalizzata (CRD) Kubernetes con proprietà di nodeSelector e richiesta/limite di risorse. Con un elenco accurato dei tipi di istanza, il team delle operazioni IT può specificare nodi specifici come destinazione per il carico di lavoro di Machine Learning e gestire in modo efficiente l'utilizzo delle risorse di calcolo.
Più aree di lavoro di Azure Machine Learning condividono lo stesso cluster Kubernetes. È possibile collegare il cluster Kubernetes più volte alla stessa area di lavoro di Azure Machine Learning o ad aree di lavoro di Azure Machine Learning diverse, creando più destinazioni di calcolo in un'area di lavoro o in più aree di lavoro. Poiché molti clienti organizzano i progetti di data science nell'area di lavoro di Azure Machine Learning, più progetti di data science possono ora condividere lo stesso cluster Kubernetes. In questo modo si riducono significativamente i costi di gestione dell'infrastruttura di Machine Learning e si consente un risparmio sui costi IT.
Isolamento del carico di lavoro del team/progetto tramite lo spazio dei nomi Kubernetes. Quando si collega il cluster Kubernetes all'area di lavoro di Azure Machine Learning, è possibile specificare uno spazio dei nomi Kubernetes per la destinazione di calcolo. Tutti i carichi di lavoro eseguiti dalla destinazione di calcolo vengono posizionati nello spazio dei nomi specificato.
KubernetesCompute e AksCompute legacy
Con l'interfaccia della riga di comando di Azure Machine Learning/Python SDK v1, è possibile distribuire modelli nel servizio Azure Kubernetes usando la destinazione AksCompute. Sia la destinazione KubernetesCompute sia la destinazione AksCompute supportano l'integrazione del servizio Azure Kubernetes, ma la supportano in modo diverso. La tabella seguente illustra le differenze principali:
Capabilities | Integrazione del servizio Azure Kubernetes con AksCompute (legacy) | Integrazione del servizio Azure Kubernetes con KubernetesCompute |
---|---|---|
Interfaccia della riga di comando/SDK v1 | Sì | No |
CLI/SDK v2 | No | Sì |
Formazione | No | Sì |
Inferenza in tempo reale | Sì | Sì |
Inferenza batch | No | Sì |
Nuove funzionalità di inferenza in tempo reale | Nessuno sviluppo di nuove funzionalità | Roadmap attiva |
Considerate queste differenze principali e l'evoluzione complessiva di Azure Machine Learning per l'uso dell'SDK/interfaccia della riga di comando v2, Azure Machine Learning consiglia di usare la destinazione di calcolo Kubernetes per distribuire i modelli se si decide di usare il servizio Azure Kubernetes per la distribuzione del modello.
Altre risorse
- Versione di Kubernetes e disponibilità in base all'area geografica
- Usare risorse di archiviazione dei dati personalizzate
Esempi
Tutti gli esempi di Azure Machine Learning sono disponibili in https://github.com/Azure/azureml-examples.git.
Per qualsiasi esempio di Azure Machine Learning è sufficiente aggiornare il nome della destinazione di calcolo alla destinazione di calcolo Kubernetes. Non sono necessarie altre operazioni.
- Esplorare gli esempi di processi di training con l'interfaccia della riga di comando v2 - https://github.com/Azure/azureml-examples/tree/main/cli/jobs
- Esplorare la distribuzione del modello con esempi di endpoint online con l'interfaccia della riga di comando v2 - https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/kubernetes
- Esplorare gli esempi di endpoint batch con l'interfaccia della riga di comando v2 - https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/batch
- Esplorare gli esempi di processi di training con SDK v2 -https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs
- Esplorare la distribuzione del modello con esempi di endpoint online con SDK v2 -https://github.com/Azure/azureml-examples/tree/main/sdk/python/endpoints/online/kubernetes
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per