No artigo anterior você aprendeu os conceitos: pesos, loss, backpropagation, épocas. Mas ainda falta a imagem concreta. O que acontece de verdade quando alguém treina um modelo? Você pega um texto, joga numa máquina, aperta um botão — e o que acontece depois? Como um arquivo de texto vira um modelo capaz de conversar?
Esse artigo vai percorrer o pipeline inteiro, passo a passo, do arquivo bruto ao modelo treinado. Sem pular etapas.
Etapa 0 — O dado bruto: o texto que vai ensinar o modelo
Tudo começa com texto. Muito texto. Para pré-treinamento de um LLM real, estamos falando de terabytes — livros digitalizados, artigos da Wikipedia, código-fonte do GitHub, páginas da web, fóruns, notícias, posts acadêmicos. O GPT-3 foi treinado em cerca de 300 bilhões de tokens. O LLaMA 3 usou mais de 15 trilhões.
Para um fine-tuning ou um experimento menor, pode ser um arquivo de texto simples mesmo — um .txt com algumas centenas de páginas, um conjunto de pares de perguntas e respostas, transcrições de atendimentos, documentos técnicos. O princípio é o mesmo independente da escala.
Mas antes de qualquer treinamento, esse texto passa por uma etapa de limpeza. Caracteres estranhos são removidos. Textos duplicados são eliminados — duplicatas fazem o modelo supervalorizar aquele conteúdo. Conteúdo de baixa qualidade é filtrado. O dado bruto nunca entra direto.
Exemplo — arquivo de texto bruto (trecho)
Etapa 1 — Tokenização: o texto vira números
O modelo não lê texto. Lê números. O primeiro passo é passar todo o conteúdo por um tokenizador — um programa que quebra o texto em pedaços (tokens) e substitui cada pedaço pelo seu ID numérico no vocabulário.
Esse processo acontece uma vez, antes do treinamento começar. O resultado é salvo em disco como um arquivo binário — uma sequência gigantesca de inteiros. É com esse arquivo que o treinamento vai trabalhar, não com o texto original. O texto em si não entra mais.
Texto → Tokens → IDs numéricos
O arquivo final é uma sequência de milhões (ou trilhões) de inteiros como esses, salvos em binário.
Etapa 2 — Montagem dos batches: o dado é fatiado
Com o arquivo de IDs em mãos, o sistema de treinamento começa a montar os batches — os lotes que serão processados um de cada vez. Cada batch é composto por várias sequências de tokens, e cada sequência tem um comprimento fixo chamado de context length (tamanho do contexto).
Se o context length é 2.048 tokens, o sistema pega 2.048 IDs consecutivos do arquivo, monta uma sequência, pega os próximos 2.048, monta outra — e assim por diante até montar o batch completo. Nada é escolhido aleatoriamente aqui; é uma leitura sequencial do arquivo.
Mas há um detalhe fundamental na forma como entrada e saída são definidas dentro de cada sequência. Para uma sequência de 5 tokens [A, B, C, D, E], o modelo recebe como entrada [A, B, C, D] e deve prever como saída [B, C, D, E]. Ou seja: dado o token atual, preveja o próximo.
Entrada vs. saída esperada — mesma sequência, deslocada em 1
Uma sequência de N tokens gera N-1 exemplos de treinamento. O modelo aprende a prever cada posição dado o que veio antes.
📌 Isso é o treinamento inteiro
O modelo nunca recebe uma “pergunta com resposta”. Ele recebe texto corrido e aprende a prever o próximo token. É só isso. Toda a inteligência emergente — raciocínio, escrita, código — vem de repetir essa tarefa simples bilhões de vezes.
Etapa 3 — Forward pass: o modelo tenta adivinhar
Com o batch montado, começa o forward pass. A sequência de IDs entra na rede. A primeira coisa que acontece é que cada ID é convertido para seu embedding — o vetor de significado que vimos no artigo anterior. Esses vetores entram nas camadas da rede.
Em cada camada, os vetores passam por operações matemáticas que envolvem os pesos do modelo. O mecanismo central dos transformers modernos — a atenção — permite que cada token “olhe” para os outros tokens da sequência e decida o quanto cada um importa para prever o próximo. Isso é o que dá ao modelo a capacidade de entender contexto longo.
No final da última camada, o modelo produz uma distribuição de probabilidades sobre todo o vocabulário para cada posição da sequência. Se o vocabulário tem 50.000 tokens, o modelo atribui uma probabilidade para cada um deles ser o próximo. O token com maior probabilidade é a previsão.
Forward pass — o que acontece dentro da rede
O modelo previu “telhado” com 43% de confiança. Se a resposta correta era “telhado”, o erro é pequeno. Se era outra coisa, o erro é grande.
Etapa 4 — Cálculo do loss: quantificando o erro
Agora o sistema compara a previsão com a resposta correta — que já estava no arquivo de dados, um token à frente. A função de loss (cross-entropy) calcula um número único que representa o erro médio do batch inteiro.
A lógica é: se o modelo deu probabilidade alta ao token correto, o loss é baixo. Se deu probabilidade baixa, o loss é alto. E isso é calculado para cada posição de cada sequência do batch, depois a média é tirada. Um número só que resume o quão mal o modelo foi naquele lote.
Loss — do erro por posição ao número final
Etapa 5 — Backpropagation: o erro volta pela rede
Com o loss calculado, o algoritmo de backpropagation entra em ação. Ele percorre a rede no sentido inverso — da saída para a entrada — e calcula, para cada peso, quanto ele contribuiu para o erro e em qual direção deve ser ajustado.
O resultado dessa operação é o gradiente — um conjunto de instruções, um por peso, dizendo “aumente um pouco” ou “diminua um pouco”. Para um modelo com 7 bilhões de parâmetros, isso são 7 bilhões de instruções calculadas a cada step.
Esse processo exige muito mais memória do que o forward pass. É por isso que treinar modelos grandes exige GPUs com dezenas de gigabytes de VRAM — e por isso que fine-tuning completo de LLMs ainda é caro mesmo em 2026.
💡 Por que GPU e não CPU?
O backpropagation é basicamente multiplicação de matrizes enormes feita bilhões de vezes. CPUs fazem isso em sequência. GPUs têm milhares de núcleos menores que fazem essas multiplicações em paralelo — o que torna o processo viável em horas em vez de anos.
Etapa 6 — Atualização dos pesos: o modelo muda um pouco
Com os gradientes em mãos, o otimizador atualiza os pesos. A fórmula básica é:
=
peso atual
−
learning rate
×
gradiente
O gradiente diz a direção. O learning rate diz o tamanho do passo.
Na prática, otimizadores modernos como o AdamW são mais sofisticados que isso — eles acumulam informações dos gradientes anteriores para fazer ajustes mais inteligentes, acelerando onde o terreno é plano e diminuindo o passo onde há oscilação. Mas a intuição é a mesma: cada step move os pesos um pouco na direção que reduz o erro.
Um step concluído. O batch foi processado, o erro foi calculado, o backpropagation rodou, os pesos foram atualizados. O modelo agora é minimamente diferente do que era antes — e um pouco menos errado.
Etapa 7 — O loop: repetir até convergir
O sistema pega o próximo batch e repete tudo. Forward pass → loss → backpropagation → atualiza pesos. Próximo batch. Repete. Isso acontece continuamente, durante horas, dias ou semanas — dependendo do tamanho do modelo e da quantidade de dados.
A cada step, o engenheiro acompanha o gráfico de loss. No início do treinamento, o loss cai rápido — o modelo saiu de “não sabe nada” para “sabe alguma coisa”. Com o tempo, a queda desacelera e o loss se estabiliza. Esse plateau é o sinal de que o modelo está convergindo — chegando no melhor resultado possível com aqueles dados e aquela arquitetura.
Curva de loss ao longo do treinamento
Queda rápida no início, desaceleração gradual, plateau no final. Quando o loss para de cair, o treinamento foi longe o suficiente.
Etapa 8 — Checkpoint: salvando o modelo
A cada N steps (mil, dez mil — depende da configuração), o sistema salva um checkpoint: um arquivo com todos os pesos do modelo naquele momento. Se o treinamento travar por alguma razão — e isso acontece em runs de dias —, dá para retomar do último checkpoint em vez de começar do zero.
O arquivo de pesos de um modelo é denso. O LLaMA 3 8B ocupa cerca de 16GB em disco no formato padrão. Versões quantizadas — que reduzem a precisão dos números para economizar espaço — chegam a 4–5GB. É esse arquivo que você baixa quando roda um modelo local no Ollama.
📌 O arquivo .gguf que você baixa no Ollama
Quando você faz ollama pull llama3, está baixando exatamente isso: os pesos do modelo treinado, compactados num formato eficiente. O treinamento já acabou. O arquivo é o resultado.
O pipeline completo — do texto ao modelo
E como isso vira um chatbot?
O que descrevemos até aqui é o pré-treinamento — a fase em que o modelo aprende a prever o próximo token em texto genérico. Um modelo pré-treinado consegue completar frases, mas não sabe responder perguntas de forma útil. Ele foi treinado para continuar texto, não para conversar.
Para virar um assistente, o modelo passa por uma segunda fase: o fine-tuning supervisionado com pares de instrução e resposta. Aqui sim o dado é estruturado: “Pergunta: X → Resposta: Y”. O modelo aprende o formato de diálogo.
Depois, técnicas como o RLHF (Reinforcement Learning from Human Feedback) fazem humanos avaliarem respostas e o modelo aprende a preferir as que foram melhor avaliadas. É isso que dá ao ChatGPT e ao Claude o comportamento de assistente útil e seguro — não só o pré-treinamento.
| Fase | Dado | Objetivo | Resultado |
|---|---|---|---|
| Pré-treinamento | Texto bruto (trilhões de tokens) | Prever próximo token | Modelo base — sabe sobre o mundo |
| Fine-tuning SFT | Pares instrução → resposta | Aprender formato de diálogo | Modelo instrução — responde perguntas |
| RLHF | Avaliações humanas de respostas | Preferir respostas melhores | Assistente útil e alinhado |
Um arquivo de texto. Bilhões de adivinhações. Um modelo.
É difícil acreditar que tudo começa com uma tarefa tão simples — prever a próxima palavra. Mas é exatamente isso. Repetido em escala suficiente, em dados suficientemente variados, com arquitetura suficientemente profunda, essa tarefa banal produz sistemas que escrevem código, explicam conceitos complexos e raciocinam sobre problemas novos.
Agora você sabe o que acontece por baixo de cada resposta que recebe de uma IA. Do arquivo .txt ao checkpoint final, passando por bilhões de steps de gradiente — esse é o pipeline que criou os modelos que você usa todos os dias.