Delen via


YAML-schema van CLI (v2) batchimplementatie

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

Het JSON-bronschema vindt u op https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json.

Notitie

De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de nieuwste versie van de ML CLI v2-extensie. Deze syntaxis werkt gegarandeerd alleen met de nieuwste versie van de ML CLI v2-extensie. U vindt de schema's voor oudere extensieversies op https://azuremlschemasprod.azureedge.net/.

YAML-syntaxis

Sleutel Type Description Toegestane waarden Default value
$schema tekenreeks Het YAML-schema. Als u de Azure Machine Learning VS Code-extensie gebruikt om het YAML-bestand te ontwerpen, inclusief $schema bovenaan het bestand, kunt u schema- en resourcevoltooiingen aanroepen.
name tekenreeks Vereist. Naam van de implementatie.
description tekenreeks Beschrijving van de implementatie.
tags object Woordenlijst met tags voor de implementatie.
endpoint_name tekenreeks Vereist. De naam van het eindpunt voor het maken van de implementatie onder.
type tekenreeks Vereist. Type badimplementatie. Gebruiken model voor modelimplementaties en pipeline voor implementaties van pijplijnonderdelen.

Nieuw in versie 1.7.
model, pipeline model
settings object Configuratie van de implementatie. Zie specifieke YAML-verwijzing voor model- en pijplijnonderdeel voor toegestane waarden.

Nieuw in versie 1.7.

Tip

De sleutel type is geïntroduceerd in versie 1.7 van de CLI-extensie en hoger. Als u compatibiliteit met eerdere versies volledig wilt ondersteunen, wordt deze eigenschap standaard ingesteld op model. Als dit echter niet expliciet wordt aangegeven, wordt de sleutel settings niet afgedwongen en moeten alle eigenschappen voor de modelimplementatie-instellingen worden aangegeven in de hoofdmap van de YAML-specificatie.

YAML-syntaxis voor modelimplementaties

Wanneer type: model, wordt de volgende syntaxis afgedwongen:

Sleutel Type Description Toegestane waarden Default value
model tekenreeks of object Vereist. Het model dat moet worden gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaand versiemodel in de werkruimte of een inline modelspecificatie.

Als u naar een bestaand model wilt verwijzen, gebruikt u de azureml:<model-name>:<version> syntaxis.

Als u een model inline wilt definiëren, volgt u het modelschema.

Als best practice voor productiescenario's moet u het model afzonderlijk maken en hiernaar verwijzen.
code_configuration object Configuratie voor de scorecodelogica.

Deze eigenschap is niet vereist als uw model de MLflow-indeling heeft.
code_configuration.code tekenreeks De lokale map die alle Python-broncode bevat om het model te scoren.
code_configuration.scoring_script tekenreeks Het Python-bestand in de bovenstaande map. Dit bestand moet een init() functie en een run() functie hebben. Gebruik de init() functie voor kostbare of algemene voorbereiding (bijvoorbeeld het model laden in het geheugen). init() wordt slechts één keer aan het begin van het proces aangeroepen. Gebruik run(mini_batch) dit om elke vermelding te scoren. De waarde mini_batch is een lijst met bestandspaden. De run() functie moet een Pandas DataFrame of een matrix retourneren. Elk geretourneerd element geeft een geslaagde uitvoering van het invoerelement in de mini_batch. Zie Inzicht in het scorescript voor meer informatie over het maken van een scorescript.
environment tekenreeks of object De omgeving die moet worden gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaande versieomgeving in de werkruimte of een inline-omgevingsspecificatie.

Deze eigenschap is niet vereist als uw model de MLflow-indeling heeft.

Als u naar een bestaande omgeving wilt verwijzen, gebruikt u de azureml:<environment-name>:<environment-version> syntaxis.

Als u een omgeving inline wilt definiëren, volgt u het omgevingsschema.

Als best practice voor productiescenario's moet u de omgeving afzonderlijk maken en hiernaar verwijzen.
compute tekenreeks Vereist. Naam van het rekendoel waarop de batchscoretaken moeten worden uitgevoerd. Deze waarde moet een verwijzing naar een bestaande berekening in de werkruimte zijn met behulp van de azureml:<compute-name> syntaxis.
resources.instance_count geheel getal Het aantal knooppunten dat moet worden gebruikt voor elke batchscoretaak. 1
settings object Specifieke configuratie van de modelimplementatie.

