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