Designing Machine Learning Systems — guia de leitura
Em uma frase
O modelo é a menor parte de um sistema de ML; o livro trata do resto: dados, features, deploy, monitoramento e as pessoas que mantêm tudo isso funcionando.
Para quem é e quando ler
Designing Machine Learning Systems (Chip Huyen, O’Reilly, 2022) nasceu do curso de Stanford CS 329S e é escrito para quem precisa levar machine learning (ML, programas que aprendem comportamento a partir de exemplos) para produção: engenheiros de software que começam a trabalhar com modelos, cientistas de dados que querem entender o que acontece depois do notebook, e líderes técnicos que precisam decidir se e como investir em ML.
Leia quando você já sabe, em linhas gerais, o que é treinar um modelo, mas ainda não sabe responder perguntas como “de onde vêm as features em produção?”, “por que o modelo piorou se ninguém mexeu nele?” ou “com que frequência retreinar?”. Não é preciso ter experiência prática com ML: este guia define cada termo na primeira vez e linka o glossário.
O que o livro NÃO é
- Não é um livro de algoritmos. Não ensina como funciona uma rede neural nem deriva fórmulas. Para isso, veja o guia de Deep Learning.
- Não é um tutorial de ferramenta. Cita Kafka, Airflow, Kubernetes e outras, mas para ilustrar conceitos, não para ensinar a configurá-las. As ferramentas mudam; os problemas descritos continuam.
- Não é sobre modelos de linguagem grandes. Foi escrito antes da onda de LLMs. Quase tudo vale para eles, mas o livro não trata de prompts, RAG ou agentes.
Como o livro está organizado
Os capítulos seguem o ciclo de vida de um sistema de ML: decidir o que construir, preparar os dados, desenvolver o modelo, colocá-lo no ar, mantê-lo funcionando, e a infraestrutura e as pessoas por trás de tudo.
flowchart TD C1["1 · Visão geral"] --> C2["2 · Design de sistemas de ML"] C2 --> C3["3 · Engenharia de dados"] C3 --> C4["4 · Dados de treino"] C4 --> C5["5 · Engenharia de features"] C5 --> C6["6 · Desenvolvimento e avaliação offline"] C6 --> C7["7 · Deploy e predição"] C7 --> C8["8 · Mudanças de distribuição e monitoramento"] C8 --> C9["9 · Aprendizado contínuo e testes em produção"] C9 --> C10["10 · Infraestrutura e ferramentas"] C10 --> C11["11 · O lado humano"] C3 -. "batch e streaming" .-> C7 C3 -. "streaming" .-> C9 C5 -. "train-serving skew" .-> C8 C4 -. "ciclo de feedback" .-> C8
- Fundamentos (1–2): quando usar ML, requisitos e como formular um problema.
- Dados (3–5): engenharia de dados, dados de treino e features.
- Modelo (6): escolha, treino e avaliação offline.
- Produção (7–9): deploy, monitoramento e atualização contínua.
- Organização (10–11): infraestrutura, equipes e IA responsável.
Como ler
- Primeira leitura: capítulos 1, 2, 5, 7, 8 e 9, nesta ordem. Eles carregam a tese do livro: o que muda quando ML sai do notebook.
- Pode deixar para depois: o capítulo 3 se você já conhece bancos e filas (ele cobre o básico de engenharia de dados), e a parte de treino distribuído do capítulo 6, que só importa quando os modelos não cabem em uma máquina.
- Ritmo: um capítulo por semana funciona bem. Ao terminar cada um, tente aplicar a um sistema que você conhece: onde estão os labels, como as features são calculadas, quem perceberia se o modelo piorasse.
- Ponte com outros livros do guia: o capítulo 3 conversa com DDIA (formatos, bancos, batch e streaming); os capítulos 7 a 10 conversam com o que se sabe de operação de software em geral.
O que você leva ao terminar
- Um critério para decidir quando ML é a ferramenta certa e quando uma regra basta.
- O hábito de ligar toda métrica de modelo a uma métrica de negócio.
- Reconhecer e evitar vazamento de dados e train-serving skew, os dois erros mais caros e mais silenciosos.
- Saber escolher entre predição em batch e online, e entre rodar na nuvem ou no dispositivo.
- Entender por que modelos pioram em produção e o que monitorar para perceber.
- Um mapa da infraestrutura de MLOps e das decisões de construir ou comprar.
- Vocabulário para discutir experiência do usuário, organização de equipes e IA responsável.
Capítulos
- Visão geral de sistemas de ML: quando usar ML e por que produção é diferente de pesquisa e de software tradicional.
- Introdução ao design de sistemas de ML: de objetivo de negócio a problema de ML, os quatro requisitos e o ciclo iterativo.
- Fundamentos de engenharia de dados: fontes, formatos, modelos de dados, fluxo entre processos e batch versus streaming.
- Dados de treino: amostragem, labels, desbalanceamento de classes e aumento de dados.
- Engenharia de features: operações comuns, vazamento de dados e como escolher features.
- Desenvolvimento e avaliação offline: escolher modelos, ensembles, experimentos, treino distribuído e baselines.
- Deploy e serviço de predição: predição em batch e online, compressão de modelos e nuvem versus borda.
- Mudanças de distribuição e monitoramento: por que modelos pioram, os tipos de shift e o que monitorar.
- Aprendizado contínuo e testes em produção: atualizar modelos com frequência e testá-los com tráfego real.
- Infraestrutura e ferramentas para MLOps: as camadas de infraestrutura, a plataforma de ML e construir versus comprar.
- O lado humano de ML: experiência do usuário, organização de equipes e IA responsável.
Fontes públicas para acompanhar
Os links verificados (resumos oficiais da autora, notas de aula, resumos de terceiros) estão em fontes públicas.