Condividi tramite


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.

Diagramma che illustra come Azure Machine Learning si connette a Kubernetes.

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:

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.

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 No
Usare l'interfaccia della riga di comando/SDK v2 No
Configurare il training No
Applicare l'inferenza in tempo reale
Applicare l'inferenza batch No
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:

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: