Gerenciar e otimizar os custos do Azure Machine Learning

Este artigo mostra como gerenciar e otimizar custos quando você treina e implanta modelos de aprendizado de máquina no Azure Machine Learning.

Use as dicas a seguir para ajudá-lo a gerenciar e otimizar seus custos de recursos de computação.

  • Usar o cluster de computação do Azure Machine Learning
  • Configurar seus clusters de treinamento para dimensionamento automático
  • Configure seus pontos de extremidade online gerenciados para dimensionamento automático
  • Definir quotas na sua subscrição e espaços de trabalho
  • Definir políticas de rescisão no seu trabalho de formação
  • Usar máquinas virtuais (VM) de baixa prioridade
  • Agende instâncias de computação para desligar e iniciar automaticamente
  • Usar uma instância de VM reservada do Azure
  • Treinamento em paralelo
  • Definir políticas de retenção e exclusão de dados
  • Implantar recursos na mesma região
  • Excluir implantações com falha

Para obter informações sobre como planejar e monitorar custos, consulte Planejar o gerenciamento de custos para o Azure Machine Learning.

Importante

Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço. Não recomendamos versões de visualização para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Usar o cluster de computação do Azure Machine Learning

Com dados em constante mudança, você precisa de treinamento e retreinamento de modelos rápidos e simplificados para manter modelos precisos. No entanto, o treinamento contínuo tem um custo, especialmente para modelos de aprendizado profundo em GPUs.

Os usuários do Azure Machine Learning podem usar o cluster de computação gerenciado do Azure Machine Learning, também chamado AmlCompute. AmlCompute suporta várias opções de GPU e CPU. O AmlCompute é hospedado internamente em nome de sua assinatura pelo Azure Machine Learning. Ele fornece a mesma segurança, conformidade e governança de nível empresarial na escala de nuvem IaaS do Azure.

Como esses pools de computação estão dentro da infraestrutura IaaS do Azure, você pode implantar, dimensionar e gerenciar seu treinamento com os mesmos requisitos de segurança e conformidade que o restante da infraestrutura. Essas implantações ocorrem em sua assinatura e obedecem às regras de governança. Para obter mais informações, consulte Planejar o gerenciamento de custos para o Azure Machine Learning.

Configurar clusters de treinamento para dimensionamento automático

O dimensionamento automático de clusters com base nos requisitos da sua carga de trabalho ajuda a reduzir os custos para que você use apenas o que precisa.

Os clusters AmlCompute são projetados para serem dimensionados dinamicamente com base na sua carga de trabalho. O cluster pode ser dimensionado até o número máximo de nós configurados. À medida que cada trabalho é concluído, o cluster libera nós e é dimensionado para a contagem mínima de nós configurada.

Importante

Para evitar cobranças quando nenhum trabalho estiver em execução, defina os nós mínimos como 0. Essa configuração permite que o Aprendizado de Máquina do Azure desaaloque os nós quando eles não estiverem em uso. Qualquer valor maior que 0 manterá esse número de nós em execução, mesmo que eles não estejam em uso.

Você também pode configurar a quantidade de tempo que o nó fica ocioso antes de reduzir a escala. Por padrão, o tempo ocioso antes da redução da escala é definido como 120 segundos.

  • Se você executar menos experimentação iterativa, reduza esse tempo para economizar custos.
  • Se você executar experimentação de desenvolvimento/teste altamente iterativa, talvez seja necessário aumentar o tempo para não pagar por escalas constantes para cima e para baixo após cada alteração no script de treinamento ou ambiente.

Você pode configurar clusters AmlCompute para seus requisitos de carga de trabalho variáveis usando:

Configurar pontos de extremidade online gerenciados para dimensionamento automático

O dimensionamento automático executa a quantidade certa de recursos para processar a carga da aplicação. Os pontos de extremidade online gerenciados oferecem suporte ao dimensionamento automático por meio da integração com o recurso de dimensionamento automático do Azure Monitor. Para obter mais informações, consulte Pontos de extremidade e implantações on-line para inferência em tempo real.

O dimensionamento automático do Azure Monitor dá suporte a um rico conjunto de regras:

  • Dimensionamento baseado em métricas, por exemplo, utilização >da CPU 70%
  • Escalonamento baseado em agenda, por exemplo, regras de dimensionamento para horários comerciais de pico
  • Uma combinação dos dois

Para obter mais informações, consulte Dimensionamento automático de pontos de extremidade online.

Definir quotas de recursos

AmlCompute vem com uma configuração de cota, ou limite. Essa cota é por família VM, por exemplo, série Dv2 ou série NCv3. A cota varia de acordo com a região para cada assinatura. As subscrições começam com pequenos predefinições. Use essa configuração para controlar a quantidade de recursos AmlCompute disponíveis para serem girados em sua assinatura. Para obter mais informações, consulte Computação do Azure Machine Learning.

Além disso, você pode configurar a cota de nível de espaço de trabalho por família de VMs para cada espaço de trabalho dentro de uma assinatura. Essa abordagem oferece um controle mais granular sobre os custos que cada espaço de trabalho pode incorrer e restringe determinadas famílias de VMs. Para obter mais informações, consulte Cotas no nível do espaço de trabalho.

Para definir cotas no nível do espaço de trabalho:

  1. Abra o portal do Azure e, em seguida, selecione qualquer espaço de trabalho na sua subscrição.

  2. Selecione Suporte + Solução de problemas>de uso + cotas no menu do espaço de trabalho.

  3. Selecione Exibir cota para exibir cotas no estúdio do Azure Machine Learning.

  4. Nesta página, pode encontrar a sua subscrição e região para definir quotas.

    Como essa configuração afeta vários espaços de trabalho, você precisa de privilégios no escopo da assinatura para definir a cota.

