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 に次の情報が表示されます。
