Batch-eindpunten (preview) gebruiken voor batchscores

Meer informatie over het gebruik van batch-eindpunten (preview) voor het scoren van batchs. Batch-eindpunten vereenvoudigen het hostproces van uw modellen voor batchscores, zodat u zich kunt richten op machine learning, niet op infrastructuur. Zie Wat zijn Azure Machine Learning eindpunten (preview)? voor meer informatie.

In dit artikel leert u de volgende taken uit te voeren:

  • Een batch-eindpunt en een standaardbatchimplementatie maken
  • Een batchscore-taak starten met behulp van Azure CLI
  • De voortgang van batch scorende taakuitvoering controleren en scoreresultaten controleren
  • Een nieuw MLflow-model met automatisch gegenereerde code en omgeving implementeren op een bestaand eindpunt zonder dat dit van invloed is op de bestaande stroom
  • Test de nieuwe implementatie en stel deze in als de standaardimplementatie
  • Het eindpunt en de implementatie die niet in gebruik zijn verwijderen

Belangrijk

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Vereisten

  • U moet een Azure-abonnement hebben om de Azure Machine Learning. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint. Probeer vandaag nog de gratis of betaalde versie van Azure Machine Learning.

  • Installeer de Azure CLI en de ml extensie. Volg de installatiestappen in Cli (v2) (preview) installeren,instellen en gebruiken.

  • Maak een Azure-resourcegroep als u er nog geen hebt en u (of de service-principal die u gebruikt) moet zijn Contributor machtigingen hebben. Zie Cli (v2) installeren, instellen en gebruiken (preview)voor informatie over het maken van een resourcegroep.

  • Maak een Azure Machine Learning werkruimte als u er nog geen hebt. Zie De CLI (v2) installeren, instellen en gebruiken (preview)voor informatie over het maken van een werkruimte.

  • Configureer uw standaardwerkruimte en resourcegroep voor de Azure CLI. Machine Learning Voor CLI-opdrachten zijn de --workspace/-w parameters en --resource-group/-g vereist. Configureer de standaardwaarden om te voorkomen dat de waarden meerdere keren worden door geven. U kunt deze overschrijven op de opdrachtregel. Voer de volgende code uit om uw standaardinstellingen in te stellen. Zie Cli (v2) installeren, instellen en gebruiken (preview)voor meer informatie.

az account set -s "<subscription ID>"
az configure --defaults group="<resource group>" workspace="<workspace name>" location="<location>"

De voorbeeldopslagplaats klonen

Voer de volgende opdrachten uit om de AzureML-voorbeeldopslagplaats te klonen en naar de map te cli gaan. In dit artikel worden de assets in /cli/endpoints/batch gebruikt en het end-to-end-voorbeeld is /cli/batch-score.sh .

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

Stel de naam van uw eindpunt in. Vervang YOUR_ENDPOINT_NAME door een unieke naam binnen een Azure-regio.

Voer voor Unix de volgende opdracht uit:

export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Voer Windows opdracht uit om de volgende opdracht uit te voeren:

set ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"

Notitie

Batch-eindpuntnamen moeten uniek zijn binnen een Azure-regio. Er kan bijvoorbeeld slechts één batch-eindpunt zijn met de naam mybatbatdpoint in westus2.

Rekenkracht maken

Batch-eindpunt wordt alleen uitgevoerd op cloud-computing-resources, niet lokaal. De cloud-computingresource is een herbruikbaar cluster voor virtuele computers. Voer de volgende code uit om een rekencluster Azure Machine Learning maken. In de volgende voorbeelden in dit artikel wordt gebruikgemaakt van de berekening die hier is gemaakt met de naam batch-cluster . Pas waar nodig aan en verwijs naar uw rekencapaciteit met azureml:<your-compute-name> behulp van .

az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5

Notitie