Definir políticas de rescisão de trabalho

Em alguns casos, você deve configurar suas execuções de treinamento para limitar sua duração ou encerrá-las antecipadamente. Por exemplo, quando você usa o ajuste de hiperparâmetro interno do Azure Machine Learning ou o aprendizado de máquina automatizado.

Aqui estão algumas opções que você tem:

  • Defina um parâmetro chamado max_run_duration_seconds em seu RunConfiguration para controlar a duração máxima que uma execução pode estender na computação que você escolher, computação em nuvem local ou remota.
  • Para ajuste de hiperparâmetros, defina uma política de encerramento antecipado a partir de uma política Bandit, uma política de parada mediana ou uma política de seleção de truncamento. Para controlar ainda mais as varreduras de hiperparâmetros, use parâmetros como max_total_runs ou max_duration_minutes. Para obter mais informações, consulte Especificar política de rescisão antecipada.
  • Para aprendizado de máquina automatizado, defina políticas de terminação semelhantes usando o enable_early_stopping sinalizador. Você também pode usar propriedades como iteration_timeout_minutes e experiment_timeout_minutes para controlar a duração máxima de um trabalho ou para todo o experimento. Para obter mais informações, consulte Critérios de saída.

Usar máquinas virtuais de baixa prioridade

O Azure permite que você use o excesso de capacidade não utilizada como VMs de baixa prioridade em conjuntos de escala de máquina virtual, lote e o serviço de Aprendizado de Máquina. Essas alocações são preemptíveis, mas têm um preço reduzido em comparação com VMs dedicadas. Em geral, recomendamos que você use VMs de baixa prioridade para cargas de trabalho em lote. Você também deve usá-los onde as interrupções são recuperáveis, seja por meio de reenvios para Inferência em lote ou por meio de reinicializações para treinamento de aprendizado profundo com ponto de verificação.

As VMs de baixa prioridade têm uma única cota separada do valor da cota dedicada, que é por família de VMs. Para obter mais informações sobre cotas AmlCompute, consulte Gerenciar e aumentar cotas .

As VMs de baixa prioridade não funcionam para instâncias de computação, pois precisam oferecer suporte a experiências de bloco de anotações interativo.

Agendar instâncias de computação

Quando você cria uma instância de computação, a VM permanece ativada para que esteja disponível para seu trabalho.

  • Habilite o desligamento ocioso (visualização) para economizar custos quando a VM estiver ociosa por um período de tempo especificado. Consulte Configurar o desligamento ocioso.
  • Configure uma programação para iniciar e parar automaticamente a instância de computação (visualização) quando não estiver em uso para economizar custos. Consulte Programar início e parada automáticos.

Utilizar instâncias reservadas

Outra maneira de economizar dinheiro em recursos de computação é a Instância de VM Reservada do Azure. Com esta oferta, você se compromete com mandatos de um ou três anos. Esses descontos variam até 72% dos preços pré-pagos e são aplicados diretamente à sua fatura mensal do Azure.

O Azure Machine Learning Compute suporta instâncias reservadas inerentemente. Se você comprar uma instância reservada de um ou três anos, aplicaremos automaticamente o desconto em relação à sua computação gerenciada do Azure Machine Learning.

Treinamento em paralelo

Um dos principais métodos para otimizar o custo e o desempenho é paralelizar a carga de trabalho com a ajuda de um componente paralelo no Azure Machine Learning. Um componente paralelo permite que você use muitos nós menores para executar a tarefa em paralelo, o que permite dimensionar horizontalmente. Há uma sobrecarga para paralelização. Dependendo da carga de trabalho e do grau de paralelismo que pode ser alcançado, esta abordagem pode ser uma opção. Para obter mais informações, consulte Classe ParallelComponent.

Definir políticas de retenção e exclusão de dados

Sempre que um pipeline é executado, conjuntos de dados intermediários são gerados em cada etapa. Com o tempo, esses conjuntos de dados intermediários ocupam espaço na sua conta de armazenamento. Considere configurar políticas para gerenciar seus dados durante todo o ciclo de vida para arquivar e excluir seus conjuntos de dados. Para obter mais informações, consulte Otimizar custos gerenciando automaticamente o ciclo de vida dos dados.

Implantar recursos na mesma região

Computações localizadas em diferentes regiões podem experimentar latência de rede e aumento dos custos de transferência de dados. Os custos de rede do Azure são incorridos a partir da largura de banda de saída dos centros de dados do Azure. Para ajudar a reduzir os custos de rede, implante todos os seus recursos na região. O provisionamento do espaço de trabalho do Azure Machine Learning e dos recursos dependentes na mesma região que os dados pode ajudar a reduzir custos e melhorar o desempenho.

Para cenários de nuvem híbrida, como aqueles que usam o Azure ExpressRoute, às vezes pode ser mais econômico mover todos os recursos para o Azure para otimizar os custos e a latência da rede.

Excluir implantações com falha

Os pontos de extremidade online gerenciados usam VMs para as implantações. Se você enviou uma solicitação para criar uma implantação online e ela falhou, a solicitação pode ter passado o estágio em que a computação é criada. Nesse caso, a implantação com falha incorreria em encargos. Quando terminar a depuração ou a investigação da falha, exclua as implantações com falha para economizar o custo.