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 🏋️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.
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é.
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.
Cada etiqueta é uma feature (atributo). O gato é o "exemplo". O conjunto de features é o vetor de atributos dele.
Escolher só os atributos que importam. Cor da coleira não diz nada sobre adoção, fora.
Inventar novos a partir dos antigos. "é_filhote", "peso ÷ idade", "raça × cor", etc.
Converter formato: log(peso), raça → one-hot, datas → "dias desde adoção".
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.
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.
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.
Clica nos botões pra aplicar augmentations diferentes na foto. O modelo aprende a reconhecer gato em qualquer condição.
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.
O modelo recebe uma entrada (foto, frase, conjunto de features). O "olha esse gato aqui".
Baseado nos pesos atuais (geralmente aleatórios no começo), o modelo dá uma resposta. No início é quase sempre errada.
Compara a resposta do modelo com a resposta certa. A diferença é a loss (perda). Quanto maior, pior.
O algoritmo (gradient descent, geralmente) volta atrás e ajusta os parâmetros internos do modelo pra errar menos da próxima vez.
Volta pro passo 1, agora com o gato 2, gato 3, ..., gato N. Quando passa por TODOS os exemplos uma vez, completou uma época.
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.
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.
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.
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".
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".
Existem várias técnicas, escolhidas por custo, dados disponíveis e objetivo:
Ajusta todos os parâmetros do modelo. Resultado top, mas caro em GPU e memória.
caro · poderosoTreina só adaptadores pequenos "grudados" no modelo. ~1% do custo, qualidade parecida.
leve · favorito atualEnsina o modelo a seguir instruções. Pares "Instrução → Resposta ideal".
base de chatbotsAprende com preferências humanas: "A é melhor que B". Alinha o modelo com o gosto humano.
alinhamentoParâ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.
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).
Uma época = uma passagem completa por TODOS os exemplos do treino. Mexe no slider e vê o modelo aprender (ou enlouquecer):
Erro de treino e validação caem juntos. O gato está aprendendo, e generalizando bem pra gatos novos.
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:
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:
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.
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.
Testa todas as combinações de uma grade pré-definida. Exaustivo. Caro. Garantido.
força brutaSorteia combinações aleatoriamente. Mais barato que grid, surpreendentemente bom na prática.
surpresa boaAprende com tentativas anteriores: "essa região foi boa, vou explorar mais lá". Convergência rápida.
esperto · padrãoTreina muitos modelos em paralelo, mata os ruins cedo, foca recursos nos promissores.
paraleloAqui 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.
Erro de treino alto e erro de validação também alto. Os dois ruins.
Erro de treino baixo, validação também baixa, e perto um do outro. Ponto ótimo.
Erro de treino muito baixo mas validação subindo. Gap grande entre os dois.
Tudo do treinamento e dos hiperparâmetros num lugar só. Salva, imprime, tira print.