Er worden op dit moment geen kosten in rekening gebracht voor rekenkracht, omdat het cluster op 0 knooppunten blijft totdat een batch-eindpunt wordt aangeroepen en er een batchscore-taak wordt verzonden. Meer informatie over het beheren en optimaliseren van de kosten voor AmlCompute.

Inzicht in batch-eindpunten en batchimplementaties

Een batch-eindpunt is een HTTPS-eindpunt dat clients kunnen aanroepen om een batchscore-taak te activeren. Een batchscore-taak is een taak die meerdere invoer scoort (zie Wat zijn batch-eindpunten? voor meer informatie). Een batchimplementatie is een set rekenbronnen die als host voor het model worden gebruikt voor de daadwerkelijke batchscore. Eén batch-eindpunt kan meerdere batchimplementaties hebben.

Tip

Een van de batchimplementaties dient als de standaardimplementatie voor het eindpunt. De standaardimplementatie wordt gebruikt om de werkelijke batchscores uit te kunnen stellen wanneer het eindpunt wordt aangeroepen. Meer informatie over batch-eindpunten en batchimplementatie.

Het volgende YAML-bestand definieert een batch-eindpunt, dat u kunt opnemen in de CLI-opdracht voor het maken van batch-eindpunten. In de opslagplaats bevindt dit bestand zich op /cli/endpoints/batch/batch-endpoint.yml .

$schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
name: mybatchedp
description: my sample batch endpoint
auth_mode: aad_token

In de volgende tabel worden de belangrijkste eigenschappen van de eindpunt-YAML beschreven. Zie CLI (v2) batch endpoint YAML schema voor het volledige YAML-schema voor batch-eindpunten.

Sleutel Beschrijving
$schema [Optioneel] Het YAML-schema. U kunt het schema in het bovenstaande voorbeeld in een browser bekijken om alle beschikbare opties voor een YAML-bestand met batch-eindpunten weer te geven.
name De naam van het batch-eindpunt. Moet uniek zijn op het niveau van de Azure-regio.
auth_mode De verificatiemethode voor het batch-eindpunt. Momenteel wordt Azure Active Directory verificatie op basis van een token ( aad_token ) ondersteund.
defaults.deployment_name De naam van de implementatie die als de standaardimplementatie voor het eindpunt zal fungeren.

Voor het maken van een batchimplementatie hebt u het volgende nodig:

  • Modelbestanden of een geregistreerd model in uw werkruimte waarnaar wordt verwezen met azureml:<model-name>:<model-version> .
  • De code voor het scoren van het model.
  • De omgeving waarin het model wordt uitgevoerd. Dit kan een Docker-afbeelding zijn met Conda-afhankelijkheden of een omgeving die al is geregistreerd in uw werkruimte waarnaar wordt verwezen met azureml:<environment-name>:<environment-version> .
  • De vooraf gemaakte berekening waarnaar wordt verwezen met behulp azureml:<compute-name> van de resource-instellingen en .

Zie Referencing an AzureML entity (Verwijzen naar een Azure ML entiteit) voor meer informatie over het verwijzen naar een Azure ML-entiteit.

De voorbeeldopslagplaats bevat alle vereiste bestanden. Het volgende YAML-bestand definieert een batchimplementatie met alle vereiste invoer en optionele instellingen. U kunt dit bestand opnemen in uw CLI-opdracht om uw batchimplementatie te maken. In de opslagplaats bevindt dit bestand zich op /cli/endpoints/batch/nonmlflow-deployment.yml .

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
name: nonmlflowdp
endpoint_name: mybatchedp
model: 
  local_path: ./mnist/model/
code_configuration:
  code:
    local_path: ./mnist/code/
  scoring_script: digit_identification.py
environment:
  conda_file: ./mnist/environment/conda.yml
  image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest
compute: azureml:batch-cluster
resources:
  instance_count: 1
max_concurrency_per_instance: 2
mini_batch_size: 10
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 30
error_threshold: -1
logging_level: info

In de volgende tabel worden de belangrijkste eigenschappen van de YAML voor de implementatie beschreven. Zie CLI (v2) batch deployment YAML schema voor het VOLLEDIGE YAML-schema voor batchimplementatie.

