Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Como otimizar custos de ML no Azure Machine Learning

By Joshua FoxAug 22, 20259 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Escalar iniciativas de Machine Learning (ML) pode sair caro. Este post mostra os desafios financeiros mais comuns em ML e traz estratégias práticas com o Azure Machine Learning (AML) para otimizar seus gastos. A lição principal é que correções pontuais não bastam: só uma abordagem sistemática gerencia custos com eficiência.

MLOps é caro

O alto custo do ML: entenda o impacto no seu orçamento

Várias características inerentes ao desenvolvimento e à implantação de ML tornam essa prática cara.

  • Modelos modernos de ML, principalmente em deep learning, exigem conjuntos de dados massivos. Armazenar, mover e processar esses dados pesa bastante no custo.
  • Os algoritmos complexos em si, como redes neurais profundas com muitas camadas ou técnicas de reinforcement learning computacionalmente exigentes, demandam um poder de processamento considerável.
  • A dependência de hardware especializado e escasso, como GPUs para treinamento e inferência, encarece ainda mais o compute.
  • O desenvolvimento de ML é iterativo. Retreinar várias vezes com diferentes hiperparâmetros, diferentes splits ou novos dados faz com que cada execução experimental gere mais despesas de compute. Por exemplo, uma única varredura de tuning de hiperparâmetros pode disparar centenas de jobs de treinamento individuais.
  • O desenvolvimento de ML é um processo complexo de várias etapas: ingestão de dados, limpeza, transformação, treinamento, hypertuning, predição e por aí vai. O processo de Machine Learning Operations (MLOps) aumenta o risco de repetições e operações desnecessárias que elevam o custo.

Clientes já me perguntaram: "Quanto custa treinar um modelo de ML?". Eu respondo que esses fatores podem levar o custo a qualquer patamar: treinos individuais de LLMs já passaram de 150 milhões de dólares, e o custo total de treinamento chega à casa dos bilhões. Você não vai pagar tudo isso, mas precisa entender que não existe um teto.

AML para otimização de custos

Embora os pontos discutidos aqui valham para qualquer sistema de MLOps, o próprio AML já ajuda a economizar. A plataforma de ML completa e baseada em nuvem da Microsoft foi desenhada para simplificar todo o ciclo de vida dos modelos de machine learning, do desenvolvimento e treinamento à implantação e gestão contínua. Os serviços do AML podem ser usados isoladamente via interfaces REST, mas também se integram profundamente entre si e ao restante do ecossistema Azure. Com designs já comprovados em eficiência, os serviços do AML permitem rodar seu ML por menos do que uma abordagem caseira, mesmo pagando pelos próprios serviços.

Vou deixar de fora desta discussão modelos prontos como Large Language Models (LLMs) e Azure Cognitive Services para Visão ou Tradução. Eles oferecem menos "alavancas" granulares de ajuste, o que exige uma abordagem diferente de otimização de custos.

Principais geradores de custo de infraestrutura

Para gerenciar custos com eficácia, é fundamental entender para onde está indo o seu orçamento. Os principais geradores, em ordem aproximadamente decrescente, são:

  1. Compute: em geral, é a maior despesa e abrange compute (CPUs, GPUs) e memória consumidos no treinamento do modelo e na entrega de predições.
  2. Storage: o Azure Blob Storage é muito usado para datasets, artefatos de modelo e imagens de contêiner no Azure Container Registry. O tier de storage escolhido, as opções de redundância e o volume bruto de dados influenciam os custos.
  3. Networking: embora os processos centrais de treinamento e predição não devam gerar custos extremos de rede, podem se acumular cobranças com egress de dados, VNet peering, conexões ExpressRoute e uso de NAT Gateway. Por exemplo, transferir terabytes de imagens do storage on-premises para o Azure Blob Storage para treinamento, ou trocas frequentes de dados entre microsserviços em um workflow de MLOps, podem gerar despesas de rede.
  4. Serviços: inclui taxas de APIs SaaS do Azure, como Azure AI Search, Document Intelligence ou Bot Service:

Princípios para otimizar custos de ML

Adotar uma mentalidade FinOps significa abraçar alguns princípios fundamentais.

O primeiro e mais importante é evitar desperdício. Decisões arquiteturais, como qual serviço usar, são importantes, mas os custos evitáveis mais relevantes vêm do mau uso: usar GPUs onde CPUs dariam conta do treinamento, ou guardar montanhas de dados sem uso em tiers caros do Blob Storage, por exemplo.

