Dela via


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: modeltillä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_batchi . 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, , infodebug 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: pipelinetillä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

Nästa steg