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/klistra in YAML och andra filer klonar du först lagringsplatsen och ändrar sedan kataloger till mappen:

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

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

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. Prova den kostnadsfria eller betalda versionen av Azure Machine Learning.

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

  • Kontrollera att du har följande behörigheter på Machine Learning-arbetsytan:

    • Skapa eller hantera batchslutpunkter och distributioner: Använd en ägare, deltagare eller anpassad roll som tillåter Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.
    • Skapa Azure Resource Manager-distributioner i arbetsytans resursgrupp: Använd en roll som ägare, deltagare eller anpassad som tillåter Microsoft.Resources/deployments/write i den resursgrupp där arbetsytan distribueras.
  • Installera följande programvara för att arbeta med Machine Learning:

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

    az extension add -n ml
    

    Distributioner av pipelinekomponenter för Batch-slutpunkter 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 Machine Learning. Den ger en central plats där du kan arbeta med alla artefakter som du skapar när du använder Machine Learning. I det här avsnittet ansluter du till arbetsytan där du utför dina distributionsuppgifter.

I följande kommando anger du värdena för ditt prenumerations-ID, arbetsyta, plats och resursgrupp:

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

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

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.

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

    Filen endpoint.yml innehåller slutpunktens konfiguration.

    endpoint.yml

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

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

    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.

    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

    $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.

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

    Dricks

    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:

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

Dricks

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:

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.

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.

az ml compute delete -n batch-cluster

Nästa steg