Compartilhar via


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

APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)

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

Observação

A sintaxe YAML detalhada neste documento baseia-se no esquema JSON da última versão da extensão de ML da CLI v2. Essa sintaxe só tem a garantia de funcionar com a última versão da extensão de ML da CLI v2. Encontre os esquemas para as versões mais antigas da extensão em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Type Descrição Valores permitidos Valor padrão
$schema string O esquema YAML. Se você usar a extensão do Azure Machine Learning para VS Code para criar o arquivo YAML, a inclusão de $schema no início do arquivo permitirá invocar conclusões de esquema e recursos.
name string Obrigatórios. 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órios. O nome do ponto de extremidade no qual criar a implantação.
type string Obrigatórios. Tipo de implantação de 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. Confira a referência YAML específica do modelo e do componente de pipeline para obter os valores permitidos.

Novo na versão 1.7.

Dica

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

Sintaxe YAML para implantações de modelo

Quando for type: model, a seguinte sintaxe será imposta:

Chave Type Descrição Valores permitidos Valor padrão
model cadeia de caracteres ou objeto Obrigatórios. O modelo a ser usado para a implantação. Esse valor pode ser uma referência a um modelo com versão existente no workspace ou uma especificação de modelo embutida.

Para referenciar um modelo existente, use a sintaxe azureml:<model-name>:<version>.

Para definir um modelo embutido, siga o esquema de modelo.

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

Essa propriedade não será 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 usado para pontuar o modelo.
code_configuration.scoring_script string O arquivo Python no diretório acima. Esse arquivo precisa ter uma função init() e uma função run(). Use a função init() para qualquer preparação cara ou comum (por exemplo, carregar o modelo na memória). init() será chamado apenas uma vez no início do processo. Use run(mini_batch) para pontuar cada entrada; o valor de mini_batch é uma lista de caminhos de arquivo. A função run() deve retornar um DataFrame do Pandas ou uma matriz. Cada elemento retornado indica uma execução bem-sucedida de um elemento de entrada no mini_batch. Para obter mais informações sobre como criar o script de pontuação, confira Noções básicas sobre o script de pontuação.
environment cadeia de caracteres ou objeto O ambiente a ser usado para a implantação. Esse valor pode ser uma referência para um ambiente com versão existente no workspace ou uma especificação de ambiente embutido.

Essa propriedade não será necessária se o modelo estiver no formato MLflow.

Use a sintaxe azureml:<environment-name>:<environment-version> para referenciar um ambiente existente.

Siga o esquema do ambiente para definir um ambiente embutido.

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

Alterado na versão 1.7.
settings.max_concurrency_per_instance inteiro O número máximo de execuções de scoring_script paralelas por instância. 1
settings.error_threshold inteiro O número de falhas de arquivo que devem ser ignoradas. Se a contagem de erros de toda a entrada ficar acima desse valor, o trabalho de pontuação em lote será encerrado. error_threshold é para toda a entrada e não para mini lotes individuais. Se omitido, qualquer número de falhas de arquivo será permitido sem encerrar o trabalho. -1
settings.logging_level string O nível de detalhes do log. warning, info, debug info
settings.mini_batch_size inteiro O número de arquivos que o code_configuration.scoring_script pode processar em uma chamada run(). 10
settings.retry_settings objeto Tente novamente as configurações para pontuar cada mini lote.
settings.retry_settings.max_retries inteiro O número máximo de tentativas para um mini lote com falha ou tempo limite. 3
settings.retry_settings.timeout inteiro O tempo limite em segundos para pontuar um mini-lote. Use valores maiores quando o tamanho do mini-lote for maior ou o modelo for mais caro de ser executado. 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 O nome do arquivo de saída da pontuação em lote. predictions.csv
settings.environment_variables objeto Dicionário de pares chave-valor da variável de ambiente a definir para cada trabalho de pontuação em lotes.

Sintaxe YAML para implantações de componentes de pipeline

Quando for type: pipeline, a seguinte sintaxe será imposta:

Chave Type Descrição Valores permitidos Valor padrão
component cadeia de caracteres ou objeto Obrigatórios. O componente de pipeline usado para a implantação. Esse valor pode ser uma referência a um componente de pipeline com controle de versão existente no workspace ou em um registro ou uma especificação de pipeline embutida.

Use a sintaxe azureml:<component-name>:<version> para referenciar um componente existente.

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

Como melhor prática para cenários de produção, você deve criar o ambiente separadamente e fazer referência a ele 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 ver o conjunto de propriedades configuráveis.

Novo na versão 1.7.

Comentários

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

Exemplos

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

YAML: implantação de modelo do MLflow

Uma implantação do modelo que contém um modelo do MLflow, que não exige a indicação de 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 dos 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, conforme indicado neste exemplo. É altamente recomendá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 do componente de pipeline

Uma implantação simples de componentes 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óximas etapas