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)
U kunt pijplijnonderdelen onder een batch-eindpunt implementeren, zodat u ze op een handige manier kunt operationeel maken in Azure Machine Learning. In dit artikel leert u hoe u een batchimplementatie maakt die een eenvoudige pijplijn bevat. U leert het volgende:
- Een pijplijnonderdeel maken en registreren
- Een batch-eindpunt maken en een pijplijnonderdeel implementeren
- De implementatie testen
Over dit voorbeeld
In dit voorbeeld gaan we een pijplijnonderdeel implementeren dat bestaat uit een eenvoudige opdrachttaak waarmee 'hallo wereld!' wordt afgedrukt. Dit onderdeel vereist geen invoer of uitvoer en is het eenvoudigste implementatiescenario voor pijplijnen.
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
Volgen in Jupyter-notebooks
U kunt de Python SDK-versie van dit voorbeeld volgen door het notebook sdk-deploy-and-test.ipynb te openen in de gekloonde opslagplaats.
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>
Het pijplijnonderdeel maken
Batch-eindpunten kunnen modellen of pijplijnonderdelen implementeren. Pijplijnonderdelen zijn herbruikbaar en u kunt uw MLOps-praktijk stroomlijnen door gedeelde registers te gebruiken om deze onderdelen van de ene werkruimte naar de andere te verplaatsen.
Het pijplijnonderdeel in dit voorbeeld bevat één stap waarmee alleen een 'hallo wereld'-bericht in de logboeken wordt afgedrukt. Er zijn geen invoer- of uitvoergegevens vereist.
Het hello-component/hello.yml bestand bevat de configuratie voor het pijplijnonderdeel:
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
Registreer het onderdeel:
Een batch-eindpunt maken
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:
Het pijplijnonderdeel implementeren
Om het pijplijnonderdeel te implementeren, moeten we een batchimplementatie maken. Een implementatie is een set resources die vereist is voor het hosten van de asset die het werkelijke werk uitvoert.
Maak een rekencluster. Batch-eindpunten en -implementaties worden uitgevoerd op rekenclusters. Ze kunnen worden uitgevoerd op elk Azure Machine Learning-rekencluster dat al bestaat in de werkruimte. Daarom kunnen meerdere batchimplementaties dezelfde rekeninfrastructuur delen. In dit voorbeeld werken we aan een Azure Machine Learning-rekencluster met de naam
batch-cluster. We gaan controleren of de berekening bestaat in de werkruimte of anders maken.De implementatie configureren:
Het
deployment.ymlbestand bevat de configuratie van de implementatie. U kunt het YAML-schema voor het volledige batcheindpunt controleren op extra eigenschappen.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-clusterDe 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 -f deployment.yml --set-defaultAanbeveling
Let op het gebruik van de
--set-defaultvlag om aan te geven dat deze nieuwe implementatie nu de standaardwaarde is.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:
Aanbeveling
In dit voorbeeld bevat de pijplijn geen invoer of uitvoer. Als voor het pijplijnonderdeel echter een aantal onderdelen zijn vereist, kunnen ze worden aangegeven tijdens het aanroepen. Zie Taken en invoergegevens voor batcheindpunten maken of de zelfstudie Een pijplijn implementeren om batchgewijs scoren uit te voeren met voorverwerking (preview) voor meer informatie over het aangeven van invoer en uitvoer.
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
(Optioneel) Verwijder rekenkracht, tenzij u van plan bent om uw rekencluster opnieuw te gebruiken met latere implementaties.