Sleutel Beschrijving
$schema [Optioneel] Het YAML-schema. U kunt het schema in het bovenstaande voorbeeld in een browser bekijken om alle beschikbare opties voor een YAML-bestand voor batchimplementatie te bekijken.
name De naam van de implementatie.
endpoint_name De naam van het eindpunt om de implementatie onder te maken.
model Het model dat moet worden gebruikt voor batchscores. Het voorbeeld definieert een model inline met behulp van local_path . Modelbestanden worden automatisch geüpload en geregistreerd met een automatisch gegenereerde naam en versie. Volg het Modelschema voor meer opties. Als een best practice voor productiescenario's, moet u het model afzonderlijk maken en hier naar verwijzen. Gebruik de syntaxis om te verwijzen naar een azureml:<model-name>:<model-version> bestaand model.
code_configuration.code.local_path De map die alle Python-broncode bevat om het model te scoren.
code_configuration.scoring_script Het Python-bestand in de bovenstaande map. Dit bestand moet een functie init() en een functie run() hebben. Gebruik de init() functie voor kostbare of algemene voorbereidingen (laad bijvoorbeeld het model in het geheugen). init() wordt slechts eenmaal aan het begin van het proces aangeroepen. Gebruik run(mini_batch) om elke vermelding te scoren; de waarde van is een lijst met mini_batch bestandspaden. De run() functie moet een Pandas DataFrame of een matrix retourneren. Elk geretourneerd element geeft één geslaagde run van het invoerelement in de mini_batch aan. Zorg ervoor dat er voldoende gegevens in uw antwoord zijn run() opgenomen om de invoer te correleren met de uitvoer.
environment De omgeving om het model te scoren. In het voorbeeld wordt een inline omgeving met behulp van conda_file en definieert. image De conda_file afhankelijkheden worden geïnstalleerd boven op image de . De omgeving wordt automatisch geregistreerd met een automatisch gegenereerde naam en versie. Volg het omgevingsschema voor meer opties. Als een best practice voor productiescenario's, moet u de omgeving afzonderlijk maken en hier naar verwijzen. Gebruik de syntaxis om te verwijzen naar een bestaande azureml:<environment-name>:<environment-version> omgeving.
compute De rekenkracht voor het uitvoeren van batchscores. In het voorbeeld wordt de batch-cluster aan het begin gemaakt en wordt er naar verwezen met behulp van de azureml:<compute-name> syntaxis.
resources.instance_count Het aantal exemplaren dat moet worden gebruikt voor elke batch-scoring-taak.
max_concurrency_per_instance [Optioneel] Het maximum aantal parallelle runs scoring_script per exemplaar.
mini_batch_size [Optioneel] Het aantal bestanden dat in scoring_script één aanroep kan worden run() verwerkt.
output_action [Optioneel] Hoe de uitvoer moet worden geordend in het uitvoerbestand. append_row voegt alle run() geretourneerde uitvoerresultaten samen in één bestand met de naam output_file_name . summary_only voegt de uitvoerresultaten niet samen en berekent alleen error_threshold .
output_file_name [Optioneel] De naam van het uitvoerbestand voor batchscores voor append_row output_action .
retry_settings.max_retries [Optioneel] Het maximum aantal pogingen voor een mislukte scoring_script run() .
retry_settings.timeout [Optioneel] De time-out in seconden voor een scoring_script run() voor het scoren van een mini-batch.
error_threshold [Optioneel] Het aantal scoringsfouten in invoerbestand dat moet worden genegeerd. Als het aantal fouten voor de volledige invoer hoger is dan deze waarde, wordt de batchscore-taak beëindigd. In het voorbeeld wordt gebruikt. Dit geeft aan dat een groot aantal fouten -1 is toegestaan zonder de batchscore-taak te beëindigen.
logging_level [Optioneel] Logboekverkennigheid. Waarden in toenemende mate zijn: WAARSCHUWING, INFO en FOUTOPSPORING.

