Partilhar via


Usando VMs de baixa prioridade em 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 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 VMs 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.

A contrapartida para usá-los é que essas VMs nem sempre podem estar disponíveis para serem alocadas, ou podem ser antecipadas a qualquer momento, dependendo da capacidade disponível. Por esse motivo, eles são mais adequados para cargas de trabalho de processamento em lote e assíncrono, onde o tempo de conclusão do trabalho é flexível e o trabalho é distribuído em muitas VMs.

As VMs de baixa prioridade são oferecidas a um preço significativamente reduzido em comparação com as VMs 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. Quando uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usarão VMs de baixa prioridade. A configuração por trabalho 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 predefinido de 100 a 3,000, dependendo do tipo de oferta da subscrição. 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. Embora isso possa introduzir mais atrasos de execução quando ocorre a desalocação de VMs, as quedas potenciais na capacidade podem ser toleradas em despesas de execução com um custo mais baixo se houver flexibilidade no tempo que os trabalhos têm para concluir.

Ao implantar modelos em pontos de extremidade de lote, o reagendamento pode ser feito no nível de minilote. Isso tem o benefício extra 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.

Criando implantações em lote com 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

Quando uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usarão 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 uma YAML configuração como a seguinte:

$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 na folha de monitoramento de recursos mostrando as métricas relevantes para VMs de baixa prioridade.

Limitações

  • Quando uma implantação é associada a um cluster de VMs de baixa prioridade, todos os trabalhos produzidos por essa implantação usarão VMs de baixa prioridade. A configuração por trabalho 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 será cancelado, pois não há capacidade disponível para ser executado. Neste caso, será necessário reenviá-lo.