Esquema YAML de implantação online gerenciada 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/managedOnlineDeployment.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. As regras de nomenclatura são definidas aqui. |
||
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. | ||
model |
cadeia de caracteres ou objeto | 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>:<model-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. Esse campo é opcional para cenários de implantação de contêiner personalizado. |
||
model_mount_path |
string | O caminho para montar o modelo em um contêiner personalizado. Aplicável apenas a cenários de implantação de contêiner personalizado. Se o campo model for especificado, ele será montado nesse caminho no contêiner. |
||
code_configuration |
objeto | Configuração da lógica do código de pontuação. Esse campo é opcional para cenários de implantação de contêiner personalizado. |
||
code_configuration.code |
string | Caminho local para o diretório de código-fonte para pontuação do modelo. | ||
code_configuration.scoring_script |
string | Caminho relativo para o arquivo de pontuação no diretório do código-fonte. | ||
environment_variables |
objeto | Dicionário de pares chave-valor de variável de ambiente para definir no contêiner de implantação. Você pode acessar essas variáveis de ambiente de seus scripts de pontuação. | ||
environment |
cadeia de caracteres ou objeto | Obrigatórios. O ambiente a ser usado para a implantação. Esse valor pode ser uma referência para um ambiente com versão existente no espaço de trabalho ou uma especificação de ambiente embutido. 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. |
||
instance_type |
string | Obrigatórios. O tamanho da VM a ser usado para a implantação. Para obter a lista de tamanhos com suporte, confira Lista de SKU de pontos de extremidade online gerenciados. | ||
instance_count |
inteiro | Obrigatórios. O número de instâncias a serem usadas para a implantação. Especifique o valor com base na carga de trabalho esperada. Para alta disponibilidade, a Microsoft recomenda defini-lo como pelo menos 3 . instance_count pode ser atualizado após a criação da implantação usando o comando az ml online-deployment update . Reservamos mais 20% para executar atualizações. Para obter mais informações, consulte alocação de cota de máquina virtual para implantação. |
||
app_insights_enabled |
boolean | Se deve habilitar a integração com a instância do Azure Application Insights associada ao seu espaço de trabalho. | false |
|
scale_settings |
objeto | As configurações do conjunto de dimensionamento para a implantação. Atualmente, apenas o tipo de escala default é compatível, portanto, você não precisa especificar essa propriedade. Com esse tipo de escala default , você pode dimensionar manualmente a contagem de instâncias para cima e para baixo após a criação da implantação atualizando a propriedade instance_count ou criar uma política de dimensionamento automático. |
||
scale_settings.type |
string | O tipo de escala. | default |
default |
data_collector |
objeto | Configurações da coleta de dados para a implantação. Confira DataCollector para obter o conjunto de propriedades configuráveis. | ||
request_settings |
objeto | Configurações de solicitação de pontuação para a implantação. Confira RequestSettings para obter o conjunto de propriedades configuráveis. | ||
liveness_probe |
objeto | Configurações de investigação de atividade para monitorar a integridade do contêiner regularmente. Confira ProbeSettings para obter o conjunto de propriedades configuráveis. | ||
readiness_probe |
objeto | Configurações de investigação de preparação para validar se o contêiner está pronto para atender ao tráfego. Confira ProbeSettings para obter o conjunto de propriedades configuráveis. | ||
egress_public_network_access |
string | Observação: essa chave é aplicável quando você usa o método de isolamento de rede herdado para proteger a comunicação de saída para uma implantação. É altamente recomendável que você proteja a comunicação de saída para implantações usando uma VNet gerenciada por workspace. Esse sinalizador protege a implantação restringindo a comunicação entre ela e os recursos do Azure que ela utiliza. Defina como disabled para garantir que o download do modelo, do código e das imagens necessários para a implantação seja protegido com um ponto de extremidade privado. Esse sinalizador é aplicável somente para pontos de extremidade online gerenciados. |
enabled , disabled |
enabled |
RequestSettings
Chave | Type | Descrição | Valor padrão |
---|---|---|---|
request_timeout_ms |
inteiro | O tempo limite de pontuação em milissegundos. Observe que o valor máximo permitido é 180000 milissegundos. Consulte limites para endpoints online para obter mais informações. |
5000 |
max_concurrent_requests_per_instance |
Número inteiro | O número máximo de solicitações simultâneas por instância permitidas para a implantação. Observação: se você estiver usando o Servidor de Inferência do Azure Machine Learning ou as Imagens de Inferência do Azure Machine Learning, seu modelo deverá ser configurado para lidar com solicitações simultâneas. Para fazer isso, passe WORKER_COUNT: <int> como uma variável de ambiente. Para obter mais informações sobre WORKER_COUNT , confira Parâmetros do servidor de inferência do Azure Machine Learning Observação: Configure para o número de solicitações que seu modelo pode processar simultaneamente em um único nó. Definir esse valor mais alto do que a simultaneidade real do seu modelo pode levar a latências mais altas. Definir esse valor muito baixo pode levar a nós subutilizados. Definir muito baixo também pode resultar na rejeição de solicitações com um código de status HTTP 429, pois o sistema optará por falhar rapidamente. Para obter mais informações, consulte Solução de problemas de pontos de extremidade online: códigos de status HTTP. |
1 |
max_queue_wait_ms |
Número inteiro | (Preterido) A quantidade máxima de tempo em milissegundos que uma solicitação permanecerá na fila. (Agora aumente request_timeout_ms para levar em conta quaisquer atrasos de rede/fila) |
500 |
ProbeSettings
Chave | Type | Descrição | Valor padrão |
---|---|---|---|
initial_delay |
inteiro | O número de segundos após a inicialização do contêiner e antes da inicialização das investigações. O valor mínimo é 1 . |
10 |
period |
inteiro | A frequência (em segundos) para realizar a investigação. | 10 |
timeout |
inteiro | O número de segundos após o qual a investigação atinge o tempo limite. O valor mínimo é 1 . |
2 |
success_threshold |
inteiro | O mínimo de sucessos consecutivos para que a investigação seja considerada bem-sucedida após apresentar falha. O valor mínimo é 1 para investigação de preparação. O valor da investigação de atividade é fixo como 1 . |
1 |
failure_threshold |
Número inteiro | Quando uma investigação falhar, o sistema tentará por failure_threshold vezes antes de desistir. Desistir no caso de uma investigação de atividade significa que o contêiner será reiniciado. No caso de uma investigação de preparação, o contêiner estará marcado como Inapto. O valor mínimo é 1 . |
30 |
DataCollector
Chave | Type | Descrição | Valor padrão |
---|---|---|---|
sampling_rate |
FLOAT | O percentual, representado como uma taxa decimal, dos dados a coletar. Por exemplo, um valor 1,0 representa a coleta de 100% dos dados. | 1.0 |
rolling_rate |
string | A taxa para particionar os dados no armazenamento. O valor pode ser: minuto, hora, dia, mês, ano. | Hour |
collections |
objeto | Conjunto de collection_name s individuais e suas respectivas configurações para essa implantação. |
|
collections.<collection_name> |
objeto | Agrupamento lógico de dados de inferência de produção a coletar (exemplo: model_inputs ). Há dois nomes reservados: request e response , que correspondem, respectivamente, à coleta de dados da solicitação HTTP e do payload de resposta. Todos os outros nomes são arbitrários e definidos pelo usuário. Observação: cada collection_name deve corresponder ao nome do objeto Collector usado na implantação score.py para coletar os dados de inferência de produção. Para obter mais informações sobre a coleta de dados do payload e a coleta de dados com o SDK do Python fornecido, confira Coletar dados dos modelos em produção. |
|
collections.<collection_name>.enabled |
booleano | Se deseja habilitar a coleta de dados para o collection_name especificado. |
'False'' |
collections.<collection_name>.data.name |
string | O nome do ativo de dados a ser registrado com os dados coletados. | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
string | O caminho completo do armazenamento de dados do Azure Machine Learning onde os dados coletados devem ser registrados como um ativo de dados. | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
inteiro | A versão do ativo de dados a ser registrada com os dados coletados no armazenamento de Blobs. | 1 |
Comentários
Os comandos az ml online-deployment
podem ser usados para gerenciar implantações online gerenciadas do Azure Machine Learning.
Exemplos
Os exemplos estão disponíveis no repositório de exemplos do GitHub. Vários são mostrados abaixo.
YAML: básico
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
path: ../../model-2/model/
code_configuration:
code: ../../model-2/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-2/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
YAML: identidade atribuída pelo sistema
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
YAML: identidade atribuída pelo usuário
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score_managedidentity.py
environment:
conda_file: ../../model-1/environment/conda-managedidentity.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
STORAGE_ACCOUNT_NAME: "storage_place_holder"
STORAGE_CONTAINER_NAME: "container_place_holder"
FILE_NAME: "file_place_holder"
UAI_CLIENT_ID: "uai_client_id_place_holder"
YAML: data_collector
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
model_inputs:
enabled: 'True'
model_outputs:
enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json
endpoint_name: my_endpoint
name: blue
model: azureml:my-model-m1:1
environment: azureml:env-m1:1
data_collector:
collections:
request:
enabled: 'True'
data:
name: my_request_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request
version: 1
response:
enabled: 'True'
data:
name: my_response_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
version: 1
model_inputs:
enabled: 'True'
data:
name: my_model_inputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
version: 1
model_outputs:
enabled: 'True'
data:
name: my_model_outputs_data_asset
path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
version: 1