Inzicht in het scoring-script

Zoals eerder vermeld, moet code_configuration.scoring_script de twee functies bevatten:

  • init(): Gebruik deze functie voor kostbare of algemene voorbereidingen. Gebruik het bijvoorbeeld om het model in een algemeen object te laden. Deze functie wordt eenmaal aangeroepen aan het begin van het proces.
  • run(mini_batch): Deze functie wordt voor elke functie aangeroepen mini_batch en doet de werkelijke score.
    • mini_batch: De mini_batch waarde is een lijst met bestandspaden.
    • response: De run() methode moet een Pandas DataFrame of een matrix retourneren. Elk geretourneerd uitvoerelement geeft aan dat een invoerelement is uitgevoerd in de invoer mini_batch . Zorg ervoor dat er voldoende gegevens (bijvoorbeeld een id van elk invoerelement) zijn opgenomen in het antwoord om een invoer te correleren met run() een uitvoerresultaat.

In het voorbeeld wordt /cli/endpoints/batch/mnist/code/digit_identification.py gebruikt. Het model wordt geladen in vanuit . Dit is het pad init() AZUREML_MODEL_DIR naar de modelmap die tijdens de implementatie is gemaakt. run(mini_batch) Door elk bestand in te itereren, worden de werkelijke mini_batch modelscores uitgevoerd en worden vervolgens uitvoerresultaten retourneert.

Implementeren met batch-eindpunten en batch scoren uitvoeren

Nu gaan we het model implementeren met batch-eindpunten en batchscores uitvoeren.

Een batch-eindpunt maken

De eenvoudigste manier om een batch-eindpunt te maken, is door de volgende code uit te voeren die alleen een --name levert.

az ml batch-endpoint create --name $ENDPOINT_NAME

U kunt ook een batch-eindpunt maken met behulp van een YAML-bestand. Voeg --file de parameter toe in de bovenstaande opdracht en geef het PAD van het YAML-bestand op.

Een batchimplementatie maken

Voer de volgende code uit om een batchimplementatie te maken met de naam onder het nonmlflowdp batch-eindpunt en stel deze in als de standaardimplementatie.

az ml batch-deployment create --name nonmlflowdp --endpoint-name $ENDPOINT_NAME --file endpoints/batch/nonmlflow-deployment.yml --set-default

Tip

Met --set-default de parameter wordt de zojuist gemaakte implementatie ingesteld als de standaardimplementatie van het eindpunt. Het is een handige manier om een nieuwe standaardimplementatie van het eindpunt te maken, met name voor het maken van de eerste implementatie. Als best practice voor productiescenario's wilt u mogelijk een nieuwe implementatie maken zonder deze standaard in te stellen, te controleren en de standaardimplementatie later bij te werken. Zie de sectie Een nieuw model implementeren voor meer informatie.

Batch-eindpunt en implementatiedetails controleren

Gebruik show om de details van het eindpunt en de implementatie te controleren.

Voer de volgende code uit om een batchimplementatie te controleren:

az ml batch-deployment show --name nonmlflowdp --endpoint-name $ENDPOINT_NAME

Voer de volgende code uit om een batch-eindpunt te controleren. Omdat de zojuist gemaakte implementatie is ingesteld als de standaardimplementatie, ziet u nonmlflowdp in defaults.deployment_name het antwoord.

az ml batch-endpoint show --name $ENDPOINT_NAME

Het batch-eindpunt aanroepen om een batchscore-taak te starten

Het aanroepen van een batch-eindpunt activeert een batchscore-taak. Een taak name wordt geretourneerd vanuit het aanroep-antwoord en kan worden gebruikt om de voortgang van de batchscore bij te houden. De batch scoren taak wordt uitgevoerd voor een bepaalde periode. Het splitst de volledige invoer in meerdere processen mini_batch en parallel op het rekencluster. De scoring_scrip run() ene neemt mini_batch er een en verwerkt deze door een proces op een exemplaar. De batchscore-taakuitvoer wordt opgeslagen in de cloudopslag, in de standaard-blobopslag van de werkruimte of in de opslag die u hebt opgegeven.

