MLflow データの格納場所を選択する
MLflow 追跡サーバーは、エクスペリメントデータ、実行、およびモデルを保存および管理します。 追跡サーバーを構成して、 MLflow データの保存場所と、さまざまな環境間でエクスペリメントにアクセスする方法を制御します。
Databricks でホストされる追跡サーバー
デフォルトでは、 Databricks は次のようなマネージド MLflow トラッキング サーバーを提供します。
- 追加のセットアップや構成は必要ありません
- エクスペリメントデータをワークスペースに保存します
- Databricks ノートブックおよびクラスターとシームレスに統合
アクティブなエクスペリメントを設定する
デフォルトでは、すべての MLflow 実行は、 アクティブなエクスペリメント。 エクスペリメントが明示的に設定されていない場合、実行は ノートブック エクスペリメントに記録されます。
実行がログインする場所を制御するには、アクティブなエクスペリメントを設定することで Databricks 。
- Mlflow.set_experiment()
- Mlflow.start_run()
- Environment variables
実行で後続のすべての実行に対してエクスペリメントを設定します。
import mlflow
mlflow.set_experiment("/Shared/my-experiment")
特定の実行のエクスペリメントを設定します。
with mlflow.start_run(experiment_id="12345"):
mlflow.log_param("learning_rate", 0.01)
環境内のすべての実行にエクスペリメントを設定します。
import os
os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Shared/my-experiment"
# or
os.environ["MLFLOW_EXPERIMENT_ID"] = "12345"
リモート MLflow 追跡サーバーへの追跡を設定する
リモート MLflow 追跡サーバーへの接続を設定する必要がある場合があります。これは、ローカルで開発していて、Databricks ホスト型サーバーに対して追跡する場合、または別の MLflow 追跡サーバーに対して追跡する場合が原因である可能性があります。たとえば、別のワークスペースにあるものなどです。
リモート追跡の一般的なシナリオ:
シナリオ | ユースケース |
---|---|
クロスワークスペースの追跡 | 複数のワークスペースにわたる一元化されたエクスペリメント追跡 |
ローカルでの開発 | ローカルで開発するが、Databricksでエクスペリメントを追跡する |
リモートセルフホスト | 特定のコンプライアンス要件を持つカスタム MLflow インフラストラクチャ |
トラッキング URI とエクスペリメントを設定する
エクスペリメントをリモートトラッキングサーバーに記録するには、トラッキングURIとエクスペリメントパスの両方を設定します。
import mlflow
# Set the tracking URI to the remote server
mlflow.set_tracking_uri("databricks://remote-workspace-url")
# Set the experiment path in the remote server
mlflow.set_experiment("/Shared/centralized-experiments/my-project")
# All subsequent runs will be logged to the remote server
with mlflow.start_run():
mlflow.log_param("model_type", "random_forest")
mlflow.log_metric("accuracy", 0.95)
認証方法
リモート追跡サーバー接続には、適切な認証が必要です。Personal アクセストークン (PAT) またはサービスプリンシパルを使用して OAuth を選択します。
- PAT
- OAuth (service principal)
単純なトークンベースの認証には PAT を使用します。
長所: セットアップが簡単で、開発に適しています
短所: ユーザー固有、手動のトークン管理が必要
import os
# Set authentication token
os.environ["DATABRICKS_TOKEN"] = "your-personal-access-token"
# Configure remote tracking
mlflow.set_tracking_uri("databricks://remote-workspace-url")
mlflow.set_experiment("/Shared/remote-experiment")
サービスプリンシパル認証情報で OAuth を使用して、自動化されたワークフローを実現します。
長所: 自動化、一元化されたID管理に優れています
短所: サービスプリンシパルのセットアップと OAuth 構成が必要です
サービスプリンシパルを作成します。 「サービスプリンシパルの管理」を参照してください。
import os
# Set service principal credentials
os.environ["DATABRICKS_CLIENT_ID"] = "your-service-principal-client-id"
os.environ["DATABRICKS_CLIENT_SECRET"] = "your-service-principal-secret"
# Configure remote tracking
mlflow.set_tracking_uri("databricks://remote-workspace-url")
mlflow.set_experiment("/Shared/remote-experiment")