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_COUNT o , 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_name e 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