<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Von Grossi</title>
    <description>The latest articles on Forem by Von Grossi (@vongrossi).</description>
    <link>https://forem.com/vongrossi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F114110%2Fd4a238fa-5a9e-440c-99b4-bff78085d4fb.jpeg</url>
      <title>Forem: Von Grossi</title>
      <link>https://forem.com/vongrossi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vongrossi"/>
    <language>en</language>
    <item>
      <title>Fazendo um LLM do Zero — Sessão 08: O Fim do Começo (Por que agora tudo faz sentido?) 🚀🧠</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 01:42:01 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-08-o-fim-do-comeco-por-que-agora-tudo-faz-sentido-5f7p</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-08-o-fim-do-comeco-por-que-agora-tudo-faz-sentido-5f7p</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero — Sessão 08: O Fim do Começo (Por que agora tudo faz sentido?) 🚀🧠 &lt;br&gt;
Chegando ao fim dessa jornada. Mas, paradoxalmente, este é apenas o começo da sua verdadeira jornada com Inteligência Artificial.&lt;/p&gt;

&lt;p&gt;A Sessão 08 é diferente. Ela não está no sumário do livro de Sebastian Raschka. Ela não vai te ensinar uma nova função do PyTorch nem introduzir uma arquitetura revolucionária. Esta sessão é o que eu chamo de “O Momento Matrix”.&lt;/p&gt;

&lt;p&gt;Sabe aquela cena icônica em que o Neo finalmente para de ver as paredes, os agentes e o cenário, e começa a enxergar apenas o código verde escorrendo em cascata? É exatamente assim que me sinto agora ao olhar para qualquer aplicação de IA moderna.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kjx207y6l1spk8a8h3j.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kjx207y6l1spk8a8h3j.gif" alt="Image 9" width="498" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Durante meses, nós construímos cada engrenagem desse sistema. Do momento em que quebramos uma palavra em tokens até o instante em que calculamos o gradiente de erro de uma resposta complexa. Ao fazer isso, algo mudou irreversivelmente. Eu não vejo mais a “mágica”. A caixa preta foi aberta.&lt;/p&gt;

&lt;p&gt;O que eu vejo agora são probabilidades, vetores densos e multiplicações de matrizes.&lt;/p&gt;

&lt;p&gt;E acredite: perder a ilusão da mágica foi a melhor coisa que poderia ter acontecido para a minha carreira de engenheiro de software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 O Fim da “Caixa Preta”: Por que suas aplicações falham?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes dessa jornada, quando o ChatGPT inventava um fato ou quando meu sistema de busca falhava, minha reação era de frustração e confusão. “Por que ele fez isso? Não faz sentido!”. Agora, a confusão deu lugar ao diagnóstico preciso. Entender os fundamentos me deu a capacidade de olhar para o erro e identificar a causa raiz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A Anatomia da Alucinação&lt;/strong&gt;(Vibe Coding e Prompt Engineering)&lt;/p&gt;

&lt;p&gt;Aprendemos na Sessão 05 a verdade dura: um LLM é, em sua essência, uma máquina estatística treinada para prever a próxima palavra. Ele não tem compromisso com a verdade factual; ele tem compromisso com a verossimilhança estatística.&lt;/p&gt;

&lt;p&gt;Quando você está fazendo um “Vibe Coding” e o modelo sugere uma importação de biblioteca que não existe, você não fica mais bravo. Você entende:&lt;/p&gt;

&lt;p&gt;“Ah, estatisticamente, essa importação fazia todo sentido nesse contexto de código, por isso ele ‘alucinou’ esse nome”. O modelo não mentiu; ele apenas seguiu a probabilidade mais alta. Saber disso muda como você escreve seus prompts. Você para de pedir “seja criativo” e começa a impor restrições de contexto, porque você sabe que sem restrições, a estatística corre solta.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. O Poder Oculto dos Embeddings (Custo, Performance e RAG)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na Sessão 02, desmistificamos os Embeddings. Vimos que para o computador, “significado” nada mais é do que distância geométrica em um espaço vetorial.&lt;/p&gt;

&lt;p&gt;Isso mudou a forma como projeto sistemas de &lt;strong&gt;RAG (Retrieval-Augmented Generation)&lt;/strong&gt;. Hoje, eu sei que a qualidade da resposta do meu agente não depende apenas do LLM caro que estou usando na ponta final (como o GPT-4), mas depende criticamente da qualidade do meu Embedding na busca. Se meus vetores não capturarem a nuance semântica, o LLM nunca receberá a informação correta. Escolher o modelo de embedding errado não é apenas um detalhe técnico; é uma decisão que impacta diretamente o preço e a latência da sua aplicação. Um vetor mal construído torna sua busca “burra” e sua infraestrutura cara.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Agentes Especializados e Instruction Tuning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na Sessão 07, sofremos para alinhar o modelo. Vimos como é difícil fazer a máquina parar de apenas “completar texto” e começar a &lt;strong&gt;“obedecer ordens”.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Essa experiência é valiosa quando estamos criando Agentes Autônomos. Se o seu agente sai dos trilhos e começa a agir de forma imprevisível, a culpa provavelmente não é do modelo ser &lt;strong&gt;“burro”&lt;/strong&gt;, mas da falta de exemplos robustos de Instruction Tuning ou Few-Shot Prompting. Você aprendeu na prática que o modelo precisa de exemplos negativos (o que não fazer) tanto quanto de exemplos positivos. A engenharia de prompt deixou de ser &lt;strong&gt;“tentativa e erro”&lt;/strong&gt; e virou*&lt;em&gt;“ajuste de pesos via contexto”&lt;/em&gt;*.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 A Verdade nos Números: O que os Gráficos nos Contam&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nossa jornada não foi feita apenas de conceitos abstratos. Nossos notebooks geraram dados reais, e esses dados contam a história do aprendizado da máquina. Vale a pena revisitar três momentos visuais que definiram nossa evolução:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Momento “Eureca” da Classificação (Sessão 06)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lembra quando transformamos o GPT em um classificador de SPAM? Ver o modelo pegar uma frase como “Ganhe dinheiro rápido e fácil!!!” e cravar a categoria SPAM (99%) foi a prova definitiva.&lt;/p&gt;

&lt;p&gt;Não foi mágica. Nós vimos os pesos da Classification Head se ajustarem para reconhecer esse padrão.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0l7v9vjfbugtfw9n1mnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0l7v9vjfbugtfw9n1mnc.png" alt="Image 10" width="700" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Queda da Loss (Sessão 07)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Não há gráfico mais bonito para um cientista de dados ou engenheiro de ML do que uma curva de Loss descendo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvb98uzvd07f2n6r8ekh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvb98uzvd07f2n6r8ekh.png" alt="Image 11" width="545" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa linha descendente não é apenas um gráfico; é a representação visual da “inteligência” emergindo. Cada degrau que a linha desce significa que o modelo entendeu um pouco mais sobre a estrutura da linguagem humana. O momento em que a linha se estabiliza é o momento em que a máquina encontrou o padrão ótimo. É poesia matemática.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A Matriz de Confusão: A Hora da Verdade&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E, claro, a nossa “prova real”. Nenhuma IA é perfeita, e a Matriz de Confusão nos ensinou a humildade.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4x9vp4r9vastzd3zu22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4x9vp4r9vastzd3zu22.png" alt="Image 12" width="700" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ela nos mostrou exatamente onde o modelo tropeça. Ele confunde ironia com seriedade? Ele deixa passar falsos positivos? Aprender a ler esse gráfico é o que separa quem usa IA de quem avalia e melhora IA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔮 O Futuro: O que podemos fazer agora?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nesta sessão extra, compilamos reflexões sobre os próximos passos. O campo de LLMs está explodindo e mudando a cada semana, mas os fundamentos que aprendemos aqui — Attention, Backpropagation, Embeddings, Tokenization — são a base imutável de tudo isso.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiezo0n6pjaczk5zp3ld4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiezo0n6pjaczk5zp3ld4.png" alt="Image 13" width="700" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com essa base sólida, agora podemos nos aventurar em tópicos avançados sem medo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quantização:&lt;/strong&gt; Como fazer esse modelo gigante caber na memória de um celular, reduzindo a precisão dos números sem perder a inteligência?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG Avançado:&lt;/strong&gt; Como conectar esse “cérebro” a um banco de dados proprietário da empresa, garantindo que ele só responda com fatos verificados?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agentes Multimodais:&lt;/strong&gt; E se, além de tokens de texto, adicionarmos tokens de imagem? A arquitetura Transformer permite isso!&lt;/p&gt;

