ハイパーパラメーターの調整

Databricks Runtime for Machine Learning には Hyperopt が組み込まれています。このオープンソース ツールを使用すると、モデルの選択とハイパーパラメーターの調整のプロセスを自動化できます。

Ray を使用したハイパーパラメーター調整

Databricks Runtime ML には Ray (ML ワークフローと AI アプリケーションのスケーリングを行うための並列コンピューティング処理に特化したオープンソースのフレームワーク) が含まれています。 「Azure Databricks で Ray を使用する」を参照してください。

Hyperopt を使用したハイパーパラメーター チューニング

Databricks Runtime ML には、分散ハイパーパラメーターのチューニングとモデルの選択を容易にする Python ライブラリである Hyperopt が含まれています。 Hyperopt を使用すると、定義するスペース間でアルゴリズムとハイパーパラメーターを変化させながら、一連の Python モデルをスキャンできます。 Hyperopt は、Apache Spark MLlib や Horovod などの分散型 ML アルゴリズムだけでなく、scikit-learn や TensorFlow などのシングルマシン ML モデルにも対応しています。

Hyperopt を使用する場合の基本的な手順は次のとおりです。

  1. 最小化する目的の関数を定義します。 通常、これはトレーニングまたは検証の損失です。
  2. ハイパーパラメーター検索空間を定義します。 Hyperopt には条件付き検索空間が用意されています。これにより、同じ実行で異なる ML アルゴリズムを比較できます。
  3. 検索アルゴリズムを指定します。 Hyperopt では確率的なチューニング アルゴリズムが使用されます。これにより、決定論的なグリッド検索よりもハイパーパラメーター空間をより効率的に検索できます。
  4. Hyperopt 関数 fmin() を実行します。 fmin() は、前の手順で定義した項目を取得し、目的の関数を最小化するハイパーパラメーターのセットを識別します。

Hyperopt で scikit-learn アルゴリズムを使用してすぐに開始するには、以下を参照してください。

Hyperopt の仕組みの詳細と、その他の例については、次を参照してください。

自動 MLflow 追跡

Note

MLlib 自動 MLflow 追跡は、Databricks Runtime 10.4 LTS ML 以降を実行するクラスターでは非推奨となり、無効になります。 代わりに、mlflow.pyspark.ml.autolog() を呼び出して MLflow PySpark ML 自動ログ記録を使用します。これは、Databricks Autologging では既定で有効になっています。

以前の MLlib 自動 MLflow 追跡を Databricks Runtime 10.4 LTS ML 以降で使用するには、Spark 構成spark.databricks.mlflow.trackMLlib.enabled true および spark.databricks.mlflow.autologging.enabled false を設定して有効にします。