Partilhar via


Utilizar algoritmos de preparação distribuídos com o Hyperopt

Nota

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 o uso do Optuna para uma experiência semelhante e acesso a algoritmos de ajuste de hiperparâmetros mais atualizados.

Além de algoritmos de treinamento de máquina única, como os do scikit-learn, você pode usar o Hyperopt com algoritmos de treinamento distribuídos. Nesse cenário, o Hyperopt gera avaliações com diferentes configurações de hiperparâmetro no nó do driver. Cada avaliação é executada a partir do nó do driver, dando-lhe acesso aos recursos completos do cluster. Esta configuração funciona com quaisquer algoritmos ou bibliotecas de aprendizagem automática distribuídos, incluindo Apache Spark MLlib e HorovodRunner.

Quando você usa Hyperopt com algoritmos de treinamento distribuídos, não passe um trials argumento para fmin()e, especificamente, não use a SparkTrials classe. SparkTrials foi concebido para distribuir ensaios para algoritmos que não são eles próprios distribuídos. Com algoritmos de treinamento distribuídos, use a classe padrão Trials , que é executada no driver de cluster. O Hyperopt avalia cada teste no nó do driver para que o próprio algoritmo de ML possa iniciar o treinamento distribuído.

Nota

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

Exemplo de bloco de anotações: Usar Hyperopt com algoritmos MLlib

O bloco de anotações de exemplo mostra como usar o Hyperopt para ajustar os algoritmos de treinamento distribuído do MLlib.

Notebook de treinamento distribuído Hyperopt e MLlib

Obter o bloco de notas

Exemplo de bloco de anotações: Usar Hyperopt com HorovodRunner

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

O bloco de anotações de exemplo mostra como usar o Hyperopt para ajustar o treinamento distribuído para aprendizado profundo com base no HorovodRunner.

Caderno de treinamento distribuído Hyperopt e HorovodRunner

Obter o bloco de notas