Eseguire carichi di lavoro di Azure Machine Learning con Machine Learning automatizzato in Apache Spark in HDInsight

Azure Machine Learning semplifica e accelera la compilazione, il training e la distribuzione di modelli di Machine Learning. In Machine Learning automatizzato (AutoML) si inizia con i dati di training con una funzionalità di destinazione definita. Scorrere le combinazioni di algoritmi e selezioni di funzionalità seleziona automaticamente il modello migliore per i dati in base ai punteggi di training. HDInsight consente ai clienti di effettuare il provisioning di cluster con centinaia di nodi. AutoML in esecuzione in Spark in un cluster HDInsight consente agli utenti di usare la capacità di calcolo in questi nodi per eseguire processi di training in modo con scalabilità orizzontale e di eseguire più processi di training in parallelo. Consente agli utenti di eseguire esperimenti AutoML durante la condivisione del calcolo con gli altri carichi di lavoro di Big Data.

Installare Azure Machine Learning in un cluster HDInsight

Per esercitazioni generali sull'apprendimento automatico, vedere Esercitazione: Usare Machine Learning automatizzato per creare il modello di regressione. Tutti i nuovi cluster HDInsight-Spark sono preinstallati con AzureML-AutoML SDK.

Nota

I pacchetti di Azure Machine Learning vengono installati nell'ambiente Conda Python3 Il notebook jupyter installato deve essere eseguito usando il kernel PySpark3.

È possibile usare anche i notebook Zeppelin per usare AutoML.

Autenticazione dell'area di lavoro

La creazione dell'area di lavoro e l'invio dell'esperimento richiedono un token di autenticazione, Questo token può essere generato usando un'applicazione Microsoft Entra. Un utente di Microsoft Entra può essere usato anche per generare il token di autenticazione richiesto, se l'autenticazione a più fattori non è abilitata nell'account.

Il frammento di codice seguente crea un token di autenticazione usando un'applicazione Microsoft Entra.

from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
    tenant_id='<Azure Tenant ID>',
    service_principal_id='<Azure AD Application ID>',
    service_principal_password='<Azure AD Application Key>'
)

Il frammento di codice seguente crea un token di autenticazione usando un utente di Microsoft Entra.

from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')

Caricamento di un set di dati

La tecnologia di Machine Learning automatizzato in Spark usa flussi di dati, ovvero operazioni sui dati non modificabili e con valutazione differita. Un flusso di dati può caricare un set di dati da un BLOB con accesso in lettura pubblico o da un URL BLOB con un token di firma di accesso condiviso.

import azureml.dataprep as dprep

dataflow_public = dprep.read_csv(
    path='https://commonartifacts.blob.core.windows.net/automl/UCI_Adult_train.csv')

dataflow_with_token = dprep.read_csv(
    path='https://dpreptestfiles.blob.core.windows.net/testfiles/read_csv_duplicate_headers.csv?st=2018-06-15T23%3A01%3A42Z&se=2019-06-16T23%3A01%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=ugQQCmeC2eBamm6ynM7wnI%2BI3TTDTM6z9RPKj4a%2FU6g%3D')

È anche possibile registrare l'archivio dati nell'area di lavoro usando una registrazione una tantum.

Invio di esperimento

Nella configurazione di Machine Learning automatizzato, la proprietà spark_context deve essere impostata per l'esecuzione del pacchetto in modalità distribuita. La proprietà concurrent_iterations, che corrisponde al numero massimo di iterazioni eseguite in parallelo, deve essere impostata su un numero inferiore rispetto ai core executor per l'app Spark.

Passaggi successivi