&lt;p&gt;A base que construímos nos permite navegar por essas novidades sem nos perdermos em um &lt;strong&gt;hype&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❤️ Gratidão: O Alicerce do Open Source&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nenhum conhecimento é construído no vácuo. Se conseguimos criar um LLM do zero usando apenas um navegador e o Google Colab, foi porque gigantes nos permitiram subir em seus ombros.&lt;/p&gt;

&lt;p&gt;Este projeto é, acima de tudo, um reconhecimento ao ecossistema Open Source e à comunidade científica que compartilha conhecimento abertamente.&lt;/p&gt;

&lt;p&gt;Aos mantenedores do &lt;strong&gt;PyTorch&lt;/strong&gt;, que tornaram a matemática complexa acessível através de código elegante.&lt;/p&gt;

&lt;p&gt;Ao time do &lt;strong&gt;Google Colab&lt;/strong&gt;, que democratizou o acesso às GPUs, permitindo que qualquer pessoa com internet treine uma rede neural.&lt;/p&gt;

&lt;p&gt;E, principalmente, ao autor Sebastian Raschka, cujo livro foi o farol que guiou essa jornada, transformando teoria densa em prática acessível.&lt;/p&gt;

&lt;p&gt;Escrevi uma carta aberta de agradecimento ao autor, detalhando como sua didática impactou meu aprendizado e o de todos que acompanharam essa série. Se você também aprendeu algo, recomendo a leitura como forma de celebrar o compartilhamento de conhecimento:&lt;/p&gt;

&lt;p&gt;📄&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero/blob/main/08-extras/carta-ao-autor.md" rel="noopener noreferrer"&gt;Leia a Carta ao Autor aqui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 O Código&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O repositório Fazendo um LLM do Zero não é apenas meu; é nosso.&lt;/p&gt;

&lt;p&gt;Todos os notebooks, todos os infográficos traduzidos, todos os experimentos e códigos comentados estão disponíveis e abertos para sempre.&lt;/p&gt;

&lt;p&gt;🔗 GitHub Oficial: &lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sinta-se livre para experimentar e extender, clone o repositório&lt;/p&gt;

&lt;p&gt;Quebre o modelo. Tente treiná-lo com outras fontes de dados. Erre. Conserte. Experimente durante a jornada eu tentei varias abordagens&lt;/p&gt;

&lt;p&gt;Acho que melhor forma de prever o futuro da Inteligência Artificial é construí-lo você mesmo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;End of transmission.&lt;/strong&gt; 📡👋&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero — Sessão 07: De Gerador de Texto a Assistente (Instruction Tuning) 💬🤝</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 01:41:38 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-07-de-gerador-de-texto-a-assistente-instruction-tuning-26cg</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-07-de-gerador-de-texto-a-assistente-instruction-tuning-26cg</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero — Sessão 07: De Gerador de Texto a Assistente (Instruction Tuning) 💬🤝 &lt;br&gt;
Chegamos ao último grande marco da nossa jornada.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;p&gt;Mas ainda faltava um “tempero” essencial para que ele se parecesse com o ChatGPT que usamos no dia a dia.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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&lt;/p&gt;

&lt;p&gt;Alinhamento: ensinar o modelo a entender a intenção humana e a agir como um assistente útil.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Modelo Base vs. O Assistente&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;O modelo base é um “completador de frases”. O modelo alinhado é um seguidor de instruções.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnu9hhufzpvm99p3qmlgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnu9hhufzpvm99p3qmlgj.png" alt="Image 9" width="700" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Gramática das Ordens: Formato Instrução-Resposta&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para que o modelo aprenda a nos obedecer, não podemos simplesmente jogar texto aleatório nele. Precisamos de exemplos estruturados. Como&lt;/p&gt;

&lt;p&gt;Sebastian Raschka detalha, usamos um formato específico que separa a Instrução, o Contexto (Input) e a Resposta Esperada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F286hvlajejoati50ootu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F286hvlajejoati50ootu.png" alt="Image 10" width="700" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. O Truque do Mestre: Mascaramento da Loss&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;Para isso, usamos o Mascaramento da Loss.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjmgw7ofyiovao237viv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjmgw7ofyiovao237viv.png" alt="Image 11" width="700" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. O Pipeline de Supervised Fine-Tuning (SFT)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F838ebap8v5nl500qdwxi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F838ebap8v5nl500qdwxi.png" alt="Image 12" width="700" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Como Medir a Utilidade?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como saber se um assistente é bom? Diferente da classificação (Sessão 06), aqui não existe &lt;strong&gt;“certo ou errado”&lt;/strong&gt; absoluto. Uma receita de bolo pode ser escrita de mil formas diferentes.&lt;/p&gt;

&lt;p&gt;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?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft01bzzshibsn8rlnlrb9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft01bzzshibsn8rlnlrb9.png" alt="Image 13" width="700" height="661"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 O Fim da Jornada (E o Começo da Próxima)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Com a conclusão da Sessão 07, fechamos o ciclo completo de construção de um LLM:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Preparamos o terreno (Sessão 00 e 01).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Transformamos texto em números (Sessão 02).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Criamos o mecanismo de atenção (Sessão 03).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Montamos o corpo do GPT (Sessão 04).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Ensinamos o modelo a falar (Sessão 05).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Damos a ele uma especialidade (Sessão 06).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. E, finalmente, o ensinamos a conversar e seguir instruções (Sessão 07).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Explore o Capítulo Final&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;👇 Confira o resultado final:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/07-instruction-tuning/notebook.ipynb" rel="noopener noreferrer"&gt;Rodar Sessão 07&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obrigado por acompanhar essa serie de posts. Agora que você sabe como um LLM é feito, o que você vai construir com esse conhecimento? 🛠️🧠&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero #02: Como Transformar Palavras em Números (Sem Perder a Alma) 🔢✨</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-02-como-transformar-palavras-em-numeros-sem-perder-a-alma-1mm3</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-02-como-transformar-palavras-em-numeros-sem-perder-a-alma-1mm3</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero #02: Como Transformar Palavras em Números (Sem Perder a Alma) 🔢✨ &lt;/p&gt;

&lt;p&gt;Se você abrir o cérebro de um computador, não vai encontrar letras, palavras ou poesias. Você vai encontrar eletricidade. Zeros e uns.&lt;/p&gt;

&lt;p&gt;Isso cria um problema fundamental para quem quer criar Inteligência Artificial: como ensinar uma máquina a ler, se a linguagem nativa dela é matemática pura?&lt;/p&gt;

&lt;p&gt;A abordagem ingênua seria criar uma tabela gigante: “Abacate” = 1, “Bola” = 2, “Casa” = 3.&lt;/p&gt;

&lt;p&gt;Funciona? Sim. O computador consegue ler.&lt;/p&gt;

&lt;p&gt;Mas ele perde o significado. Para ele, “Abacate” e “Bola” são apenas números vizinhos, sem nenhuma relação real.&lt;/p&gt;

