适用于 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 CLI 进行身份验证。
本文假设你要使用 OAuth 用户到计算机 (U2M) 身份验证和名为 DEFAULT
的相应 Azure Databricks 配置文件进行身份验证。
通过对每个目标工作区运行以下命令,使用 Databricks CLI 在本地启动 OAuth 令牌管理。
在以下命令中,将
<workspace-url>
替换为 Azure Databricks 每工作区 URL,例如https://adb-1234567890123456.7.databricks.azure.cn
。databricks auth login --host <workspace-url>
Databricks CLI 会提示将输入的信息保存为 Azure Databricks 配置文件。 按
Enter
接受建议的配置文件名称,或输入新的或现有的配置文件的名称。 任何具有相同名称的现有配置文件都会被输入的信息覆盖。 可以使用配置文件在多个工作区之间快速切换身份验证上下文。若要获取任何现有配置文件的列表,请在单独的终端或命令提示符中使用 Databricks CLI 来运行
databricks auth profiles
命令。 要查看特定配置文件的现有设置,请运行命令databricks auth env --profile <profile-name>
。在 Web 浏览器中,按照屏幕上的说明登录到 Azure Databricks 工作区。
要查看配置文件的当前 OAuth 令牌值和令牌即将过期的时间戳,请运行以下命令之一:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
如果你有多个配置文件有相同的
--host
值,则可能需要同时指定--host
和-p
选项,以便 Databricks CLI 找到正确的、匹配的 OAuth 令牌信息。
步骤 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
如果返回了捆绑包配置的 JSON 表示形式,则表示验证成功。 如果返回了任何错误,请修复错误,然后重复此步骤。
步骤 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
。
回答屏幕上的提示以确认删除先前部署的资源和工件。