共用方式為


選擇 MLflow 資料的儲存位置

MLflow 追蹤伺服器會儲存和管理您的實驗資料、執行和模型。 設定您的追蹤伺服器,以控制 MLflow 資料的儲存位置,以及如何跨不同環境存取實驗。

Databricks 裝載的追蹤伺服器

根據預設,Databricks 會提供受控 MLflow 追蹤伺服器,以:

  • 無需額外的設置或配置
  • 將實驗資料儲存在工作區中
  • 與 Databricks 筆記本和集群無縫集成

設定作用中的實驗

根據預設,所有 MLflow 執行都會使用作用中的實驗記錄到工作區的追蹤伺服器。 如果未明確設定實驗,則會將執行記錄到 筆記本實驗

設定作用中實驗,以控制在 Databricks 中記錄執行的位置:

Mlflow.set_experiment()

為執行中的所有後續執行設定實驗。

import mlflow

mlflow.set_experiment("/Shared/my-experiment")

Mlflow.start_run()

設定特定執行的實驗。

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 追蹤伺服器。 例如,位於不同工作區的一個。

遠端追蹤的常見場景:

Scenario 用例
跨工作區追蹤 跨多個工作區的集中式實驗追蹤
本機開發 在本機開發,但在 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)

身份驗證方法

遠端追蹤伺服器連線需要適當的身份驗證。 使用服務主體在個人存取權杖 (PAT) 或 OAuth 之間進行選擇。

PAT

使用 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 (服務主體)

將 OAuth 與服務主體認證搭配使用,以取得自動化工作流程。

優點: 更適合自動化、集中式身分管理

缺點: 需要服務主體設定和 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")