Skalowanie wersji próbnych funkcji Hyperopt

Ukończone

Jedną z zalet korzystania z platformy Apache Spark w usłudze Azure Databricks jest możliwość dystrybuowania zadań przetwarzania między wieloma węzłami klastra. W przypadku korzystania z biblioteki uczenia maszynowego obsługującej platformę Spark, takiej jak MLlib, trenowanie uczenia maszynowego można skalować w poziomie, aby skrócić całkowity czas potrzebny na proces trenowania. W przypadku korzystania z funkcji Hyperopt z rozproszoną biblioteką szkoleniową, na przykład MLlib, praca jest automatycznie skalowana w obrębie dostępnych węzłów roboczych w klastrze.

Funkcja Hyperopt obsługuje skalowanie poza wersje próbne dostrajania hiperparametrów dla bibliotek, które nie są dystrybuowane przy użyciu klasy SparkTrials zamiast regularnej klasy próbnej . Takie podejście umożliwia wykorzystanie równoległości skalowalnego w poziomie platformy Spark w celu dystrybucji przebiegów dostrajania hiperparametrów w wielu węzłach, nawet w przypadku korzystania z biblioteki przeznaczonej do przetwarzania na jednym komputerze, takim jak Scikit-Learn.

Poniższy przykładowy kod pokazuje, jak używać klasy 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)

Napiwek

Aby uzyskać więcej informacji na temat używania klasy SparkTrials, zobacz Klasę SparkTrials w dokumentacji usługi Azure Databricks.