Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP:
Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
Met Batch-eindpunten kunt u pijplijnonderdelen implementeren, wat een handige manier biedt om pijplijnen in Azure Machine Learning operationeel te maken. Batch-eindpunten accepteren pijplijnonderdelen voor implementatie. Als u echter al een pijplijntaak hebt die succesvol wordt uitgevoerd, kan Azure Machine Learning die taak accepteren als invoer voor uw batch-eindpunt en het pijplijnonderdeel automatisch voor u maken. In dit artikel leert u hoe u uw bestaande pijplijntaak gebruikt als invoer voor batchimplementatie.
U leert het volgende:
- De pijplijntaak uitvoeren en maken die u wilt implementeren
- Een batchimplementatie maken op basis van de bestaande taak
- De implementatie testen
Over dit voorbeeld
In dit voorbeeld gaan we een pijplijn implementeren die bestaat uit een eenvoudige opdrachttaak waarmee 'hallo wereld!' wordt afgedrukt. In plaats van het pijplijnonderdeel vóór de implementatie te registreren, geven we een bestaande pijplijntaak aan die moet worden gebruikt voor implementatie. Azure Machine Learning maakt vervolgens automatisch het pijplijnonderdeel en implementeert het als een pijplijnonderdeel voor batcheindpunten.
Het voorbeeld in dit artikel is gebaseerd op codevoorbeelden in de opslagplaats azureml-examples . Als u de opdrachten lokaal wilt uitvoeren zonder YAML en andere bestanden te hoeven kopiëren of plakken, gebruikt u de volgende opdrachten om de opslagplaats te klonen en naar de map voor uw programmeertaal te gaan:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
De bestanden voor dit voorbeeld bevinden zich in:
cd endpoints/batch/deploy-pipelines/hello-batch
Vereisten
Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Een Azure Machine Learning-werkruimte. Zie Azure Machine Learning-werkruimten beheren om een werkruimte te maken.
De volgende machtigingen in de Azure Machine Learning-werkruimte:
- Voor het maken of beheren van batch-eindpunten en -implementaties: gebruik een eigenaar, inzender of aangepaste rol waaraan de
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*machtigingen zijn toegewezen. - Voor het maken van Azure Resource Manager-implementaties in de werkruimteresourcegroep: Gebruik een eigenaar, inzender of aangepaste rol waaraan de
Microsoft.Resources/deployments/writemachtiging is toegewezen in de resourcegroep waar de werkruimte is geïmplementeerd.
- Voor het maken of beheren van batch-eindpunten en -implementaties: gebruik een eigenaar, inzender of aangepaste rol waaraan de
De Azure Machine Learning CLI of de Azure Machine Learning SDK voor Python:
Voer de volgende opdracht uit om de Azure CLI en de
mlextensie voor Azure Machine Learning te installeren:az extension add -n mlImplementaties van pijplijnonderdelen voor batcheindpunten worden geïntroduceerd in versie 2.7 van de
mlextensie voor de Azure CLI. Gebruik deaz extension update --name mlopdracht om de nieuwste versie op te halen.
Verbinding maken met uw werkruimte
De werkruimte is de resource op het hoogste niveau voor Azure Machine Learning. Het biedt een gecentraliseerde plek om te werken met alle artefacten die u maakt wanneer u Azure Machine Learning gebruikt. In deze sectie maakt u verbinding met de werkruimte waar u uw implementatietaken uitvoert.
Voer in de volgende opdracht uw abonnements-id, werkruimtenaam, resourcegroepnaam en locatie in:
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Voer de pijplijntaak uit die u wilt implementeren
In deze sectie beginnen we met het uitvoeren van een pijplijntaak:
Het volgende pipeline-job.yml bestand bevat de configuratie voor de pijplijntaak:
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
Maak de pijplijntaak:
Een batch-eindpunt maken
Voordat we de pijplijntaak implementeren, moeten we een batch-eindpunt implementeren om de implementatie te hosten.
Geef een naam op voor het eindpunt. De naam van een batch-eindpunt moet uniek zijn in elke regio, omdat de naam wordt gebruikt om de aanroep-URI samen te stellen. Voeg eventuele volgtekens toe aan de naam die in de volgende code is opgegeven om de uniekheid te garanderen.
Configureer het eindpunt:
Maak het eindpunt:
Voer een query uit op de eindpunt-URI:
De pijplijntaak implementeren
Om het pijplijnonderdeel te implementeren, moeten we een batchimplementatie maken op basis van de bestaande taak.
We moeten Azure Machine Learning de naam vertellen van de taak die we willen implementeren. In ons geval wordt die taak aangegeven in de volgende variabele:
Configureer de implementatie.
Het
deployment-from-job.ymlbestand bevat de configuratie van de implementatie. U ziet hoe we de sleuteljob_definitiongebruiken in plaats van aan te geven dat deze implementatie wordt gemaakt op basis vancomponenteen pijplijntaak: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-clusterAanbeveling
Bij deze configuratie wordt ervan uitgegaan dat u een rekencluster hebt met de naam
batch-cluster. U kunt deze waarde vervangen door de naam van uw cluster.De implementatie maken:
Voer de volgende code uit om een batch-implementatie te maken onder het batch-eindpunt en deze in te stellen als de standaardimplementatie.
az ml batch-deployment create --endpoint $ENDPOINT_NAME --set job_definition=azureml:$JOB_NAME -f deployment-from-job.ymlAanbeveling
Let op het gebruik van
--set job_definition=azureml:$JOB_NAME. Omdat taaknamen uniek zijn, wordt de opdracht--sethier gebruikt om de naam van de taak te wijzigen wanneer u deze uitvoert in uw werkruimte.Uw implementatie is klaar voor gebruik.
De implementatie testen
Zodra de implementatie is gemaakt, kunt u taken ontvangen. U kunt de standaardimplementatie als volgt aanroepen:
U kunt de voortgang van de voorstelling controleren en de logboeken streamen met behulp van:
Resources opschonen
Wanneer u klaar bent, verwijdert u de gekoppelde resources uit de werkruimte:
Voer de volgende code uit om het batch-eindpunt en de onderliggende implementatie te verwijderen.
--yes wordt gebruikt om de verwijdering te bevestigen.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes