Sdílet prostřednictvím


Upgrade koncových bodů kanálu na sadu SDK v2

Jakmile máte kanál spuštěný a spuštěný, můžete kanál publikovat tak, aby běžel s různými vstupy. To se označuje jako publikované kanály.

Co se změnilo?

Koncový bod batch navrhuje podobný ještě výkonnější způsob, jak zpracovat více prostředků spuštěných v odolném rozhraní API, což je důvod, proč se funkce publikovaných kanálů přesunula do nasazení součástí kanálu v dávkových koncových bodech.

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ů:

Koncepce Sada SDK v1 SDK v2
Koncový bod REST kanálu pro vyvolání Koncový bod kanálu Koncový bod služby Batch
Konkrétní verze kanálu v rámci koncového bodu Publikovaný kanál Nasazení součásti kanálu
Argumenty kanálu při vyvolání Parametr kanálu Vstupy úloh
Úloha vygenerovaná z publikovaného kanálu Úloha kanálu Dávková úloha

Informace o tom, jak vytvořit první nasazení součásti kanálu, najdete v tématu Nasazení kanálů v koncových bodech služby Batch.

Přechod na dávkové koncové body

V následujících pokynech se dozvíte, jak přejít ze sady SDK v1 na SADU SDK v2 pomocí konceptů v koncových bodech služby Batch.

Publikování kanálu

Porovnejte, jak se publikování kanálu změnilo z verze 1 na v2:

  1. Nejprve potřebujeme získat kanál, který chceme publikovat:

    pipeline1 = Pipeline(workspace=ws, steps=[step1, step2])
    
  2. Kanál můžeme publikovat následujícím způsobem:

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

Odeslání úlohy do koncového bodu kanálu

Pokud chcete volat výchozí verzi kanálu, můžete použít:

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

Úlohu můžete odeslat také do konkrétní verze:

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

Nasazení všech kanálů

all_pipelines = PublishedPipeline.get_all(ws)

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.

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

Další kroky