Introduzione alla destinazione di calcolo di Kubernetes in Azure Machine Learning
SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
L'interfaccia della riga di comando di Azure Machine Learning e Python SDK v2 forniscono il supporto per una destinazione di calcolo Kubernetes. È possibile abilitare un cluster Kubernetes (AKS) servizio Azure Kubernetes esistente o un cluster Kubernetes abilitato per Azure Arc (Arc Kubernetes) come destinazione di calcolo Kubernetes. Usare il calcolo in Machine Learning per eseguire il training o la distribuzione di modelli.
Questo articolo descrive come usare la destinazione di calcolo Kubernetes in Machine Learning, inclusi gli scenari di utilizzo, le procedure consigliate e un confronto tra le KubernetesCompute
destinazioni legacy e AksCompute
.
Funzionamento della destinazione di calcolo Kubernetes
Il calcolo Kubernetes di Azure Machine Learning supporta due tipi di cluster Kubernetes.
Calcolo | Ufficio | Descrizione |
---|---|---|
Cluster del servizio Azure Kubernetes | All'interno di 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à per gestire il carico di lavoro di Machine Learning del team. |
Cluster Kubernetes abilitato per Arc. | All'esterno di Azure | Con il cluster Arc Kubernetes è possibile eseguire il training o la distribuzione di modelli in qualsiasi infrastruttura locale o multicloud o perimetrale. |
Con una semplice distribuzione di estensioni del cluster nel servizio Azure Kubernetes o nel cluster Arc Kubernetes, il cluster Kubernetes è perfettamente supportato in Machine Learning per eseguire il training o l'inferenza del carico di lavoro. È facile abilitare e usare un cluster Kubernetes esistente per il carico di lavoro di Machine Learning con il processo seguente:
Passaggio 1: Preparare un cluster servizio Azure Kubernetes o un cluster Arc Kubernetes.
Passaggio 2: Distribuire l'estensione del cluster di Azure Machine Learning.
Passaggio 3: Collegare il cluster Kubernetes all'area di lavoro di Azure Machine Learning.
Passaggio 4: Usare la destinazione di calcolo Kubernetes dall'interfaccia della riga di comando v2, SDK v2 o dall'interfaccia utente studio di Azure Machine Learning.
Ecco le principali responsabilità in questo processo:
Il team it-operation è responsabile dei passaggi 1, 2 e 3. Questo team prepara un cluster del servizio Azure Kubernetes o Arc Kubernetes, distribuisce l'estensione del cluster di Machine Learning e collega il cluster Kubernetes all'area di lavoro di Machine Learning. Oltre a questi passaggi di configurazione di calcolo essenziali, il team it-operation usa anche strumenti familiari, ad esempio l'interfaccia della riga di comando di Azure o kubectl, per completare le attività seguenti per il team di data science:
Configurare le opzioni di rete e sicurezza, ad esempio la connessione al server proxy in uscita o il firewall di Azure, l'installazione del router di inferenza (azureml-fe), la terminazione SSL/TLS e la 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 del carico di lavoro correlati al cluster Kubernetes.
Il team di data science inizia le attività dopo che il team it-operations completa la configurazione e la creazione delle destinazioni di calcolo. Questo team individua un elenco di destinazioni di calcolo e tipi di istanza disponibili nell'area di lavoro di Machine Learning. Le 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 gli strumenti o le API preferiti. Possono usare l'interfaccia della riga di comando di Azure Machine Learning v2, Python SDK v2 o l'interfaccia utente di Machine Learning Studio.
Scenari di utilizzo di Kubernetes
Con il cluster Arc Kubernetes è possibile compilare, eseguire il training e distribuire modelli in qualsiasi infrastruttura locale e multicloud usando Kubernetes. Questa strategia apre alcuni nuovi modelli di utilizzo precedentemente non possibili in un ambiente di impostazione cloud. La tabella seguente fornisce un riepilogo dei nuovi modelli di uso abilitati quando si usa il calcolo Kubernetes di Azure Machine Learning:
Modello di utilizzo | Posizione dei dati | Obiettivi e requisiti | Configurazione dello scenario |
---|---|---|---|
Eseguire il training del modello nel cloud, distribuire il modello in locale | Cloud | Usare il cloud compute per supportare esigenze di calcolo elastico o hardware speciale, ad esempio una GPU. La distribuzione del modello deve essere locale per i requisiti di sicurezza, conformità o latenza. |
- Calcolo gestito da Azure nel cloud - Kubernetes gestito dal cliente in locale - Operazioni di Machine Learning completamente automatizzate in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che passano senza problemi tra il cloud e l'ambiente locale - Ripetibile, tutti gli asset monitorati correttamente, il training del modello viene ripetuto in base alle esigenze, la distribuzione 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 | Combinare investimenti locali con scalabilità cloud. Portare il cloud e l'ambiente di calcolo locale in un unico riquadro di vetro. Accedere a un'unica origine di verità per i dati nel cloud e replicare in locale (in modo differimento sull'utilizzo o in modo proattivo). Abilitare l'utilizzo primario del cloud compute quando le risorse locali non sono disponibili (in uso o in manutenzione) o non soddisfano requisiti hardware specifici (GPU). |
- Calcolo gestito da Azure nel cloud. Kubernetes gestito dal cliente in locale - Operazioni di Machine Learning completamente automatizzate in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che passano senza problemi tra il cloud e l'ambiente locale - Ripetibile, tutti gli asset monitorati correttamente, il training del modello viene ripetuto in base alle esigenze, la distribuzione viene aggiornata automaticamente dopo la ripetizione del training |
Eseguire il training del modello in locale, distribuire il modello nel cloud | Locale | Archiviare i dati in locale per soddisfare i requisiti di residenza dei dati. Distribuire il modello nel cloud per l'accesso al servizio globale o per abilitare l'elasticità di calcolo per la scalabilità e la velocità effettiva. |
- Calcolo gestito da Azure nel cloud - Kubernetes gestito dal cliente in locale - Operazioni di Machine Learning completamente automatizzate in modalità ibrida, inclusi i passaggi di training e distribuzione del modello che passano senza problemi tra il cloud e l'ambiente locale - Ripetibile, tutti gli asset monitorati correttamente, il training del modello viene ripetuto in base alle esigenze, la distribuzione viene aggiornata automaticamente dopo la ripetizione del training |
Usare il proprio servizio Azure Kubernetes in Azure | Cloud | Ottieni maggiore sicurezza e controlli. Stabilire tutti i machine learning IP privati per impedire l'esfiltrazione dei dati. |
- Cluster del servizio Azure Kubernetes dietro una rete virtuale di Azure - Endpoint privati nella stessa rete virtuale per l'area di lavoro di Azure Machine Learning e le risorse associate Operazioni di Machine Learning completamente automatizzate |
Ciclo di vita completo di Machine Learning locale | Locale | Proteggere dati sensibili o IP proprietari, ad esempio modelli di Machine Learning, codice e script. | - Connessione server proxy in uscita locale - Collegamento privato di Azure ExpressRoute e Azure Arc alle risorse di Azure - Kubernetes gestito dal cliente in locale - Operazioni di Machine Learning completamente automatizzate |
Limitazioni per la destinazione di calcolo Kubernetes
Una KubernetesCompute
destinazione nei carichi di lavoro di Azure Machine Learning (inferenza di training e modello) presenta le limitazioni seguenti:
- La disponibilità delle funzionalità di anteprima in Azure Machine Learning non è garantita.
- I modelli (incluso il modello di base) del Catalogo modelli e del Registro di sistema non sono supportati negli endpoint online di Kubernetes.
- Il processo di creazione di una distribuzione di inferenza del modello all'interno del cluster ha un limite di timeout di 20 minuti. Ciò include il download dell'immagine, il download del modello e l'inizializzazione degli script utente.
Procedure consigliate
Questa sezione riepiloga le procedure consigliate per l'uso di un ambiente di calcolo Kubernetes.
Separazione delle responsabilità tra il team it-operations e il team di data science. Come descritto in precedenza, la gestione di risorse di calcolo e infrastruttura per il carico di lavoro di Machine Learning è un'attività complessa. L'approccio migliore consiste nel fare in modo che il team it-operations gestisca l'attività, 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 le proprietà di nodeSelector
e resource request/limit
. Con un elenco accuratamente curato dei tipi di istanza, le operazioni IT possono indirizzare il carico di lavoro di Machine Learning in nodi specifici 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 più volte un cluster Kubernetes alla stessa area di lavoro di Machine Learning o a aree di lavoro diverse. Questo processo crea più destinazioni di calcolo in una singola area di lavoro o in più aree di lavoro. Poiché molti clienti organizzano progetti di data science nell'area di lavoro di Machine Learning, più progetti di data science possono ora condividere lo stesso cluster Kubernetes. Questo approccio riduce significativamente i costi di gestione dell'infrastruttura di Machine Learning e migliora il risparmio dei costi IT.
Isolamento del carico di lavoro del team/progetto tramite lo spazio dei nomi Kubernetes. Quando si collega un cluster Kubernetes a un'area di lavoro di 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.
Confronto tra le destinazioni KubernetesCompute e legacy AksCompute
Con l'interfaccia della riga di comando di Azure Machine Learning/Python SDK v1, è possibile distribuire modelli nel servizio Azure Kubernetes usando la destinazione legacy AksCompute
. Sia le destinazioni che AksCompute
supportano l'integrazione KubernetesCompute
del servizio Azure Kubernetes, ma l'approccio di supporto è diverso. Nella tabella seguente sono riepilogate le differenze principali:
Funzionalità | AksCompute (legacy) | KubernetesCompute |
---|---|---|
Usare l'interfaccia della riga di comando/SDK v1 | Sì | No |
Usare l'interfaccia della riga di comando/SDK v2 | No | Sì |
Configurare il training | No | Sì |
Applicare l'inferenza in tempo reale | Sì | Sì |
Applicare l'inferenza batch | No | Sì |
Accedere alle nuove funzionalità per l'inferenza in tempo reale | Nessuno sviluppo di nuove funzionalità | Roadmap attiva disponibile |
In considerazione di queste differenze e dell'evoluzione complessiva di Machine Learning per usare l'interfaccia della riga di comando/SDK v2, l'approccio consigliato consiste nell'usare la destinazione di calcolo Kubernetes (KubernetesCompute
) per la distribuzione del modello del servizio Azure Kubernetes.
Per altre informazioni, vedere gli articoli seguenti:
- Esaminare le versioni e le aree di Kubernetes supportate
- Connettere processi di Machine Learning con l'archiviazione dei dati personalizzata
Esempi di Machine Learning
Gli esempi di Machine Learning sono disponibili nel repository Azure Machine Learning (azureml-examples) in GitHub. In qualsiasi esempio sostituire il nome della destinazione di calcolo con la destinazione di calcolo Kubernetes ed eseguire l'esempio.
Ecco alcune opzioni:
- Esempi di processi di training con l'interfaccia della riga di comando v2
- Esempi di processi di training con l'SDK v2
- Distribuzione del modello con esempi di endpoint online e interfaccia della riga di comando v2
- Distribuzione di modelli con esempi di endpoint online e SDK v2
- Esempi di endpoint batch con l'interfaccia della riga di comando v2