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 otimização de nó único ou o RayTune para uma experiência semelhante à funcionalidade preterida de ajuste de hiperparâmetro distribuído do Hyperopt. Saiba mais sobre como usar do RayTune no Azure Databricks.
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
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.