メインコンテンツまでスキップ

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() の呼び出しにおけるデフォルトの設定は:

Python
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 APImlflow.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 ノートブックで次の手順に従います。

  1. mlflow.autologexclusive=Falseを指定して呼び出します。
  2. mlflow.start_run() を使用して MLflow の実行を開始します。この呼び出しは with mlflow.start_run()でラップできます。これを行うと、実行は完了後に自動的に終了します。
  3. 次のような MLflow 追跡メソッドを使用します mlflow.log_param()です。 を使用して、事前トレーニング コンテンツを追跡します。
  4. Databricks Autologgingでサポートされているフレームワーク内の 1 つ以上の機械学習モデルをトレーニングします。
  5. 次のような MLflow 追跡メソッドを使用します mlflow.log_metric()や トレーニング後のコンテンツを追跡します。
  6. ステップ 2 で with mlflow.start_run() を使用しなかった場合、mlflow.end_run() を用いてMLflowランを終了します。

例えば:

Python
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を指定します:

Python
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を指定します:

Python
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 も無効になります。