Hyperopt による分散トレーニングのアルゴリズムを使用する

scikit-learn のアルゴリズムなどの単一マシン トレーニング アルゴリズムに加えて、分散トレーニング アルゴリズムで Hyperopt を使用することもできます。 このシナリオでは、Hyperopt は、ドライバー ノード上のさまざまなハイパーパラメーター設定を使用して試用版を生成します。 各試用版は、ドライバー ノードから実行され、完全なクラスター リソースへのアクセスを提供します。 この設定は、Apache Spark MLlib や HorovodRunner など、すべての分散機械学習アルゴリズムまたはライブラリで機能します。

分散トレーニング アルゴリズムで Hyperopt を使用する場合は、に trials 引数を fmin() に渡さないでください。具体的には、SparkTrials クラスを使用しないでください。 SparkTrials は、自身が分散されていないアルゴリズムの試用版を分散するように設計されています。 分散トレーニング アルゴリズムでは、クラスター ドライバーで実行される既定の Trials クラスを使用します。 Hyperopt は、ML アルゴリズム自体が分散トレーニングを開始できるように、ドライバー ノードの各試用版を評価します。

注意

Azure Databricks は、Trials クラスを使用した MLflow への自動ログ記録をサポートしていません。 分散トレーニング アルゴリズムを使用する場合は、Hyperopt の試用版をログに記録するために MLflow を手動で呼び出す必要があります。

ノートブックの例: MLlib アルゴリズムでの Hyperopt の使用

例のノートブックは、Hyperopt を使用して、MLlib の分散トレーニング アルゴリズムを調整する方法を示しています。

Hyperopt および MLlib 分散トレーニング ノートブック

ノートブックを入手

ノートブックの例: HorovodRunner での Hyperopt の使用

HorovodRunner は、Databricks で分散ディープ ラーニング ワークロードを実行するために使用される汎用 API です。 HorovodRunner は、Horovod を Spark のバリア モードと統合することで、Spark 上で実行時間の長いディープ ラーニング トレーニング ジョブの安定性を高めることができます。

この例のノートブックでは、HorovodRunner に基づいてディープ ラーニングの分散トレーニングを調整するための Hyperopt の使用方法を示しています。

Hyperopt と HorovodRunner 分散トレーニング ノートブック

ノートブックを入手