Executar cargas de trabalho do Azure Machine Learning com aprendizado de máquina 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 aprendizado de máquina. No aprendizado de máquina automatizado (AutoML), 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 HDInsight permite que os usuários usem a capacidade de computação nesses nós para executar trabalhos de treinamento em expansão e executar vários trabalhos de treinamento em paralelo. Ele permite que os usuários executem experimentos de AutoML enquanto compartilham a computação com suas outras cargas de trabalho de big data.

Instalar o Azure Machine Learning em um cluster HDInsight

Para obter tutoriais gerais de aprendizado de máquina automatizado, consulte Tutorial: Usar aprendizado de máquina automatizado para criar seu modelo de regressão. Todos os novos clusters HDInsight-Spark vêm pré-instalados com o SDK do AzureML-AutoML.

Nota

Os pacotes do Azure Machine Learning são instalados no ambiente conda do Python3. 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 espaço de trabalho

A criação do espaço de trabalho e o envio do experimento exigem um token de autenticação. Esse token pode ser gerado usando um aplicativo Microsoft Entra. Um usuário do Microsoft Entra também pode ser usado para gerar o token de autenticação necessário, se a autenticação multifator não estiver habilitada na conta.

O trecho 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 trecho de código a seguir cria um token de autenticação usando um 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 preguiçosamente avaliadas e imutáveis nos dados. Um Dataflow pode carregar um conjunto de dados de um blob com acesso de leitura pública ou de 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 armazenamento de dados com o espaço de trabalho usando um registro único.

Submissão de experiências

Na configuração de aprendizado de máquina 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 do que os núcleos do executor para o aplicativo Spark.

Próximos passos