Escola da Nuvem · Aula 12

Como se adestra
um gato de ML?

Da limpeza do pelo (pré-processamento) até a hora de virar os botões do treino (hiperparâmetros), passando pelo grande dilema: gato que decorou tudo (overfit) vs gato que não aprendeu nada (underfit). Mexe nos sliders, vê o gatinho aprender ao vivo.

Bora começar o treino 🏋️
🐈 😺 🐈‍⬛ 😸 🐱 🏋️
🧼 PRÉ-PROCESSAMENTO🔬 ENGENHARIA DE ATRIBUTOS🏪 FEATURE STORE📸 DATA AUGMENTATION🏋️ TREINAMENTO🏆 BENCHMARKS🎓 FINE-TUNING🎛️ HIPERPARÂMETROS🌡️ TEMPERATURA🎯 OVERFITTING🧼 PRÉ-PROCESSAMENTO🔬 ENGENHARIA DE ATRIBUTOS🏪 FEATURE STORE📸 DATA AUGMENTATION🏋️ TREINAMENTO🏆 BENCHMARKS🎓 FINE-TUNING🎛️ HIPERPARÂMETROS🌡️ TEMPERATURA🎯 OVERFITTING
01 · Pré-processamento

Dando banho nos dados antes do treino.

Você não bota um gato sujo, com pulga, e sem saber o nome direto na ringue de adestramento. Primeiro limpa, organiza, padroniza. Com dados é igualzinho: pré-processamento é o banho antes da escola.

🧼 Pipeline típico

1
Limpeza Remover nulos, duplicados, valores fora do mundo (gato de 200kg? não rola)
2
Padronização de formato "3kg", "3 kg", "3,0 kg" → tudo vira o número 3.0
3
Normalização / Escalonamento Peso (1-10kg) e idade (0-20 anos) ficam na mesma escala (ex.: 0 a 1)
4
Codificação (Encoding) "siamês", "persa", "vira-lata" viram números que o modelo entende
5
Divisão treino/validação/teste Normalmente 70% / 15% / 15%. Você NÃO mostra todos os gatos no treino
Antes
🐈‍⬛💩
Gato sujo, com pulga, sem coleira, com nome em 4 grafias diferentes
Depois
😺✨
Limpo, vacinado, identificado, em formato padronizado
⚠️ Por que isso importa?

Garbage in, garbage out. Se você botar dados sujos pra treinar, vai sair modelo sujo. Não tem mágica de algoritmo que conserte dado ruim.

Estima-se que cientistas de dados gastam de 60 a 80% do tempo só nisso. Pré-processamento é o trabalho silencioso que segura todo o resto em pé.

02 · Engenharia de Atributos (Feature Engineering)

Que características a gente vai medir do gato?

Engenharia de atributos é decidir quais informações sobre o gato a gente vai usar pra ele aprender. E mais: criar atributos novos que ajudem o modelo a enxergar padrões que sozinho ele não veria.

🔬 Atributos extraídos

🐈
📏 tamanho_orelha
👁️ cor_olho
⚖️ peso_kg
🎂 idade_anos

Cada etiqueta é uma feature (atributo). O gato é o "exemplo". O conjunto de features é o vetor de atributos dele.

#
nome
raça
peso
idade
adotado?
01
Mel
persa
3.2
2
sim
02
Bento
vira-lata
4.5
5
não
03
Pipoca
siamês
2.8
1
sim
04
Salem
vira-lata
5.1
8
não
NOVAS: peso_por_idade = peso ÷ idade · é_filhote = idade < 1
💡 A sacada da engenharia: a linha amarela são atributos criados a partir dos originais. "peso por idade" pode ser um sinal melhor de saúde do que peso sozinho. O modelo agradece.
🎯 Seleção

Escolher só os atributos que importam. Cor da coleira não diz nada sobre adoção, fora.

✨ Criação

Inventar novos a partir dos antigos. "é_filhote", "peso ÷ idade", "raça × cor", etc.

🔄 Transformação

Converter formato: log(peso), raça → one-hot, datas → "dias desde adoção".

03 · SageMaker Feature Store

