Pipelines, Model Registry e o passo de condição
- ⬜🚀 Os quatro modos de inferência e a árvore de três perguntas(AWS ML Engineer Associate (MLA-C01))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
O caderno que ninguém consegue reproduzir
Um modelo treinado num caderno tem um problema que não aparece no dia em que funciona: ninguém sabe reproduzi-lo. Qual versão do dado, qual transformação, qual semente, qual biblioteca. Seis meses depois, quando ele precisa ser retreinado, o custo de descobrir isso costuma superar o de refazer do zero.
Pipeline de ML resolve isso transformando o fluxo em código versionado e executável — e o benefício maior não é automação, é PROCEDÊNCIA: para cada modelo em produção, saber exatamente de qual dado e de qual código ele saiu.
- Processamento — transforma o dado bruto e produz os conjuntos de treino, validação e teste.
- Treinamento — consome os conjuntos e produz artefatos de modelo.
- Avaliação — mede o modelo contra o conjunto de teste e emite um relatório.
- Condição — só segue se a métrica passar do limiar. É o passo que impede modelo ruim de chegar ao registro.
- Registro — cadastra a versão no Model Registry, com métricas e linhagem, em estado pendente de aprovação.
O passo de condição é o que separa pipeline de script encadeado
Sem ele, o fluxo registra qualquer modelo que terminar de treinar, inclusive um pior que o atual. O limiar transforma o pipeline num portão de qualidade, e é o detalhe que a prova cobra quando pergunta como impedir que um modelo degradado seja promovido.
from sagemaker.workflow.condition_step import ConditionStep
from sagemaker.workflow.conditions import ConditionGreaterThanOrEqualTo
from sagemaker.workflow.functions import JsonGet
from sagemaker.workflow.pipeline import Pipeline
# Sem este passo, o pipeline registra TUDO que termina de treinar — inclusive um
# modelo pior que o atual. O limiar é o que o transforma em portão de qualidade.
condicao = ConditionGreaterThanOrEqualTo(
left=JsonGet(step_name=passo_avaliacao.name,
property_file=relatorio, json_path="metricas.aucpr.valor"),
right=0.82,
)
portao = ConditionStep(
name="SoRegistraSeSuperarOLimiar",
conditions=[condicao],
if_steps=[passo_registro], # registra em estado PENDENTE de aprovação
else_steps=[], # falhar em silêncio é o certo: o modelo atual fica
)
Pipeline(
name="credito-retreino",
steps=[passo_processamento, passo_treino, passo_avaliacao, portao],
parameters=[limiar_aprovacao, instancia_treino],
).upsert(role_arn=ROLE)Model Registry e a aprovação como fronteira
| Conceito | O que é | Por que importa |
|---|---|---|
| Grupo de modelos | Coleção de versões do mesmo modelo | Dá continuidade — a versão 7 é comparável à 6 |
| Versão | Um artefato específico, com métricas e linhagem | É a unidade que se promove ou se reverte |
| Estado de aprovação | Pendente, aprovado ou rejeitado | Separa "treinou" de "pode ir para produção" |
| Linhagem | Qual dado, qual código, qual execução | Responde auditoria e permite reproduzir |
O estado de aprovação é a fronteira entre o mundo automático e a decisão humana. Um pipeline pode treinar e registrar sozinho todo dia; a promoção para produção fica atrás de uma aprovação, que pode ser manual ou automatizada por regra. Quando o cenário exige revisão humana antes de implantar, é esse estado que a resposta precisa citar.
Automatizar a aprovação é decisão de risco, não de maturidade
É tentador tratar aprovação manual como etapa provisória a eliminar. Ela deixa de fazer sentido quando a avaliação automática cobre o que o humano olharia, e não antes. Em domínio regulado, ou onde o erro do modelo é caro e difícil de reverter, manter a aprovação manual é a decisão madura.
Um pipeline retreina o modelo semanalmente e registra a nova versão. Na semana passada, uma versão pior que a anterior foi para produção. Que passo faltava?
Onde a orquestração passa do SageMaker
- SageMaker Pipelines: quando o fluxo é de ML de ponta a ponta e vive dentro do SageMaker. É a resposta padrão, com linhagem e registro integrados.
- Step Functions: quando o fluxo coordena serviços variados além do SageMaker — aprovação, notificação, chamada a sistema externo, ramificação complexa.
- EventBridge: quando o gatilho é um evento, e não um horário. Chegou arquivo novo, o alarme de drift disparou, um registro mudou de estado.
- Managed Workflows for Apache Airflow: quando o time já opera Airflow e o fluxo de ML é parte de um grafo maior de engenharia de dados.
A prova costuma distinguir os dois primeiros por uma palavra no enunciado: se aparece coordenação de serviços fora do SageMaker, ou uma etapa de aprovação humana no meio do fluxo, a resposta tende a Step Functions. Se o fluxo é dado, treino, avaliação e registro, é Pipelines.
Um fluxo precisa treinar no SageMaker, aguardar aprovação humana por e-mail, chamar uma API interna de conformidade e só então implantar. O que orquestra?
Qual é o principal benefício de transformar um treinamento em caderno num pipeline versionado?
Próximo passo
Fluxo reproduzível e modelo promovido com critério, começa o domínio 4. E ele abre com o problema que não gera erro nenhum: o modelo continua respondendo, e continua piorando.
Perguntas frequentes
❓ Para que serve o SageMaker Model Registry?
❓ SageMaker Pipelines ou Step Functions: qual usar para orquestrar ML?
❓ Como impedir que um modelo pior que o atual vá para produção automaticamente?
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…