注
Hyperopt のオープンソース バージョンはメンテナンスされなくなりました。
Hyperopt は、次のメジャー DBR ML バージョンで削除されます。 Azure Databricks では、単一ノードの最適化に
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 の使用方法を示しています。