&lt;p&gt;Nesta sessão, resolvemos esse problema. Descobrimos a alquimia que transforma texto em vetores ricos de significado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Abismo entre Texto e Máquina&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tudo o que é “dado bruto” no mundo real (texto, áudio, vídeo) precisa ser convertido para uma representação numérica densa antes de entrar em uma rede neural.&lt;/p&gt;

&lt;p&gt;Não queremos apenas números soltos. Queremos Embeddings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi028vjhm5a27u9pnig7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi028vjhm5a27u9pnig7c.png" alt="Image 11" width="700" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Um Embedding não é apenas um número. É uma lista de números (um vetor) que funciona como uma coordenada de GPS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. O GPS das Palavras (Espaço Vetorial)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine um mapa gigante.&lt;/p&gt;

&lt;p&gt;Nesse mapa, a palavra “Rei” mora em uma coordenada. A palavra “Rainha” mora bem pertinho dela.&lt;/p&gt;

&lt;p&gt;Já a palavra “Maçã” mora do outro lado do mapa, longe da realeza, mas vizinha de “Banana”.&lt;/p&gt;

&lt;p&gt;Isso é o Espaço Vetorial.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtzt1jbpwwd2hisgcqh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtzt1jbpwwd2hisgcqh7.png" alt="Image 12" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quando treinamos um LLM, ele aprende a organizar esse mapa sozinho. Ele descobre que “cachorro” e “gato” compartilham muitas características, então ele os coloca próximos geometricamente. É assim que a matemática captura a semântica.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Quebrando o Texto: Tokenização&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mas espere… o modelo lê palavras inteiras?&lt;/p&gt;

&lt;p&gt;Na verdade, &lt;strong&gt;não&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Se o modelo tivesse que decorar todas as palavras do dicionário (mais gírias, nomes, erros de digitação), o vocabulário seria infinito.&lt;/p&gt;

&lt;p&gt;Para resolver isso, usamos a Tokenização. Nós quebramos o texto em pedacinhos chamados Tokens.&lt;/p&gt;

&lt;p&gt;1. Lemos o texto.&lt;/p&gt;

&lt;p&gt;2. Identificamos os pedaços únicos.&lt;/p&gt;

&lt;p&gt;3. Criamos um vocabulário numérico.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvppc35o98f2jlyysr4i6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvppc35o98f2jlyysr4i6.png" alt="Image 13" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. O Tradutor Universal (Encode e Decode)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;Uma vez que temos o vocabulário, criamos uma ponte de duas vias.&lt;/p&gt;

&lt;p&gt;O Encode transforma a frase “Olá Mundo” em [245, 981].&lt;/p&gt;

&lt;p&gt;O Decode pega [245, 981] e devolve “Olá Mundo”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3772nhlq0edpf1g8mn56.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3772nhlq0edpf1g8mn56.png" alt="Image 14" width="700" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É essa interface que permite que nós (humanos) e o modelo (máquina) conversemos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. O Lego das Palavras (BPE — Byte Pair Encoding)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E se aparecer uma palavra que o modelo nunca viu? Tipo “Supercalifragilisticexpialidocious”?&lt;/p&gt;

&lt;p&gt;Se usássemos palavras inteiras, o modelo travaria (o temido erro “Out of Vocabulary”).&lt;/p&gt;

&lt;p&gt;A solução moderna é genial: Subwords (Sub-palavras).&lt;/p&gt;

&lt;p&gt;Se o modelo não conhece a palavra inteira, ele a quebra em pedaços que ele conhece.&lt;/p&gt;

&lt;p&gt;“Infelizmente” vira: In + feliz + mente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foloxnt8stobmj22x6nz1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foloxnt8stobmj22x6nz1.png" alt="Image 15" width="700" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com essa técnica (chamada BPE), o modelo consegue ler e escrever qualquer palavra em qualquer língua, usando apenas um conjunto limitado de peças de Lego.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Ensinando com Flashcards (Janela Deslizante)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como preparamos esses dados para o treino?&lt;/p&gt;

&lt;p&gt;Um LLM aprende a prever o futuro olhando para o passado.&lt;/p&gt;

&lt;p&gt;Nós pegamos um texto e criamos &lt;strong&gt;janelas deslizantes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entrada:&lt;/strong&gt; “O gato” -&amp;gt; Alvo: “subiu”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entrada:&lt;/strong&gt; “O gato subiu” -&amp;gt; Alvo: “no”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7usitp8tq97zbvm8tyy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7usitp8tq97zbvm8tyy7.png" alt="Image 16" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É assim que criamos milhões de exemplos de treinamento a partir de um único livro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. O Pipeline Completo: Da Letra ao Cérebro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Juntando tudo, temos o pipeline de entrada do nosso GPT.&lt;/p&gt;

&lt;p&gt;É uma linha de montagem de dados:&lt;/p&gt;

&lt;p&gt;Texto Bruto ➡️ Tokenização ➡️ IDs ➡️ Embeddings de Palavra + Embeddings de Posição ➡️ Entrada no Modelo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6npi5ambj03urvwxcf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6npi5ambj03urvwxcf0.png" alt="Image 17" width="700" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Mão na Massa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste capítulo, não ficamos só na teoria. No notebook, nós implementamos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Um Tokenizador do zero.&lt;/strong&gt;&lt;strong&gt;O algoritmo BPE&lt;/strong&gt; (sim, escrevemos a lógica de merge de tokens!).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A camada de Embeddings no PyTorch&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Quer ver como transformar Shakespeare em tensores matemáticos?&lt;/p&gt;

&lt;p&gt;👇 O código está pronto para rodar:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/02-texto-vira-numero/notebook.ipynb" rel="noopener noreferrer"&gt;Acessar o notebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora que transformamos texto em números, estamos prontos para a parte mais “humana” da IA. No próximo post: Atenção. 👀&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero #03: Atenção é Tudo o que Você Precisa? 🎯👀</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-03-atencao-e-tudo-o-que-voce-precisa-3lk5</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-03-atencao-e-tudo-o-que-voce-precisa-3lk5</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero #03: Atenção é Tudo o que Você Precisa? 🎯👀 Você já parou para pensar em como é difícil entender uma frase isolada?&lt;/p&gt;

&lt;p&gt;Imagine que eu chego para você e digo:&lt;/p&gt;

&lt;p&gt;“Eu estou indo para o banco.”&lt;/p&gt;

&lt;p&gt;Você pensaria em dinheiro 💰 ou em um parque 🌳?&lt;/p&gt;

&lt;p&gt;Sem o resto da conversa, é impossível saber. A palavra “banco” é ambígua. O que define o significado dela não são as letras &lt;strong&gt;B-A-N-C-O&lt;/strong&gt;, mas sim as palavras que estão ao redor dela.&lt;/p&gt;

&lt;p&gt;Se a frase fosse “Sentei no banco da praça”, a palavra “banco” absorve o significado de “praça”.&lt;/p&gt;

&lt;p&gt;Se fosse “Saquei dinheiro no banco”, ela absorve o significado de “dinheiro”.&lt;/p&gt;

&lt;p&gt;Esse “superpoder” de misturar significados baseados no contexto é algo que nós fazemos naturalmente. Mas, para computadores, isso sempre foi um pesadelo. Até 2017.&lt;/p&gt;

&lt;p&gt;Bem-vindo ao nossa 3a jornada, onde vamos desvendar o Self-Attention (Autoatenção), o mecanismo que transformou papagaios digitais em modelos capazes de manter uma conversa coerente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Problema da Tradução “Robótica”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antigamente, modelos de linguagem liam texto como um cavalo com antolhos: focados apenas na palavra atual ou na anterior.&lt;/p&gt;

&lt;p&gt;O resultado? Traduções literais e frases sem nexo. Veja este exemplo clássico de tradução do Alemão para o Inglês:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1bstjkcfu80hg0hgsx0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1bstjkcfu80hg0hgsx0.png" alt="Image 13" width="700" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contexto importa na tradução&lt;/p&gt;