A despensa de petiscos pré-prontos.

Imagina que sua ONG de adoção tem 5 modelos diferentes (recomendação, score de adotabilidade, alerta de saúde...). Todos eles usam peso_por_idade, é_filhote, raça_id. Vai recalcular essas features 5 vezes? Não. Você cria uma despensa.

🏪 Despensa de Atributos
⚖️
peso_kg
3,2
🎂
idade
2 anos
🐈
raça_id
042
peso/idade
1,6
👶
é_filhote
false
💉
vacinado
true
📍
região
SP
🏠
dias_no_abrigo
47
🎨
cor_pelo
caramelo

📦 O que faz uma Feature Store?

O SageMaker Feature Store é um repositório central de atributos, gerenciado pela AWS. Cada feature fica versionada, documentada e pronta pra ser puxada por qualquer modelo da empresa.

  • Reutilização: calculou uma vez, qualquer modelo usa.
  • Consistência: time A e time B usam exatamente a mesma feature. Sem versão divergente.
  • Online + Offline: Offline pra treinar (dados em batch). Online pra inferência (consulta em milissegundos).
  • Governança: rastreabilidade, lineage, controle de quem usa o quê.
  • Treino ≡ Produção: evita o pesadelo do "no treino dava certo, em prod não". Mesma feature, mesma lógica.
04 · Data Augmentation

Fotografa o mesmo gato de 10 ângulos.

Você só tem 100 fotos de gato e quer treinar um modelo melhor? Data augmentation vira essas 100 em milhares, criando variações sintéticas: foto espelhada, mais clara, girada, com ruído. Não é trapaça, é eficiência.

📸 Brinque com as transformações

Clica nos botões pra aplicar augmentations diferentes na foto. O modelo aprende a reconhecer gato em qualquer condição.

💡 Por que isso ajuda? Na vida real, gatos aparecem em iluminação ruim, fotos tortas, longe da câmera. Augmentation ensina o modelo a generalizar -ele para de depender de "gato sempre no centro, com boa luz". De bônus: você dribla o overfitting (mais variedade = menos decoreba).
05 · Treinamento

Como o gato aprende, na prática.

Treinar um modelo é parecido com ensinar truque pra gato: mostra o estímulo, ele tenta, você corrige, ele tenta de novo. Milhões de vezes. É esse o loop básico.

PASSO 1

🍽️ Mostrar o exemplo

O modelo recebe uma entrada (foto, frase, conjunto de features). O "olha esse gato aqui".

🐈→🤖forward pass
PASSO 2

🤷 Modelo chuta

Baseado nos pesos atuais (geralmente aleatórios no começo), o modelo dá uma resposta. No início é quase sempre errada.

🤖💭"cachorro?"previsão
PASSO 3

📏 Medir o erro

Compara a resposta do modelo com a resposta certa. A diferença é a loss (perda). Quanto maior, pior.

📐 erro = 0,87loss function
PASSO 4

🔧 Ajustar os pesos

O algoritmo (gradient descent, geralmente) volta atrás e ajusta os parâmetros internos do modelo pra errar menos da próxima vez.

⚙️←📉backprop
PASSO 5

🔁 Repetir milhões de vezes

Volta pro passo 1, agora com o gato 2, gato 3, ..., gato N. Quando passa por TODOS os exemplos uma vez, completou uma época.

🔄 ∞epoch loop
🧠 Modelo = matemática + dados + tempo

No fim das contas, "treinar" é só encontrar os números mágicos (os pesos) que fazem o modelo errar o mínimo possível. Não tem inteligência, não tem alma. Tem gradiente descendente repetido um zilhão de vezes. O gato adestrado é o resultado.

06 · Datasets de Benchmark

Os "concursos felinos" oficiais.

Como saber se o seu gato é melhor que o gato do vizinho? Botando os dois no mesmo concurso, com as mesmas regras. Datasets de benchmark são exatamente isso: testes públicos e padronizados pra comparar modelos.

