你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将管道终结点升级到 SDK v2

启动并运行管道之后,你可以发布管道,以便它使用其他输入运行。 这称为已发布的管道

什么发生了变化?

Batch Endpoint 提出了一种类似的更强大的方法来处理在持久 API 下运行的多个资产,这就是为什么已发布的管道功能在批处理终结点中移动到管道组件部署的原因。

批处理终结点会将接口(终结点)与实际实现(部署)分离,并允许用户决定哪个部署将服务于终结点的默认实现。 批处理终结点中的管道组件部署允许用户部署管道组件而不是管道,从而使那些希望简化 MLOps 实践的组织能够更好地利用可重用资产。

下表显示了各个概念之间的比较:

概念 SDK v1 SDK v2
用于调用的管道 REST 终结点 管道终结点 批处理终结点
终结点下管道的特定版本 已发布管道 管道组件部署
管道的调用参数 管道参数 作业输入
从已发布管道生成的作业 管道作业 批处理作业

若要了解如何创建你的首个管道组件部署,请参阅如何在批处理终结点中部署管道

迁移到批处理终结点

使用以下指南了解如何使用批处理终结点中的概念从 SDK v1 迁移到 SDK v2。

发布管道

比较发布管道从 v1 到 v2 的变化:

  1. 首先,我们需要获取要发布的管道:

    pipeline1 = Pipeline(workspace=ws, steps=[step1, step2])
    
  2. 可以按如下所示发布管道:

    from azureml.pipeline.core import PipelineEndpoint
    
    endpoint_name = "PipelineEndpointTest"
    pipeline_endpoint = PipelineEndpoint.publish(
        workspace=ws, 
        name=endpoint_name,
        pipeline=pipeline, 
        description="A hello world endpoint for component deployments"
    )
    

将作业提交到管道终结点

若要调用管道的默认版本,可以使用:

pipeline_endpoint = PipelineEndpoint.get(workspace=ws, name="PipelineEndpointTest")
run_id = pipeline_endpoint.submit("PipelineEndpointExperiment")

还可将作业提交到特定的版本:

run_id = pipeline_endpoint.submit(endpoint_name, pipeline_version="0")

获取已部署的所有管道

all_pipelines = PublishedPipeline.get_all(ws)

使用 REST API

可以使用调用 URL 的 REST API 从终结点创建作业。 请参阅以下示例,了解调用如何从 v1 更改为 v2。

pipeline_endpoint = PipelineEndpoint.get(workspace=ws, name=endpoint_name)
rest_endpoint = pipeline_endpoint.endpoint

response = requests.post(
    rest_endpoint, 
    headers=aad_token, 
    json={
        "ExperimentName": "PipelineEndpointExperiment",
        "RunSource": "API",
        "ParameterAssignments": {"argument1": "united", "argument2":45}
    }
)

后续步骤