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.
- Skapa eller hantera batchslutpunkter och distributioner: Använd en ägare, deltagare eller anpassad roll som tillåter
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:
Skapa en batchslutpunkt
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.
Konfigurera slutpunkten:
Skapa slutpunkten:
Fråga slutpunkts-URI:n:
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.
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.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
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.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:
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:
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.