Configurar um ambiente de desenvolvimento com o Azure Databricks e o AutoML no Azure Machine Learning

Saiba como configurar um ambiente de desenvolvimento no Azure Machine Learning que utiliza o Azure Databricks e o ML automatizado.

O Azure Databricks é ideal para executar fluxos de trabalho de machine learning intensivos em larga escala na plataforma do Apache Spark dimensionável na cloud do Azure. Fornece um ambiente colaborativo baseado em Blocos de Notas com um cluster de computação baseado em CPU ou GPU.

Para obter informações sobre outros ambientes de desenvolvimento de machine learning, veja Configurar o ambiente de desenvolvimento do Python.

Pré-requisito

Área de trabalho do Azure Machine Learning. Para criar um, utilize os passos no artigo Criar recursos da área de trabalho .

Azure Databricks com o Azure Machine Learning e AutoML

O Azure Databricks integra-se com o Azure Machine Learning e as respetivas capacidades de AutoML.

Pode utilizar o Azure Databricks:

Configurar um cluster do Databricks

Criar um cluster do Databricks. Algumas definições aplicam-se apenas se instalar o SDK para machine learning automatizado no Databricks.

Demora alguns minutos a criar o cluster.

Utilize estas definições:

Definições Aplica-se a Valor
Nome do Cluster sempre yourclustername
Versão do Databricks Runtime sempre 9.1 LTS
Versão de Python sempre 3
Tipo de Trabalho
(determina o n.º máximo de iterações simultâneas)
ML Automatizado
apenas
Preferida da VM otimizada para memória
Trabalhadores sempre 2 ou superior
Ativar o Dimensionamento Automático ML Automatizado
apenas
Desselecionar

Aguarde até que o cluster esteja em execução antes de continuar.

Adicionar o SDK do Azure Machine Learning ao Databricks

Assim que o cluster estiver em execução, crie uma biblioteca para anexar o pacote do SDK do Azure Machine Learning adequado ao cluster.

Para utilizar o ML automatizado, avance para Adicionar o SDK do Azure Machine Learning com AutoML.

  1. Clique com o botão direito do rato na pasta área de trabalho atual onde pretende armazenar a biblioteca. Selecione Criar>Biblioteca.

    Dica

    Se tiver uma versão antiga do SDK, desmarque-a das bibliotecas instaladas do cluster e mude para o lixo. Instale a nova versão do SDK e reinicie o cluster. Se existir um problema após o reinício, desencaixe e volte a ligar o cluster.

  2. Escolha a seguinte opção (não são suportadas outras instalações do SDK)

    Extras do pacote SDK Origem Nome do PyPi
    Para o Databricks Carregar Ovo python ou PyPI azureml-sdk[databricks]

    Aviso

    Não é possível instalar outros extras do SDK. Selecione apenas a opção [databricks] .

    • Não selecione Anexar automaticamente a todos os clusters.
    • Selecione Anexar junto ao nome do cluster.
  3. Monitorize os erros até que o estado mude para Anexado, o que pode demorar vários minutos. Se este passo falhar:

    Experimente reiniciar o cluster ao:

    1. No painel esquerdo, selecione Clusters.
    2. Na tabela, selecione o nome do cluster.
    3. No separador Bibliotecas , selecione Reiniciar.

    Uma instalação com êxito tem o seguinte aspeto:

SDK do Azure Machine Learning para Databricks

Adicionar o SDK do Azure Machine Learning com AutoML ao Databricks

Se o cluster tiver sido criado com o Databricks Runtime 7.3 LTS (não ML), execute o seguinte comando na primeira célula do seu bloco de notas para instalar o SDK do Azure Machine Learning.

%pip install --upgrade --force-reinstall -r https://aka.ms/automl_linux_requirements.txt

Definições de configuração do AutoML

Na configuração autoML, ao utilizar o Azure Databricks, adicione os seguintes parâmetros:

  • max_concurrent_iterations baseia-se no número de nós de trabalho no cluster.
  • spark_context=sc baseia-se no contexto do Spark predefinido.

Blocos de notas ML que funcionam com o Azure Databricks

Experimente:

Resolução de problemas

  • O Databricks cancela uma execução de machine learning automatizada: quando utiliza capacidades automatizadas de machine learning no Azure Databricks, para cancelar uma execução e iniciar uma nova execução de experimentação, reinicie o cluster do Azure Databricks.

  • Iterações do Databricks >10 para machine learning automatizado: nas definições automatizadas de machine learning, se tiver mais de 10 iterações, defina show_output como False quando submeter a execução.

  • Widget do Databricks para o SDK do Azure Machine Learning e machine learning automatizado: o widget SDK do Azure Machine Learning não é suportado num bloco de notas do Databricks porque os blocos de notas não conseguem analisar widgets HTML. Pode ver o widget no portal com este código Python na célula do bloco de notas do Azure Databricks:

    displayHTML("<a href={} target='_blank'>Azure Portal: {}</a>".format(local_run.get_portal_url(), local_run.id))
    
  • Falha ao instalar pacotes

    A instalação do SDK do Azure Machine Learning falha no Azure Databricks quando são instalados mais pacotes. Alguns pacotes, como psutil, podem causar conflitos. Para evitar erros de instalação, instale pacotes ao congelar a versão da biblioteca. Este problema está relacionado com o Databricks e não com o SDK do Azure Machine Learning. Também poderá ter este problema com outras bibliotecas. Exemplo:

    psutil cryptography==1.5 pyopenssl==16.0.0 ipython==2.2.0
    

    Em alternativa, pode utilizar scripts init se continuar a ter problemas de instalação com bibliotecas python. Esta abordagem não é oficialmente suportada. Para obter mais informações, veja Scripts init com âmbito de cluster.

  • Erro de importação: não é possível importar o nome Timedelta de : Se vir este erro quando utiliza machine learning automatizado, execute as duas linhas seguintes no seu bloco de pandas._libs.tslibsnotas:

    %sh rm -rf /databricks/python/lib/python3.7/site-packages/pandas-0.23.4.dist-info /databricks/python/lib/python3.7/site-packages/pandas
    %sh /databricks/python/bin/pip install pandas==0.23.4
    
  • Erro de importação: nenhum módulo com o nome "pandas.core.indexes": se vir este erro quando utiliza machine learning automatizado:

    1. Execute este comando para instalar dois pacotes no cluster do Azure Databricks:

      scikit-learn==0.19.1
      pandas==0.22.0
      
    2. Desencaixe e, em seguida, volte a ligar o cluster ao seu bloco de notas.

    Se estes passos não resolverem o problema, tente reiniciar o cluster.

  • FailToSendFeather: se vir um FailToSendFeather erro ao ler dados no cluster do Azure Databricks, veja as seguintes soluções:

    • Atualize azureml-sdk[automl] o pacote para a versão mais recente.
    • Adicione azureml-dataprep a versão 1.1.8 ou superior.
    • Adicione pyarrow a versão 0.11 ou superior.

Passos seguintes