&lt;p&gt;Para traduzir corretamente, a palavra final da frase depende de uma palavra que apareceu lá no começo. Se o modelo não tiver “memória” ou “visão periférica”, ele erra.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Intuição: Todo Mundo Olhando para Todo Mundo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A grande sacada do paper “Attention Is All You Need” foi dizer: e se cada palavra pudesse “olhar” para todas as outras palavras da frase e decidir quais são importantes para ela?&lt;/p&gt;

&lt;p&gt;Na frase “O gato que estava no telhado miou”, quando processamos a palavra “miou”, o modelo deve prestar muita atenção em “gato” (quem miou?) e pouca atenção em “telhado” (onde estava).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ls9mb4smi618ihq1qvb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ls9mb4smi618ihq1qvb.png" alt="Image 14" width="700" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isso cria uma teia de conexões semânticas. O modelo aprende quem fez o quê, onde e como, apenas ajustando o foco da atenção.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. O Coquetel de Informações&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Matematicamente, o que acontece é que a palavra “banco” deixa de ser um vetor estático. Ela se torna uma mistura ponderada de todas as palavras da frase.&lt;/p&gt;

&lt;p&gt;Se a palavra “dinheiro” está na frase, ela “doa” um pouco do seu significado para “banco”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftw5mw94oc7368t954lz5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftw5mw94oc7368t954lz5.png" alt="Image 15" width="700" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O resultado final (o vetor de contexto) é uma representação muito mais rica. É a diferença entre um dicionário (significado estático) e uma conversa (significado contextual).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. O Mecanismo: Query, Key e Value (A Busca no Spotify)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aqui a coisa fica técnica (e genial). Como o modelo decide quanto foco dar para cada palavra?&lt;/p&gt;

&lt;p&gt;Ele usa um sistema de busca parecido com o do YouTube ou Spotify.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;Para cada palavra, criamos três vetores:&lt;/p&gt;

&lt;p&gt;1. Query (Q — A Pergunta): O que eu estou procurando?&lt;/p&gt;

&lt;p&gt;2. Key (K — A Etiqueta): O que eu tenho a oferecer?&lt;/p&gt;

&lt;p&gt;3. Value (V — O Conteúdo): Se você gostar de mim, leve esta informação.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqubntu6f8rfbt9l7mdw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqubntu6f8rfbt9l7mdw9.png" alt="Image 16" width="700" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A “Atenção” nada mais é do que o casamento (produto escalar) entre a Pergunta (Query) de uma palavra e a Etiqueta (Key) de outra. Se elas combinam, a afinidade é alta, e o modelo absorve muito do Conteúdo (Value).&lt;/p&gt;

&lt;p&gt;Mas esses vetores Q, K e V não são fixos! Eles são aprendidos. O modelo possui matrizes de pesos treináveis que ele ajusta durante o treinamento para aprender como prestar atenção melhor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1oh3x1im5z08gzk21saj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1oh3x1im5z08gzk21saj.png" alt="Image 17" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Regras do Jogo: Sem Spoilers e Sem Decorar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para criar um GPT (que gera texto), temos uma regra de ouro: você não pode ler o futuro.&lt;/p&gt;

&lt;p&gt;Se o modelo pudesse ver a próxima palavra durante o treino, ele apenas copiaria a resposta em vez de aprender a prever.&lt;/p&gt;

&lt;p&gt;Para impedir essa “cola”, aplicamos uma Máscara Causal. Ela zera a atenção para qualquer palavra que venha depois da atual. É como colocar uma cortina no futuro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8ag70tcms4776f8sycs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj8ag70tcms4776f8sycs.png" alt="Image 18" width="700" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Além disso, para evitar que o modelo “decore” frases específicas, usamos o Dropout. Desligamos aleatoriamente algumas conexões de atenção durante o treino. Isso força o modelo a ser robusto e aprender caminhos alternativos para entender o contexto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p28mgbvh7y6zgf0s22j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9p28mgbvh7y6zgf0s22j.png" alt="Image 19" width="700" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Multi-Head Attention: Vários Pontos de Vista&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Linguagem é complexa. Uma frase pode ter uma estrutura gramatical difícil E um tom emocional sutil. É difícil focar nas duas coisas ao mesmo tempo.&lt;/p&gt;

&lt;p&gt;A solução? Multi-Head Attention (Atenção com Múltiplas Cabeças).&lt;/p&gt;

&lt;p&gt;Em vez de fazer esse processo uma vez, fazemos 4, 8 ou 12 vezes em paralelo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Head 1 (Cabeça 1) foca na gramática&lt;/strong&gt; (quem é o sujeito?).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Head 2 (Cabeça 2) foca na relação temporal&lt;/strong&gt; (aconteceu antes ou depois?).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Head 3 (Cabeça 3) foca no vocabulário específico.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhaloegs900l4v8ymo1cm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhaloegs900l4v8ymo1cm.png" alt="Image 20" width="700" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No final, juntamos tudo e temos uma compreensão super-humana do texto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Onde isso tudo se encaixa?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Atenção é o coração, mas precisa de um corpo. Ela é o primeiro grande bloco dentro da arquitetura do Transformer que estamos construindo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvttsmxbwscwjgbakhll8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvttsmxbwscwjgbakhll8.png" alt="Image 21" width="700" height="744"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois de entender o contexto com a Atenção, a informação flui para as redes neurais (Feed Forward) que processam esse significado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Mão na Massa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A teoria é linda, mas implementar o Self-Attention do zero, multiplicando matrizes na mão, é onde você realmente entende a mágica. E é exatamente isso que fazemos no notebook deste capítulo. Nada de import attention. Nós criamos a classe MultiHeadAttention linha por linha.&lt;/p&gt;

&lt;p&gt;Quer ver como transformar essa teoria em código Python puro?&lt;/p&gt;

&lt;p&gt;👇 Acesse agora:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/03-atencao/notebook.ipynb" rel="noopener noreferrer"&gt;Rodar no colab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Código no GitHub: Ver repositório:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No proximo post, vamos pegar esses blocos de atenção e finalmente construir o corpo do GPT. Prepare-se, porque o monstro vai ganhar vida.&lt;/p&gt;

&lt;p&gt;🧟‍♂️🤖&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero — Sessão 05: Ensinando o Modelo a Falar (A Escola da Probabilidade) 🎓🗣️</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-05-ensinando-o-modelo-a-falar-a-escola-da-probabilidade-1b68</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-05-ensinando-o-modelo-a-falar-a-escola-da-probabilidade-1b68</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero — Sessão 05: Ensinando o Modelo a Falar (A Escola da Probabilidade) 🎓🗣️ &lt;br&gt;
Imagine que você acabou de construir um robô perfeito. Ele tem corpo, cérebro eletrônico e cordas vocais sintéticas. Mas quando você o liga, ele diz: “Asdfjkl çlxzkcvb”.&lt;/p&gt;

&lt;p&gt;Frustrante? Não, esperado.&lt;/p&gt;

&lt;p&gt;Na Sessão 04, nós construímos o corpo do GPT. Ele tem todas as conexões neurais necessárias, mas não tem conhecimento. Ele é como um recém-nascido: tem potencial infinito, mas ainda não viu o mundo.&lt;/p&gt;

&lt;p&gt;Na Sessão 05, entramos na fase mais mágica e demorada de todas: o Pré-Treinamento. É hora de mandar nosso modelo para a escola. E, como Sebastian Raschka explica no Capítulo 5 de seu livro, essa escola não usa gramática ou dicionários. Ela usa estatística pura.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Loop Infinito: Tentar, Errar, Ajustar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como se ensina uma máquina que não pensa?&lt;/p&gt;

&lt;p&gt;Simples: você a força a adivinhar milhões de vezes e corrige cada erro.&lt;/p&gt;

