Share via


Esquema YAML de implantação online gerenciada pela 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/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 os limites de endpoints online para saber mais. 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. A configuração muito baixa também pode resultar em solicitações rejeitadas 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 contabilizar 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_names 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

Próximas etapas