Koncové body služby Batch oddělují rozhraní (koncový bod) od skutečné implementace (nasazení) a umožňují uživateli rozhodnout, které nasazení bude sloužit jako výchozí implementace koncového bodu. Nasazení součástí kanálu v dávkových koncových bodech umožňují uživatelům nasazovat součásti kanálu místo kanálů, což umožňuje lepší využití opakovaně použitelných prostředků pro tyto organizace, které chtějí zjednodušit své postupy MLOps.
Následující tabulka ukazuje porovnání jednotlivých konceptů:
Koncové body služby Batch nenasazují kanály, ale součásti kanálu. Komponenty navrhují spolehlivější způsob správy zdrojového kódu prostředků, které se nasazují v rámci koncového bodu. Definici kanálu můžeme převést na komponentu kanálu následujícím způsobem:
pipeline_component = pipeline().component
Osvědčeným postupem je registrace součástí kanálu, abyste je mohli udržovat centralizovaným způsobem v pracovním prostoru nebo dokonce ve sdílených registrech.
ml_client.components.create(pipeline_component)
Pak musíme vytvořit koncový bod hostující všechna nasazení kanálu:
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)
Vytvořte nasazení pro komponentu kanálu:
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)
Slouží inputs k označení vstupů úlohy v případě potřeby. Podrobnější vysvětlení o tom, jak indikovat vstupy a výstupy, najdete v tématu Vytváření úloh a vstupních dat pro dávkové koncové body.
V dávkovýchkoncovýchch Ve stejném koncovém bodu ale můžete nasadit více verzí součástí kanálu. V tomto smyslu každá verze kanálu v1 odpovídá jiné verzi komponenty kanálu a příslušnému nasazení v rámci koncového bodu.
Pak můžete nasadit konkrétní nasazení spuštěné v rámci koncového bodu, pokud toto nasazení spustí verzi yo zájem.
Následující kód obsahuje seznam všech koncových bodů existujících v pracovním prostoru:
all_endpoints = ml_client.batch_endpoints.list()
Mějte ale na paměti, že dávkové koncové body můžou hostovat nasazení zprovoznění kanálů nebo modelů. Pokud chcete získat seznam všech nasazení, která hostují kanály, můžete provést takto:
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)
S využitím REST API
Úlohy můžete vytvářet z koncových bodů pomocí rozhraní REST API adresy URL vyvolání. V následujících příkladech se dozvíte, jak se vyvolání změnilo z v1 na v2.