Apache Spark MLlib と自動 MLflow 追跡
このドキュメントは廃止されており、更新されない可能性があります。 このコンテンツに記載されている製品、サービス、またはテクノロジはサポートされなくなりました。
MLlib自動MLflow Databricks Runtime追跡は、10.1ML 以降で実行されるクラスターでは非推奨Databricks Runtime され、10.2 以降で実行されるクラスターではデフォルトML 無効になります。代わりに、mlflow.pyspark.ml.autolog()
を呼び出して自動ログMLflow PySpark ML使用します。これは、 Databricks Autologgingで デフォルト によって有効になります。
Databricks Runtime 10.2 ML 以降で古い MLlib 自動 MLflow 追跡を使用するには、 Spark 構成 spark.databricks.mlflow.trackMLlib.enabled true
と spark.databricks.mlflow.autologging.enabled false
を設定して有効にします。
MLflow は、エンドツーエンドの機械学習ライフサイクルを管理するためのオープンソース プラットフォームです。MLflow では、Python、R、Scala での機械学習モデルの調整の追跡がサポートされています。 Pythonノートブックのみ、Databricks Runtime リリースノートのバージョンと互換性Databricks Runtime 、 機械学習の MLflowは、Apache SparkMLlib モデルのチューニングのための 自動 追跡 をサポートします。
MLlib自動MLflowトラッキングでは、CrossValidator
や TrainValidationSplit
を使用するチューニングコードを実行すると、ハイパーパラメータと評価メトリクスが自動的にMLflowログインされます。自動化された MLflow 追跡を使用しない場合は、MLflow にログを記録するために明示的な API 呼び出しを行う必要があります。
MLflow の実行を管理する
CrossValidator
または、入れ子になった MLflow の実行時にログのチューニング結果 TrainValidationSplit
。
- メインまたは親の実行:
CrossValidator
またはTrainValidationSplit
の情報は、メインの実行に記録されます。 アクティブな実行が既にある場合は、このアクティブな実行に情報が記録され、アクティブな実行は停止しません。 アクティブな実行がない場合、MLflow は新しい実行を作成し、ログに記録し、実行を終了してから戻ります。 - 子実行: テストされた各ハイパーパラメータ設定と対応する評価メトリクスは、メイン実行の下の子実行に記録されます。
fit()
を呼び出す場合、Databricks ではアクティブな MLflow 実行管理をお勧めします。つまり、fit()
への呼び出しを "with mlflow.start_run():
" ステートメントで囲みます。これにより、情報は独自の MLflow メイン実行でログ記録され、その実行に追加のタグ、パラメーター、またはメトリクスを簡単にログに記録できます。
fit()
が同じアクティブ MLflow 実行内で複数回呼び出されると、それらの複数の実行が同じメイン実行に記録されます。 MLflow のパラメーターとタグの名前の競合を解決するために、MLflow は競合する名前に UUID を追加します。
次の Python ノートブックは、自動 MLflow 追跡を示しています。
自動 MLflow 追跡ノートブック
ノートブックの最後のセルでアクションを実行すると、MLflow UI に次の情報が表示されます。