Pular para conteúdo

Capítulo 1.8 — Model serving

🎯 Objetivo

Cobrir as quatro modalidades de serving e seus trade-offs.

🧠 Modalidades

Modalidade Quando usar Trade-off
Batch Recomendações diárias, scoring em massa Latência alta, custo baixo
Online (request/response) Aplicações interativas Latência baixa, custo maior
Streaming Eventos contínuos (fraude, alertas) Latência baixa, complexidade alta
Edge / on-device Mobile, IoT, restrições de privacidade Modelo pequeno, sem dependência de rede

🏗️ Padrões

  • Containerização com Docker e orchestration via Kubernetes/ECS.
  • Servers especializados - TF Serving, TorchServe, Triton, ONNX Runtime, Ray Serve.
  • API gateway com autenticação, rate limiting e métricas.
  • Auto-scaling baseado em SLO (p95) e custo.
  • Warm pools para reduzir cold start.

🚨 Modos de falha

  • Latência aceitável em média, inaceitável em p95/p99.
  • Cold start derrubando SLO em horários de pico.
  • Modelo grande gerando OOM em produção.
  • Versionamento inconsistente entre pesos, código e schema.

🛡️ Mitigações

  • Definir SLO em p95/p99, não em média.
  • Testes de carga com perfis realistas.
  • Quantização e pruning para reduzir custo.
  • Canary deploy.

🧰 Exemplo prático relacionado (planejado)

  • EX-ML-04 - classificador scikit-learn servido via FastAPI com Docker e health checks.

📚 Referências