适用于 MLOps Stacks 的 Databricks 资产捆绑包

可以使用 GitHub 上的 Databricks 资产捆绑包、Databricks CLI 和 Databricks MLOps Stacks 存储库来创建 MLOps Stacks。 MLOps Stack 是 Azure Databricks 上的 MLOps 项目,遵循现成的生产最佳做法。 请参阅什么是 Databricks 资产捆绑包?

若要创建、部署和运行 MLOps Stacks 项目,请完成以下步骤:

要求

  • 确保目标远程工作区已启用工作区文件。 请参阅什么是工作区文件?
  • 在开发计算机上,请确保已安装 Databricks CLI 0.212.2 或更高版本。 若要检查已安装的 Databricks CLI 版本,请运行命令 databricks -v。 若要更新 Databricks CLI 版本,请参阅安装或更新 Databricks CLI。 (捆绑包不适用于 Databricks CLI 0.18 和更低版本。)

步骤 1:设置身份验证

若要详细了解如何设置身份验证,请参阅 Databricks 身份验证

步骤 2:创建捆绑包项目

  1. 使用 Databricks 资产捆绑模板创建 MLOps Stacks 项目的初学者文件。 为此,请首先运行以下命令:

    databricks bundle init mlops-stacks
    
  2. 回答屏幕上的提示。 有关回答这些提示的指导,请参阅 GitHub 上的 Databricks MLOps Stacks 存储库中的“启动新项目”。

    第一个提示提供设置 ML 代码组件、CI/CD 组件或两者的选项。 此选项简化了初始设置,因为你可以选择仅创建那些直接相关的组件。 (若要设置其他组件,请再次运行初始化命令。)选择以下方案之一:

    • CICD_and_Project(默认值) - 设置 ML 代码和 CI/CD 组件。
    • Project_Only - 仅设置 ML 代码组件。 此选项适用于数据科学家入门。
    • CICD_Only - 仅设置 CI/CD 组件。 此选项供 ML 工程师设置基础设施。

    回答屏幕上的所有提示后,该模板将创建 MLOps Stacks 项目的初学者文件,并将其添加到你的当前工作目录。

  3. 根据需要创建 MLOps Stacks 项目的初学者文件。 为此,请按照新项目中以下文件中的指导进行操作:

    角色 目标 Docs
    初次使用此存储库的用户 了解此存储库中的 ML 管道和代码结构 README.md
    数据科学家 开始为全新项目编写 ML 代码 <project-name>/README.md
    数据科学家 更新现有项目的生产 ML 代码(例如,模型训练逻辑) docs/ml-pull-request.md
    数据科学家 修改生产模型 ML 资源(例如模型训练或推理作业) <project-name>/resources/README.md
    MLOps/DevOps 为当前 ML 项目设置 CI/CD docs/mlops-setup.md
    • 对于自定义试验,试验声明中的映射对应于 REST API 参考的 POST /api/2.0/mlflow/experiments/create 中定义的创建试验操作的请求有效负载(以 YAML 格式表示)。

    • 对于自定义作业,作业声明中的映射对应于 REST API 参考中的 POST /api/2.1/jobs/create 中定义的创建作业操作的请求负载(以 YAML 格式表示)。

      提示

      可以使用覆盖 Databricks 资产包中的群集设置中描述的技术来定义、组合和覆盖捆绑包中新作业群集的设置。

    • 对于自定义模型,模型声明中的映射对应于 REST API 参考的 POST /api/2.0/mlflow/registered-models/create 中定义的创建模型操作的请求有效负载(以 YAML 格式表示)。

    • 对于自定义管道,管道声明中的映射对应于 REST API 参考中的 POST /api/2.0/pipelines 中定义的创建管道操作的请求负载(以 YAML 格式表示)。

步骤 3:验证捆绑包项目

检查捆绑包配置是否有效。 为此,请从项目的根目录运行 Databricks CL,其中存在 databricks.yml,如下所示:

databricks bundle validate

如果返回了捆绑包配置的摘要,则表示验证成功。 如果返回了任何错误,请修复错误,然后重复此步骤。

步骤 4:部署捆绑包

将项目的资源和工件部署到所需的远程工作区。 为此,请从项目的根目录运行 Databricks CL,其中存在 databricks.yml,如下所示:

databricks bundle deploy -t <target-name>

<target-name> 替换为 databricks.yml 文件中所需目标的名称,例如 devteststagingprod

步骤 5:运行已部署的捆绑包

项目已部署的 Azure Databricks 作业按照预定义的计划自动运行。 若要立即运行已部署的作业,请从项目的根目录运行 Databricks CL,其中存在 databricks.yml,如下所示:

databricks bundle run -t <target-name> <job-name>
  • <target-name> 替换为部署作业的 databricks.yml 文件中所需目标的名称,例如 devteststagingprod
  • <job-name> 替换为 <project-name>/databricks-resources 内的 .yml 文件之一中的作业名称,例如 batch_inference_jobwrite_feature_table_jobmodel_training_job

此时会显示一个指向 Azure Databricks 作业的链接,可将其复制到 Web 浏览器中,以在 Azure Databricks UI 中打开该作业。

步骤 6:删除已部署的捆绑包(可选)

若要删除已部署的项目的资源和工件(如果不再需要它们),请从项目的根目录中运行 Databricks CLI,其中存在 databricks.yml,如下所示:

databricks bundle destroy -t <target-name>

<target-name> 替换为 databricks.yml 文件中所需目标的名称,例如 devteststagingprod

回答屏幕上的提示以确认删除先前部署的资源和工件。