&lt;p&gt;O ciclo de vida de um LLM no treinamento é uma rotina repetitiva e exaustiva, parecida com um estudante fazendo simulados sem parar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouoin8v41xkucd31sswd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouoin8v41xkucd31sswd.png" alt="Image 9" width="700" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1. O modelo recebe: “Era uma vez um…”&lt;/p&gt;

&lt;p&gt;2. Ele chuta: “..microondas.” ❌&lt;/p&gt;

&lt;p&gt;3. Nós dizemos: “Errado! Era ‘dragão’.”&lt;/p&gt;

&lt;p&gt;4. O algoritmo (Backpropagation) ajusta os neurônios do modelo para que, da próxima vez, a probabilidade de “dragão” seja um pouquinho maior e a de “microondas” seja menor.&lt;/p&gt;

&lt;p&gt;Multiplique isso por bilhões de frases e o modelo deixa de chutar “microondas” em contos de fadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Régua do Erro: Cross Entropy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mas como medimos o “tamanho” do erro?&lt;/p&gt;

&lt;p&gt;Se o modelo chutar “cachorro” em vez de “gato”, o erro é pequeno (são animais parecidos). Se ele chutar “avião”, o erro é enorme.&lt;/p&gt;

&lt;p&gt;Para medir essa distância matemática, usamos a Cross Entropy (Entropia Cruzada).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjbxlq2k3k2qfsox17yg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjbxlq2k3k2qfsox17yg.png" alt="Image 10" width="700" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ela é a professora rigorosa que dá uma nota para cada tentativa do modelo. O objetivo do treino é simples: fazer essa nota de erro (Loss) cair até chegar perto de zero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. O Ritmo da Escola: Batches e Epochs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;Não dá para o modelo ler a internet inteira de uma vez. Ele engasgaria.&lt;/p&gt;

&lt;p&gt;Por isso, dividimos o estudo em pequenos pedaços chamados Batches (lotes). E quando ele termina de ver todos os dados uma vez, dizemos que completou uma Epoch (época).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyts9xpsgzemda4kgakwe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyts9xpsgzemda4kgakwe.png" alt="Image 11" width="700" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É um processo industrial. Entra texto, sai erro, ajusta pesos. Repete. Repete. Repete. Até que a mágica da inteligência comece a emergir dos números.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. O Dilema da Criatividade: Como o Modelo Escolhe?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Depois de treinado, o modelo não dá uma resposta. Ele dá probabilidades para todas as palavras do mundo.&lt;/p&gt;

&lt;p&gt;Quem escolhe a palavra final? Nós, através da Estratégia de Decodificação (Decoding Strategy).&lt;/p&gt;

&lt;p&gt;Isso define a &lt;strong&gt;&lt;em&gt;personalidade&lt;/em&gt;&lt;/strong&gt; do modelo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Greedy&lt;/strong&gt; (Ganancioso): Sempre escolhe a palavra mais provável. O modelo fica chato, repetitivo e robótico. 🤖&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Temperature / Top-k&lt;/strong&gt;: Nós adicionamos um pouco de caos controlado. O modelo arrisca palavras menos óbvias e se torna criativo. 🎨&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm75ah5ly0alhemni7j3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm75ah5ly0alhemni7j3p.png" alt="Image 12" width="700" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Salvando o Cérebro: Checkpoints&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Treinar um LLM é caro e demorado. Se a luz acabar no meio do processo, você perde dias de trabalho.&lt;/p&gt;

&lt;p&gt;Por isso, aprendemos a importância vital dos Checkpoints: salvar uma “cópia de segurança” do cérebro do modelo a cada etapa importante.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ripi88pz6m84j59bp4n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ripi88pz6m84j59bp4n.png" alt="Image 13" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Mão na Massa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na Sessão 05, o nosso notebook deixa de ser estático. Nós implementamos o loop de treinamento real. Vemos a barra de progresso avançar e a curva de erro cair (o gráfico mais satisfatório para um cientista de dados!).&lt;/p&gt;

&lt;p&gt;Nós pegamos o nosso GPTMini, alimentamos ele com texto e vimos ele aprender a formar suas primeiras frases coerentes.&lt;/p&gt;

&lt;p&gt;Quer ver o momento exato em que a máquina aprende a escrever?&lt;/p&gt;

&lt;p&gt;👇 Acesse o laboratório:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/05-pre-treinamento/notebook.ipynb" rel="noopener noreferrer"&gt;Treinar Modelo na Sessão 05&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora nosso modelo sabe falar. Mas ele sabe o que fazer? Na próxima sessão, vamos ensinar uma profissão para ele com o Fine-Tuning. 🎯👨‍⚕️&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero #01: A Mágica é Apenas Estatística (Bem Feita) 🎩📊</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-01-a-magica-e-apenas-estatistica-bem-feita-7k</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-01-a-magica-e-apenas-estatistica-bem-feita-7k</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero #01: A Mágica é Apenas Estatística (Bem Feita) 🎩📊 &lt;/p&gt;

&lt;p&gt;Você se lembra da primeira vez que usou o ChatGPT?&lt;/p&gt;

&lt;p&gt;Para mim, houve um momento de estranhamento. Eu digitava uma pergunta complexa, e a resposta surgia na tela, palavra por palavra, como se houvesse um humano do outro lado digitando em tempo real. Parecia haver raciocínio, intenção, talvez até… consciência?&lt;/p&gt;

&lt;p&gt;É fácil se deixar levar pela ilusão da “Inteligência”.&lt;/p&gt;

&lt;p&gt;Mas, como engenheiros (ou aspirantes a), nosso trabalho não é admirar a mágica. É descobrir onde está o alçapão, os espelhos e os fios invisíveis.&lt;/p&gt;

&lt;p&gt;Nessa parte da nossa série Fazendo um LLM do Zero, nós puxamos a cortina. E a verdade é, ao mesmo tempo, decepcionante para os sonhadores e fascinante para os construtores:&lt;/p&gt;

&lt;p&gt;O modelo não sabe o que está dizendo. Ele está apenas chutando a próxima palavra.&lt;/p&gt;

&lt;p&gt;Bem-vindo ao mundo da Previsão do Próximo Token.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔮 A Bola de Cristal Probabilística&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para entender um Large Language Model (LLM), você precisa esquecer a ideia de “cérebro digital” por um minuto e olhar para o seu celular.&lt;/p&gt;

&lt;p&gt;Abra o WhatsApp. Digite “Bom”.&lt;/p&gt;

&lt;p&gt;O seu teclado provavelmente vai sugerir “dia”, “trabalho” ou “fim”.&lt;/p&gt;

&lt;p&gt;O seu teclado entende o conceito de saudação matinal? Não.&lt;/p&gt;

&lt;p&gt;Ele sabe que você está feliz ou cansado? Não.&lt;/p&gt;

&lt;p&gt;Ele apenas calculou uma probabilidade condicional: “Dado que o usuário digitou ‘Bom’, existe 80% de chance da próxima palavra ser ‘dia’”.&lt;/p&gt;

&lt;p&gt;Um LLM, no fundo, é um autocompletar que tomou esteroides. 💊&lt;/p&gt;

&lt;p&gt;A diferença é a escala. Enquanto o teclado do seu celular olha para as últimas 2 ou 3 palavras, um modelo como o GPT-4 olha para milhares de palavras de contexto (livros, artigos, código, conversas) para calcular qual é o próximo pedacinho de texto (token) que faz mais sentido estatístico.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm17y87v6radw83dgu7sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm17y87v6radw83dgu7sc.png" alt="Image 7" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O fluxo simples de Texto -&amp;gt; Modelo -&amp;gt; Probabilidade&lt;/p&gt;

&lt;p&gt;Quando o modelo escreve um poema ou um código em Python, ele não planejou o resultado final. Ele está navegando no escuro, acendendo uma luz (token) de cada vez, baseando-se apenas no caminho que já percorreu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏗️ A Revolução Transformer: Paramos de Ler como Humanos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se a ideia é apenas “prever a próxima palavra”, por que não tínhamos IAs assim nos anos 90?&lt;/p&gt;