Segundo: padronize sua arquitetura. Isso significa usar serviços do AML, como Compute Targets em AML Workspaces para treinamento, em vez de gerenciar suas próprias frotas de Azure Virtual Machines. A equipe do Azure já construiu sistemas eficientes que economizam dinheiro: com o treinamento no AML, por exemplo, você paga apenas pelo compute necessário ao treinamento, e não por VMs que ficam ligadas o tempo todo (a menos que você gerencie o autoscaling por conta própria). Isso também significa adotar workflows padrão, como o de Continuous Training (CT), em que novos códigos ou dados disparam automaticamente uma execução de AML Pipeline. Assim, ingestão, treinamento, verificação e implantação acontecem no momento certo, sem execuções em excesso nem esperas tão longas que tornem o processo ineficiente.

Terceiro: não otimize demais, caindo na "Ilusão de Eficiência". Comprimir agressivamente os dados de treinamento para economizar em storage, por exemplo, pode acabar aumentando o custo total devido ao tempo de CPU bem maior gasto com descompressão a cada época de treinamento.

Não esqueça que o tempo dos seus engineers é caro; evite desperdiçar esforço com micro-otimizações. Aproveite bem esse tempo priorizando arquiteturas limpas e fáceis de manter em vez de otimizações pontuais: você não consegue prever as necessidades futuras hoje, mas, quando chegar a hora de cortar custos, vai querer uma arquitetura que torne viável dedicar horas de trabalho a isso.

Por fim, lembre-se de iterar suas otimizações, começando pelos maiores geradores de custo. Não dá para implementar todas as otimizações em um único ciclo, então é melhor atacar as oportunidades mais fáceis primeiro e, depois, voltar a olhar onde estão os maiores custos.

Como tirar o máximo das ferramentas de análise de custos

Não vá atrás do estouro de custo que primeiro chama sua atenção. O tempo gasto com isso pode ser mais bem aproveitado em outra coisa.

O DoiT Cloud Intelligence (console.doit.com) oferece a quem usa Azure ferramentas poderosas para entender e gerenciar gastos com nuvem. Você pode criar relatórios de billing e dashboards, definir orçamentos e alertas, receber avisos sobre anomalias de custo e ter recomendações proativas de economia. Usar essas ferramentas com regularidade é a chave para identificar tendências, destacar outliers e mirar nas maiores oportunidades de redução de custos.

Otimizando custos de treinamento

A fase de treinamento costuma ser a mais intensiva em recursos e, por consequência, a parte mais cara do ciclo de vida do ML. Ela consome muitos dados e poder de compute, e exige inúmeros ciclos iterativos.

Right-sizing das máquinas: ao monitorar a utilização de recursos (CPU, GPU, memória) com o Azure Monitor durante o treinamento, dá para tomar decisões fundamentadas. Se uma GPU de ponta (como uma da série ND H100 v5) está consistentemente subutilizada, faz sentido migrar para uma opção mais econômica (talvez uma VM da série NCasT4_v3).

Use GPUs apenas quando necessário. Se seu modelo não roda em GPU, optar por VMs otimizadas para CPU (como a série F) sai mais em conta. Ao usar GPUs, garanta que seu código esteja totalmente otimizado para explorar todo o potencial delas, com tamanhos de batch adequados e pipelines eficientes de carregamento de dados, por exemplo.

As Azure Spot Virtual Machines (Low Priority VMs) trazem uma economia excelente. Para jobs de treinamento tolerantes a falhas (e seus sistemas precisam ser tolerantes a falhas!), as Spot VMs podem render uma economia de até 90% em relação aos preços pay-as-you-go. Elas se encaixam bem, por exemplo, em tarefas de tuning de hiperparâmetros que envolvem muitos trials independentes, em que a preempção de um único trial não compromete o processo todo.

Ambientes de desenvolvimento

