Escalar avaliações do Hyperopt
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.