&lt;p&gt;O problema era a memória.&lt;/p&gt;

&lt;p&gt;Antigamente, as Redes Neurais Recorrentes (RNNs) liam texto como nós, humanos cansados: uma palavra de cada vez, da esquerda para a direita.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“O”… (ok, guardei)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“gato”… (ok, é um animal)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“subiu”… (ação)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“telhado”.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quando a frase era longa, a rede já tinha “esquecido” o começo. Ela perdia o contexto.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;A grande virada de chave — e o motivo pelo qual estamos vivendo esse hype hoje — foi a introdução da arquitetura Transformer (apresentada pelo&lt;/p&gt;

&lt;p&gt;Google no paper “Attention Is All You Need” em 2017).&lt;/p&gt;

&lt;p&gt;O Transformer não lê como a gente. Ele olha para a frase inteira de uma vez só. Ele processa tudo em paralelo. É como se, em vez de ler um livro página por página, ele tirasse uma foto de todas as páginas ao mesmo tempo e entendesse as conexões entre o capítulo 1 e o capítulo 10 instantaneamente.&lt;/p&gt;

&lt;p&gt;Isso permitiu treinar modelos com quantidades absurdas de dados. E, com dados suficientes, a estatística começou a parecer inteligência.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vu0wlops99fxiua7bms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vu0wlops99fxiua7bms.png" alt="Image 8" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧩 O GPT é um “Decoder-Only”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Existem muitos tipos de Transformers, mas nós vamos focar na arquitetura GPT (Generative Pre-trained Transformer).&lt;/p&gt;

&lt;p&gt;O GPT é o que chamamos de modelo Decoder-Only.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cjnsq8gooip0uxb8svq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cjnsq8gooip0uxb8svq.png" alt="Image 9" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine um tradutor.&lt;/p&gt;

&lt;p&gt;1. Ele ouve a frase em inglês (Encoder).&lt;/p&gt;

&lt;p&gt;2. Ele gera a frase em português (Decoder).&lt;/p&gt;

&lt;p&gt;O GPT ignorou a primeira parte. Ele é especialista apenas na segunda: gerar. Ele é treinado para olhar para o passado e alucinar o futuro, token por token. É por isso que ele é tão bom em criar histórias e conversar, mas às vezes falha em tarefas que exigem “ver o todo” antes de responder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Mão na Massa: O Que Fizemos no Código?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chega de teoria. No notebook desta sessão, não usamos bibliotecas prontas de “caixa preta” como langchain ou openai. Nós descemos para o nível do PyTorch.&lt;/p&gt;

&lt;p&gt;Neste Passo 01, você vai encontrar:&lt;/p&gt;

&lt;p&gt;1. A intuição visual: Gráficos que explicam como o texto entra e sai do modelo.&lt;/p&gt;

&lt;p&gt;2. O conceito de Contexto: Como o tamanho da “janela” que o modelo enxerga define o quão “inteligente” ele parece.&lt;/p&gt;

&lt;p&gt;3. A estrutura do projeto: Como organizar pastas e arquivos para não se perder quando o código crescer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Por que isso importa?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quando você entende que o LLM é uma máquina de probabilidade e não um ser consciente, você se torna um usuário (e desenvolvedor) muito melhor.&lt;/p&gt;

&lt;p&gt;Você para de tentar “convencer” o chat e começa a “engenheirar” o prompt. Você entende por que ele alucina (afinal, ele só quer completar o padrão, mesmo que precise inventar um fato).&lt;/p&gt;

&lt;p&gt;A mágica desaparece, mas dá lugar a algo muito mais poderoso: o controle.&lt;/p&gt;

&lt;p&gt;Pronto para ver como transformar texto em números e começar a calcular essas probabilidades? Esse é o tema da próxima sessão.&lt;/p&gt;

&lt;p&gt;👇 Acesse o material completo e execute o código agora:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/01-o-que-e-um-llm/notebook.ipynb" rel="noopener noreferrer"&gt;Clique aqui para rodar&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório no GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos adiante, onde vamos aprender a matemática necessaria para o nosso modelo. Até lá! 👋&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero — Sessão 06: Dando uma Profissão ao Modelo (Fine-Tuning) 🎯👨‍⚕️</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-06-dando-uma-profissao-ao-modelo-fine-tuning-19kc</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-06-dando-uma-profissao-ao-modelo-fine-tuning-19kc</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero — Sessão 06: Dando uma Profissão ao Modelo (Fine-Tuning) 🎯👨‍⚕️ &lt;br&gt;
Até a sessão anterior, nosso GPT era como um adolescente que leu a biblioteca inteira: ele conhece todas as palavras, sabe construir frases bonitas e entende a estrutura da língua. Mas se você perguntar a ele: “Este e-mail é um spam ou uma promoção?”, ele pode simplesmente começar a escrever um poema sobre e-mails.&lt;/p&gt;

&lt;p&gt;Ele tem conhecimento, mas não tem foco.&lt;/p&gt;

&lt;p&gt;Na Sessão 06, aprendemos a transformar esse “estudante geral” em um “profissional especializado”. Como Sebastian Raschka detalha no Capítulo 6 de seu livro, esse processo se chama Fine-Tuning (Ajuste Fino). É aqui que a IA deixa de ser apenas um brinquedo curioso e se torna uma ferramenta útil para resolver problemas reais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Da Educação Básica à Especialização&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Podemos comparar a vida de um LLM com a carreira de um médico.&lt;/p&gt;

&lt;p&gt;O Pré-treinamento (que vimos na Sessão 05) é a escola e a faculdade de medicina: o modelo aprende tudo sobre o corpo humano e a biologia de forma geral.&lt;/p&gt;

&lt;p&gt;O Fine-tuning é a residência médica: o modelo escolhe uma especialidade (como Cardiologia ou Dermatologia) e foca intensamente nela.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnjbmh9v551nxmhgjzdv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnjbmh9v551nxmhgjzdv.png" alt="Image 9" width="700" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em vez de aprender a prever qualquer palavra, o modelo agora é treinado para uma tarefa específica, como Classificação de Texto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Colocando um&lt;/strong&gt;🎩 &lt;strong&gt;“Chapéu de Decisão”&lt;/strong&gt;🧢&lt;strong&gt;(Classification Head)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Um GPT original foi desenhado para gerar texto. Para transformá-lo em um classificador (alguém que diz “&lt;strong&gt;Sim/Não&lt;/strong&gt;”, “&lt;strong&gt;Positivo/Negativo&lt;/strong&gt;”), precisamos fazer uma pequena cirurgia no seu cérebro.&lt;/p&gt;