Het batch-eindpunt met verschillende invoeropties aanroepen

U kunt CLI of REST gebruiken voor invoke het eindpunt. Zie Batch-eindpunten gebruiken (preview) met REST voor rest-ervaring

Er zijn drie opties om de gegevensinvoer op te geven in CLI invoke .

  • Optie 1: Gegevens in de cloud

    Gebruik --input-path om een map op te geven (gebruik voorvoegsel ) of een bestand (gebruik voorvoegsel ) in een Azure Machine Learning geregistreerde folder: file: gegevensstore. De syntaxis voor de gegevens-URI is folder:azureml://datastores/<datastore-name>/paths/<data-path>/ voor de map en voor een specifiek file:azureml://datastores/<datastore-name>/paths/<data-path>/<file-name> bestand. Zie URI voor gegevensverwijzingen voor Azure Machine Learning informatie over gegevens-URI.

    In het voorbeeld worden openbaar beschikbare gegevens gebruikt in een map van , die https://pipelinedata.blob.core.windows.net/sampledata/mnist duizenden handgeschreven cijfers bevat. De naam van de batch scoring-taak wordt geretourneerd door het aanroep-antwoord. Voer de volgende code uit om het batch-eindpunt aan te roepen met behulp van deze gegevens. --query namewordt toegevoegd om alleen de taaknaam van het aanroep-antwoord te retourneren en wordt later gebruikt om de voortgang van batchscores van de taakuitvoering te controleren en Batchscoreresultaten controleren. Verwijder --query name -o tsv als u het volledige aanroep-antwoord wilt zien. Zie Query's uitvoeren op --query Azure CLI-opdrachtuitvoer voor meer informatie over de parameter.

    JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-path folder:https://pipelinedata.blob.core.windows.net/sampledata/mnist --query name -o tsv)
    
  • Optie 2: Geregistreerde gegevensset

    Gebruik --input-dataset om een geregistreerde Azure Machine Learning door te geven. Als u een gegevensset wilt maken, az ml dataset create -h controleert u op instructies en volgt u het gegevenssetschema.

    Notitie

    FileDataset die is gemaakt met behulp van de vorige versie van de CLI en Python SDK kan ook worden gebruikt. TabularDataset wordt niet ondersteund.

    az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-dataset azureml:<dataset-name>:<dataset-version>
    
  • Optie 3: Gegevens die lokaal zijn opgeslagen

    Gebruik --input-local-path om gegevensbestanden door te geven die lokaal zijn opgeslagen. De gegevensbestanden worden automatisch geüpload en geregistreerd met een automatisch gegenereerde naam en versie.

    az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-local-path <local-path>
    

De uitvoerlocatie configureren en instellingen overschrijven

De batchscoreresultaten worden standaard opgeslagen in het standaard-blobopslag van de werkruimte in een map met de naam van de taak (een door het systeem gegenereerde GUID). U kunt configureren waar de score-uitvoer moet worden opgeslagen wanneer u het batch-eindpunt aanroept. Gebruik --output-path om een in een Azure Machine Learning geregistreerde folder: gegevensstore te configureren. De syntaxis voor --output-path folder: de is hetzelfde als --input-path folder: . Gebruik om een nieuwe naam voor het uitvoerbestand te configureren als u liever één uitvoerbestand hebt met alle --set output_file_name=<your-file-name> scoreresultaten (opgegeven output_action=append_row in de YAML van uw implementatie).

Belangrijk

U moet een unieke uitvoerlocatie gebruiken. Als het uitvoerbestand bestaat, mislukt de batch scoren taak.

