Atualizar pontos de extremidade de pipeline para SDK v2

Depois de ter um pipeline instalado e em execução, você pode publicar um pipeline para que ele seja executado com entradas diferentes. Isso era conhecido como Pipelines Publicados.

O que mudou?

O Batch Endpoint propõe uma maneira semelhante, ainda mais poderosa, de lidar com vários ativos executados sob uma API durável, e é por isso que a funcionalidade Pipelines publicados foi movida para implantações de componentes Pipeline em pontos de extremidade em lote.

Os pontos de extremidade em lote separam a interface (ponto de extremidade) da implementação real (implantação) e permitem que o usuário decida qual implantação serve a implementação padrão do ponto de extremidade. As implantações de componentes de pipeline em pontos de extremidade em lote permitem que os usuários implantem componentes de pipeline em vez de pipelines, que fazem um melhor uso de ativos reutilizáveis para as organizações que procuram simplificar sua prática de MLOps.

A tabela a seguir mostra uma comparação de cada um dos conceitos:

Conceito SDK v1 SDK v2
Ponto de extremidade REST do pipeline para invocação Ponto de extremidade do pipeline Ponto final em lote
Versão específica do pipeline sob o endpoint Pipeline publicado Implantação de componentes de pipeline
Argumentos da Pipeline sobre a invocação Parâmetro do pipeline Entradas de trabalho
Trabalho gerado a partir de um pipeline publicado Trabalho de pipeline Tarefa de lote

Para saber como criar sua primeira implantação de componente de pipeline, consulte Como implantar pipelines em pontos de extremidade em lote.

Movendo-se para pontos de extremidade de lote

Use as diretrizes a seguir para saber como mover do SDK v1 para o SDK v2 usando os conceitos em Pontos de extremidade em lote.

Publicar um pipeline

Compare como a publicação de um pipeline mudou de v1 para v2:

  1. Primeiro, precisamos obter o pipeline que queremos publicar:

    pipeline1 = Pipeline(workspace=ws, steps=[step1, step2])
    
  2. Podemos publicar o pipeline da seguinte forma:

    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"
    )
    

Enviar um trabalho para um ponto de extremidade de pipeline

Para chamar a versão padrão do pipeline, você pode usar:

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

Você também pode enviar um trabalho para uma versão específica:

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

Obtenha todos os pipelines implantados

all_pipelines = PublishedPipeline.get_all(ws)

Utilizar a API REST

Você pode criar trabalhos a partir dos pontos de extremidade usando a API REST da URL de invocação. Veja os exemplos a seguir para ver como a invocação foi alterada de v1 para 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}
    }
)

Próximos passos