Fazendo um LLM do Zero — Sessão 07: De Gerador de Texto a Assistente (Instruction Tuning) 💬🤝
Chegamos ao último grande marco da nossa jornada.
Até aqui, construímos um modelo que sabe tudo sobre a estrutura da língua (Sessão 05) e que até aprendeu uma profissão específica (Sessão 06).
Mas ainda faltava um “tempero” essencial para que ele se parecesse com o ChatGPT que usamos no dia a dia.
Se você pedisse ao nosso modelo da Sessão 05: “Escreva uma receita de bolo”, ele poderia simplesmente responder: “…e uma lista de ingredientes para o jantar”. Ele não entendeu que você deu uma ordem; ele achou que você estava apenas começando um texto que ele deveria completar.
Na Sessão 07, resolvemos isso com o Instruction Tuning. Como Sebastian Raschka explora no Capítulo 7 de seu livro, este é o processo de
Alinhamento: ensinar o modelo a entender a intenção humana e a agir como um assistente útil.
1. O Modelo Base vs. O Assistente
A diferença entre um modelo treinado em texto bruto e um modelo alinhado é a diferença entre um estudante que leu todos os livros da biblioteca e um profissional que sabe atender um cliente.
O modelo base é um “completador de frases”. O modelo alinhado é um seguidor de instruções.
2. A Gramática das Ordens: Formato Instrução-Resposta
Para que o modelo aprenda a nos obedecer, não podemos simplesmente jogar texto aleatório nele. Precisamos de exemplos estruturados. Como
Sebastian Raschka detalha, usamos um formato específico que separa a Instrução, o Contexto (Input) e a Resposta Esperada.
É como dar um roteiro para um ator: “Sempre que alguém te pedir X, você deve responder Y”. Com exemplos suficientes, o modelo entende o padrão de interação.
3. O Truque do Mestre: Mascaramento da Loss
Aqui entra um detalhe técnico brilhante que vimos nesta sessão. Durante o treino, nós não queremos que o modelo aprenda a “prever a pergunta”. A pergunta (instrução) já está lá! Nós queremos que ele foque toda a sua energia em aprender a Resposta.
Join Medium for free to get updates from this writer.
Para isso, usamos o Mascaramento da Loss.
Nós ignoramos os erros que o modelo comete enquanto lê a pergunta e só ajustamos os neurônios dele quando ele começa a escrever a resposta. Isso força o modelo a ser um “resolvedor de problemas”, não apenas um papagaio.
4. O Pipeline de Supervised Fine-Tuning (SFT)
O processo de transformar o modelo base em assistente é chamado de SFT. É uma linha de montagem de alta precisão: pegamos os pesos pré-treinados, passamos pelo dataset de instruções e avaliamos a qualidade da conversa.
5. Como Medir a Utilidade?
Como saber se um assistente é bom? Diferente da classificação (Sessão 06), aqui não existe “certo ou errado” absoluto. Uma receita de bolo pode ser escrita de mil formas diferentes.
Por isso, a avaliação deixa de ser apenas matemática e passa a ser qualitativa. O modelo é coerente? Ele foi educado? Ele seguiu todas as restrições da instrução?
🏁 O Fim da Jornada (E o Começo da Próxima)
Com a conclusão da Sessão 07, fechamos o ciclo completo de construção de um LLM:
1. Preparamos o terreno (Sessão 00 e 01).
2. Transformamos texto em números (Sessão 02).
3. Criamos o mecanismo de atenção (Sessão 03).
4. Montamos o corpo do GPT (Sessão 04).
5. Ensinamos o modelo a falar (Sessão 05).
6. Damos a ele uma especialidade (Sessão 06).
7. E, finalmente, o ensinamos a conversar e seguir instruções (Sessão 07).
O que antes era uma caixa preta mágica agora é um sistema que você construiu, peça por peça, do zero. A inteligência artificial não é mágica; é engenharia, é matemática e, acima de tudo, é a curiosidade de entender como os fios se conectam.
🚀 Explore o Capítulo Final
No notebook da Sessão 07, implementamos o treinamento de instruções e vimos o nosso GPTMini deixar de ser um gerador aleatório para se tornar um mini-assistente conversacional.
👇 Confira o resultado final:
📓 Notebook no Google Colab:Rodar Sessão 07
📂 Repositório GitHub:vongrossi/fazendo-um-llm-do-zero
Obrigado por acompanhar essa serie de posts. Agora que você sabe como um LLM é feito, o que você vai construir com esse conhecimento? 🛠️🧠





