Läs på engelska

Dela via


Distribuera pipelines med batchslutpunkter

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

Du kan distribuera pipelinekomponenter under en batchslutpunkt, vilket ger ett bekvämt sätt att operationalisera dem i Azure Machine Learning. I den här artikeln får du lära dig hur du skapar en batchdistribution som innehåller en enkel pipeline. Du lär dig att:

  • Skapa och registrera en pipelinekomponent
  • Skapa en batchslutpunkt och distribuera en pipelinekomponent
  • Testa distributionen

Om det här exemplet

I det här exemplet ska vi distribuera en pipelinekomponent som består av ett enkelt kommandojobb som skriver ut "hello world!". Den här komponenten kräver inga indata eller utdata och är det enklaste pipelinedistributionsscenariot.

Exemplet i den här artikeln baseras på kodexempel som finns på lagringsplatsen azureml-examples . Om du vill köra kommandona lokalt utan att behöva kopiera eller klistra in YAML och andra filer använder du följande kommandon för att klona lagringsplatsen och gå till mappen för kodningsspråket:

Azure CLI
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

Filerna för det här exemplet finns i:

Azure CLI
cd endpoints/batch/deploy-pipelines/hello-batch

Följ med i Jupyter Notebooks

Du kan följa med i Python SDK-versionen av det här exemplet genom att öppna notebook-filen sdk-deploy-and-test.ipynb på den klonade lagringsplatsen.

Förutsättningar

  • En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

  • En Azure Machine Learning-arbetsyta. Information om hur du skapar en arbetsyta finns i Hantera Azure Machine Learning-arbetsytor.

  • Följande behörigheter på Azure Machine Learning-arbetsytan:

    • För att skapa eller hantera batchslutpunkter och distributioner: Använd en ägare, deltagare eller anpassad roll som har tilldelats behörigheterna Microsoft.MachineLearningServices/workspaces/batchEndpoints/* .
    • För att skapa Azure Resource Manager-distributioner i arbetsytans resursgrupp: Använd en ägare, deltagare eller anpassad roll som har tilldelats behörigheten Microsoft.Resources/deployments/write i resursgruppen där arbetsytan distribueras.
  • Azure Machine Learning CLI eller Azure Machine Learning SDK för Python:

    Kör följande kommando för att installera Azure CLI och mltillägget för Azure Machine Learning:

    Azure CLI
    az extension add -n ml
    

    Distributioner av pipelinekomponenter för batchslutpunkter introduceras i version 2.7 av ml tillägget för Azure CLI. az extension update --name ml Använd kommandot för att hämta den senaste versionen.


Anslut till din arbetsyta

Arbetsytan är resursen på den översta nivån för Azure Machine Learning. Det är en central plats där du kan arbeta med alla artefakter som du skapar när du använder Azure Machine Learning. I det här avsnittet ansluter du till arbetsytan där du utför dina distributionsuppgifter.

I följande kommando anger du ditt prenumerations-ID, arbetsytans namn, resursgruppsnamn och plats:

Azure CLI
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Skapa pipelinekomponenten

Batch-slutpunkter kan distribuera antingen modeller eller pipelinekomponenter. Pipelinekomponenter kan återanvändas och du kan effektivisera MLOps-metoden med hjälp av delade register för att flytta dessa komponenter från en arbetsyta till en annan.

Pipelinekomponenten i det här exemplet innehåller ett enda steg som bara skriver ut ett "hello world"-meddelande i loggarna. Det kräver inga indata eller utdata.

Filen hello-component/hello.yml innehåller konfigurationen för pipelinekomponenten:

hello-component/hello.yml

YAML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
  main_job:
    type: command
    component:
      code: src
      environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
      command: >-
        python hello.py

Registrera komponenten:

Azure CLI
az ml component create -f hello-component/hello.yml

Skapa en batchslutpunkt

  1. Ange ett namn för slutpunkten. Namnet på en batchslutpunkt måste vara unikt i varje region eftersom namnet används för att konstruera anrops-URI:n. För att säkerställa unikhet lägger du till eventuella avslutande tecken i det namn som anges i följande kod.

    Azure CLI
    ENDPOINT_NAME="hello-batch"
    
  2. Konfigurera slutpunkten:

    Filen endpoint.yml innehåller slutpunktens konfiguration.

    endpoint.yml

    YAML
    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: hello-batch
    description: A hello world endpoint for component deployments.
    auth_mode: aad_token
    
  3. Skapa slutpunkten:

    Azure CLI
    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Fråga slutpunkts-URI:n:

    Azure CLI
    az ml batch-endpoint show --name $ENDPOINT_NAME
    

Distribuera pipelinekomponenten

För att distribuera pipelinekomponenten måste vi skapa en batchdistribution. En distribution är en uppsättning resurser som krävs för att vara värd för den tillgång som utför det faktiska arbetet.

  1. Skapa ett beräkningskluster. Batchslutpunkter och distributioner körs på beräkningskluster. De kan köras på alla Azure Machine Learning-beräkningskluster som redan finns på arbetsytan. Därför kan flera batchdistributioner dela samma beräkningsinfrastruktur. I det här exemplet arbetar vi med ett Azure Machine Learning-beräkningskluster med namnet batch-cluster. Nu ska vi kontrollera att beräkningen finns på arbetsytan eller skapa den på annat sätt.

    Azure CLI
    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  2. Konfigurera distributionen:

    Filen deployment.yml innehåller distributionens konfiguration. Du kan kontrollera YAML-schemat för den fullständiga batchslutpunkten för extra egenskaper.

    deployment.yml

    YAML
    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-dpl
    endpoint_name: hello-pipeline-batch
    type: pipeline
    component: azureml:hello_batch@latest
    settings:
        default_compute: batch-cluster
    
  3. Skapa distributionen:

    Kör följande kod för att skapa en batchdistribution under batchslutpunkten och ange den som standarddistribution.

    Azure CLI
    az ml batch-deployment create --endpoint $ENDPOINT_NAME -f deployment.yml --set-default
    

    Tips

    Observera att flaggan används --set-default för att ange att den nya distributionen nu är standard.

  4. Distributionen är klar för användning.

Testa distributionen

När distributionen har skapats är den redo att ta emot jobb. Du kan anropa standarddistributionen på följande sätt:

Azure CLI
JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)

Tips

I det här exemplet har pipelinen inte indata eller utdata. Men om pipelinekomponenten kräver vissa kan de anges vid anrop. Mer information om hur du anger indata och utdata finns i Skapa jobb och indata för batchslutpunkter eller i självstudien Så här distribuerar du en pipeline för att utföra batchbedömning med förbearbetning (förhandsversion).

Du kan övervaka förloppet för showen och strömma loggarna med hjälp av:

Azure CLI
az ml job stream -n $JOB_NAME

Rensa resurser

När du är klar tar du bort de associerade resurserna från arbetsytan:

Kör följande kod för att ta bort batchslutpunkten och dess underliggande distribution. --yes används för att bekräfta borttagningen.

Azure CLI
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes

(Valfritt) Ta bort beräkning, såvida du inte planerar att återanvända beräkningsklustret med senare distributioner.

Azure CLI
az ml compute delete -n batch-cluster

Nästa steg