Apache Spark MLlib と自動 MLflow 追跡
このドキュメントは廃止されており、更新されない可能性があります。 このコンテンツに記載されている製品、サービス、またはテクノロジはサポートされなくなりました。
MLlibの自動MLflowトラッキングは、Databricksランタイム 10.1 ML以降を実行するクラスターでは非推奨となり、Databricksランタイム10.2 ML以降を実行するクラスターではデフォルトで無効化されます。代わりに、Databricks Autologgingでデフォルトで有効化されている mlflow.pyspark.ml.autolog()
を呼び出して、MLflow PySpark MLオートロギング使用してください。
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 に次の情報が表示されます。