&lt;p&gt;Nós removemos a camada que gera palavras e colocamos uma Cabeça de Classificação.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfh6ecv4grwl37fzzmb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfh6ecv4grwl37fzzmb6.png" alt="Image 10" width="700" height="661"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa nova camada olha para toda a compreensão de texto que o modelo já tem e toma uma decisão final: “Baseado em tudo o que li nesta frase, a chance de ser Spam é 98%”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Inteligência Eficiente: Congelar ou não Congelar?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Treinar um modelo inteiro de novo seria um desperdício de tempo e dinheiro. Afinal, o modelo já sabe o que é um verbo ou um substantivo. Por que ensinar isso de novo?&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;Sebastian Raschka nos mostra que podemos ser inteligentes: Congelamos (Freeze) a maior parte do modelo e treinamos apenas a camada final. Ou, se tivermos mais dados, podemos Descongelar (Unfreeze) as últimas camadas para um ajuste mais fino.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yz41pvfstepq6vbjmpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4yz41pvfstepq6vbjmpm.png" alt="Image 11" width="700" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É como se você contratasse um mestre de obras experiente: você não precisa ensiná-lo a usar um martelo, apenas mostra onde quer que a nova parede seja construída.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. A Nova Linha de Montagem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O treinamento agora muda de cara. Não usamos mais apenas “texto puro”. Usamos Dados Rotulados (&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;em&gt;“Eu amei este filme” -&amp;gt;&lt;/em&gt;&lt;strong&gt;Rótulo&lt;/strong&gt;&lt;em&gt;:&lt;/em&gt;&lt;strong&gt;Positivo&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fguebheu4jx126yqvgg07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fguebheu4jx126yqvgg07.png" alt="Image 12" width="700" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O modelo processa o texto, passa pela cabeça de classificação e nós comparamos a resposta dele com o rótulo real. O erro agora não é mais “&lt;em&gt;qual era a próxima palavra&lt;/em&gt;”, mas sim “&lt;em&gt;você acertou a categoria?&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. O Diagnóstico Final: A Matriz de Confusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como saber se o nosso especialista é realmente bom? Apenas “&lt;strong&gt;&lt;em&gt;acurácia&lt;/em&gt;&lt;/strong&gt;” pode enganar.&lt;/p&gt;

&lt;p&gt;Se 90% dos seus e-mails não são spam, e o modelo disser “não é spam” para tudo, ele terá 90% de acerto, mas será um modelo inútil para detectar spams reais.&lt;/p&gt;

&lt;p&gt;Para isso, usamos a Matriz de Confusão. Ela nos mostra onde o modelo está “confuso”: ele está deixando passar muito spam (Falso Negativo) ou está bloqueando e-mails importantes (Falso Positivo)?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4x9vp4r9vastzd3zu22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi4x9vp4r9vastzd3zu22.png" alt="Image 13" width="700" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Mão na Massa&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na Sessão 06, o nosso laboratório prático foi sobre transformar o GPTMini em um detector de sentimentos. Nós pegamos os pesos que treinamos na&lt;/p&gt;

&lt;p&gt;Sessão 05, adicionamos a camada de classificação e vimos o modelo aprender a distinguir opiniões.&lt;/p&gt;

&lt;p&gt;É a prova de que o conhecimento geral é a base para qualquer especialidade.&lt;/p&gt;

&lt;p&gt;Quer transformar seu modelo em um especialista?&lt;/p&gt;

&lt;p&gt;👇 Acesse os materiais desta sessão:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/06-fine-tuning/notebook.ipynb" rel="noopener noreferrer"&gt;Rodar Fine-Tuning na Sessão 06&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora o modelo tem um emprego. Mas ele sabe conversar conosco e seguir ordens complexas? Esse é o desafio final da Sessão 07: Instruction Tuning.&lt;/p&gt;

&lt;p&gt;Nos vemos lá! 💬🤝&lt;/p&gt;

</description>
      <category>llm</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero — Sessão 04: A Arquitetura da Mente (Construindo o Corpo do GPT) 🏗️🤖</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-04-a-arquitetura-da-mente-construindo-o-corpo-do-gpt-5725</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-sessao-04-a-arquitetura-da-mente-construindo-o-corpo-do-gpt-5725</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero — Sessão 04: A Arquitetura da Mente (Construindo o Corpo do GPT) 🏗️🤖 Até agora, nossa jornada foi sobre coletar os materiais básicos.&lt;/p&gt;

&lt;p&gt;Aprendemos a transformar palavras em números.&lt;/p&gt;

&lt;p&gt;Entendemos como a &lt;strong&gt;&lt;em&gt;Atenção&lt;/em&gt;&lt;/strong&gt; permite que esses números se conectem.&lt;/p&gt;

&lt;p&gt;Mas ter tijolos e cimento não é o mesmo que ter uma casa. Você precisa de uma planta, de engenharia e de estrutura.&lt;/p&gt;

&lt;p&gt;Na Sessão 04, deixamos de olhar para as peças isoladas e começamos a construir o edifício. É aqui que o GPT deixa de ser uma ideia matemática e se torna um modelo funcional. Como Sebastian Raschka detalha no Capítulo 4 de seu livro Build a Large Language Model (From Scratch), o segredo da inteligência desses modelos não está em uma única peça mágica, mas na forma como empilhamos blocos simples de forma repetitiva e organizada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. O Bloco Fundamental: O Módulo Transformer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Um GPT não é uma &lt;strong&gt;massa&lt;/strong&gt; única de código. Ele é modular. Imagine que estamos construindo um arranha-céu onde cada andar é idêntico. Se você souber construir um andar perfeitamente, você pode construir cem.&lt;/p&gt;

&lt;p&gt;No mundo dos LLMs, esse &lt;strong&gt;andar&lt;/strong&gt; é o Bloco Transformer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwscl4p902rzxoagnhub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwscl4p902rzxoagnhub.png" alt="Image 9" width="700" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cada um bloco desses contém os órgãos vitais do modelo: a Atenção (para olhar o contexto) e a Rede Feedforward (para processar o que viu).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A Esteira de Produção (O Fluxo de Dados)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quando um token entra no modelo, ele não é processado de qualquer jeito. Existe uma ordem rigorosa. Como Sebastian Raschka descreve, a informação passa por uma espécie de &lt;strong&gt;esteira de produção&lt;/strong&gt; dentro de cada bloco.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffansuwqzu0n91jxmv4y5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffansuwqzu0n91jxmv4y5.png" alt="Image 10" width="700" height="831"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A informação entra, é refinada pela atenção, estabilizada por normalizações, processada pela rede neural e entregue para o próximo bloco. Esse fluxo garante que o modelo não &lt;strong&gt;&lt;em&gt;se perca&lt;/em&gt;&lt;/strong&gt; no meio do caminho.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A Refinaria de Conhecimento (Feedforward Network)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se a Atenção é o “olhar” do modelo, a rede Feedforward é o &lt;strong&gt;pensar&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Enquanto a Atenção decide quais palavras são importantes entre si, a rede Feedforward processa cada palavra individualmente para extrair significados mais profundos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6se3ib5dks4ndt0w8jd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6se3ib5dks4ndt0w8jd.png" alt="Image 11" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É como se a Atenção trouxesse as matérias-primas e a Feedforward fosse a refinaria que transforma aquilo em conhecimento útil.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Redes de Segurança: Residuais e Normalização&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aqui entra um problema real de engenharia: quando empilhamos muitos blocos (como os 12 blocos do GPT-2 ou os 96 do GPT-3), a matemática pode começar a &lt;strong&gt;&lt;em&gt;quebrar&lt;/em&gt;&lt;/strong&gt;. Os números podem ficar grandes demais ou pequenos demais, e o modelo para de aprender.&lt;/p&gt;

&lt;p&gt;Para resolver isso, usamos dois truques essenciais que Sebastian Raschka explora em seu livro:&lt;/p&gt;

&lt;p&gt;1. &lt;strong&gt;Conexões Residuai&lt;/strong&gt;s: Atalhos que permitem que a informação original &lt;strong&gt;&lt;em&gt;pule&lt;/em&gt;&lt;/strong&gt; camadas, garantindo que nada importante seja esquecido.&lt;/p&gt;

&lt;p&gt;2. &lt;strong&gt;Layer Normalization&lt;/strong&gt;: Uma técnica que mantém os números em uma escala saudável, como um regulador de voltagem que impede um curto-circuito.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtt95pgq1hp8q84duqwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtt95pgq1hp8q84duqwl.png" alt="Image 12" width="700" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. O Pipeline Completo: Nasce um GPT&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Juntando tudo — os embeddings que vimos na Sessão 02, a Atenção da Sessão 03 e os blocos que montamos agora — temos finalmente o pipeline completo de um modelo GPT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyag1zql2twwalxeuq05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyag1zql2twwalxeuq05.png" alt="Image 13" width="700" height="831"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O modelo recebe tokens, adiciona a noção de posição, passa por vários blocos de processamento e, no final, entrega uma lista de probabilidades:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Qual é a próxima palavra mais provável?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Do Papel para o Código&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nesta Sessão 04, nosso trabalho no notebook foi de &lt;strong&gt;&lt;em&gt;Arquiteto de Sistemas&lt;/em&gt;&lt;/strong&gt;. Nós implementamos:&lt;/p&gt;

&lt;p&gt;A classe TransformerBlock unindo Atenção e Feedforward.&lt;/p&gt;

&lt;p&gt;A lógica de LayerNorm e conexões residuais.&lt;/p&gt;

&lt;p&gt;O modelo GPTMini, que é o nosso &lt;strong&gt;&lt;em&gt;cérebro&lt;/em&gt;&lt;/strong&gt; completo pronto para ser treinado.&lt;/p&gt;

&lt;p&gt;É um momento marcante: pela primeira vez, temos um modelo que, embora ainda não saiba falar (ele ainda não foi treinado!), já tem toda a estrutura física para aprender qualquer linguagem do mundo.&lt;/p&gt;

&lt;p&gt;Quer ver como essas peças se encaixam no PyTorch?&lt;/p&gt;

&lt;p&gt;👇 Acesse o laboratório prático:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📓 Notebook no Google Colab:&lt;/strong&gt;&lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/04-gpt-do-zero/notebook.ipynb" rel="noopener noreferrer"&gt;Rodar Sessão 04&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📂 Repositório GitHub:&lt;/strong&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;vongrossi/fazendo-um-llm-do-zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora o corpo está pronto. Na próxima sessão, vamos dar um &lt;strong&gt;&lt;em&gt;sopro de vida&lt;/em&gt;&lt;/strong&gt;: O Pré-treinamento. ⚡📖&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
    <item>
      <title>Fazendo um LLM do Zero #00: Antes da Inteligência, a Oficina 🛠️🧠</title>
      <dc:creator>Von Grossi</dc:creator>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      <link>https://forem.com/vongrossi/fazendo-um-llm-do-zero-00-antes-da-inteligencia-a-oficina-4n6f</link>
      <guid>https://forem.com/vongrossi/fazendo-um-llm-do-zero-00-antes-da-inteligencia-a-oficina-4n6f</guid>
      <description>&lt;p&gt;Fazendo um LLM do Zero #00: Antes da Inteligência, a Oficina 🛠️🧠 “Como isso realmente funciona por dentro?”&lt;/p&gt;

&lt;p&gt;Essa foi a pergunta que me tirou do lugar de apenas usuário de Inteligência Artificial para o de estudante de seus fundamentos. Estamos vivendo a era dos modelos de linguagem gigantes, mas muitas vezes os usamos como caixas pretas mágicas.&lt;/p&gt;

&lt;p&gt;Decidi mudar isso. Baseado no excelente livro Build a Large Language Model (From Scratch), de Sebastian Raschka, iniciei uma jornada para construir um GPT do zero. Mas antes de falarmos de neurônios artificiais ou atenção, precisamos alinhar o terreno.&lt;/p&gt;

&lt;p&gt;Bem-vindo ao Passo Zero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;☁️ 1. O Laboratório na Nuvem: Google Colab&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A primeira grande barreira para quem estuda IA costuma ser o hardware. “Preciso de uma GPU de milhares de dólares?”. A resposta curta é: Não.&lt;/p&gt;

&lt;p&gt;Para esta série, escolhi o Google Colab como nossa oficina principal. Ele remove toda a fricção técnica de configuração de ambiente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qnxh9r5itnrgqyisr8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qnxh9r5itnrgqyisr8d.png" alt="Image 7" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acelerando o aprendizado sem barreiras de instalação local (Na minha maquina Funciona).&lt;/p&gt;

&lt;p&gt;O Colab nos dá acesso a hardware potente (GPU/TPU) direto no navegador. Isso democratiza o estudo: o que importa agora é a sua lógica, não o seu computador. Os quatro pilares que sustentam nossa jornada no Colab são:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero Instalação:&lt;/strong&gt; O ambiente já vem pronto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nuvem:&lt;/strong&gt; Acesso de qualquer lugar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interatividade:&lt;/strong&gt; Rodamos o código bloco a bloco, testando cada ideia na hora.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Análise:&lt;/strong&gt; Gráficos e métricas integrados para entender o aprendizado do modelo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔥 2. PyTorch: A Nossa Oficina Matemática&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se o LLM é um cérebro, o PyTorch é o sistema biológico que o sustenta. Ele é a biblioteca de Deep Learning que escolhi para construir cada camada do nosso modelo.&lt;/p&gt;

&lt;p&gt;Muitas vezes, a matemática da IA parece assustadora, mas o PyTorch a transforma em algo palpável.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qcqeaseefyfsib74os0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1qcqeaseefyfsib74os0.png" alt="Image 8" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O ecossistema que transforma matrizes em inteligência&lt;/p&gt;

&lt;p&gt;O que realmente &lt;strong&gt;ligou&lt;/strong&gt; para mim ao estudar o PyTorch foi entender sua hierarquia:&lt;/p&gt;

&lt;p&gt;1. &lt;strong&gt;Tensores&lt;/strong&gt;: São a fundação. Arrays multidimensionais que carregam nossos dados.&lt;/p&gt;

&lt;p&gt;2. &lt;strong&gt;Autograd&lt;/strong&gt;: O motor que calcula o erro e ajusta os pesos do modelo automaticamente.&lt;/p&gt;

&lt;p&gt;3. &lt;strong&gt;nn.Module&lt;/strong&gt;: As peças de LEGO (camadas lineares, funções de ativação) que vamos empilhar para criar o GPT.&lt;/p&gt;

&lt;p&gt;Join Medium for free to get updates from this writer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📦 3. O Ecossistema de Ferramentas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ninguém constrói um LLM sozinho. Em Python, temos uma “caixa de ferramentas” modular que nos permite focar no que realmente importa: o conceito&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F857sehe9tcd5sf0nw0ff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F857sehe9tcd5sf0nw0ff.png" alt="Image 9" width="700" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Estamos prontos!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O objetivo deste Passo Zero foi garantir que você tenha tudo o que precisa para começar sem dores de cabeça com instalação ou hardware.&lt;/p&gt;

&lt;p&gt;Construir uma IA não é mágica; é engenharia, é tentativa e erro, e é, acima de tudo, curiosidade. Com o ambiente configurado e as bibliotecas prontas, estamos prontos para a primeira pergunta real da série: O que é um LLM de verdade?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧪 Um pouco de experimento!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O ambiente deste capítulo já está disponível para você testar. Acesse o notebook prático no Google Colab, valide seu ambiente e rode seu primeiro tensor:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://colab.research.google.com/github/vongrossi/fazendo-um-llm-do-zero/blob/main/00-passo-zero/notebook.ipynb" rel="noopener noreferrer"&gt;Abrir Passo Zero no Google Colab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta série é um projeto Open Source e você pode acompanhar cada atualização, sugerir melhorias ou clonar o código no repositório oficial:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vongrossi/fazendo-um-llm-do-zero" rel="noopener noreferrer"&gt;🔗 GitHub: Fazendo um LLM do Zero&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você já teve problemas tentando configurar ambientes de IA para rodar localmente?&lt;/p&gt;

&lt;p&gt;Conte sua experiência!&lt;/p&gt;

&lt;p&gt;Referências:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Livro:&lt;/strong&gt; Build a Large Language Model (From Scratch) de Sebastian Raschka.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Material Inspirado no repositório:&lt;/strong&gt; rasbt/LLMs-from-scratch &lt;a href="https://github.com/rasbt/LLMs-from-scratch" rel="noopener noreferrer"&gt;https://github.com/rasbt/LLMs-from-scratch&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>llms</category>
      <category>python</category>
      <category>genai</category>
      <category>gpt</category>
    </item>
  </channel>
</rss>
