Partilhar via


Esquema YAML de implantação em lote da CLI (v2)

APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)

O esquema JSON de origem pode ser encontrado em https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json.

Nota

A sintaxe YAML detalhada neste documento é baseada no esquema JSON para a versão mais recente da extensão ML CLI v2. Esta sintaxe é garantida apenas para funcionar com a versão mais recente da extensão ML CLI v2. Você pode encontrar os esquemas para versões de extensão mais antigas em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Tipo Description Valores permitidos Default value
$schema string O esquema YAML. Se você usar a extensão VS Code do Aprendizado de Máquina do Azure para criar o arquivo YAML, inclusive $schema na parte superior do arquivo permitirá que você invoque o esquema e as completações de recursos.
name string Obrigatório. Nome da implantação.
description string Descrição da implantação.
tags objeto Dicionário de tags para a implantação.
endpoint_name string Obrigatório. Nome do ponto de extremidade sob o qual criar a implantação.
type string Obrigatório. Tipo de instalação do banho. Use model para implantações de modelo e pipeline para implantações de componentes de pipeline.

Novo na versão 1.7.
model, pipeline model
settings objeto Configuração da implantação. Consulte a referência YAML específica para o modelo e o componente de pipeline para obter os valores permitidos.

Novo na versão 1.7.

Gorjeta

A chave type foi introduzida na versão 1.7 da extensão CLI e acima. Para oferecer suporte total à compatibilidade com versões anteriores, essa propriedade assume como modelpadrão . No entanto, se não for explicitamente indicado, a chave settings não será imposta e todas as propriedades para as configurações de implantação do modelo devem ser indicadas na raiz da especificação YAML.

Sintaxe YAML para implantações de modelo

Quando type: model, a seguinte sintaxe é imposta:

Chave Tipo Description Valores permitidos Default value
model string ou objeto Obrigatório. O modelo a ser usado para a implantação. Esse valor pode ser uma referência a um modelo versionado existente no espaço de trabalho ou uma especificação de modelo embutido.

Para fazer referência a um modelo existente, use a azureml:<model-name>:<version> sintaxe.

Para definir um modelo embutido, siga o esquema Modelo.

Como prática recomendada para cenários de produção, você deve criar o modelo separadamente e consultá-lo aqui.
code_configuration objeto Configuração para a lógica do código de pontuação.

Esta propriedade não é necessária se o modelo estiver no formato MLflow.
code_configuration.code string O diretório local que contém todo o código-fonte Python para pontuar o modelo.
code_configuration.scoring_script string O arquivo Python no diretório acima. Este arquivo deve ter uma init() função e uma run() função. Use a função para qualquer preparação cara init() ou comum (por exemplo, carregar o modelo na memória). init() é chamado apenas uma vez no início do processo. Use run(mini_batch) para pontuar cada entrada, o valor de é uma lista de caminhos de mini_batch arquivo. A run() função deve retornar um pandas DataFrame ou uma matriz. Cada elemento retornado indica uma execução bem-sucedida do elemento input no mini_batch. Para obter mais informações sobre como criar script de pontuação, consulte Noções básicas sobre o script de pontuação.
environment string ou objeto O ambiente a ser usado para a implantação. Esse valor pode ser uma referência a um ambiente versionado existente no espaço de trabalho ou uma especificação de ambiente embutido.

Esta propriedade não é necessária se o modelo estiver no formato MLflow.

Para fazer referência a um ambiente existente, use a azureml:<environment-name>:<environment-version> sintaxe.

Para definir um ambiente embutido, siga o esquema Ambiente.

Como prática recomendada para cenários de produção, você deve criar o ambiente separadamente e consultá-lo aqui.
compute string Obrigatório. Nome do destino de computação no qual executar os trabalhos de pontuação em lote. Esse valor deve ser uma referência a um cálculo existente no espaço de trabalho usando a azureml:<compute-name> sintaxe.
resources.instance_count integer O número de nós a serem usados para cada trabalho de pontuação em lote. 1
settings objeto Configuração específica da implantação do modelo.

Alterado na versão 1.7.
settings.max_concurrency_per_instance integer O número máximo de execuções paralelas scoring_script por instância. 1
settings.error_threshold integer O número de falhas de arquivo que devem ser ignoradas. Se a contagem de erros para toda a entrada ultrapassar esse valor, o trabalho de pontuação em lote será encerrado. error_threshold é para toda a entrada e não para minilotes individuais. Se omitido, qualquer número de falhas de arquivo é permitido sem encerrar o trabalho. -1
settings.logging_level string O nível de verbosidade do log. warning, info, debug info
settings.mini_batch_size integer O número de arquivos que o code_configuration.scoring_script pode processar em uma run() chamada. 10
settings.retry_settings objeto Repita as configurações para pontuar cada mini lote.
settings.retry_settings.max_retries integer O número máximo de tentativas para um mini lote com falha ou expirado. 3
settings.retry_settings.timeout integer O tempo limite em segundos para marcar um único mini lote. Use valores maiores quando o tamanho do minilote for maior ou o modelo for mais caro de executar. 30
settings.output_action string Indica como a saída deve ser organizada no arquivo de saída. Use summary_only se você estiver gerando os arquivos de saída conforme indicado em Personalizar saídas em implantações de modelo. Use append_row se você estiver retornando previsões como parte da run() instrução de função return . append_row, summary_only append_row
settings.output_file_name string Nome do arquivo de saída de pontuação em lote. predictions.csv
settings.environment_variables objeto Dicionário de pares chave-valor variável de ambiente a definir para cada trabalho de pontuação em lote.

Sintaxe YAML para implantações de componentes de pipeline

Quando type: pipeline, a seguinte sintaxe é imposta:

Chave Tipo Description Valores permitidos Default value
component string ou objeto Obrigatório. O componente de pipeline usado para a implantação. Esse valor pode ser uma referência a um componente de pipeline versionado existente no espaço de trabalho ou em um registro ou uma especificação de pipeline embutido.

Para fazer referência a um componente existente, use a azureml:<component-name>:<version> sintaxe.

Para definir um componente de pipeline embutido, siga o esquema do componente Pipeline.

Como prática recomendada para cenários de produção, você deve criar o componente separadamente e consultá-lo aqui.

Novo na versão 1.7.
settings objeto Configurações padrão para o trabalho de pipeline. Consulte Atributos da chave de configurações para o conjunto de propriedades configuráveis.

Novo na versão 1.7.

Observações

Os az ml batch-deployment comandos podem ser usados para gerenciar implantações em lote do Azure Machine Learning.

Exemplos

Exemplos estão disponíveis no repositório GitHub de exemplos. Alguns deles são referenciados abaixo:

YAML: Implantação do modelo MLflow

Uma implantação de modelo contendo um modelo MLflow, que não requer indicação code_configuration ou 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: Implantação de modelo personalizado com script de pontuação

Uma implantação de modelo indicando o script de pontuação a ser usado e o ambiente:

$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: Implantações de modelos herdados

Se o atributo type não for indicado no YAML, uma implantação de modelo será inferida. No entanto, a chave settings não estará disponível e as propriedades devem ser colocadas na raiz do YAML como indicado neste exemplo. É altamente aconselhável sempre especificar a propriedade 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: Implantação de componentes de pipeline

Uma implantação simples de componente de pipeline:

$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

Próximos passos