YAML-schema för CLI-batchdistribution (v2)
GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)
JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json.
Kommentar
YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för den senaste versionen av ML CLI v2-tillägget. Den här syntaxen är garanterad att endast fungera med den senaste versionen av ML CLI v2-tillägget. Du hittar scheman för äldre tilläggsversioner på https://azuremlschemasprod.azureedge.net/.
YAML-syntax
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
$schema |
sträng | YAML-schemat. Om du använder Azure Machine Learning VS Code-tillägget för att skapa YAML-filen, inklusive $schema längst upp i filen, kan du anropa schema- och resursavslutningar. |
||
name |
sträng | Obligatoriskt. Namn på distributionen. | ||
description |
sträng | Beskrivning av distributionen. | ||
tags |
objekt | Ordlista med taggar för distributionen. | ||
endpoint_name |
sträng | Obligatoriskt. Namnet på slutpunkten som distributionen ska skapas under. | ||
type |
sträng | Obligatoriskt. Typ av baddistribution. Används model för modelldistributioner och pipeline för distribution av pipelinekomponenter. Ny i version 1.7. |
model , pipeline |
model |
settings |
objekt | Konfiguration av distributionen. Se specifik YAML-referens för modell- och pipelinekomponenten för tillåtna värden. Ny i version 1.7. |
Dricks
Nyckeln type
har introducerats i version 1.7 av CLI-tillägget och senare. Om du vill ha fullt stöd för bakåtkompatibilitet är den här egenskapen standardinställningen model
. Men om den inte uttryckligen anges tillämpas inte nyckeln settings
och alla egenskaper för modelldistributionsinställningarna ska anges i roten för YAML-specifikationen.
YAML-syntax för modelldistributioner
När type: model
tillämpas följande syntax:
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
model |
sträng eller objekt | Obligatoriskt. Den modell som ska användas för distributionen. Det här värdet kan antingen vara en referens till en befintlig version av modellen på arbetsytan eller en infogad modellspecifikation. Om du vill referera till en befintlig modell använder du syntaxen azureml:<model-name>:<version> . Om du vill definiera en modell infogad följer du modellschemat. Som bästa praxis för produktionsscenarier bör du skapa modellen separat och referera till den här. |
||
code_configuration |
objekt | Konfiguration för bedömningskodlogik. Den här egenskapen krävs inte om din modell är i MLflow-format. |
||
code_configuration.code |
sträng | Den lokala katalogen som innehåller all Python-källkod för att poängsätta modellen. | ||
code_configuration.scoring_script |
sträng | Python-filen i katalogen ovan. Den här filen måste ha en init() funktion och en run() funktion. init() Använd funktionen för alla kostsamma eller vanliga förberedelser (till exempel läsa in modellen i minnet). init() anropas bara en gång i början av processen. Använd run(mini_batch) för att poängsätta varje post. Värdet mini_batch för är en lista med filsökvägar. Funktionen run() ska returnera en Pandas DataFrame eller en matris. Varje returnerat element anger en lyckad körning av indataelementet mini_batch i . Mer information om hur du skapar bedömningsskript finns i Förstå bedömningsskriptet. |
||
environment |
sträng eller objekt | Den miljö som ska användas för distributionen. Det här värdet kan antingen vara en referens till en befintlig version av miljön på arbetsytan eller en infogad miljöspecifikation. Den här egenskapen krävs inte om din modell är i MLflow-format. Om du vill referera till en befintlig miljö använder du syntaxen azureml:<environment-name>:<environment-version> . Om du vill definiera en infogad miljö följer du miljöschemat. Som bästa praxis för produktionsscenarier bör du skapa miljön separat och referera till den här. |
||
compute |
sträng | Obligatoriskt. Namnet på beräkningsmålet som batchbedömningsjobben ska köras på. Det här värdet ska vara en referens till en befintlig beräkning på arbetsytan med hjälp av syntaxen azureml:<compute-name> . |
||
resources.instance_count |
integer | Antalet noder som ska användas för varje batchbedömningsjobb. | 1 |
|
settings |
objekt | Specifik konfiguration av modelldistributionen. Ändrades i version 1.7. |
||
settings.max_concurrency_per_instance |
integer | Det maximala antalet parallella scoring_script körningar per instans. |
1 |
|
settings.error_threshold |
integer | Antalet filfel som ska ignoreras. Om felantalet för hela indata överskrider det här värdet avslutas batchbedömningsjobbet. error_threshold är för hela indata och inte för enskilda mini batchar. Om det utelämnas tillåts valfritt antal filfel utan att jobbet avslutas. |
-1 |
|
settings.logging_level |
sträng | Loggens verbositetsnivå. | warning , , info debug |
info |
settings.mini_batch_size |
integer | Antalet filer som kan bearbetas code_configuration.scoring_script i ett run() anrop. |
10 |
|
settings.retry_settings |
objekt | Försök igen för att bedöma varje minibatch. | ||
settings.retry_settings.max_retries |
integer | Det maximala antalet återförsök för en misslyckad eller tidsgränserad minibatch. | 3 |
|
settings.retry_settings.timeout |
integer | Tidsgränsen i sekunder för bedömning av en enda minibatch. Använd större värden när mini-batch-storleken är större eller modellen är dyrare att köra. | 30 |
|
settings.output_action |
sträng | Anger hur utdata ska ordnas i utdatafilen. Använd summary_only om du genererar utdatafilerna som anges i Anpassa utdata i modelldistributioner. Använd append_row om du returnerar förutsägelser som en del av funktionsinstruktionen run() return . |
append_row , summary_only |
append_row |
settings.output_file_name |
sträng | Namnet på utdatafilen för batchbedömning. | predictions.csv |
|
settings.environment_variables |
objekt | Ordlista över nyckel/värde-par för miljövariabler som ska anges för varje batchbedömningsjobb. |
YAML-syntax för pipelinekomponentdistributioner
När type: pipeline
tillämpas följande syntax:
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
component |
sträng eller objekt | Obligatoriskt. Pipelinekomponenten som används för distributionen. Det här värdet kan antingen vara en referens till en befintlig version av pipelinekomponenten i arbetsytan eller i ett register eller en infogad pipelinespecifikation. Om du vill referera till en befintlig komponent använder du syntaxen azureml:<component-name>:<version> . Om du vill definiera en pipelinekomponent i rad följer du schemat för pipelinekomponenten. Som bästa praxis för produktionsscenarier bör du skapa komponenten separat och referera till den här. Ny i version 1.7. |
||
settings |
objekt | Standardinställningar för pipelinejobbet. Se Attribut för inställningsnyckeln för uppsättningen konfigurerbara egenskaper. Ny i version 1.7. |
Kommentarer
Kommandona az ml batch-deployment
kan användas för att hantera Azure Machine Learning-batchdistributioner.
Exempel
Exempel är tillgängliga i GitHub-exempellagringsplatsen. Några av dem refereras nedan:
YAML: MLflow-modelldistribution
En modelldistribution som innehåller en MLflow-modell, som inte kräver att ange code_configuration
eller 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: Distribution av anpassad modell med bedömningsskript
En modelldistribution som anger det bedömningsskript som ska användas och miljön:
$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: Äldre modelldistributioner
Om attributet type
inte anges i YAML härleds en modelldistribution. Nyckeln settings
kommer dock inte att vara tillgänglig och egenskaperna ska placeras i yaml-roten enligt vad som anges i det här exemplet. Vi rekommenderar att du alltid anger egenskapen type
.
$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: Distribution av pipelinekomponenter
En enkel distribution av pipelinekomponenter:
$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