Distribuera befintliga pipelinejobb till batchslutpunkter
GÄLLER FÖR:Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (aktuell)
Med Batch-slutpunkter kan du distribuera pipelinekomponenter, vilket ger ett bekvämt sätt att operationalisera pipelines i Azure Machine Learning. Batch-slutpunkter accepterar pipelinekomponenter för distribution. Men om du redan har ett pipelinejobb som körs kan Azure Machine Learning acceptera jobbet som indata till batchslutpunkten och skapa pipelinekomponenten automatiskt åt dig. I den här artikeln får du lära dig hur du använder ditt befintliga pipelinejobb som indata för batchdistribution.
Du lär dig att:
- Kör och skapa det pipelinejobb som du vill distribuera
- Skapa en batchdistribution från det befintliga jobbet
- Testa distributionen
Om det här exemplet
I det här exemplet ska vi distribuera en pipeline som består av ett enkelt kommandojobb som skriver ut "hello world!". I stället för att registrera pipelinekomponenten före distributionen anger vi ett befintligt pipelinejobb som ska användas för distribution. Azure Machine Learning skapar sedan pipelinekomponenten automatiskt och distribuerar den som en distribution av en batchslutpunktspipelinekomponent.
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:
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ö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.
- För att skapa eller hantera batchslutpunkter och distributioner: Använd en ägare, deltagare eller anpassad roll som har tilldelats behörigheterna
Azure Machine Learning CLI eller Azure Machine Learning SDK för Python:
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 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:
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Kör pipelinejobbet som du vill distribuera
I det här avsnittet börjar vi med att köra ett pipelinejobb:
Följande pipeline-job.yml
fil innehåller konfigurationen för pipelinejobbet:
pipeline-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.
compute: batch-cluster
component: hello-component/hello.yml
Skapa pipelinejobbet:
Skapa en batchslutpunkt
Innan vi distribuerar pipelinejobbet måste vi distribuera en batchslutpunkt som värd för distributionen.
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 pipelinejobbet
För att distribuera pipelinekomponenten måste vi skapa en batchdistribution från det befintliga jobbet.
Vi måste tala om för Azure Machine Learning namnet på det jobb som vi vill distribuera. I vårt fall anges det jobbet i följande variabel:
Konfigurera distributionen.
Filen
deployment-from-job.yml
innehåller distributionens konfiguration. Observera hur vi använder nyckelnjob_definition
i stället förcomponent
för att ange att den här distributionen skapas från ett pipelinejobb:deployment-from-job.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json name: hello-batch-from-job endpoint_name: hello-pipeline-batch type: pipeline job_definition: azureml:job_name_placeholder settings: continue_on_step_failure: false default_compute: batch-cluster
Dricks
Den här konfigurationen förutsätter att du har ett beräkningskluster med namnet
batch-cluster
. Du kan ersätta det här värdet med namnet på klustret.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 --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
Dricks
Observera användningen av
--set job_definition=azureml:$JOB_NAME
. Eftersom jobbnamnen är unika används kommandot--set
här för att ändra namnet på jobbet när du kör det på arbetsytan.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:
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