你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将现有管道作业部署到批处理终结点
适用范围:Azure CLI ml 扩展 v2(当前版本)Python SDK azure-ai-ml v2(当前版本)
使用批处理终结点可以部署管道组件,从而提供了一种在 Azure 机器学习中操作管道的便捷方法。 批处理终结点接受用于部署的管道组件。 但如果已有成功运行的管道作业,Azure 机器学习可以接受该作业作为批处理终结点的输入,并自动创建管道组件。 在本文中,你将了解如何使用现有管道作业作为批处理部署的输入。
你将了解以下内容:
- 运行并创建要部署的管道作业
- 从现有作业创建批处理部署
- 测试部署
关于此示例
在此示例中,我们将部署一个管道,其中包含一个输出“hello world!”的简单命令作业。 我们会指示现有管道作业以用于部署,而不是在部署前注册管道组件。 然后,Azure 机器学习将自动创建管道组件,并将其部署为批处理终结点管道组件部署。
本文中的示例基于 azureml-examples 存储库中包含的代码示例。 要在无需复制/粘贴 YAML 和其他文件的情况下在本地运行命令,请先克隆存储库,然后将目录更改为以下文件夹:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
此示例的文件位于以下位置:
cd endpoints/batch/deploy-pipelines/hello-batch
先决条件
在按照本文中的步骤操作之前,请确保满足以下先决条件:
Azure 订阅。 如果没有 Azure 订阅,请在开始操作前先创建一个免费帐户。 试用免费版或付费版 Azure 机器学习。
一个 Azure 机器学习工作区。 如果你没有,请按照管理 Azure 机器学习工作区一文中的步骤创建一个。
确保你在工作区中具有以下权限:
创建或管理批量终结点和部署:使用允许
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
的所有者、参与者或自定义角色。在工作区资源组中创建 ARM 部署:在部署工作区的资源组中使用允许
Microsoft.Resources/deployments/write
的所有者角色、参与者角色或自定义角色。
需要安装以下软件才能使用 Azure 机器学习:
Azure CLI 和
ml
适用于 Azure 机器学习的扩展。az extension add -n ml
注意
Azure CLI 的
ml
扩展版本 2.7 中引入了 Batch 终结点的管道组件部署。 使用az extension update --name ml
获取它的上一个版本。
连接到工作区
工作区是 Azure 机器学习的顶级资源,为使用 Azure 机器学习时创建的所有项目提供了一个集中的处理位置。 在本部分,我们将连接到要在其中执行部署任务的工作区。
在以下代码中传入订阅 ID、工作区、位置和资源组的值:
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
运行要部署的管道作业
在本部分中,我们将首先运行管道作业:
以下 pipeline-job.yml
文件包含了管道作业的配置:
pipeline-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.
compute: batch-cluster
component: hello-component/hello.yml
创建管道作业:
创建批处理终结点
在部署管道作业之前,需要部署批处理终结点来托管部署。
为终结点提供名称。 批处理终结点的名称在每个区域中必须是唯一的,因为该名称将用于构造调用 URI。 为了确保唯一性,请在以下代码中指定的名称后面追加任何尾随字符。
配置终结点:
创建终结点:
查询终结点 URI:
部署管道作业
要部署管道组件,必须从现有作业创建批处理部署。
我们需要告知 Azure 机器学习要部署的作业的名称。 在本例中,该作业是在以下变量中指示的:
配置部署。
deployment-from-job.yml
文件包含部署的配置。 请注意,我们如何使用密钥job_definition
(而不是component
)来指示此部署是从管道作业创建的:deployment-from-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json name: hello-batch-from-job endpoint_name: hello-pipeline-batch type: pipeline job_definition: azureml:job_name_placeholder settings: continue_on_step_failure: false default_compute: batch-cluster
提示
此配置假定你有一个名为
batch-cluster
的计算群集。 可以将此值替换为你的群集的名称。创建部署:
部署已就绪,可供使用。
测试部署
创建部署后,即可接收作业。 可以按如下所示调用默认部署:
可以使用以下方法监视演示进度并流式传输日志:
清理资源
完成后,从工作区中删除关联的资源:
运行以下代码以删除批处理终结点及其基础部署。 --yes
用于确认删除。
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes