Amazon MLA-C01: Otimização de Custos para Workloads de ML — Guia de estudos
Faz parte do AWS Machine Learning Engineer Associate MLA-C01 — Guia de estudos. Pratique com respostas verificadas no centro de exames da Amazon, ou faça testes cronometrados no ExamRoll.io.
Conceito principal: de onde vêm os custos e as alavancas que você pode usar
O custo para cargas de trabalho de machine learning é impulsionado por três categorias fundamentais: computação para treinamento e inferência, armazenamento e transferência de dados para datasets e checkpoints, e sobrecarga operacional de infraestrutura subutilizada ou mal provisionada. O treinamento é frequentemente o maior item de custo individual quando você treina modelos grandes ou executa muitos experimentos. O custo de inferência predomina quando você serve modelos em escala ou requer baixa latência para aplicativos interativos. As principais alavancas de otimização são a escolha da família e do tamanho da instância, as opções de compra (on-demand vs. Spot vs. Savings Plans), os padrões de ciclo de vida do modelo (batch vs. realtime vs. serverless) e as otimizações de tempo de execução, como compilação de modelo, cache e consolidação de instâncias.
Técnicas operacionais traduzem essas alavancas em prática. Use o treinamento Spot gerenciado com checkpointing para reduzir os custos de computação de treinamento em até 70% em comparação com on-demand, mas combine-o com checkpointing (parâmetro CreateTrainingJob
undefined
→
undefined
) e a flag CreateTrainingJob
undefined
definida como true para que os jobs possam ser retomados após interrupções. Dimensione corretamente as instâncias (right-sizing) ao analisar o uso real de CPU/GPU/IO (métricas do CloudWatch como
undefined
,
undefined
e traces do profiler do SageMaker Debugger) e, em seguida, mude para famílias de computação que correspondam às características da carga de trabalho (
undefined
/
undefined
para CPU,
undefined
/
undefined
para GPU,
undefined
para uso intensivo de memória). Para inferência, prefira modelos de custo proporcional: use a inferência serverless (variante de produção CreateEndpointConfig com
undefined
→
undefined
e
undefined
) para cargas de trabalho com picos e baixa vazão (throughput); use endpoints de múltiplos modelos ou compilação de modelo (SageMaker Neo) para reduzir os requisitos de instância para muitos modelos pequenos; e mova cargas de trabalho grandes ou insensíveis à latência para transformações assíncronas ou em lote (batch) (
undefined
e Batch Transform).
Serviços e configurações principais
O Amazon SageMaker expõe controles explícitos para o controle de custos. Para custos de treinamento mais baixos, use o treinamento Spot gerenciado: na API
undefined
, defina
undefined
, inclua
undefined
e defina
undefined
undefined
para permitir a aquisição de capacidade Spot. No SageMaker Python SDK, você pode definir
undefined
,
undefined
e
undefined
para a localização do checkpoint no S3. Para latência baixa e reprodutível em jobs de treinamento consecutivos, mantenha os contêineres aquecidos (warm) aproveitando o SageMaker Processing ou treinando contêineres em infraestrutura provisionada persistente quando a cadência da experimentação exigir; caso contrário, reduza o tempo de inicialização do contêiner usando imagens de contêiner menores, contêineres pré-construídos do SageMaker ou reutilizando uma instância de treinamento persistente em um ambiente de desenvolvimento.
Para o controle de custos de inferência, a API
undefined
/
undefined
suporta múltiplas estratégias. Use
undefined
em
undefined
para permitir que o SageMaker gerencie o escalonamento e fature por invocação e memória, em vez de horas de instância completas; o
undefined
requer os valores
undefined
e
undefined
. Para cargas de trabalho estáveis e de alta vazão (throughput), use instâncias Provisioned e aplique políticas de target tracking do Application Auto Scaling ao endpoint para evitar o superprovisionamento. Endpoints de múltiplos modelos reduzem o custo quando você hospeda muitos modelos raramente usados, compartilhando um único contêiner e carregando os artefatos do modelo do S3 sob demanda. Para recomendações de dimensionamento de modelo, chame a API
undefined
no Inference Recommender, que fornece orientações sobre tipo de instância, tamanho do lote (batch size) e latência/vazão (throughput).
Compromissos de faturamento são mais bem gerenciados com SageMaker Savings Plans ou AWS Compute Savings Plans. Adquira um Savings Plan através do console do AWS Billing para se comprometer com um valor de $/hora por um período de 1 ou 3 anos; isso aplica um desconto na computação on-demand do SageMaker (treinamento e hospedagem) entre as famílias de instâncias. Observe que os Savings Plans se aplicam ao uso on-demand e não se aplicam ao Spot, portanto, combine estratégias: compre Savings Plans para o uso estável de base e use Spot para treinamento com picos de uso (bursty) ou experimental.
Padrões de design e trade-offs
O padrão de Spot gerenciado + checkpointing é a escolha ideal para execuções de treinamento distribuído longas ou de grande porte. Ele exige alterações mínimas de código: habilitar EnableManagedSpotTraining, fornecer o CheckpointConfig.S3Uri e definir um MaxWaitTimeInSeconds apropriado para tolerar o agendamento de instâncias Spot. O trade-off é a complexidade de reinicialização e um tempo de execução total (wall-clock time) um pouco maior se as interrupções de Spot forem frequentes; o ganho é uma redução drástica de custos. Para experimentação iterativa onde a latência de inicialização entre trabalhos consecutivos é importante, mantenha um ambiente de desenvolvimento aquecido (warm): use instâncias provisionadas menores, como ml.m5 ou ml.c5, com dados pré-carregados em cache local/NVMe, ou execute vários experimentos como trabalhos de processamento local na mesma instância usando o SageMaker Processing ou notebooks do Studio. Isso aumenta o custo base, mas reduz o tempo total do ciclo.
Para inferência, escolha entre endpoints serverless e provisionados, dependendo do padrão de tráfego. A inferência serverless (ServerlessConfig) elimina o planejamento de capacidade e tem o menor custo para tráfego intermitente e imprevisível, pois você paga por invocação e alocação de memória. O trade-off é a latência de inicialização a frio (cold start) e os limites de tamanho; para SLAs rigorosos de baixa latência, prefira instâncias provisionadas com autoscaling e considere a otimização do modelo com o SageMaker Neo para reduzir o número de instâncias. Onde muitos modelos precisam ser hospedados, mas o tráfego por modelo é baixo, os endpoints de vários modelos (multi-model) consolidam o uso de disco e memória e diminuem o custo por modelo, ao custo de um carregamento de inicialização a frio (cold-start) um pouco maior para um modelo não carregado.
O dimensionamento correto (right-sizing) deve se basear primeiro na observação, não em suposições. Use o profiling do SageMaker Debugger e o CloudWatch para coletar GPUUtilization e DiskReadOps; em seguida, execute um trabalho do Inference Recommender (CreateInferenceRecommendationsJob) para validar a classe/tipo de instância e o desempenho. Se os requisitos de latência do modelo forem rigorosos, considere a quantização do modelo ou a compilação com o SageMaker Neo, ou o uso de aceleradores Elastic Inference para anexar inferência de GPU fracionada a instâncias de CPU; o Elastic Inference permite anexar um pequeno acelerador a uma instância de CPU, reduzindo o custo em comparação com instâncias de GPU completas para determinados modelos.
Armadilhas comuns e critérios de decisão
Um erro frequente é aplicar uma única otimização de custos a todas as cargas de trabalho. Os Savings Plans são poderosos para uma utilização de linha de base constante, mas devem ser combinados com instâncias Spot para cargas de trabalho experimentais e com serverless para inferência com picos de uso. Não presuma que o Spot é gratuito — ele exige checkpointing e uma lógica de treinamento tolerante a falhas; configure
undefined
,
undefined
e calcule um
undefined
que reflita por quanto tempo você aceitará um início atrasado. Outra armadilha é negligenciar a telemetria: sem o profiling (com SageMaker Debugger, CloudWatch e Inference Recommender), você corre o risco de superprovisionar ou escolher uma família de instâncias com características de CPU, GPU e memória desalinhadas. Finalmente, a inferência serverless simplifica os custos, mas pode introduzir cold starts imprevisíveis; meça a latência de ponta a ponta (end-to-end) ao usar
undefined
e recorra a endpoints provisionados com autoscaling para SLAs rigorosos.
Problema Prático: Cenário de Caso de Uso
Empresa: FinSight Analytics. Desafio: A FinSight precisa construir um pipeline de detecção de fraudes que treine frequentemente com logs de transações e perfis de clientes armazenados no S3, mantenha os dados isolados, suporte a governança de versões de modelos com aprovação manual antes da implantação em produção, reduza os custos de treinamento para o retreinamento noturno, minimize a latência de inicialização por job durante a experimentação rápida e sirva um endpoint de tempo real de baixa latência com sensibilidade a custos para tráfego com picos.
- Registro centralizado e seguro de dados e modelos. Armazene os dados em um bucket S3 seguro com criptografia padrão e políticas de bucket que restrinjam o acesso à execution role do SageMaker. Registre os modelos no SageMaker Model Registry; use o passo
undefined
do SageMaker Pipelines para criar pacotes de modelo com o
undefined
definido como “PendingManualApproval” por padrão. Implemente o fluxo de trabalho humano de aprovação manual criando um SageMaker Pipeline que emite um pacote de modelo e um passo de aprovação manual; quando os revisores autorizados concluem a validação, eles chamam
undefined
para permitir a implantação. Justificativa: O Model Registry fornece versionamento centralizado, e o
undefined
se integra diretamente com as APIs do SageMaker para um mínimo de operações personalizadas.
- Retreinamento noturno com custo-eficiente. Use o treinamento Spot gerenciado criando jobs de treinamento com
undefined
, inclua
undefined
para persistir o estado do otimizador e defina
undefined
e
undefined
adequadamente para que os jobs possam ser retomados após interrupções do Spot. Combine isso com a compra de um Savings Plan de linha de base dimensionado para cobrir a média de horas de treinamento/inferência on-demand para reduzir custos constantes, e use o Spot para experimentação onde as interrupções são toleráveis. Justificativa: O Spot gerenciado reduz o custo de computação com alteração mínima de código; os Savings Plans se aplicam ao uso on-demand de linha de base para diminuir despesas previsíveis.
- Reduzir a latência de inicialização para experimentação. Para ciclos de experimentos interativos, mantenha um perfil de instância de desenvolvimento persistente (uma
undefined
ou
undefined
) no SageMaker Studio ou uma pequena Notebook Instance dedicada com conjuntos de dados pré-carregados em EBS/NVMe e reutilize esse ambiente para muitas execuções rápidas de treinamento. Para os jobs noturnos de produção, continue usando o Spot gerenciado com checkpointing. Justificativa: Um ambiente persistente evita cold starts de contêineres e melhora a velocidade de iteração, ao mesmo tempo que preserva a economia de custos para execuções pesadas.
- Serviço em tempo real de baixa latência e sensível a custos. Implante o modelo aprovado em um endpoint provisionado para obter uma baixa latência de linha de base e anexe uma política de Application Auto Scaling ao endpoint para reduzir a escala (scale down) durante os horários de menor movimento. Para picos de tráfego imprevisíveis, utilize uma opção de inferência Serverless para modelos de baixo volume ou use a inferência assíncrona (
undefined
com
undefined
) para tarefas pesadas de pontuação em lote (batch scoring) que não são em tempo real. Aplique a compilação do SageMaker Neo ao modelo antes da implantação para reduzir o uso (footprint) de CPU/GPU. Justificativa: A combinação de provisionado + autoscaling oferece baixa latência constante e controle de custos; endpoints serverless ou assíncronos lidam com cargas de trabalho com picos ou em lote de forma mais econômica, e o Neo reduz a necessidade de instâncias.
Essa abordagem combina
undefined
com
undefined
para redução de custos de treinamento, SageMaker Model Registry e
undefined
para aprovações manuais, uma instância de desenvolvimento persistente para latência de inicialização reduzida e uma combinação de modelos provisionados, serverless e compilados para otimizar os custos de inferência.
← IA Generativa e Modelos Fundacionais · Todos os domínios · Visão Computacional →
Pratique estas questões → · Prática cronometrada no ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Passe no seu exame →