Sommige instellingen kunnen worden overschreven bij het aanroepen om optimaal gebruik te maken van de rekenbronnen en om de prestaties te verbeteren:

  • Gebruik --instance-count om te gebruiken om te overschrijven. instance_count Voor een groter volume aan gegevensinvoer wilt u bijvoorbeeld meer instanties gebruiken om de end-to-end batchscore te versnellen.
  • Gebruik --mini-batch-size om te gebruiken om te overschrijven. mini_batch_size Het aantal minibatchs wordt bepaald door het totale aantal invoerbestands- en mini_batch_size. Kleinere mini_batch_size genereert meer minibatchs. Minibatchs kunnen parallel worden uitgevoerd, maar er kan extra plannings- en aanroepoverhead zijn.
  • Gebruik --set om andere instellingen te overschrijven, zoals , en max_retries timeout error_threshold . Deze instellingen kunnen van invloed zijn op de end-to-end batchscoretijd voor verschillende workloads.

Voer de volgende code uit om de uitvoerlocatie op te geven en instellingen bij het aanroepen te overschrijven. In het voorbeeld wordt de uitvoer opgeslagen in een map met dezelfde naam als het eindpunt in de standaardblobopslag van de werkruimte, en wordt ook een willekeurige bestandsnaam gebruikt om ervoor te zorgen dat de uitvoerlocatie uniek is. De code moet in Unix werken. Vervang door uw eigen unieke map en bestandsnaam.

export OUTPUT_FILE_NAME=predictions_`echo $RANDOM`.csv
JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input-path folder:https://pipelinedata.blob.core.windows.net/sampledata/mnist --output-path folder:azureml://datastores/workspaceblobstore/paths/$ENDPOINT_NAME --set output_file_name=$OUTPUT_FILE_NAME --mini-batch-size 20 --instance-count 5 --query name -o tsv)

De voortgang van batch scorende taakuitvoering bewaken

Het duurt meestal even om batch scorende taken te verwerken voor de volledige set invoer.

U kunt CLI gebruiken job show om de taak te bekijken. Voer de volgende code uit om de taakstatus van het vorige eindpunt aan te roepen. Voer uit voor meer informatie over az ml job -h taakopdrachten.

STATUS=$(az ml job show -n $JOB_NAME --query status -o tsv)
echo $STATUS
if [[ $STATUS == "Completed" ]]
then
  echo "Job completed"
elif [[ $STATUS ==  "Failed" ]]
then
  echo "Job failed"
  exit 1
else 
  echo "Job status not failed or completed"
  exit 2
fi

Resultaten van batchscores controleren

Volg de onderstaande stappen om de scoreresultaten weer te geven in Azure Storage Explorer wanneer de taak is voltooid:

  1. Voer de volgende code uit om de batchscore-taak te openen in Azure Machine Learning Studio. De job studio-koppeling is ook opgenomen in het antwoord van invoke , als de waarde van interactionEndpoints.Studio.endpoint .

    az ml job show -n $JOB_NAME --web
    
  2. Selecteer de stap in de grafiek van de batchscoring run.

  3. Selecteer het tabblad Uitvoer en logboeken en selecteer vervolgens Gegevensuitvoer tonen.

  4. Selecteer in Gegevensuitvoer het pictogram om de Storage Explorer.

Studio-schermopname met locatie van gegevensuitvoer weergeven

De scoreresultaten in Storage Explorer zijn vergelijkbaar met de volgende voorbeeldpagina:

Schermopname van de score-uitvoer

Een nieuw model implementeren

Zodra u een batch-eindpunt hebt, kunt u uw model blijven verfijnen en nieuwe implementaties toevoegen.

Een nieuwe batchimplementatie maken die als host voor een MLflow-model wordt gebruikt

Voer de volgende code uit om een nieuwe batchimplementatie te maken onder het bestaande batch-eindpunt, maar dit niet in te stellen als de standaardimplementatie:

az ml batch-deployment create --name mlflowdp --endpoint-name $ENDPOINT_NAME --file endpoints/batch/mlflow-deployment.yml

