Escalar avaliações do Hyperopt

Concluído

Uma das vantagens de usar o Apache Spark no Azure Databricks é a capacidade de distribuir tarefas de processamento entre vários nós de cluster. Quando você usa uma biblioteca de aprendizado de máquina com reconhecimento do Spark, como a MLlib, o treinamento de aprendizado de máquina pode ser escalado horizontalmente para reduzir o tempo geral do processo de treinamento. Ao usar o Hyperopt com uma biblioteca de treinamento distribuída como a MLlib, o trabalho é dimensionado automaticamente entre os nós de trabalho disponíveis no cluster.

O Hyperopt dá suporte à expansão de avaliações de ajuste de hiperparâmetro para bibliotecas que não são distribuídas usando a classe SparkTrials no lugar de uma classe regular de avaliações. Essa abordagem permite que você aproveite o paralelismo de expansão do Spark para distribuir execuções de ajuste de hiperparâmetro em vários nós, mesmo ao usar uma biblioteca projetada para processamento em um só computador, como o Scikit-Learn.

O código de exemplo a seguir mostra como usar a classe SparkTrials.

from hyperopt import SparkTrials

  spark_trials = SparkTrials()
  with mlflow.start_run():
    argmin = fmin(
      fn=objective,
      space=search_space,
      algo=algo,
      max_evals=100,
      trials=spark_trials)
  
  print("Best param values: ", argmin)

Dica

Para obter mais informações sobre como usar a classe SparkTrials, confira a Classe SparkTrials na documentação do Azure Databricks.