适用于 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:创建捆绑包项目
使用 Databricks 资产捆绑模板创建 MLOps Stacks 项目的初学者文件。 为此,请首先运行以下命令:
databricks bundle init mlops-stacks
回答屏幕上的提示。 有关回答这些提示的指导,请参阅 GitHub 上的 Databricks MLOps Stacks 存储库中的“启动新项目”。
第一个提示提供设置 ML 代码组件、CI/CD 组件或两者的选项。 此选项简化了初始设置,因为你可以选择仅创建那些直接相关的组件。 (若要设置其他组件,请再次运行初始化命令。)选择以下方案之一:
CICD_and_Project
(默认值) - 设置 ML 代码和 CI/CD 组件。Project_Only
- 仅设置 ML 代码组件。 此选项适用于数据科学家入门。CICD_Only
- 仅设置 CI/CD 组件。 此选项供 ML 工程师设置基础设施。
回答屏幕上的所有提示后,该模板将创建 MLOps Stacks 项目的初学者文件,并将其添加到你的当前工作目录。
根据需要创建 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
文件中所需目标的名称,例如 dev
、test
、staging
或 prod
。
步骤 5:运行已部署的捆绑包
项目已部署的 Azure Databricks 作业按照预定义的计划自动运行。 若要立即运行已部署的作业,请从项目的根目录运行 Databricks CL,其中存在 databricks.yml
,如下所示:
databricks bundle run -t <target-name> <job-name>
- 将
<target-name>
替换为部署作业的databricks.yml
文件中所需目标的名称,例如dev
、test
、staging
或prod
。 - 将
<job-name>
替换为<project-name>/databricks-resources
内的.yml
文件之一中的作业名称,例如batch_inference_job
、write_feature_table_job
或model_training_job
。
此时会显示一个指向 Azure Databricks 作业的链接,可将其复制到 Web 浏览器中,以在 Azure Databricks UI 中打开该作业。
步骤 6:删除已部署的捆绑包(可选)
若要删除已部署的项目的资源和工件(如果不再需要它们),请从项目的根目录中运行 Databricks CLI,其中存在 databricks.yml
,如下所示:
databricks bundle destroy -t <target-name>
将 <target-name>
替换为 databricks.yml
文件中所需目标的名称,例如 dev
、test
、staging
或 prod
。
回答屏幕上的提示以确认删除先前部署的资源和工件。