Executar cargas de trabalho do Azure Machine Learning com machine learning automatizado no Apache Spark no HDInsight

O Azure Machine Learning simplifica e acelera a criação, o treinamento e a implantação de modelos de machine learning. No AutoML (machine learning automatizado), você começa com dados de treinamento que têm um recurso de destino definido. Itere através de combinações de algoritmos e seleções de recursos, selecione automaticamente o melhor modelo para seus dados com base nas pontuações de treinamento. O HDInsight permite que os clientes provisionem clusters com centenas de nós. O AutoML em execução no Spark em um cluster do HDInsight permite que os usuários usem a capacidade de computação entre esses nós para executar trabalhos de treinamento de maneira escalonável e executar vários trabalhos de treinamento em paralelo. Ele permite que os usuários executem experimentos de AutoML ao compartilhar a computação com suas outras cargas de trabalho de Big Data.

Instalar o Azure Machine Learning em um cluster do HDInsight

Para ver tutoriais gerais sobre machine learning automatizado, confira Tutorial: Usar machine learning automatizado para criar seu modelo de regressão. Todos os novos clusters do HDInsight-Spark são pré-instalados com o SDK do AzureML-AutoML.

Observação

Pacotes do Azure Machine Learning são instalados no ambiente Python3 conda. O Jupyter Notebook instalado deve ser executado usando o kernel PySpark3.

Você também pode usar notebooks Zeppelin para usar o AutoML.

Autenticação para o workspace

Criação do workspace e envio de teste exigem um token de autenticação. Esse token pode ser gerado usando um aplicativo do Microsoft Entra. Um usuário do Microsoft Entra também poderá ser usado para gerar o token de autenticação obrigatório se a autenticação multifator não estiver habilitada na conta.

O snippet de código a seguir cria um token de autenticação usando um aplicativo 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>'
)

O snippet de código a seguir cria um token de autenticação usando um de usuário do Microsoft Entra.

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

Carregando conjunto de dados

O aprendizado de máquina automatizado no Spark usa Fluxos de dados, que são operações imutáveis avaliadas lentamente nos dados. Um Fluxo de Dados pode carregar um conjunto de dados de um blob com acesso de leitura público ou uma URL de blob com um token SAS.

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')

Você também pode registrar o repositório de dados com o workspace usando um único registro.

Envio de experimento

Na configuração de machine learning automatizado, a propriedade spark_context deve ser definida para que o pacote seja executado no modo distribuído. A propriedade concurrent_iterations, que é o número máximo de iterações executadas em paralelo, deve ser definida como um número menor que os núcleos de executor para o aplicativo Spark.

Próximas etapas