Gewijzigd in versie 1.7.
settings.max_concurrency_per_instance geheel getal Het maximum aantal parallelle scoring_script uitvoeringen per exemplaar. 1
settings.error_threshold geheel getal Het aantal bestandsfouten dat moet worden genegeerd. Als het aantal fouten voor de volledige invoer hoger is dan deze waarde, wordt de batchscoretaak beëindigd. error_threshold is voor de volledige invoer en niet voor afzonderlijke minibatches. Als u dit weglaat, is een willekeurig aantal bestandsfouten toegestaan zonder de taak te beëindigen. -1
settings.logging_level tekenreeks Het uitgebreidheidsniveau van het logboek. warning, , infodebug info
settings.mini_batch_size geheel getal Het aantal bestanden dat in code_configuration.scoring_script één run() gesprek kan worden verwerkt. 10
settings.retry_settings object Instellingen voor opnieuw proberen voor het scoren van elke minibatch.
settings.retry_settings.max_retries geheel getal Het maximum aantal nieuwe pogingen voor een mislukte of time-out minibatch. 3
settings.retry_settings.timeout geheel getal De time-out in seconden voor het scoren van één minibatch. Gebruik grotere waarden wanneer de minibatch groter is of het model duurder is om uit te voeren. 30
settings.output_action tekenreeks Geeft aan hoe de uitvoer moet worden geordend in het uitvoerbestand. Gebruik summary_only deze optie als u de uitvoerbestanden genereert zoals aangegeven bij Uitvoer aanpassen in modelimplementaties. Gebruik append_row deze optie als u voorspellingen retourneert als onderdeel van de run() functie-instructie return . append_row, summary_only append_row
settings.output_file_name tekenreeks Naam van het uitvoerbestand voor batchgewijs scoren. predictions.csv
settings.environment_variables object Woordenlijst van sleutel-waardeparen van omgevingsvariabelen die moeten worden ingesteld voor elke batchscoretaak.

YAML-syntaxis voor implementaties van pijplijnonderdelen

Wanneer type: pipeline, wordt de volgende syntaxis afgedwongen:

Sleutel Type Description Toegestane waarden Default value
component tekenreeks of object Vereist. Het pijplijnonderdeel dat wordt gebruikt voor de implementatie. Deze waarde kan een verwijzing zijn naar een bestaand versiebeheerpijplijnonderdeel in de werkruimte of in een register, of een inline-pijplijnspecificatie.

Als u naar een bestaand onderdeel wilt verwijzen, gebruikt u de azureml:<component-name>:<version> syntaxis.

Als u een pijplijnonderdeel inline wilt definiëren, volgt u het schema van het pijplijnonderdeel.

Als best practice voor productiescenario's moet u het onderdeel afzonderlijk maken en hiernaar verwijzen.

Nieuw in versie 1.7.
settings object Standaardinstellingen voor de pijplijntaak. Zie Kenmerken van de instellingensleutel voor de set configureerbare eigenschappen.

Nieuw in versie 1.7.

Opmerkingen

De az ml batch-deployment opdrachten kunnen worden gebruikt voor het beheren van Azure Machine Learning-batchimplementaties.

Voorbeelden

Voorbeelden zijn beschikbaar in de GitHub-voorbeeldenopslagplaats. Hieronder worden enkele verwijzingen weergegeven:

YAML: MLflow-modelimplementatie

Een modelimplementatie met een MLflow-model dat niet hoeft aan te geven code_configuration of environment:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300
  error_threshold: -1
  logging_level: info

YAML: Implementatie van aangepast model met scorescript

Een modelimplementatie die het scorescript aangeeft dat moet worden gebruikt en de omgeving:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
  name: mnist-classifier-torch
  path: model
code_configuration:
  code: code
  scoring_script: batch_driver.py
environment:
  name: batch-torch-py38
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
  conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
  instance_count: 1
settings:
  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

YAML: Verouderde modelimplementaties

Als het kenmerk type niet wordt aangegeven in de YAML, wordt een modelimplementatie afgeleid. De sleutel settings is echter niet beschikbaar en de eigenschappen moeten in de hoofdmap van de YAML worden geplaatst, zoals aangegeven in dit voorbeeld. Het is sterk aan te raden om altijd de eigenschap typeop te geven.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 300
error_threshold: -1
logging_level: info

YAML: Implementatie van pijplijnonderdelen

Een eenvoudige implementatie van pijplijnonderdelen:

$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

Volgende stappen