Infraestrutura de treinamento: spot, checkpoint e a GPU ociosa
- ⬜🪜 Serviço pronto, Bedrock, JumpStart ou script próprio: a escada(AWS ML Engineer Associate (MLA-C01))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
A conta de custo do treinamento tem três termos
A prova explora o fato de que o terceiro termo engana. Dobrar o número de instâncias não corta o tempo pela metade — a comunicação entre nós cresce, e há um ponto a partir do qual acrescentar máquina aumenta o custo total sem reduzir o tempo. Distribuir é uma decisão para modelo que não cabe numa instância, não uma alavanca genérica de velocidade.
Capacidade pontual: a alavanca de maior efeito, com uma condição
Treinamento com capacidade pontual usa a capacidade ociosa da AWS a uma fração do preço, com a contrapartida de que a instância pode ser retomada a qualquer momento. Para treinamento isso é uma troca excelente — desde que uma condição seja atendida.
Capacidade pontual sem ponto de verificação é economia negativa
Se o treino é interrompido em 80% e não há checkpoint, você perde as 80% e paga por elas. A economia de 70% no preço da hora vira prejuízo na primeira interrupção de um treino longo. Checkpoint periódico no S3 é o que transforma a interrupção em retomada, e é por isso que as duas coisas aparecem sempre juntas na prova.
| Situação | Escolha | Por quê |
|---|---|---|
| Treino longo, com checkpoint configurado | Capacidade pontual | Interrupção custa minutos de retrabalho, e a economia é grande |
| Treino curto, sob prazo apertado | Sob demanda | A economia não compensa o risco de espera por capacidade |
| Carga previsível e recorrente por meses | Plano de economia | Compromisso de uso troca flexibilidade por desconto estável |
| Experimentação interativa em caderno | Sob demanda, instância pequena | O gargalo é a pessoa, não a máquina |
from sagemaker.estimator import Estimator
est = Estimator(
image_uri=IMAGEM,
role=ROLE,
instance_count=1,
instance_type="ml.g5.xlarge",
# As três linhas de capacidade pontual. Sem a terceira, uma interrupção em
# 80% perde as 80% E cobra por elas — a economia vira prejuízo.
use_spot_instances=True,
max_run=14 * 3600, # teto do treino em si
max_wait=20 * 3600, # teto de treino + espera por capacidade
# O que transforma interrupção em retomada. O contêiner grava aqui; o
# SageMaker sincroniza com o S3 e devolve o diretório ao reiniciar.
checkpoint_s3_uri="s3://lago/checkpoints/experimento-17/",
checkpoint_local_path="/opt/ml/checkpoints",
)
est.fit({
# `FastFile` transmite direto do S3 em vez de copiar tudo antes de começar.
# É a correção certa quando a GPU fica ociosa esperando dado — trocar por
# GPU maior só deixa uma máquina mais cara parada.
"train": TrainingInput("s3://lago/curado/train/", input_mode="FastFile"),
})Um treinamento de 14 horas roda em capacidade pontual sem checkpoint e é interrompido às 11 horas. Qual é a consequência?
Escolher a família de instância
- Modelo tabular, árvores, conjuntos pequenos: família de uso geral ou otimizada para computação. GPU aqui é dinheiro jogado fora, porque o algoritmo não a usa.
- Rede neural profunda, visão, linguagem: família com GPU. O critério passa a ser memória da GPU, não número de núcleos de CPU.
- Modelo que não cabe na memória de uma GPU: treinamento distribuído, com paralelismo de dado ou de modelo conforme o que não cabe.
- Inferência de alto volume e custo sensível: silício próprio da AWS, com Inferentia; para treino, Trainium. A troca é preço por compatibilidade — exige que a pilha suporte.
A pergunta que a prova faz sem perguntar
Quando o cenário diz que o uso de GPU está em 10% durante o treino, o problema não é a GPU: é o carregamento do dado não conseguir alimentá-la. A correção é do lado do dado — formato, canal de entrada, paralelismo de leitura — e não trocar por uma GPU maior, que ficaria ociosa igual e custaria mais.
Durante um treinamento de rede neural, o uso da GPU fica em 12% e o tempo por época é alto. Qual correção ataca a causa?
Você dobrou o número de instâncias de um treinamento distribuído e o tempo caiu apenas 20%. Por quê?
Próximo passo
Com o treino rodando de forma eficiente, resta escolher os valores que governam o aprendizado — e decidir quanto vale a pena gastar procurando por eles, que é uma pergunta de custo tanto quanto de qualidade.
Perguntas frequentes
❓ Vale a pena usar instâncias spot para treinar modelos no SageMaker?
❓ Por que o uso da GPU fica baixo durante o treinamento?
❓ Treinamento distribuído sempre reduz o tempo de treino?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…