Partilhar via


Esquema YAML de implementação online gerida 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/managedOnlineDeployment.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.

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ório. Nome do ponto de extremidade sob o qual criar a implantação.
model string ou objeto 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>:<model-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.

Este campo é opcional para cenários de implantação de contêiner personalizados.
model_mount_path string O caminho para montar o modelo em um contêiner personalizado. Aplicável somente para cenários de implantação de contêiner personalizado. Se o model campo for especificado, ele será montado nesse caminho no contêiner.
code_configuration objeto Configuração para a lógica do código de pontuação.

Este campo é opcional para cenários de implantação de contêiner personalizados.
code_configuration.code string Caminho local para o diretório do código-fonte para pontuar o 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 variável de ambiente a serem definidos no contêiner de implantação. Você pode acessar essas variáveis de ambiente a partir de seus scripts de pontuação.
environment string ou objeto Obrigatório. 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.

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.
instance_type string Obrigatório. O tamanho da VM a ser usado para a implantação. Para obter a lista de tamanhos suportados, consulte Lista de SKU de pontos de extremidade online gerenciados.
instance_count integer Obrigatório. 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 que você o defina como pelo menos 3.

instance_count pode ser atualizado após a criação da implantação usando az ml online-deployment update o comando.

Reservamos um extra de 20% para a realização de upgrades. Para obter mais informações, consulte Alocação de cota de máquina virtual para implantação.
app_insights_enabled boolean Se deseja 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 de escala para a implantação. Atualmente, apenas o default tipo de escala é suportado, portanto, você não precisa especificar essa propriedade.

Com esse tipo de default escala, você pode dimensionar manualmente a contagem de instâncias para cima e para baixo após a criação da implantação, atualizando a instance_count propriedade, ou criar uma política de dimensionamento automático.
scale_settings.type string O tipo de escala. default default
data_collector objeto Configurações de coleta de dados para a implantação. Consulte DataCollector para obter o conjunto de propriedades configuráveis.
request_settings objeto Pontuando as configurações de solicitação para a implantação. Consulte RequestSettings para obter o conjunto de propriedades configuráveis.
liveness_probe objeto Configurações da sonda Liveness para monitorar a integridade do contêiner regularmente. Consulte ProbeSettings para obter o conjunto de propriedades configuráveis.
readiness_probe objeto Configurações de teste de prontidão para validar se o contêiner está pronto para atender ao tráfego. Consulte ProbeSettings para obter o conjunto de propriedades configuráveis.
egress_public_network_access string Nota: 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 pelo espaço de trabalho.

Esse sinalizador protege a implantação restringindo a comunicação entre a implantação e os recursos do Azure usados por ela. Defina como disabled para garantir que o download do modelo, código e imagens necessários para sua implantação sejam protegidos com um ponto de extremidade privado. Esse sinalizador é aplicável somente para pontos de extremidade online gerenciados.
enabled, disabled enabled

RequestSettings

Chave Tipo Description Default value
request_timeout_ms integer O tempo limite de pontuação em milissegundos. Observe que o valor máximo permitido é 180000 milissegundos. Consulte os limites para endpoints online para saber mais. 5000
max_concurrent_requests_per_instance integer O número máximo de solicitações simultâneas por instância permitido 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 isso, passe WORKER_COUNT: <int> como uma variável de ambiente. Para obter mais informações sobre WORKER_COUNTo , consulte Parâmetros do Servidor de Inferência do Azure Machine Learning

Nota: defina o número de solicitações que seu modelo pode processar simultaneamente em um único nó. Definir este valor mais alto do que a simultaneidade real do modelo pode levar a latências mais elevadas. Definir esse valor muito baixo pode levar a nós subutilizados. A configuração muito baixa 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 integer (Preterido) A quantidade máxima de tempo, em milissegundos, uma solicitação permanecerá na fila. (Agora aumente request_timeout_ms para levar em conta quaisquer atrasos de rede/fila) 500

Configurações da sonda

Chave Tipo Description Default value
initial_delay integer O número de segundos após o início do recipiente antes de a sonda ser iniciada. O valor mínimo é 1. 10
period integer Com que frequência (em segundos) realizar a sonda. 10
timeout integer O número de segundos após os quais a sonda atinge o tempo limite. O valor mínimo é 1. 2
success_threshold integer Os sucessos consecutivos mínimos para que a sonda seja considerada bem-sucedida depois de ter falhado. O valor mínimo é 1 para a sonda de prontidão. O valor da sonda liveness é fixado como 1. 1
failure_threshold integer Quando uma sonda falha, o sistema tentará failure_threshold vezes antes de desistir. Desistir no caso de uma sonda de vivacidade significa que o contêiner será reiniciado. No caso de uma sonda de prontidão, o contêiner será marcado como Despronto. O valor mínimo é 1. 30

Coletor de dados

Chave Tipo Description Default value
sampling_rate flutuante A percentagem, representada como uma taxa decimal, dos dados a recolher. Por exemplo, um valor de 1,0 representa a recolha 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 s individuais collection_namee suas respetivas configurações para esta implantação.
collections.<collection_name> objeto Agrupamento lógico dos dados de inferência de produção a recolher (exemplo: model_inputs). Há dois nomes reservados: e response, que correspondem, request respectivamente, à coleta de dados de carga útil de solicitação e resposta HTTP. Todos os outros nomes são arbitrários e definíveis pelo usuário.

Nota: Cada collection_name um deve corresponder ao nome do objeto usado na implantação score.py para coletar os dados de inferência de Collector produção. Para obter mais informações sobre coleta de dados de carga útil e coleta de dados com o SDK Python fornecido, consulte Coletar dados de modelos em produção.
collections.<collection_name>.enabled boolean Se a coleta de dados deve ser habilitada para o arquivo collection_name. '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 integer A versão do ativo de dados a ser registrado com os dados coletados no armazenamento de Blob. 1

Observações

Os az ml online-deployment comandos podem ser usados para gerenciar implantações online gerenciadas do Azure Machine Learning.

Exemplos

Exemplos estão disponíveis no repositório GitHub de exemplos. 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óximos passos