Para a fase de desenvolvimento, Jupyter Notebooks ou Visual Studio Code dentro de um workspace AML oferecem estações de trabalho gerenciadas e baseadas em nuvem. Você só paga pelo tempo em que estão de fato em execução, com políticas de auto-shutdown, ao contrário de um laptop potente que você amortiza 24x7 ou de uma VM que fica sempre ligada se você não lembrar de desligá-la. Para economizar mais, delegue o trabalho pesado: manter recursos potentes no ambiente de dev significa pagar por um conjunto fixo de recursos durante todo o expediente. Em vez de rodar o treinamento dentro do seu notebook, por exemplo, submeta jobs longos e extensos como AML training jobs, que rodarão em Compute Clusters autoescaláveis e econômicos.

Storage de dados

Para MLOps no Azure, o Azure Blob Storage é o padrão para object storage. Já vi projetos que começam com um simples disco local e migram para Managed Disks, ou que começam em uma rede local e migram para Azure Files, mas essas opções saem caras: o Blob Storage é o padrão para ML e bem mais barato. É essencial escolher os access tiers certos (Hot, Cool, Archive) conforme a frequência de acesso. Aplicar políticas de lifecycle management pode automatizar essas transições.. Aplicar políticas de lifecycle management pode automatizar as transições. Por exemplo: se você só treina com dados novos, arquive ou exclua automaticamente os dados antigos depois de um mês.

Predição

Depois de treinar seus modelos, você os implanta para servir predições (inferência). Os AML Endpoints economizam dinheiro com autoscaling baseado em métricas integradas. Como no treinamento, escolher a menor instância eficaz também ajuda no bolso. O co-hosting de modelos, ou multi-model deployment, permite que vários modelos menores compartilhem a mesma implantação de endpoint, reduzindo o overhead por modelo quando eles são chamados em sequência ou pela mesma aplicação. Mas atenção: se um endpoint ficar sem uso, o autoscaling não zera os recursos sozinho — você mesmo precisa desligá-lo. Se o seu app de inferência tem tráfego muito baixo, cuide do scale-to-zero dos endpoints ou implante-o no Azure Container Apps ou no Azure Functions.

Para casos de uso que não exigem tempo real, os Batch Endpoints são bem mais baratos do que predição online e oferecem throughput melhor, embora com latência mais alta. Otimizar o tamanho do batch e a configuração do Compute Cluster subjacente é o que rende a maior economia.

Monitoramento: ficando de olho em custos e desempenho

Os serviços do AML já vêm com monitoramento embutido — outra vantagem em relação à abordagem caseira. O monitoramento reduz custos garantindo que você extraia o máximo dos recursos na produção de modelos de alta qualidade.

Existem dois tipos de monitoramento: o Monitoramento de Infraestrutura, principalmente via Azure Monitor, que acompanha a utilização de recursos (CPU, GPU, memória), além de duração dos jobs de treinamento, latência de predição e QPS.

Já o Monitoramento de Modelo acompanha métricas específicas do modelo, como o F1-score. Após a implantação, ele ajuda a detectar data drift, feature skew e viés de predição, para que você decida quando vale a pena gastar com retreinamento. Por exemplo, um modelo de detecção de fraude pode sofrer drift e precisar de retreinamento justamente quando os valores das transações mudam aos poucos ou o tipo de fraude evolui — mas não em outros momentos.

Amarrando tudo: AML Pipelines

Os AML Pipelines reduzem os custos de ML conectando etapas de forma eficiente e controlam os custos de engenharia ao automatizar tarefas repetitivas. Etapas de execução desnecessárias ou acúmulos de dados são evitados com uma orquestração robusta para definir e gerenciar workflows complexos de ML. Os recursos incluem paralelização (processamento fan-out/fan-in, útil para tuning de hiperparâmetros), execução condicional (rodar etapas apenas se determinadas condições forem atendidas, como implantar um modelo somente se a acurácia ultrapassar um limite definido) e cache ou reuso de componentes (em que, se as entradas e o código de uma etapa do pipeline não mudaram, a saída em cache é reutilizada, economizando compute).

Coloque em prática hoje

Otimizar custos de ML é um esforço contínuo que combina escolhas tecnológicas inteligentes com um processo FinOps robusto. Ao aproveitar todo o potencial do AML, seguir princípios arquiteturais sólidos e manter atenção constante aos seus gastos, você garante que suas iniciativas de ML entreguem o máximo valor de negócio sem comprometer o orçamento. Comece identificando seus geradores de custo mais relevantes e comprometa-se a implementar uma ou duas das estratégias discutidas no próximo trimestre. Seu resultado financeiro vai agradecer.