U ziet --set-default dat niet wordt gebruikt. Als u show het batch-eindpunt opnieuw hebt, ziet u geen wijziging van de defaults.deployment_name .

In het voorbeeld wordt een model ( /cli/endpoints/batch/autolog_nyc_taxi ) gebruikt dat is getraind en bij te houden met MLflow. scoring_script en kunnen automatisch worden gegenereerd met behulp van de metagegevens van het model. U hoeft dit niet op te geven environment in het YAML-bestand. Zie Train and track ML models with MLflow and Azure Machine Learning (preview) voormeer informatie over MLflow.

Hieronder vindt u het YAML-bestand dat in het voorbeeld wordt gebruikt voor het implementeren van een MLflow-model, dat alleen de minimaal vereiste eigenschappen bevat. Het bronbestand in de opslagplaats is /cli/endpoints/batch/mlflow-deployment.yml .

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
name: mlflowdp
endpoint_name: mybatchedp
model: 
  local_path: ./autolog_nyc_taxi
compute: azureml:batch-cluster

Notitie

scoring_script en environment automatisch genereren ondersteunt alleen de variant van het Python-functiemodel en de handtekening van het op kolommen gebaseerde model.

Een niet-standaard batchimplementatie testen

Voer de volgende code uit om de nieuwe niet-standaardimplementatie te testen. In het voorbeeld wordt een ander model gebruikt dat een openbaar beschikbaar CSV-bestand van https://pipelinedata.blob.core.windows.net/sampledata/nytaxi/taxi-tip-data.csv accepteert.

JOB_NAME=$(az ml batch-endpoint invoke --name $ENDPOINT_NAME --deployment-name mlflowdp --input-path file:https://pipelinedata.blob.core.windows.net/sampledata/nytaxi/taxi-tip-data.csv --query name -o tsv)

az ml job show -n $JOB_NAME --web

az ml job stream -n $JOB_NAME

STATUS=$(az ml job show -n $JOB_NAME --query status -o tsv)
echo $STATUS
if [[ $STATUS == "Completed" ]]
then
  echo "Job completed"
elif [[ $STATUS ==  "Failed" ]]
then
  echo "Job failed"
  exit 1
else 
  echo "Job status not failed or completed"
  exit 2
fi

U --deployment-name ziet dat wordt gebruikt om de naam van de nieuwe implementatie op te geven. Met deze parameter kunt u een niet-standaardimplementatie maken en wordt de standaardimplementatie van het invoke batch-eindpunt niet bijgewerkt.

De standaard batchimplementatie bijwerken

Voer de volgende code uit om de standaardbatchimplementatie van het eindpunt bij te werken:

az ml batch-endpoint update --name $ENDPOINT_NAME --defaults deployment_name=mlflowdp

Als u nu het show batch-eindpunt opnieuw hebt, ziet u dat defaults.deployment_name is ingesteld op mlflowdp . U kunt invoke het batch-eindpunt rechtstreeks zonder de --deployment-name parameter .

(Optioneel) De implementatie bijwerken

Als u de implementatie wilt bijwerken (bijvoorbeeld code, model, omgeving of instellingen bijwerken), moet u het YAML-bestand bijwerken en vervolgens az ml batch-deployment update uitvoeren. U kunt ook bijwerken zonder het YAML-bestand met behulp van --set . Controleer az ml batch-deployment update -h voor meer informatie.

Het batch-eindpunt en de implementatie verwijderen

Als u de oude batchimplementatie niet gaat gebruiken, moet u deze verwijderen door de volgende code uit te voeren. --yes wordt gebruikt om de verwijdering te bevestigen.

az ml batch-deployment delete --name nonmlflowdp --endpoint-name $ENDPOINT_NAME --yes

Voer de volgende code uit om het batch-eindpunt en alle onderliggende implementaties te verwijderen. Batchscoretaken worden niet verwijderd.

az ml batch-endpoint delete --name $ENDPOINT_NAME --yes

Volgende stappen