🖼️
ImageNet
visão computacional
14 milhões de imagens em 20 mil categorias. A "Olimpíada Felina" da classificação de imagens desde 2009.
Quem manda bem aqui consegue distinguir 120 raças de cachorro entre si. Imagina o que faz com gato.
📚
GLUE / SuperGLUE
NLP
Conjunto de tarefas de linguagem (similaridade, inferência, sentimento). Mede compreensão de texto em inglês.
Quase saturado hoje. LLMs modernos já passam de humanos.
🎓
MMLU
LLM · conhecimento
57 áreas (matemática, direito, medicina, história). Múltipla escolha. Equivalente ao "ENEM" dos modelos.
Hoje é o padrão pra anunciar nova LLM ("ganhei do GPT no MMLU!").
🧮
GSM8K
LLM · raciocínio
Problemas de matemática de nível escolar, com cadeia de raciocínio. Mede se o modelo pensa, não só papagaia.
Bom indicador de "chain of thought" e raciocínio passo a passo.
💻
HumanEval
LLM · código
164 problemas de programação em Python com testes unitários. Mede se o modelo escreve código que de fato funciona.
Padrão pra modelos que escrevem código (Copilot, Codestral, etc.).
⚠️
Cuidado: contaminação
overfit no benchmark
Se o benchmark vazou no treino, o modelo "decora" as respostas. Métrica linda, modelo inútil no mundo real.
Sempre questione: "esse modelo viu esse teste antes?".
07 · Pré-treino continuado & Fine-tuning

Pegando um gato adotado e ensinando truques novos.

Treinar um modelo do zero custa milhões de dólares e meses de GPU. Por isso ninguém faz isso: todo mundo parte de um modelo pré-treinado (tipo Llama, Mistral, GPT-base) e ensina só o que falta. Tem dois caminhos.

🧠
PRE-TRAINING CONTINUADO

Ensina vocabulário novo pro gato

Você pega um modelo já treinado (que entende português, sabe somar, conhece o mundo) e continua treinando-o em dados específicos do seu domínio.

Não muda a tarefa, só expande conhecimento. Ainda é "preenchimento da próxima palavra".

Quando usar? Você é um escritório de advocacia e quer que o modelo "respire jurisprudência brasileira" antes de qualquer pergunta. Joga 10GB de petições, leis, decisões e roda mais um pouco de pré-treino.
Resultado: modelo que conhece seu domínio.
🎯
FINE-TUNING (AJUSTE FINO)

Ensina um truque específico

Você pega o modelo (já pré-treinado, ou já com pré-treino continuado) e o ensina a fazer uma tarefa específica usando exemplos de entrada-e-saída.

Muda o comportamento: "quando perguntarem X, responde no formato Y".

Quando usar? Você quer um chatbot que responde em tom amigável, sempre em bullet points, citando processos. Pega 1000 pares de "pergunta → resposta ideal" e faz fine-tune.
Resultado: modelo que se comporta do jeito que você quer.
🧪 Subtipos de fine-tuning

Existem várias técnicas, escolhidas por custo, dados disponíveis e objetivo:

📋 Full fine-tuning

Ajusta todos os parâmetros do modelo. Resultado top, mas caro em GPU e memória.

caro · poderoso
🪶 LoRA / QLoRA

Treina só adaptadores pequenos "grudados" no modelo. ~1% do custo, qualidade parecida.

leve · favorito atual
📝 Instruction tuning

Ensina o modelo a seguir instruções. Pares "Instrução → Resposta ideal".

base de chatbots
🎚️ RLHF / DPO

Aprende com preferências humanas: "A é melhor que B". Alinha o modelo com o gosto humano.

alinhamento
08 · Hiperparâmetros

Os botões do controle remoto do treino.

Parâmetros são os pesos internos que o modelo aprende sozinho. Hiperparâmetros são as configurações que você define antes do treino: quantas voltas dar, tamanho do passo, "criatividade" na hora de gerar texto. Mexer neles é meio caminho pra ter um bom modelo.

Épocas
epochs
Learning Rate
passo
Batch Size
lote
Temperatura
criatividade

Pensa numa mesa de som: cada botão muda algo diferente no resultado final. Gira muito num, distorce. Gira pouco, fica abafado. Achar a combinação ótima é arte + ciência + paciência.

