Atualizar pontos de extremidade do pipeline para o SDK v2
Artigo
Quando um pipeline estiver em funcionamento, você poderá publicá-lo para que ele seja executado com diferentes entradas. Anteriormente, isso era chamado de Pipelines Publicados.
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 atende à 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, o que faz um melhor uso de ativos reutilizáveis para essas organizações que buscam simplificar sua prática de MLOps.
A tabela a seguir mostra uma comparação entre cada um dos conceitos:
Conceito
SDK v1
SDK v2
Ponto de extremidade REST do pipeline para invocação
Ponto de extremidade de pipeline
Ponto de extremidade em lote
Versão específica do pipeline no ponto de extremidade
Os pontos de extremidade do lote não implantam pipelines, mas componentes de pipeline. Os componentes propõem uma maneira mais confiável de ter controle do código-fonte dos ativos que estão sendo implantados em um ponto de extremidade. Podemos converter qualquer definição de pipeline em um componente de pipeline da seguinte maneira:
pipeline_component = pipeline().component
Como prática recomendada, recomendamos registrar componentes de pipeline para que você possa manter o controle de versão deles de forma centralizada dentro do espaço de trabalho ou até mesmo dos registros compartilhados.
ml_client.components.create(pipeline_component)
Em seguida, precisamos criar o endpoint que hospeda todas as implantações de pipeline:
endpoint_name = "PipelineEndpointTest"
endpoint = BatchEndpoint(
name=endpoint_name,
description="A hello world endpoint for component deployments",
)
ml_client.batch_endpoints.begin_create_or_update(endpoint)
Crie uma implantação para o componente de pipeline:
deployment_name = "hello-batch-dpl"
deployment = BatchPipelineComponentDeployment(
name=deployment_name,
description="A hello world deployment with a single step.",
endpoint_name=endpoint.name,
component=pipeline_component
)
ml_client.batch_deployments.begin_create_or_update(deployment)
Enviar um trabalho para um ponto de extremidade de pipeline
Em pontos de extremidade em lote, as implantações não têm controle de versão. No entanto, você pode implantar várias versões de componentes de pipeline no mesmo ponto de extremidade. Nesse sentido, cada versão do pipeline na v1 corresponde a uma versão diferente do componente do pipeline e sua implantação correspondente no endpoint.
Em seguida, você pode implantar uma implantação específica em execução no ponto de extremidade se essa implantação executar a versão em que você está interessado.
O código a seguir lista todos os pontos de extremidade existentes no espaço de trabalho:
all_endpoints = ml_client.batch_endpoints.list()
No entanto, tenha em mente que os pontos de extremidade em lote podem hospedar implantações operacionalizando pipelines ou modelos. Se quiser obter uma lista de todas as implantações que hospedam pipelines, faça o seguinte:
all_deployments = []
for endpoint in all_endpoints:
all_deployments.extend(ml_client.batch_deployments.list(endpoint_name=endpoint.name))
all_pipeline_deployments = filter(all_endpoints, lamdba x: x is BatchPipelineComponentDeployment)
Usando a API REST
Você pode criar trabalhos a partir dos pontos de extremidade usando a API REST da URL de invocação. Confira os exemplos a seguir para ver como a invocação foi alterada de v1 para v2.