Batch-slutpunkter frikopplar gränssnittet (slutpunkten) från den faktiska implementeringen (distributionen) och låter användaren bestämma vilken distribution som ska användas för standardimplementeringen av slutpunkten. Distributioner av pipelinekomponenter i batchslutpunkter gör det möjligt för användare att distribuera pipelinekomponenter i stället för pipelines, vilket bättre använder återanvändbara tillgångar för de organisationer som vill effektivisera sin MLOps-praxis.
Följande tabell visar en jämförelse av vart och ett av begreppen:
Batchslutpunkter distribuerar inte pipelines utan pipelinekomponenter. Komponenter föreslår ett mer tillförlitligt sätt att ha källkontroll över de tillgångar som distribueras under en slutpunkt. Vi kan konvertera valfri pipelinedefinition till en pipelinekomponent på följande sätt:
pipeline_component = pipeline().component
Som bästa praxis rekommenderar vi att du registrerar pipelinekomponenter så att du kan behålla versionshantering av dem på ett centraliserat sätt på arbetsytan eller till och med de delade registren.
ml_client.components.create(pipeline_component)
Sedan måste vi skapa slutpunkten som är värd för alla pipelinedistributioner:
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)
Skapa en distribution för pipelinekomponenten:
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)
Använd inputs för att ange indata för jobbet om det behövs. Se Skapa jobb och indata för batchslutpunkter för en mer detaljerad förklaring om hur du anger indata och utdata.
Distributioner är inte versionshanterade i batchslutpunkter. Du kan dock distribuera flera pipelinekomponenter under samma slutpunkt. I den meningen motsvarar varje pipelineversion i v1 en annan pipelinekomponentversion och dess motsvarande distribution under slutpunkten.
Sedan kan du distribuera en specifik distribution som körs under slutpunkten om distributionen kör den version som du är intresserad av.
Följande kod visar alla slutpunkter som finns på arbetsytan:
all_endpoints = ml_client.batch_endpoints.list()
Tänk dock på att batchslutpunkter kan vara värdar för distributioner som operationaliserar antingen pipelines eller modeller. Om du vill få en lista över alla distributioner som är värdar för pipelines kan du göra så här:
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)
Använda REST API
Du kan skapa jobb från slutpunkterna med hjälp av REST-API:et för anrops-URL:en. Se följande exempel för att se hur anrop har ändrats från v1 till v2.