Hyperopt 試用版をスケーリングする

完了

Azure Databricks で Apache Spark を使う利点の 1 つは、処理タスクを複数のクラスター ノードに分散できることです。 MLlib のような Spark 対応の機械学習ライブラリを使う場合、機械学習トレーニングをスケールアウトして、トレーニング プロセスにかかる全体の時間を短縮するできます。 Hyperopt を MLlib のような分散型トレーニング ライブラリと共に使う場合、作業はクラスター内の使用できるワーカー ノード全体に自動的にスケーリングされます。

Hyperopt は、通常の Trials クラスではなく SparkTrials クラスを使うことにより、分散されないライブラリのハイパーパラメーター調整試用版のスケールアウトをサポートしています。 この方法により、Scikit-Learn などの 1 台のコンピューターで処理するように設計されたライブラリを使う場合でも、Spark のスケールアウト並列性を使ってハイパーパラメーター調整の実行を複数のノードに分散することができます。

次のコード例は、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)

ヒント

SparkTrials クラスの使用方法の詳細については、Azure Databricks ドキュメントの「SparkTrials クラス」を参照してください。