Databricks Autologging
このページでは、さまざまな一般的な機械学習ライブラリからモデルをトレーニングするときに、モデル パラメーター、メトリクス、ファイル、およびリネージ情報を自動的にキャプチャする Databricks Autologgingをカスタマイズする方法について説明します。トレーニング セッションは、 MLflow 追跡の実行として記録されます。 モデルファイルも追跡されるため、 MLflow Model Registryに簡単にログに記録できます。
生成AI ワークロードのトレースログを有効にするために、 MLflow は OpenAI 自動ログをサポートしています。
次のビデオは、対話型の Python ノートブックでの Scikit-Learn モデル トレーニング セッションを使用した Databricks Autologgingを示しています。 追跡情報は自動的にキャプチャされ、[エクスペリメントの実行] サイドバーと MLflow UI に表示されます。
必要条件
- Databricks Autologging は、Databricks Runtime 10.4 LTS ML以降を使用するすべてのリージョンで一般公開されています。
- Databricks Autologgingは、 Databricks Runtime 9.1 LTS ML以降の一部のプレビュー リージョンで使用できます。
仕組み
インタラクティブ Python ノートブックを Databricks クラスターにアタッチすると、 Databricks Autologging mlflow.autolog() の呼び出し をクリックして、モデル トレーニング セッションの追跡を設定します。 ノートブックでモデルをトレーニングすると、 モデルのトレーニング情報は、 MLflow トラッキングによって自動で追跡されます。 このモデルのトレーニング方法に関する情報 情報はセキュリティで保護され、管理されています( セキュリティとデータマネジメントを参照)。
mlflow.autolog() の呼び出しにおけるデフォルトの設定は:
mlflow.autolog(
log_input_examples=False,
log_model_signatures=True,
log_models=True,
disable=False,
exclusive=False,
disable_for_unsupported_versions=True,
silent=False
)
自動ロギング設定をカスタマイズできます。
使い方
Databricks Autologging を使用するには、機械学習モデルを サポートされているフレームワーク は、 対話型の Databricks Python ノートブック。 Databricks Autologging自動収録モデルリネージ 情報, パラメーター, メトリクス to MLflow Tracking.あなたが また、Databricks Autologging の動作をカスタマイズすることもできます。
MLflow fluent APIとmlflow.start_run()
を用いて作成されたランにはDatabricks Autologgingは適用されません。このような場合は、MLflowランに自動記録されたコンテンツを保存するために mlflow.autolog()
を呼び出す必要があります。追加コンテンツの追跡を参照してください。
ログ記録の動作をカスタマイズする
ロギングをカスタマイズするには、 mlflow.autolog() を使用します。この関数は、モデル・ロギング (log_models
)、 log データセット (log_datasets
)、
入力例の収集 (log_input_examples
)、 記録済みモデル 署名 (log_model_signatures
)、警告の構成 (silent
) など。
追加コンテンツの追跡
Databricks Autologgingによって作成された MLflow の実行を使用して追加のメトリクス、パラメーター、ファイル、メタデータを追跡するには、Databricks 対話型の Python ノートブックで次の手順に従います。
- mlflow.autolog に
exclusive=False
を指定して呼び出します。 - mlflow.start_run() を使用して MLflow の実行を開始します。この呼び出しは
with mlflow.start_run()
でラップできます。これを行うと、実行は完了後に自動的に終了します。 - 次のような MLflow 追跡メソッドを使用します mlflow.log_param()です。 を使用して、事前トレーニング コンテンツを追跡します。
- Databricks Autologgingでサポートされているフレームワーク内の 1 つ以上の機械学習モデルをトレーニングします。
- 次のような MLflow 追跡メソッドを使用します mlflow.log_metric()や トレーニング後のコンテンツを追跡します。
- ステップ 2 で
with mlflow.start_run()
を使用しなかった場合、mlflow.end_run() を用いてMLflowランを終了します。
例えば:
import mlflow
mlflow.autolog(exclusive=False)
with mlflow.start_run():
mlflow.log_param("example_param", "example_value")
# <your model training code here>
mlflow.log_metric("example_metric", 5)
Databricks Autologgingを無効にする
Databricks AutologgingDatabricksPythonインタラクティブ ノートブックで を無効にするには、mlflow.autolog()でdisable=True
を指定します:
import mlflow
mlflow.autolog(disable=True)
管理者は管理者設定ページの 詳細設定 タブからワークスペース内のすべてのクラスターでのAutologgingを無効にすることもできます。この変更を有効にするには、クラスターを再起動する必要があります。
サポートされている環境とフレームワーク
Databricks Autologgingは、対話型の Python ノートブックでサポートされており、次の機械学習フレームワークで使用できます。
- Scikit-Learn
- Apache Spark MLlib
- TensorFlow
- keras
- PyTorch Lightning
- XGBoost
- LightGBM
- Gluon
- Fast.AI
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
サポートされている各フレームワークの詳細については、 MLflow自動ログを参照してください。
MLflow トレースの有効化
MLflow トレースは、トレースをサポートするインテグレーションにおけるトレースの有効化、無効化を制御するために、それぞれのモデル フレームワークインテグレーションにおける autolog
機能を使用します。
たとえば、LlamaIndex モデルの使用時にトレースを有効にするには、
mlflow.llama_index.autolog()でlog_traces=True
を指定します:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
自動ログ実装内でトレースが有効になっているサポート対象のインテグレーションは次のとおりです。
セキュリティとデータマネジメント
Databricks Autologginで追跡されるすべてのモデルトレーニング情報は、MLflowトラッキングに格納され、MLflow エクスペリメントのアクセス許可によって保護されています。MLflow TrackingのAPI または UIを使用して、モデル トレーニング情報を共有、変更、または削除できます。
管理
管理者は、管理者設定ページの 詳細設定 タブからワークスペース全体におけるすべての対話型ノートブック セッションで Databricks Autologging を有効または無効にできます。変更は、クラスターが再起動されるまで有効になりません。
制限
- Databricks Autologgingは、 Databricks ジョブではサポートされていません。 ジョブから自動ロギングを使用するには、 明示的に mlflow.autolog() を呼び出します。
- Databricks Autologgingは、Databricks クラスターのドライバー ノードでのみ有効になります。 ワーカーノードから自動ロギングを使用するには、 明示的にmlflow.autolog() を呼び出す必要があります。 各ワーカーで実行されているコード内から。
- XGBoost scikit-learn 統合はサポートされていません。
Apache Spark MLlib、Hyperopt、および自動 MLflow トラッキング
Databricks Autologging は、Apache Spark MLlibの統合 とHyperoptにおける既存の自動MLflowトラッキングの動作を変更しません 。
Databricks Runtime 10.1 MLでは、Apache Spark MLlib CrossValidator
および TrainValidationSplit
モデルの自動機械学習フロー追跡統合を無効にすると、すべての Apache Spark MLlib モデルのDatabricks Autologging も無効になります。