Atualizar pontos de extremidade de pipeline para SDK v2
Artigo
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.
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
Os pontos de extremidade em 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 sob 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 nos registros compartilhados.
ml_client.components.create(pipeline_component)
Em seguida, precisamos criar o ponto de extremidade 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
Use inputs para indicar as entradas do trabalho, se necessário. Consulte Criar trabalhos e dados de entrada para pontos de extremidade em lote para obter uma explicação mais detalhada sobre como indicar entradas e saídas.
Em pontos de extremidade em lote, as implantações não são versionadas. No entanto, você pode implantar várias versões de componentes de pipeline sob o mesmo ponto de extremidade. Nesse sentido, cada versão de pipeline na v1 corresponde a uma versão diferente do componente de pipeline e sua implantação correspondente sob o ponto de extremidade.
Em seguida, você pode implantar uma implantação específica em execução sob o 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, lembre-se de 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, você pode fazer 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)
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.