Tem hiperparâmetros pra fase de treino (épocas, learning rate, batch size, dropout...) e pra fase de uso/inferência em LLMs (temperatura, top-k, top-p, máximo de tokens).

"Métricas medem o gato.
Hiperparâmetros adestram o gato."
🔁

Épocas (epochs)

Quantas vezes o modelo vê o dataset inteiro

Uma época = uma passagem completa por TODOS os exemplos do treino. Mexe no slider e vê o modelo aprender (ou enlouquecer):

Épocas → Erro (loss) → treino validação Curva de aprendizado do gatinho
ótimo

Aprendendo bem!

Erro de treino e validação caem juntos. O gato está aprendendo, e generalizando bem pra gatos novos.

🐾 "Tô pegando o conceito de gato!"
🌡️

Temperatura

Quanto de "ousadia criativa" na resposta

Só vale pra LLMs (modelos generativos). Temperatura baixa = modelo sempre escolhe a palavra mais provável (chato, mas seguro). Temperatura alta = arrisca palavras menos prováveis (criativo, mas pode dar bobeira). Veja em ação:

0,0 = sempre a mesma resposta. Bom pra fatos, classificação.
0,7 = padrão de chat. Equilibra lógica e variedade.
1,5+ = poesia, brainstorm. Risco de delírio.
"O gato gosta de comer ____"
resposta gerada
"O gato gosta de comer ração"
🔢

Top-K

Quantas opções entram no sorteio

Em vez de considerar TODAS as palavras possíveis, o modelo olha só as K mais prováveis e sorteia entre elas. K=1 vira "sempre a melhor". K=50 abre o leque. Mexe e vê quais palavras sobrevivem ao corte:

K pequeno (1-3): respostas previsíveis, baixo risco.
K médio (5-15): variedade saudável.
K grande (50+): abre porta pra palavras estranhas. Pode quebrar o sentido.
Top-P (nucleus) é um primo: corta por probabilidade acumulada em vez de número fixo.
"O nome do meu gato é ____"
candidatos no sorteio
3 nomes podem ser sorteados
✂️

Máximo de tokens

Quantas "palavras" o modelo pode falar antes de calar a boca

Um token é uma unidade de texto (mais ou menos, uma sílaba ou parte de palavra). Esse hiperparâmetro limita o tamanho da resposta. Aumenta o slider, vê o gato falar mais. Diminui, ele para no meio.

Por que importa? Tokens custam dinheiro na API e tempo de geração. Limitar evita custo absurdo e resposta enrolada.
⚠️ Cuidado: limite muito baixo = resposta cortada no meio da frase.
40 / 40
09 · Ajuste de Hiperparâmetros (HPO)

Como achar a combinação certa?

Você não vai testar à mão 1000 combinações. Existem algoritmos pra explorar o espaço de hiperparâmetros e encontrar o melhor conjunto. No SageMaker chama-se Automatic Model Tuning.

🟦 Grid Search

Testa todas as combinações de uma grade pré-definida. Exaustivo. Caro. Garantido.

força bruta
🎲 Random Search

Sorteia combinações aleatoriamente. Mais barato que grid, surpreendentemente bom na prática.

surpresa boa
🧠 Bayesian

Aprende com tentativas anteriores: "essa região foi boa, vou explorar mais lá". Convergência rápida.

esperto · padrão
🧬 Hyperband / Population

Treina muitos modelos em paralelo, mata os ruins cedo, foca recursos nos promissores.

paralelo
10 · Overfitting & Underfitting

O grande dilema do gato adestrado.

Aqui mora 80% dos problemas de quem treina modelo. Tem o gato que não aprendeu nada (underfit), o gato que aprendeu certinho (good fit), e o gato que decorou o caderno (overfit). Cada um tem cara, sintomas e remédios diferentes.

cenário 1

😴 Underfitting

O gato preguiçoso Não aprendeu nem o básico. Erra no treino, erra na vida. Modelo simples demais ou treinado de menos.
"Hmm... peixe?
Pode ser?"
🐈 → 🤔 → 🐶?
Como sair: Modelo mais complexo (mais camadas, mais parâmetros). Treinar mais épocas. Melhorar features. Mais dados raramente resolve sozinho.
cenário 2

