Partilhar via


Usar VMs de baixa prioridade para implantações em lote

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

As implantações em lote do Azure dão suporte a máquinas virtuais (VMs) de baixa prioridade para reduzir o custo das cargas de trabalho de inferência em lote. As VMs de baixa prioridade permitem que uma grande quantidade de poder de computação seja usada por um baixo custo. As máquinas virtuais de baixa prioridade aproveitam a capacidade excedente no Azure. Quando você especifica VMs de baixa prioridade em seus pools, o Azure pode usar esse excedente, quando disponível.

Gorjeta

A contrapartida para o uso de VMs de baixa prioridade é que essas máquinas virtuais podem não estar disponíveis ou podem ser antecipadas a qualquer momento, dependendo da capacidade disponível. Por esse motivo, essa abordagem é mais adequada para cargas de trabalho de processamento em lote e assíncronas, onde o tempo de conclusão do trabalho é flexível e o trabalho é distribuído em muitas máquinas virtuais.

As máquinas virtuais de baixa prioridade são oferecidas a um preço reduzido em comparação com as máquinas virtuais dedicadas. Para obter detalhes de preços, consulte Preços do Azure Machine Learning.

Como funciona a implantação em lote com VMs de baixa prioridade

As Implantações em Lote do Azure Machine Learning fornecem vários recursos que facilitam o consumo e se beneficiam de VMs de baixa prioridade:

  • Os trabalhos de implantação em lote consomem VMs de baixa prioridade executando em clusters de computação do Azure Machine Learning criados com VMs de baixa prioridade. Depois que uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usam VMs de baixa prioridade. A configuração por tarefa não é possível.
  • Os trabalhos de implantação em lote buscam automaticamente o número de destino de VMs no cluster de computação disponível com base no número de tarefas a serem enviadas. Se as VMs estiverem antecipadas ou indisponíveis, os trabalhos de implantação em lote tentarão substituir a capacidade perdida enfileirando as tarefas com falha no cluster.
  • As VMs de baixa prioridade têm uma cota de vCPU separada que difere da cota das VMs dedicadas. Os núcleos de baixa prioridade por região têm um limite padrão de 100 a 3.000, dependendo da sua assinatura. O número de núcleos de baixa prioridade por subscrição pode ser aumentado e é um valor único nas famílias de VM. Consulte Cotas de computação do Azure Machine Learning.

Considerações e casos de uso

Muitas cargas de trabalho em lote são uma boa opção para VMs de baixa prioridade. O uso de VMs de baixa prioridade pode introduzir atrasos de execução quando ocorre a desalocação de VMs. Se você tiver flexibilidade no tempo que os trabalhos têm para terminar, você pode tolerar as possíveis quedas na capacidade.

Quando você implanta modelos em pontos de extremidade de lote, o reagendamento pode ser feito no nível de minilote. Essa abordagem tem a vantagem de que a desalocação afeta apenas os minilotes que estão sendo processados e não concluídos no nó afetado. Todos os progressos concluídos são mantidos.

Limitações

  • Depois que uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usam VMs de baixa prioridade. A configuração por tarefa não é possível.
  • O reagendamento é feito no nível do minilote, independentemente do progresso. Nenhum recurso de ponto de verificação é fornecido.

Aviso

Nos casos em que todo o cluster é antecipado ou executado em um cluster de nó único, o trabalho é cancelado porque não há capacidade disponível para ser executado. Neste caso, é necessário reenviar.

Criar implantações em lote que usam VMs de baixa prioridade

Os trabalhos de implantação em lote consomem VMs de baixa prioridade executando em clusters de computação do Azure Machine Learning criados com VMs de baixa prioridade.

Nota

Depois que uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usam VMs de baixa prioridade. A configuração por trabalho não é possível.

Você pode criar um cluster de computação do Azure Machine Learning de baixa prioridade da seguinte maneira:

Crie uma definição YAML de computação como a seguinte, low-pri-cluster.yml:

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Crie a computação usando o seguinte comando:

az ml compute create -f low-pri-cluster.yml

Depois de criar a nova computação, você pode criar ou atualizar sua implantação para usar o novo cluster:

Para criar ou atualizar uma implantação no novo cluster de computação, crie um arquivo de YAML configuração endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-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

Em seguida, crie a implantação com o seguinte comando:

az ml batch-endpoint create -f endpoint.yml

Visualizar e monitorar a desalocação de nós

Novas métricas estão disponíveis no portal do Azure para VMs de baixa prioridade para monitorar VMs de baixa prioridade. Essas métricas são:

  • Nós antecipados
  • Núcleos antecipados

Para exibir essas métricas no portal do Azure:

  1. Navegue até seu espaço de trabalho do Azure Machine Learning no portal do Azure.
  2. Selecione Métricas na seção Monitoramento.
  3. Selecione as métricas desejadas na lista Métricas .

Captura de tela da seção de métricas no painel de monitoramento de recursos que mostra as métricas relevantes para VMs de baixa prioridade.