Esquema YAML de implantação em lote da CLI (v2)
APLICA-SE A: Azure CLI ml extension 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 model
padrã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