Use algoritmos de treinamento distribuído com 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. A Databricks recomenda o uso do Optuna para obter uma experiência semelhante e acesso a algoritmos de ajuste de hiperparâmetros mais atualizados.
Além dos algoritmos de treinamento de máquina única, como os do Scikit-Learn, você pode usar o Hyperopt com algoritmos de treinamento distribuído. Nesse cenário, o Hyperopt gera tentativas com diferentes configurações de hiperparâmetros no nó do driver. Cada tentativa é executada a partir do nó do driver, dando acesso a todos os recursos clusters . Essa configuração funciona com qualquer algoritmo ou biblioteca machine learning distribuído, incluindo Apache Spark MLlib e HorovodRunner.
Ao usar o Hyperopt com algoritmos de treinamento distribuído, não passe um argumento trials
para fmin()
e, especificamente, não use a classe SparkTrials
. SparkTrials
foi projetado para distribuir testes para algoritmos que não são distribuídos. Com algoritmos de treinamento distribuído, use a classe Trials
default , cuja execução no driver clusters . O Hyperopt avalia cada tentativa no nó do driver para que o próprio algoritmo de ML possa iniciar o treinamento distribuído.
Observação
Databricks não oferece suporte a log automático para MLflow com a classe Trials
. Ao usar algoritmos de treinamento distribuído, você deve chamar manualmente o MLflow para logs os testes para o Hyperopt.
Exemplo Notebook : Use Hyperopt com algoritmos MLlib
O Notebook de exemplo mostra como usar o Hyperopt para ajustar os algoritmos de treinamento distribuído do MLlib.
Exemplo Notebook : Use Hyperopt com HorovodRunner
HorovodRunner é uma API geral usada para executar cargas de trabalho de aprendizado profundo distribuídas em Databricks. O HorovodRunner integra o Horovod com o modo de barreira do Spark para fornecer maior estabilidade para Job de treinamento profundo de aprendizagem de longa duração no Spark.
O Notebook de exemplo mostra como usar o Hyperopt para ajustar o treinamento distribuído para aprendizagem profunda com base no HorovodRunner.