将 MLflow 试验资源添加到 Databricks 应用

MLflow 试验 添加为 Databricks Apps 资源,以便在应用程序中启用机器学习试验跟踪。 MLflow 试验提供了一种结构化的方式,用于在整个模型开发生命周期内组织和记录训练运行、跟踪参数、指标和项目。

将 MLflow 试验添加为资源时,应用可以:

  • 使用参数和指标记录下训练过程
  • 检索试验数据并比较模型性能
  • 访问试验元数据和运行历史记录
  • 以编程方式管理 ML 生命周期

添加 MLflow 试验资源

在将 MLflow 试验添加为资源之前,请查看 应用资源先决条件

  1. 创建或编辑应用时,导航到 “配置” 步骤。
  2. “应用资源 ”部分中,单击“ + 添加资源”。
  3. 选择 MLflow 试验 作为资源类型。
  4. 从工作区中可用试验列表中选择一个 MLflow 试验。
  5. 为应用选择适当的权限级别:
    • 可以读取: 授予应用查看试验元数据、运行、参数和指标的权限。 用于显示试验结果的应用。
    • 可以编辑: 授予应用修改试验设置和元数据的权限。
    • 可以管理: 授予应用对试验的完全管理访问权限。
  6. (可选)指定自定义资源密钥,即在应用配置中引用试验的方式。 默认键为 experiment.

添加 MLflow 试验资源时:

  • Azure Databricks 向应用 的服务主体 授予对所选试验的指定权限。
  • 应用可以通过 MLflow 跟踪 API 记录训练运行和访问试验数据。
  • 访问权限仅限于所选试验。 除非将其他试验添加为单独的资源,否则应用无法访问其他试验。

环境变量

使用 MLflow 试验资源部署应用时,Azure Databricks 会通过可以使用配置中的valueFrom字段引用的app.yaml环境变量公开试验 ID。

示例配置

env:
  - name: MLFLOW_EXPERIMENT_ID
    valueFrom: experiment # Use your custom resource key if different

在应用程序中使用试验 ID:

import os
import mlflow

# Access the experiment using the injected environment variable
experiment_id = os.getenv("MLFLOW_EXPERIMENT_ID")

# Set the experiment for tracking
mlflow.set_experiment(experiment_id=experiment_id)

# Log parameters and metrics
with mlflow.start_run():
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.95)
    mlflow.log_artifact("model.pkl")

有关详细信息,请参阅从资源访问环境变量

删除 MLflow 试验资源

从应用中删除 MLflow 试验资源时,应用的服务主体将失去对试验的访问权限。 试验本身保持不变,并继续可供具有适当权限的其他用户和应用程序使用。

最佳做法

使用 MLflow 试验资源时,请遵循以下最佳做法:

  • 按项目或模型类型以逻辑方式组织试验,以提高可发现性。
  • 对组织中的运行和参数使用一致的命名约定。
  • 考虑针对长时间运行的项目的试验保留策略和存储管理。