Usar VMs de baixa prioridade para implantações em lote
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
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 lotes. As VMs de baixa prioridade permitem que uma grande quantidade de poder de computação seja usada a um baixo custo. Máquinas virtuais de baixa prioridade aproveitam a capacidade excedente no Azure. Quando você especifica VMs de baixa prioridade em pools, o Lote do Azure pode usar esse excedente quando ele estiver disponível.
Dica
A desvantagem de usar VMs de baixa prioridade é que essas máquinas virtuais podem não estar disponíveis ou podem ser interrompidas a qualquer momento, dependendo da capacidade disponível. Por esse motivo, essa abordagem é mais adequada para cargas de trabalho de processamento em lotes e assíncronas, em que o tempo de conclusão do trabalho é flexível e o trabalho é distribuído em muitas máquinas virtuais.
Máquinas virtuais de baixa prioridade são oferecidas a um preço reduzido em comparação com máquinas virtuais dedicadas. Para obter detalhes sobre preços, consulte Preço do Azure Machine Learning.
Como a implantação em lote funciona com VMs de baixa prioridade
As implantações em lotes do Azure Machine Learning oferecem vários recursos que tornam mais fácil consumir e se beneficiar de VMs de baixa prioridade:
- Os trabalhos de implantação em lote consomem VMs de baixa prioridade executando em clusters de cálculo 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 trabalho não é possível.
- Os trabalhos de implantação em lote buscam automaticamente o número de VMs de destino no cluster de cálculo disponível com base no número de tarefas a serem enviadas. Se as VMs forem preteridas ou estiverem indisponíveis, os trabalhos de implantação em lote tentarão substituir a capacidade perdida enfileirando as tarefas com falha no cluster.
- VMs de baixa prioridade têm uma cota de vCPU separada que se difere da cota para VMs dedicadas. 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 assinatura pode ser aumentado e é um valor único nas famílias de VM. Confira 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 em termos do prazo para a conclusão dos trabalhos, você poderá tolerar as possíveis quedas na capacidade.
Quando você implanta modelos em pontos de extremidade em lotes, o reagendamento pode ser feito no nível de mini lote. Essa abordagem tem o benefício de que a desalocação afeta apenas os mini lotes que estão sendo processados no momento e não concluídos no nó afetado. Todo o progresso concluído é mantido.
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 trabalho não é possível.
- O reagendamento é feito no nível do minilote, independentemente do progresso. Nenhuma funcionalidade de ponto de verificação é fornecida.
Aviso
Nos casos em que todo o cluster é interrompido ou se encontra em execução em um cluster de nó único, o trabalho é cancelado porque não há capacidade disponível para execução. O reenvio é necessário nesse caso.
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 cálculo do Azure Machine Learning criados com VMs de baixa prioridade.
Observação
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.
É possível criar um cluster de cálculo de baixa prioridade do Azure Machine Learning da seguinte maneira:
Crie uma definição de computação YAML
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 comando a seguir:
az ml compute create -f low-pri-cluster.yml
Depois de criar a nova computação, você pode criar ou atualizar a 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 configuração YAML
, 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
Exibir e monitorar a desalocação do nó
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 com preempção
- Núcleos admitidos
Para a exibição dessas métricas no portal do Azure:
- Navegue até o seu workspace do Azure Machine Learning no portal do Azure.
- Selecione Métricas na seção Monitoramento.
- Selecione as métricas desejadas na lista Métrica.