Dela via


Uppgradera pipelineslutpunkter till SDK v2

När du har en pipeline igång kan du publicera en pipeline så att den körs med olika indata. Detta kallades publicerade pipelines.

Vad har ändrats?

Batch-slutpunkten föreslår ett liknande men kraftfullare sätt att hantera flera tillgångar som körs under ett beständigt API, vilket är anledningen till att funktionen Publicerade pipelines flyttades till pipelinekomponentdistributioner i batchslutpunkter.

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:

Koncept SDK v1 SDK v2
Pipelinens REST-slutpunkt för anrop Pipelineslutpunkt Batch-slutpunkt
Pipelinens specifika version under slutpunkten Publicerad pipeline Distribution av pipelinekomponenter
Pipelinens argument om anrop Pipeline-parameter Jobbindata
Jobb som genererats från en publicerad pipeline Pipelinejobb Batchjobb

Information om hur du skapar din första pipelinekomponentdistribution finns i Distribuera pipelines i Batch-slutpunkter.

Flytta till batchslutpunkter

Använd följande riktlinjer för att lära dig hur du flyttar från SDK v1 till SDK v2 med hjälp av begreppen i Batch-slutpunkter.

Publicera en pipeline

Jämför hur publiceringen av en pipeline har ändrats från v1 till v2:

  1. Först måste vi hämta den pipeline som vi vill publicera:

    pipeline1 = Pipeline(workspace=ws, steps=[step1, step2])
    
  2. Vi kan publicera pipelinen på följande sätt:

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

Skicka ett jobb till en pipelineslutpunkt

Om du vill anropa standardversionen av pipelinen kan du använda:

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

Du kan också skicka ett jobb till en viss version:

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

Få alla pipelines distribuerade

all_pipelines = PublishedPipeline.get_all(ws)

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.

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

Nästa steg