😺 Good fit

O gato bem adestrado Aprendeu a essência. Acerta no treino E em fotos nunca vistas. Aprendeu o conceito de gato, não fotos específicas.
"Esse aí é gato.
Esse não."
🐈 → 😺 → 🐈 ✓
Como manter: Você chegou no ponto onde erro de treino e validação estão baixos E próximos. Para de treinar agora. Salva o modelo. Comemora.
cenário 3

🤓 Overfitting

O gato que decorou Manda super bem no treino. Erra feio em foto nova. Decorou cada exemplo em vez de aprender o padrão.
"Reconheço esse!
Mas esse...?"
🐈 → 🧠 → 🐈‍⬛ ✗
Como sair: Mais dados (ou augmentation). Dropout. Regularização (L1/L2). Early stopping (parar antes). Modelo mais simples. Diminuir épocas.

🔍 Como detectar cada um?

underfit ↓

Erro de treino alto e erro de validação também alto. Os dois ruins.

good fit ✓

Erro de treino baixo, validação também baixa, e perto um do outro. Ponto ótimo.

overfit ↑

Erro de treino muito baixo mas validação subindo. Gap grande entre os dois.

TL;DR · Cola final

A cola visual.

Tudo do treinamento e dos hiperparâmetros num lugar só. Salva, imprime, tira print.

🧼 Pré-processamento
limpar / normalizar / dividir
"Os dados estão limpos?"
Banho nos dados antes do treino. Gasta 60-80% do tempo do cientista.
🔬 Eng. de atributos
selecionar / criar / transformar
"O que medir do gato?"
Escolher e inventar features que ajudam o modelo a enxergar padrões.
🏪 Feature Store
despensa central de features
"Como reusar features entre modelos?"
SageMaker Feature Store: features versionadas, com online + offline.
📸 Data Augmentation
girar / espelhar / borrar
"Como ter mais dados sem coletar mais?"
Variações sintéticas do mesmo exemplo. Ajuda a generalizar.
🏋️ Treinamento
forward → loss → backprop
"O modelo já aprendeu?"
Loop: mostra exemplo, calcula erro, ajusta pesos. Repete um zilhão de vezes.
🏆 Benchmarks
ImageNet, MMLU, GLUE...
"Meu modelo é bom comparado a outros?"
Datasets padrão pra comparar modelos. Cuidado com contaminação.
🧠 Pre-train continuado
+ vocabulário de domínio
"Quero o modelo respirando meu domínio."
Continua o pré-treino em dados específicos. Expande conhecimento.
🎯 Fine-tuning
aprende uma tarefa
"Quero o modelo se comportando do meu jeito."
Ensina comportamento. LoRA é a forma mais comum hoje (barata e boa).
🎛️ Hiperparâmetros
configs que você define
"Como o modelo é treinado?"
Botões do treino: épocas, learning rate, batch size, etc.
🔁 Épocas
passagens completas no dataset
"Quantas vezes ver tudo?"
Poucas = underfit. Muitas = overfit. Use early stopping.
🌡️ Temperatura
criatividade na geração
"Quão criativo?"
0 = sempre igual. 0.7 = padrão. 1.5+ = caos criativo.
🔢 Top-K / Top-P
quantas opções no sorteio
"Quantas palavras entram?"
K pequeno = focado. K grande = aberto. Top-P faz parecido por probabilidade.
✂️ Max Tokens
limite de tamanho
"Até onde pode falar?"
Controla custo e tempo. Cuidado pra não cortar resposta no meio.
😴 Underfitting
não aprendeu
"Erra tudo?"
Modelo simples demais. Aumente complexidade ou treine mais.
🤓 Overfitting
decorou
"Acerta no treino, erra fora?"
Decorou. Use augmentation, dropout, regularização, early stopping.
🐾 Resumo do resumo
"Por onde começo?"
Dados limpos primeiro. Depois modelo simples. Depois ajusta. Sempre olhe a curva de treino vs validação.