Ontem você aprendeu a medir um modelo. Hoje a gente vai mais fundo na régua (MSE, RMSE, R²), aprende a perguntar pro modelo por que ele decidiu (PDPs), e termina onde rodar tudo isso pagando menos com Trainium e Inferentia. Mexa nos controles. Aprende fazendo.
Bora continuar 🐾Lembra dos 5 gatinhos do balaio cujo peso o modelo tava prevendo? Mel, Bento, Pipoca, Salem e Estrela. A gente calculou o MAE: 0,32 kg. Era simples: a média de quanto a gente errou, sem importar pra que lado.
| Gato | Peso real | Previsão | Erro |real − previsto| | Erro² |
|---|---|---|---|---|
| 🐈 Mel | 3,2 kg | 3,5 kg | 0,3 | 0,09 |
| 🐈 Bento | 4,5 kg | 4,0 kg | 0,5 | 0,25 |
| 🐈 Pipoca | 2,8 kg | 3,0 kg | 0,2 | 0,04 |
| 🐈 Salem | 5,1 kg | 4,8 kg | 0,3 | 0,09 |
| 🐈 Estrela | 3,9 kg | 4,2 kg | 0,3 | 0,09 |
MSE faz uma coisinha aparentemente boba: ao invés de só somar os erros, ela eleva cada um ao quadrado antes. Parece detalhe, mas o efeito é dramático: erros grandes ficam GIGANTES, erros pequenos viram migalha.
Imagina que um 6º gatinho chega no balaio: o Garfield. É um gatão obeso e o modelo erra feio nele. Mexe no slider pra controlar o erro e veja como MAE e MSE reagem bem diferente:
O MSE é exatamente isso: ele amplifica os erros grandes ao quadrá-los. Errou 1 kg? Vira 1. Errou 2 kg? Vira 4 (não 2!). Errou 5 kg? Vira 25 (não 5!). Erros grandes contribuem desproporcionalmente pra métrica.
A unidade do MSE é estranha: se você prevê peso em kg, MSE vem em kg². Não dá pra falar "o modelo erra 0,5 kg²" pro chefe, ele te olha torto. Por isso a gente quase sempre passa do MSE pro RMSE (próximo capítulo).
Mas o MSE é a estrela quando você TREINA o modelo. Muitos algoritmos otimizam MSE internamente porque ele é derivável e convexo — propriedades matemáticas que ajudam o algoritmo a aprender melhor.
RMSE é literalmente √MSE. Você tira a raiz quadrada do MSE e pronto: volta pra unidade original (kg, reais, minutos), mantendo a propriedade de "punir mais os erros grandes" que veio do quadrado.
Mexa de novo o slider do Garfield (lá em cima) e repare: MAE cresce devagarzinho. RMSE dispara quando o outlier piora. Mesma unidade (kg), comportamentos opostos.
| Critério | MAE | RMSE |
|---|---|---|
| Fórmula | média de |erro| | √(média de erro²) |
| Unidade | igual à variável (kg) | igual à variável (kg) |
| Sensível a outliers? | não muito | MUITO |
| Fácil de explicar? | sim, é a média do erro | mais ou menos |
| Usada pra treinar? | às vezes | muito comum (via MSE) |
MAE e RMSE respondem a perguntas diferentes. MAE responde "em média, quanto erro?". RMSE responde "quão volátil é meu erro?". Um modelo pode ter MAE baixo mas RMSE alto: a maioria das previsões boas, mas alguns erros enormes escondidos.
Regra prática: se MAE e RMSE estão próximos, seus erros são todos parecidos — sem outliers. Se RMSE é bem maior que MAE, você tem casos catastróficos escondidos que merecem investigação.
Lê assim: "RMSE de 0,52 kg" = "o erro típico fica em torno de ±0,52 kg, mas com inclinação a punir mais os pontos longe da média".
MAE e RMSE te dizem quanto seu modelo erra. Mas isso é "muito" ou "pouco"? Depende. R² responde de outro ângulo: quanto da variação dos dados o modelo consegue explicar?
A ideia é comparar com um baseline burro: um "modelo" que sempre prevê a média do peso (3,9 kg pra todo gato). R² mede o quanto seu modelo melhora em relação a esse burrão.
Imagina que eu nunca treinei modelo. Pra todo gato novo, eu digo "chuto 3,9 kg" (a média do treino). É o baseline mais idiota possível. Ele já erra alguma coisa, mas... é o piso.
R² compara meu modelo com esse burro:
Cuidado: R² alto NÃO significa modelo "bom" pra qualquer coisa. Se os dados já têm pouca variação, até modelos preguiçosos têm R² alto. Sempre olhe junto com MAE/RMSE.
Mudamos de problema: agora o modelo prevê "chance do gato ser adotado" (0 a 100%). Ele olha um monte de features: idade, peso, pelagem, castração. Mas... qual delas mais influencia a decisão? O PDP responde isso.
PDP = "se eu mudar UMA feature mantendo o resto fixo, como a previsão média muda?". É a maneira mais simples de abrir a caixa-preta sem matemática pesada. Clica nas features abaixo:
O PDP responde isso em uma linha simples por feature: ele varia só aquela feature em todos os valores possíveis, mantendo as outras nas suas distribuições reais, e calcula a previsão média. O resultado é a curva.
Como ler:
Cuidados: PDP assume que as features são independentes. Se idade e peso são correlacionados (filhote pesa pouco), o PDP pode mentir um pouquinho. Pra casos mais robustos, existem ALE plots e SHAP values.
Métricas resolvidas, modelo afinado, PDP bonito. Agora vem a pergunta que aparece em toda prova de AWS e em toda reunião com o time de plataforma: onde a gente treina e onde a gente serve esse modelo, gastando o mínimo possível?
Treinar um modelo grande de ML em GPU tradicional custa muito caro. A AWS desenhou um chip próprio só pra essa tarefa: o AWS Trainium. Você encontra ele nas instâncias EC2 da família Trn1 e Trn2.
A AWS criou o Trainium pra resolver um problema concreto: as GPUs caras (NVIDIA A100, H100) são ótimas pra ML, mas custam um rim e nem sempre tão disponíveis. Trainium é o chip proprietário deles, voltado especificamente pra workloads de treino.
As instâncias EC2 que carregam esse chip são da família Trn1 (geração 1, mais comum hoje) e Trn2 (geração 2, mais nova e potente). Você acessa via SDK chamado AWS Neuron, que integra com PyTorch, TensorFlow e Hugging Face.
O grande apelo: custa significativamente menos por hora de treino que instâncias GPU equivalentes, especialmente em modelos grandes (LLMs, foundation models, deep learning pesado).
Imagine que pra retreinar o classificador do AdoteUmaPata.com, você precisa rodar X horas em GPU ou em Trainium. Mexe no slider e veja o impacto:
Treinar o modelo é uma coisa. Mas depois ele precisa responder pra milhões de fotos/dia do app de adoção. Isso é inferência, e a AWS tem um chip diferente, especializado nisso: o AWS Inferentia. Vive nas instâncias da família Inf1 e Inf2.
Servir um modelo é um problema diferente de treinar. Em treino, você roda gradient descent, atualiza pesos, faz forward + backward. Em inferência é só "forward": input entra, predição sai. Bilhões de vezes por dia, com latência baixa.
A AWS desenhou o Inferentia com isso em mente. Ele tem alto throughput (muitas predições/segundo) e baixa latência por inferência. As instâncias EC2 são da família Inf1 (geração 1) e Inf2 (geração 2, com mais memória — boa pra LLMs grandes).
O grande apelo: custo por inferência muito menor que GPU equivalente. Em escala (milhões/bilhões de requests/mês), a economia vira números absurdos.
O AdoteUmaPata.com recebe N fotos/mês pra classificar. Mexe no slider de volume mensal e veja o quanto a infra muda de preço:
Trainium e Inferentia são "primos": ambos chips da AWS, acessados pelo mesmo SDK (Neuron), com a mesma promessa: menos custo que GPU NVIDIA. A diferença é o que cada um faz melhor: Trn pra treinar, Inf pra servir. Lembra: Trn = Training, Inf = Inference. Pronto, decorou.
Salva, imprime, tira print. Tudo que vimos hoje em um cartão por conceito.