Compartilhar via


Usar algoritmos de treinamento distribuídos com o Hyperopt

Observação

A versão de código aberto do Hyperopt não está mais sendo mantida.

O Hyperopt será removido na próxima versão principal do DBR ML. O Azure Databricks recomenda usar o Optuna para uma experiência semelhante e acesso a algoritmos de ajuste de hiperparâmetros mais atualizados.

Além dos algoritmos de treinamento de computador único, como aqueles do Scikit-learn, você pode usar o Hyperopt com algoritmos de treinamento distribuído. Nesse cenário, o Hyperopt gera avaliações com configurações de hiperparâmetro diferentes no nó do driver. Cada avaliação é executada no nó do driver, dando a ele acesso aos recursos completos do cluster. Essa configuração funciona com as bibliotecas ou os algoritmos de machine learning distribuídos, incluindo a MLlib do Apache Spark e o HorovodRunner.

Ao usar o Hyperopt com os algoritmos de treinamento distribuído, não transmita um argumento trials para fmin() e, especificamente, não use a classe SparkTrials. SparkTrials foi projetado para distribuir as avaliações para algoritmos que não são distribuídos por conta própria. Com os algoritmos de treinamento distribuído, use a classe padrão Trials, que é executada no driver do cluster. O Hyperopt avalia cada avaliação no nó do driver para que o próprio algoritmo de ML possa iniciar o treinamento distribuído.

Observação

O Azure Databricks dá suporte ao log automático no MLflow com a classe Trials. Ao usar algoritmos de treinamento distribuído, você precisa chamar manualmente o MLflow para registrar em log as avaliações do Hyperopt.

Exemplo de notebook: usar o Hyperopt com algoritmos de MLlib

O exemplo de notebook mostra como usar o Hyperopt para ajustar os algoritmos de treinamento distribuído da MLlib.

Notebook de treinamento distribuído do Hyperopt e da MLlib

Obter notebook

Exemplo de notebook: usar o Hyperopt com HorovodRunner

O HorovodRunner é uma API geral usada para executar cargas de trabalho de aprendizado profundo distribuídas no Databricks. O HorovodRunner integra o Horovod ao modo de barreira do Spark para fornecer maior estabilidade para trabalhos de treinamento de aprendizado profundo de longa duração no Spark.

O exemplo de notebook mostra como usar o Hyperopt para ajustar o treinamento distribuído para aprendizado profundo com base no HorovodRunner.

Notebook de treinamento distribuído do Hyperopt e do HorovodRunner

Obter notebook