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 , , info debug |
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 type
op 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