Hyperoptで分散トレーニング アルゴリズムを使用する
注
Hyperoptのオープンソース バージョンはメンテナンスされなくなりました。
Hyperopt は、次のメジャー DBR ML バージョンで削除されます。 Databricks、単一ノードの最適化にはOptunaを使用するか、非推奨の分散ハイパーパラメーターチューニング機能と同様のエクスペリエンスのためにRayTuneHyperoptを使用することをお勧めします。Databricks での RayTune の使用の詳細については、こちらをご覧ください。
Scikit-Learnなどの単一マシンのトレーニング アルゴリズムに加えて、Hyperopt を分散トレーニング アルゴリズムで使用できます。このシナリオでは、Hyperopt はドライバー ノードで異なるハイパーパラメーター設定で試用版を生成します。 各トライアルはドライバー ノードから実行され、完全なクラスター リソースにアクセスできます。 このセットアップは、Apache Spark MLlib や HorovodRunner など、あらゆる分散機械学習アルゴリズムまたはライブラリで動作します。
分散トレーニング アルゴリズムで Hyperopt を使用する場合は、 trials
引数を fmin()
に渡さず、具体的には SparkTrials
クラスを使用しないでください。 SparkTrials
は、それ自体が分散されていないアルゴリズムの試行を配布するように設計されています。 分散トレーニング アルゴリズムでは、クラスター ドライバーで実行される既定の Trials
クラスを使用します。 Hyperopt は、機械学習アルゴリズム自体が分散トレーニングを開始できるように、ドライバー ノードで各試用版を評価します。
注
Databricks では、 Trials
クラスを使用した MLflow への自動ログ記録はサポートされていません。 分散トレーニング アルゴリズムを使用する場合は、MLflow を手動で呼び出して、Hyperopt の試用版をログに記録する必要があります。