{"projeto":"Axioma","base":"https://llms.newortho.com.br","modulos":[{"id":"M0","nome":"Alfabetização simbólica","semanas":3,"lema":"Antes de calcular, ler.","resumo":"O alfabeto completo da matemática aplicada a LLMs: cada letra grega, cada letra latina convencional, cada operador e cada índice, com o significado que eles realmente carregam em um paper de aprendizado de máquina.","porque":"Quase todo travamento na leitura de um paper de LLM não é de raciocínio, é de vocabulário. Quem reconhece que θ são os parâmetros, que α é a taxa de aprendizado e que o Σ tem um índice embaixo e um limite em cima já lê oitenta por cento das fórmulas sem esforço.","lab":"notacao","secoes":[{"titulo":"Por que a trilha começa aqui","corpo":["Uma fórmula matemática é uma frase muito comprimida. O autor economiza espaço substituindo palavras por símbolos, e cada símbolo carrega uma convenção que a comunidade aceitou ao longo de décadas. Quando você não conhece a convenção, a frase vira ruído visual e o cérebro desiste antes de tentar.","A boa notícia é que o vocabulário é pequeno e fechado. Aprendizado de máquina usa talvez quarenta símbolos com frequência real. Dominar esses quarenta é um investimento de três semanas que rende pelos oito meses seguintes e pelo resto da sua vida lendo material técnico.","A regra deste módulo é simples: nunca deixe passar um símbolo que você não sabe nomear. Nomear em voz alta é o teste. Se você consegue ler a fórmula da atenção em português corrente, você entendeu a fórmula."]},{"titulo":"O alfabeto grego e o que cada letra faz em aprendizado de máquina","corpo":["O grego não é decoração. Cada letra ganhou um papel por tradição, e essa tradição é surpreendentemente estável entre papers. A tabela do glossário deste Studio traz as vinte e quatro letras completas, maiúsculas e minúsculas, com nome, pronúncia em português e uso consagrado.","Seis delas respondem pela maior parte do que você vai encontrar em textos sobre LLMs. Teta, θ, é o conjunto de todos os parâmetros do modelo, os bilhões de números que o treino ajusta. Alfa, α, é a taxa de aprendizado, o tamanho do passo que o otimizador dá. Sigma minúsculo, σ, tem dois empregos: desvio padrão em estatística e função sigmoide em redes neurais, e o contexto sempre desfaz a ambiguidade. Sigma maiúsculo, Σ, é o somatório. Lambda, λ, é o peso de um termo de regularização. Épsilon, ε, é o número minúsculo que se soma a um denominador para evitar divisão por zero.","Quatro outras aparecem o tempo todo em textos sobre otimização e probabilidade: mi, μ, para média; delta maiúsculo, Δ, para variação; nabla, ∇, que não é grego mas mora na mesma vizinhança visual e significa gradiente; e pi maiúsculo, Π, para produtório."],"formulas":[{"html":"<i>θ</i><sub>novo</sub> = <i>θ</i><sub>velho</sub> − <i>α</i> ∇<i>L</i>(<i>θ</i>)","leitura":"Teta novo é igual a teta velho menos alfa vezes o gradiente da perda em relação a teta. Ou seja: os parâmetros novos são os antigos deslocados um passo de tamanho alfa na direção contrária à de maior subida da perda."}]},{"titulo":"As letras latinas convencionais","corpo":["O latim também tem convenção. Letras minúsculas em negrito ou com seta costumam ser vetores, maiúsculas costumam ser matrizes, e minúsculas simples costumam ser escalares, ou seja, números soltos.","O conjunto que você mais verá: x é a entrada, y é a saída verdadeira, ŷ (lê-se y chapéu) é a saída prevista pelo modelo, W é uma matriz de pesos, b é o viés, n é o número de exemplos, d é a dimensão de um vetor, k é uma contagem ou um recorte, i e j são índices de posição, t é o passo de tempo, L é a função de perda e f é uma função genérica.","Em textos de Transformer, três letras ganharam nome próprio: Q de query, ou consulta; K de key, ou chave; V de value, ou valor. Elas são matrizes, e a fórmula da atenção é uma receita de como combiná-las."]},{"titulo":"Operadores, índices e estruturas","corpo":["O somatório Σ diz some tudo. Embaixo dele vem a variável de contagem e o valor inicial, em cima vem o valor final, e à direita vem a expressão a somar. O produtório Π faz o mesmo com multiplicação, e aparece em verossimilhança, que é a probabilidade de uma sequência inteira.","Índices e subscritos localizam. O símbolo xᵢ é o elemento i do vetor x. O símbolo Wᵢⱼ é o elemento da linha i e coluna j da matriz W. Sobrescritos podem ser potência, como x², ou rótulo de camada, como h⁽³⁾ para a saída da terceira camada, e a distinção vem do contexto e dos parênteses.","Três símbolos de conjunto fecham o essencial: ∈ significa pertence a, ℝ é o conjunto dos números reais, e ℝᵈ é o conjunto dos vetores de d números reais. Escrever x ∈ ℝ⁷⁶⁸ é dizer que x é uma lista de setecentos e sessenta e oito números reais, que é exatamente o que um embedding é."],"formulas":[{"html":"<i>S</i> = <span>Σ</span><sub><i>i</i>=1</sub><sup><i>n</i></sup> <i>x</i><sub><i>i</i></sub>","leitura":"S é igual ao somatório, com i indo de um até n, de x índice i. Em português: some todos os elementos do vetor x, do primeiro ao último."},{"html":"<i>P</i>(<i>w</i><sub>1</sub>,…,<i>w</i><sub><i>n</i></sub>) = <span>Π</span><sub><i>t</i>=1</sub><sup><i>n</i></sup> <i>P</i>(<i>w</i><sub><i>t</i></sub> | <i>w</i><sub>&lt;<i>t</i></sub>)","leitura":"A probabilidade de uma sequência de palavras é o produto, para cada posição t, da probabilidade da palavra naquela posição dado tudo que veio antes. Esta é a definição formal do que um modelo de linguagem faz."}]},{"titulo":"Protocolo de leitura em voz alta","corpo":["Toda vez que encontrar uma fórmula nova, siga cinco passos na mesma ordem, sem pular. Primeiro, leia o lado esquerdo e diga o que está sendo definido. Segundo, varra o lado direito e nomeie cada símbolo, um por um, sem tentar entender ainda. Terceiro, identifique a operação principal, aquela que fica por último se você fosse calcular à mão. Quarto, traduza a fórmula inteira para uma frase em português. Quinto, invente um exemplo numérico minúsculo e calcule.","O quinto passo é o que separa reconhecer de entender. Um softmax de três números calculado à mão ensina mais do que dez leituras da definição."]},{"titulo":"Primeira fórmula real: atenção","corpo":["Você ainda não precisa entender o que a atenção faz. Precisa apenas conseguir nomear cada parte dela, e isso você já consegue.","Q, K e V são matrizes. O sobrescrito T significa transposta, que é a matriz girada trocando linhas por colunas. O d com subscrito k é a dimensão das chaves, um número. A raiz quadrada dele é um divisor de escala. E softmax é uma função que ainda vamos estudar, que transforma uma lista de números quaisquer em uma lista de probabilidades.","Leia em voz alta: atenção de Q, K e V é igual ao softmax de Q vezes K transposta dividido pela raiz de d k, tudo isso multiplicado por V. Se você conseguiu ler, o módulo zero já está fazendo efeito."],"formulas":[{"html":"Atenção(<i>Q</i>, <i>K</i>, <i>V</i>) = softmax( <i>Q K</i><sup>T</sup> ⁄ √<i>d</i><sub><i>k</i></sub> ) <i>V</i>","leitura":"Atenção de Q, K e V é o softmax do produto de Q por K transposta, dividido pela raiz quadrada de d k, e o resultado multiplica V."}]}],"exercicios":[{"q":"Leia em voz alta e traduza para português: L(θ) = −Σᵢ yᵢ log ŷᵢ","a":"A perda em função de teta é igual a menos o somatório, sobre i, de y índice i vezes o logaritmo de y chapéu índice i. Em português: a perda é a soma negativa, sobre todas as classes possíveis, do valor verdadeiro multiplicado pelo logaritmo do valor previsto. Esta é a cross-entropy, a perda padrão de um modelo de linguagem."},{"q":"O que significa exatamente x ∈ ℝ⁴?","a":"x pertence ao conjunto dos vetores de quatro números reais. Ou seja, x é uma lista de quatro números, como (1,2; −0,5; 3,0; 0,0)."},{"q":"Em h⁽²⁾ e em x², os sobrescritos significam a mesma coisa? Justifique.","a":"Não. Em h⁽²⁾ os parênteses indicam rótulo, é a saída da camada dois. Em x² não há parênteses e o dois é expoente, x multiplicado por si mesmo. A convenção dos parênteses existe exatamente para desfazer essa ambiguidade."},{"q":"Calcule à mão: Σᵢ₌₁³ 2i","a":"São três termos: 2 vezes 1, mais 2 vezes 2, mais 2 vezes 3, ou seja 2 + 4 + 6 = 12."},{"q":"Na fórmula da atenção, quantos objetos são matrizes, quantos são escalares e quantos são funções?","a":"Três matrizes: Q, K e V. Um escalar: d k, que é um número, a dimensão das chaves. Uma função: softmax. A transposta e a raiz quadrada são operações, não objetos."}],"videos":[{"titulo":"Essence of Linear Algebra, capítulo 1","fonte":"3Blue1Brown","url":"https://www.youtube.com/watch?v=fNk_zzaMoSs","nota":"Assista já no M0 apenas para acostumar o olho com a notação de vetores, sem se preocupar com o conteúdo."},{"titulo":"Notation, Dive into Deep Learning","fonte":"d2l.ai","url":"https://d2l.ai/chapter_notation/index.html","nota":"Página de referência canônica. Use como consulta, não como leitura linear."},{"titulo":"Math Notation for Machine Learning","fonte":"ML Glossary","url":"https://ml-cheatsheet.readthedocs.io/en/latest/math_notation.html","nota":"Tabela compacta para revisar em cinco minutos antes de cada sessão."}],"checkpoint":[{"q":"Cite o papel convencional de θ, α, σ, Σ, λ e ε.","a":"Parâmetros do modelo, taxa de aprendizado, desvio padrão ou função sigmoide, somatório, peso de regularização e constante minúscula de estabilidade numérica."},{"q":"Qual a diferença entre Σ e Π?","a":"Σ soma os termos, Π multiplica os termos."},{"q":"O que Wᵢⱼ identifica?","a":"O elemento da linha i e da coluna j da matriz W."},{"q":"Traduza: ŷ = f(x; θ)","a":"Y chapéu, a previsão, é a função f aplicada à entrada x, parametrizada por teta."},{"q":"Leia a fórmula da atenção inteira em voz alta sem consultar.","a":"Atenção de Q, K e V é o softmax de Q vezes K transposta dividido pela raiz de d k, multiplicado por V."}],"livros":[{"t":"Cálculo, volume 1","a":"James Stewart, Daniel Clegg e Saleem Watson","e":"tradução da 9ª edição norte-americana, Cengage, 2022","c":"Capítulo de revisão e Capítulo 1, Funções e Modelos","n":"Leia apenas para acostumar o olho com a notação de função, domínio, imagem e composição. Não faça os exercícios ainda; eles voltam no M1 e no M3.","u":"https://www.cengage.com.br/livro/calculo-volume-1-traducao-da-9a-edicao-norte-americana/"},{"t":"Mathematics for Machine Learning","a":"Marc Peter Deisenroth, A. Aldo Faisal e Cheng Soon Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Tabela de símbolos e abreviações, nas páginas iniciais","n":"É a tabela de notação mais próxima do vocabulário usado em papers de LLM. Imprima e deixe ao lado do teclado.","u":"https://mml-book.github.io/book/mml-book.pdf"},{"t":"Dive into Deep Learning","a":"Aston Zhang, Zachary Lipton, Mu Li e Alexander Smola","e":"Cambridge University Press, edição aberta e atualizada","c":"Capítulo Notation","n":"Referência canônica de notação em aprendizado profundo. Consulta, não leitura linear.","u":"https://d2l.ai/chapter_notation/index.html"}]},{"id":"M1","nome":"Fundamentos operacionais","semanas":3,"lema":"Logaritmo é a moeda corrente dos modelos.","resumo":"Potências, exponenciais, logaritmos e funções, tratados não como revisão escolar mas como as três ferramentas que aparecem dentro de toda perda, toda perplexidade e todo softmax.","porque":"Um LLM nunca trabalha com probabilidades diretas em produção. Ele trabalha com logaritmos de probabilidade, porque multiplicar milhares de números menores que um estoura a precisão da máquina. Entender o logaritmo é entender por que os logprobs existem.","lab":"logaritmo","secoes":[{"titulo":"Potências, raízes e a notação que economiza espaço","corpo":["Uma potência é multiplicação repetida: 2⁵ é dois multiplicado por si mesmo cinco vezes, ou seja trinta e dois. Três regras resolvem quase tudo. Multiplicar potências de mesma base soma os expoentes. Dividir subtrai. Elevar uma potência a outra multiplica os expoentes.","Expoente negativo é inverso: 2⁻³ é um sobre 2³, ou seja um oitavo. Expoente fracionário é raiz: x^(1/2) é a raiz quadrada de x. Essa última equivalência é o que permite escrever a divisão por raiz de d k na fórmula da atenção como uma multiplicação por d k elevado a menos um meio, forma que você verá em papers."],"formulas":[{"html":"<i>a</i><sup><i>m</i></sup> · <i>a</i><sup><i>n</i></sup> = <i>a</i><sup><i>m</i>+<i>n</i></sup>&nbsp;&nbsp;&nbsp; <i>a</i><sup>−<i>n</i></sup> = 1 ⁄ <i>a</i><sup><i>n</i></sup>&nbsp;&nbsp;&nbsp; <i>a</i><sup>1/2</sup> = √<i>a</i>","leitura":"As três regras que você precisa carregar: soma de expoentes na multiplicação, expoente negativo vira inverso, expoente um meio vira raiz."}]},{"titulo":"A exponencial e o número e","corpo":["O número e vale aproximadamente 2,71828 e não foi escolhido por gosto. Ele é a única base cuja função exponencial tem a propriedade de ser igual à sua própria derivada, o que a torna a escolha natural em qualquer coisa que envolva otimização.","A função eˣ tem três comportamentos que você precisa ter no dedo. Para x igual a zero, ela vale exatamente um. Para x positivo, ela cresce rápido, e o crescimento acelera. Para x negativo, ela cai em direção a zero mas nunca chega a zero, sempre fica positiva.","Essa última propriedade é a razão de o softmax existir na forma que tem. Aplicar exponencial a uma lista de números garante que todos fiquem positivos, o que é pré-requisito para transformá-los em probabilidades."],"formulas":[{"html":"<i>e</i><sup>0</sup> = 1&nbsp;&nbsp;&nbsp; <i>e</i><sup>1</sup> ≈ 2,718&nbsp;&nbsp;&nbsp; <i>e</i><sup>−2</sup> ≈ 0,135&nbsp;&nbsp;&nbsp; <i>e</i><sup>x</sup> &gt; 0 sempre","leitura":"Valores de referência para calcular softmax de cabeça e a garantia de positividade."}]},{"titulo":"Logaritmo: a pergunta invertida","corpo":["O logaritmo responde a pergunta inversa da potência. Se 2⁵ é trinta e dois, então o logaritmo de trinta e dois na base dois é cinco. A pergunta é: a que expoente preciso elevar a base para chegar neste número.","Em aprendizado de máquina, log sem base escrita significa quase sempre logaritmo natural, base e, também escrito ln. Duas propriedades fazem todo o trabalho pesado. O logaritmo de um produto é a soma dos logaritmos, o que transforma multiplicação em adição. E o logaritmo de um número entre zero e um é negativo, o que explica por que perdas aparecem com um sinal de menos na frente.","Junte as duas: a probabilidade de uma sequência de quinhentos tokens é o produto de quinhentos números menores que um, algo como dez elevado a menos oitocentos, que a máquina simplesmente arredonda para zero. Somando os quinhentos logaritmos, você obtém um número perfeitamente representável, algo como menos mil e duzentos. É por isso que a API devolve logprobs e não probs."],"formulas":[{"html":"log(<i>a</i>·<i>b</i>) = log <i>a</i> + log <i>b</i>&nbsp;&nbsp;&nbsp; log(1) = 0&nbsp;&nbsp;&nbsp; log(0,5) ≈ −0,693","leitura":"Produto vira soma, o logaritmo de um é zero, e o logaritmo de qualquer probabilidade real é negativo."}],"exemplo":{"titulo":"Por que logprobs","corpo":"Três tokens com probabilidades 0,4, 0,3 e 0,5. O produto é 0,06. Os logaritmos naturais são aproximadamente −0,92, −1,20 e −0,69, e a soma é −2,81. Confira: e elevado a −2,81 é aproximadamente 0,06. Com três tokens dá para fazer dos dois jeitos; com quinhentos, só o segundo sobrevive."}},{"titulo":"Funções, domínio e imagem","corpo":["Uma função é uma regra que aceita uma entrada e devolve exatamente uma saída. O domínio é o conjunto de entradas aceitas, a imagem é o conjunto de saídas possíveis.","Três funções merecem atenção especial porque moram dentro de redes neurais. A sigmoide, σ(x) igual a um sobre um mais e elevado a menos x, aceita qualquer número real e devolve algo entre zero e um, o que a torna um conversor de qualquer coisa em probabilidade. A ReLU, que devolve o próprio x se x for positivo e zero caso contrário, é a não linearidade mais usada em MLPs por ser barata de calcular. E o softmax, que veremos no M4, é a generalização da sigmoide para muitas saídas simultâneas.","Repare que sigmoide e ReLU são funções de um número para um número, enquanto o softmax é de uma lista para uma lista. Essa distinção evita confusão adiante."],"formulas":[{"html":"<i>σ</i>(<i>x</i>) = 1 ⁄ (1 + <i>e</i><sup>−<i>x</i></sup>)&nbsp;&nbsp;&nbsp; ReLU(<i>x</i>) = max(0, <i>x</i>)","leitura":"Sigmoide de x é um sobre um mais e elevado a menos x. ReLU de x é o máximo entre zero e x."}]},{"titulo":"Ordem de operações em fórmulas compostas","corpo":["Fórmulas de aprendizado de máquina empilham operações, e a ordem de leitura é sempre de dentro para fora. Comece pelo que está mais aninhado, resolva, e suba um nível.","Na fórmula da atenção, a ordem de cálculo é: primeiro Q vezes K transposta, depois a divisão pela raiz de d k, depois o softmax do resultado inteiro, e só então a multiplicação por V. Ler nessa ordem é ler a fórmula como o computador a executa, e é o hábito que faz qualquer expressão longa parar de intimidar."]}],"exercicios":[{"q":"Sem calculadora, quanto vale log(1) e por quê?","a":"Zero, porque qualquer base elevada a zero dá um. Se a pergunta é a que expoente elevo a base para chegar em um, a resposta é sempre zero."},{"q":"Uma sequência tem probabilidades 0,5 e 0,25. Calcule o log da probabilidade conjunta de duas formas.","a":"Primeira forma: 0,5 vezes 0,25 é 0,125, e ln(0,125) é aproximadamente −2,079. Segunda forma: ln(0,5) é −0,693 e ln(0,25) é −1,386, e a soma é −2,079. Iguais, como a propriedade do produto garante."},{"q":"Por que o softmax aplica exponencial antes de dividir?","a":"Porque a exponencial garante que todo valor fique positivo. Sem isso, logits negativos gerariam probabilidades negativas, o que não faz sentido."},{"q":"Calcule σ(0) e explique o resultado.","a":"Sigmoide de zero é um sobre um mais e elevado a zero, ou seja um sobre dois, igual a 0,5. Faz sentido: entrada neutra, probabilidade de cinquenta por cento."},{"q":"Reescreva a divisão por √dk como uma potência.","a":"Multiplicar por dk elevado a menos um meio. É a forma que aparece em vários papers."}],"videos":[{"titulo":"Logarithms, explained","fonte":"Khan Academy Brasil","url":"https://pt.khanacademy.org/math/algebra2/x2ec2f6f830c9fb89:logs","nota":"Trilha alternativa em português, para reforço se a intuição de logaritmo ainda não estiver firme."},{"titulo":"e (Euler's Number) and the natural logarithm","fonte":"3Blue1Brown, Essence of Calculus cap. 5","url":"https://www.youtube.com/watch?v=m2MIpDrF7Es","nota":"Explica por que e é a base natural e não uma escolha arbitrária."}],"checkpoint":[{"q":"Enuncie a propriedade do logaritmo do produto e diga por que ela importa para LLMs.","a":"O logaritmo de um produto é a soma dos logaritmos. Importa porque transforma o produto de milhares de probabilidades pequenas, que causaria underflow, em uma soma estável de logprobs."},{"q":"Qual o sinal do logaritmo de uma probabilidade e por quê?","a":"Negativo, porque probabilidades ficam entre zero e um e o logaritmo de qualquer número nesse intervalo é negativo. Por isso as perdas têm um menos na frente."},{"q":"O que a exponencial garante quando aplicada a um vetor de logits?","a":"Que todos os valores fiquem estritamente positivos, pré-requisito para virarem probabilidades."},{"q":"Qual a imagem da função sigmoide?","a":"O intervalo aberto entre zero e um."},{"q":"Em que ordem se calcula softmax(QKᵀ/√dk)V?","a":"Q vezes K transposta, divisão pela raiz de dk, softmax do resultado, multiplicação por V."}],"livros":[{"t":"Cálculo, volume 1","a":"James Stewart, Daniel Clegg e Saleem Watson","e":"tradução da 9ª edição norte-americana, Cengage, 2022","c":"Capítulo 1, seções de funções exponenciais e funções logarítmicas","n":"O tratamento de Stewart é o padrão-ouro em português para exponencial e logaritmo. Faça de seis a dez exercícios ímpares de cada seção, com gabarito no final do livro.","u":"https://www.cengage.com.br/livro/calculo-volume-1-traducao-da-9a-edicao-norte-americana/"},{"t":"Mathematics for Machine Learning","a":"Deisenroth, Faisal e Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Seções introdutórias do capítulo 5","n":"Use para ver a mesma exponencial reaparecer já no vocabulário de aprendizado de máquina.","u":"https://mml-book.github.io/book/mml-book.pdf"}]},{"id":"M2","nome":"Álgebra linear","semanas":5,"lema":"Significado é geometria.","resumo":"Vetores, produto escalar, matrizes e transformações. O módulo em que fica claro por que dois textos com sentido parecido ficam próximos no espaço de embeddings e o que uma multiplicação de matrizes realmente faz com a informação.","porque":"Um LLM é, do começo ao fim, uma sequência de multiplicações de matrizes intercaladas com não linearidades. Se você entende multiplicação de matrizes e produto escalar, entende a maquinaria inteira. Tudo o mais é detalhe de arranjo.","lab":"vetores","secoes":[{"titulo":"Vetor: uma lista e uma seta","corpo":["Um vetor é uma lista ordenada de números. O vetor (3; 4) tem duas componentes. Um embedding de um token em um modelo moderno é um vetor com centenas ou milhares de componentes, algo como ℝ⁴⁰⁹⁶.","A segunda leitura, geométrica, é a que dá intuição: o mesmo vetor (3; 4) é uma seta que sai da origem e chega ao ponto três à direita e quatro acima. Direção e comprimento passam a significar alguma coisa.","Nos embeddings, essa geometria é literal. A direção do vetor carrega o significado, e a proximidade angular entre dois vetores é o que o modelo usa como medida de semelhança semântica. Não é metáfora, é a operação que roda."]},{"titulo":"Norma: o comprimento do vetor","corpo":["A norma de um vetor, escrita entre barras duplas, é o seu comprimento. Em duas dimensões é o velho teorema de Pitágoras: raiz da soma dos quadrados das componentes. Em qualquer dimensão a fórmula é idêntica, só com mais termos.","Normalizar um vetor é dividi-lo pela própria norma, obtendo um vetor de comprimento um que aponta na mesma direção. Isso separa direção de magnitude, e é exatamente o que a normalização de camada faz dentro de um Transformer para manter as ativações em uma escala estável."],"formulas":[{"html":"‖<i>v</i>‖ = √( <i>v</i><sub>1</sub><sup>2</sup> + <i>v</i><sub>2</sub><sup>2</sup> + … + <i>v</i><sub><i>d</i></sub><sup>2</sup> )","leitura":"A norma de v é a raiz quadrada da soma dos quadrados de todas as componentes de v."}],"exemplo":{"titulo":"Cálculo à mão","corpo":"Para v igual a (3; 4): a norma é a raiz de nove mais dezesseis, ou seja raiz de vinte e cinco, igual a cinco. O vetor normalizado é (0,6; 0,8), que ainda aponta na mesma direção mas tem comprimento um."}},{"titulo":"Produto escalar: a medida de concordância","corpo":["O produto escalar de dois vetores multiplica componente por componente e soma tudo. O resultado é um único número, não um vetor, e por isso o nome escalar.","O que esse número significa: ele é positivo e grande quando os dois vetores apontam na mesma direção, próximo de zero quando são perpendiculares, e negativo quando apontam em direções opostas. É uma medida de concordância entre direções, ponderada pelos comprimentos.","Esta é a operação central da atenção. Quando um token pergunta quais posições anteriores importam para mim, o cálculo é literalmente o produto escalar entre a consulta desse token e as chaves de todas as outras posições. Concordância alta significa atenção alta."],"formulas":[{"html":"<i>a</i> · <i>b</i> = <span>Σ</span><sub><i>i</i></sub> <i>a</i><sub><i>i</i></sub> <i>b</i><sub><i>i</i></sub> = ‖<i>a</i>‖ ‖<i>b</i>‖ cos <i>θ</i>","leitura":"O produto escalar de a com b é a soma dos produtos das componentes correspondentes, e equivale ao produto dos comprimentos vezes o cosseno do ângulo entre eles."}],"exemplo":{"titulo":"Três casos em números","corpo":"Sejam a igual a (1; 0). Com b igual a (1; 0), o produto escalar é um, concordância máxima. Com b igual a (0; 1), é zero, perpendiculares, nenhuma relação. Com b igual a (−1; 0), é menos um, oposição. Três contas de dez segundos que fixam a intuição para sempre."}},{"titulo":"Similaridade do cosseno e o espaço de embeddings","corpo":["O produto escalar cru mistura duas informações: o ângulo e os comprimentos. Para comparar significado, geralmente queremos só o ângulo, e por isso se divide pelo produto das normas. O resultado é o cosseno do ângulo, um número entre menos um e um.","Um cosseno perto de um significa direções quase idênticas, ou seja significados próximos. Perto de zero significa sem relação. Perto de menos um significa oposição. É essa a métrica usada em busca vetorial, em bancos como pgvector e em qualquer sistema de recuperação semântica.","Vale registrar o limite honesto da intuição famosa dos vetores de palavras: a ideia de que rei menos homem mais mulher dá rainha funciona em modelos clássicos de embedding e ajuda a construir a imagem mental, mas em modelos de linguagem grandes contemporâneos os embeddings são contextuais, mudam conforme a frase, e as relações não são tão limpas. Use a analogia para entender a geometria, não como descrição exata do que acontece dentro de um LLM."],"formulas":[{"html":"cos(<i>a</i>, <i>b</i>) = ( <i>a</i> · <i>b</i> ) ⁄ ( ‖<i>a</i>‖ ‖<i>b</i>‖ )","leitura":"A similaridade do cosseno entre a e b é o produto escalar dividido pelo produto das normas."}]},{"titulo":"Matrizes e multiplicação","corpo":["Uma matriz é uma tabela retangular de números, com linhas e colunas. A notação padrão diz que uma matriz é m por n quando tem m linhas e n colunas.","Multiplicar duas matrizes significa preencher cada célula do resultado com um produto escalar: a célula da linha i e coluna j do produto é o produto escalar entre a linha i da primeira matriz e a coluna j da segunda. Toda multiplicação de matrizes é, portanto, uma coleção organizada de produtos escalares.","Isso muda a percepção do que uma camada de rede neural faz. Quando você lê que uma camada multiplica a entrada por W, leia como: cada neurônio da camada calcula o produto escalar entre a entrada e a própria linha de pesos, medindo quanto a entrada concorda com o padrão que aquele neurônio aprendeu a procurar."],"exemplo":{"titulo":"Multiplicação 2 por 2 completa","corpo":"Sejam A com linhas (1, 2) e (3, 4), e B com linhas (5, 6) e (7, 8). A célula superior esquerda do produto é o produto escalar de (1, 2) com a coluna (5, 7), ou seja 1 vezes 5 mais 2 vezes 7, igual a 19. Seguindo o mesmo procedimento, o produto completo tem linhas (19, 22) e (43, 50). Faça esta conta à mão pelo menos três vezes ao longo do módulo."}},{"titulo":"Shapes: a álgebra das dimensões","corpo":["Multiplicação de matrizes só é definida quando o número de colunas da primeira é igual ao número de linhas da segunda. Uma matriz m por n vezes uma n por p resulta em uma m por p. As dimensões internas precisam bater e desaparecem; as externas sobrevivem.","Esta regra é a ferramenta de depuração mais útil que existe para ler arquiteturas. Quando um paper diz que a entrada é de shape lote por sequência por dimensão do modelo, e que a projeção de consulta tem shape dimensão do modelo por dimensão da chave, você já sabe, sem ler mais nada, que a saída será lote por sequência por dimensão da chave.","Treine o hábito: ao encontrar qualquer multiplicação em um paper, escreva os shapes à margem antes de tentar entender o significado. Metade da compreensão vem daí."],"formulas":[{"html":"(<i>m</i> × <i>n</i>) · (<i>n</i> × <i>p</i>) → (<i>m</i> × <i>p</i>)","leitura":"Uma matriz m por n multiplicada por uma n por p resulta em uma matriz m por p. O n interno precisa coincidir e é consumido."}]},{"titulo":"Transformação linear: o que a matriz faz com o espaço","corpo":["A leitura mais profunda de uma matriz não é tabela de números, é função que transforma o espaço inteiro. Multiplicar todos os pontos de um quadrado por uma matriz produz um paralelogramo: o espaço foi esticado, girado ou espelhado, mas linhas retas continuam retas e a origem fica no lugar.","Uma camada de rede neural é exatamente isso, uma transformação do espaço, seguida de uma função não linear que dobra o espaço de um jeito que a matriz sozinha não conseguiria. Empilhar camadas é empilhar transformações, e é dessa composição que sai a capacidade de representar relações complicadas.","A animação do laboratório deste módulo mostra a transformação acontecendo. Mexa nos coeficientes e observe o que cada um faz ao quadrado unitário; é a forma mais rápida de transformar a definição em intuição."]}],"exercicios":[{"q":"Calcule o produto escalar de (2; −1; 3) com (0; 4; 1).","a":"Dois vezes zero é zero, menos um vezes quatro é menos quatro, três vezes um é três. Soma: menos um."},{"q":"Qual a norma de (0; 3; 4)?","a":"Raiz de zero mais nove mais dezesseis, igual a raiz de vinte e cinco, igual a cinco."},{"q":"Se a similaridade do cosseno entre dois embeddings é 0,02, o que isso diz?","a":"Que os vetores são praticamente perpendiculares, ou seja não há relação semântica detectável entre eles nesse espaço."},{"q":"Uma matriz 4 por 8 multiplica uma 8 por 2. Qual o shape do resultado, e o que aconteceria com uma 2 por 8?","a":"O resultado é 4 por 2. Com uma 2 por 8 a operação é indefinida, porque oito colunas não casam com duas linhas."},{"q":"Multiplique à mão A com linhas (2, 0) e (1, 3) por B com linhas (1, 4) e (2, 5).","a":"Linha um: 2 vezes 1 mais 0 vezes 2 é 2; 2 vezes 4 mais 0 vezes 5 é 8. Linha dois: 1 vezes 1 mais 3 vezes 2 é 7; 1 vezes 4 mais 3 vezes 5 é 19. Resultado: linhas (2, 8) e (7, 19)."}],"videos":[{"titulo":"Essence of Linear Algebra, série completa","fonte":"3Blue1Brown","url":"https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab","nota":"Assista os capítulos 1 a 4 e o 9. É o melhor material de intuição geométrica que existe e cabe no ritmo do módulo."},{"titulo":"Álgebra linear","fonte":"Khan Academy Brasil","url":"https://pt.khanacademy.org/math/linear-algebra","nota":"Alternativa em português com exercícios corrigidos, útil para a prática de recuperação."},{"titulo":"Mathematics for Machine Learning, capítulo 2","fonte":"Deisenroth, Faisal e Ong","url":"https://mml-book.github.io/book/mml-book.pdf","nota":"Referência de consulta. Leia as seções que você precisar, não o capítulo inteiro."}],"checkpoint":[{"q":"O que o produto escalar mede, em uma frase?","a":"O quanto dois vetores apontam na mesma direção, ponderado pelos seus comprimentos."},{"q":"Por que se divide pelo produto das normas na similaridade do cosseno?","a":"Para isolar o ângulo e eliminar a influência do comprimento dos vetores."},{"q":"Explique a multiplicação de matrizes em termos de produtos escalares.","a":"Cada célula do resultado é o produto escalar entre uma linha da primeira matriz e uma coluna da segunda."},{"q":"Qual regra de shapes governa a multiplicação?","a":"As dimensões internas precisam ser iguais e somem; as externas formam o shape do resultado."},{"q":"O que uma matriz faz geometricamente com um quadrado unitário?","a":"Transforma o quadrado em um paralelogramo, esticando, girando ou espelhando o espaço, mantendo retas retas e a origem fixa."}],"livros":[{"t":"Introduction to Linear Algebra","a":"Gilbert Strang","e":"6ª edição, Wellesley-Cambridge Press, 2023","c":"Capítulos 1 a 3","n":"O livro-texto de referência mundial em álgebra linear, e a base do curso 18.06 do MIT. A abordagem por colunas de Strang é exatamente a intuição que serve para entender embeddings.","u":"https://math.mit.edu/~gs/linearalgebra/ila6/indexila6.html"},{"t":"Álgebra Linear e suas Aplicações","a":"David C. Lay, Steven Lay e Judi McDonald","e":"edição brasileira, LTC","c":"Capítulos de sistemas lineares, transformações lineares e ortogonalidade","n":"Alternativa em português, com exercícios graduados. Bom complemento ao Strang para quem quer treinar cálculo manual.","u":"https://www.grupogen.com.br/"},{"t":"Mathematics for Machine Learning","a":"Deisenroth, Faisal e Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Capítulos 2 e 3","n":"Álgebra linear já escrita na direção de aprendizado de máquina, com produto interno e normas tratados como ferramentas de similaridade.","u":"https://mml-book.github.io/book/mml-book.pdf"}]},{"id":"M3","nome":"Cálculo essencial","semanas":4,"lema":"A derivada é uma bússola, não uma conta.","resumo":"Derivada, gradiente, regra da cadeia e descida do gradiente, apresentados como o mecanismo que permite a um modelo com bilhões de parâmetros descobrir em que direção mexer cada um deles.","porque":"Treinar um LLM é responder bilhões de vezes à mesma pergunta: se eu aumentar um pouquinho este parâmetro, a perda sobe ou desce. A derivada é a resposta dessa pergunta, e a regra da cadeia é o que torna viável respondê-la para todas as camadas de uma vez.","lab":"gradiente","secoes":[{"titulo":"Derivada como taxa de variação","corpo":["A derivada de uma função em um ponto responde: se eu mexer um tiquinho na entrada, quanto muda a saída, e para que lado. É a inclinação da reta tangente ao gráfico naquele ponto.","Três leituras do sinal resolvem a intuição. Derivada positiva significa que a função está subindo naquele ponto. Negativa, descendo. Zero, momentaneamente plana, o que acontece em picos, vales e platôs.","Repare que a derivada não é a função e não é o valor, é uma direção com intensidade. Confundir os três é o erro mais comum de quem está começando."],"formulas":[{"html":"<i>f</i>′(<i>x</i>) = lim<sub><i>h</i>→0</sub> [ <i>f</i>(<i>x</i>+<i>h</i>) − <i>f</i>(<i>x</i>) ] ⁄ <i>h</i>","leitura":"A derivada de f em x é o limite, quando h tende a zero, da variação da saída dividida pela variação da entrada. Em português: a inclinação medida em um intervalo cada vez menor."}]},{"titulo":"As regras que você realmente vai usar","corpo":["Para os fins desta trilha, quatro regras bastam. A derivada de x elevado a n é n vezes x elevado a n menos um. A derivada de e elevado a x é ela mesma. A derivada do logaritmo natural de x é um sobre x. E a derivada de uma soma é a soma das derivadas.","As duas do meio explicam por que exponencial e logaritmo dominam a matemática de redes neurais: elas têm derivadas simples, o que mantém o cálculo de gradientes barato mesmo em escala absurda."],"formulas":[{"html":"(<i>x</i><sup><i>n</i></sup>)′ = <i>n x</i><sup><i>n</i>−1</sup>&nbsp;&nbsp;&nbsp; (<i>e</i><sup><i>x</i></sup>)′ = <i>e</i><sup><i>x</i></sup>&nbsp;&nbsp;&nbsp; (ln <i>x</i>)′ = 1⁄<i>x</i>","leitura":"As três derivadas que aparecem em toda dedução de perda de modelo de linguagem."}],"exemplo":{"titulo":"Derivada em um ponto","corpo":"Para f de x igual a x ao quadrado, a derivada é dois x. No ponto x igual a três, a derivada vale seis: naquele ponto, aumentar x em uma unidade minúscula aumenta f em aproximadamente seis vezes essa unidade. Em x igual a zero, a derivada é zero: o fundo da parábola."}},{"titulo":"Gradiente: a derivada em muitas dimensões","corpo":["Quando a função depende de vários parâmetros, não há uma derivada só. Há uma derivada parcial por parâmetro, cada uma medindo o efeito de mexer naquele parâmetro mantendo os outros fixos.","O gradiente, escrito com o símbolo nabla, ∇, é o vetor que junta todas essas derivadas parciais. E ele tem uma propriedade geométrica notável: aponta na direção de maior crescimento da função.","Daí a receita do treino. Para diminuir a perda, ande na direção oposta à do gradiente. Este único fato é o motor de todo aprendizado profundo, e é por isso que a fórmula da atualização de parâmetros tem um sinal de menos."],"formulas":[{"html":"∇<i>L</i>(<i>θ</i>) = ( ∂<i>L</i>⁄∂<i>θ</i><sub>1</sub>, ∂<i>L</i>⁄∂<i>θ</i><sub>2</sub>, …, ∂<i>L</i>⁄∂<i>θ</i><sub><i>n</i></sub> )","leitura":"O gradiente da perda em relação a teta é o vetor de todas as derivadas parciais da perda em relação a cada parâmetro."}]},{"titulo":"Regra da cadeia: a ideia inteira do backpropagation","corpo":["Se uma quantidade depende de outra que depende de uma terceira, a taxa de variação total é o produto das taxas intermediárias. Formalmente, a derivada de uma composição é o produto das derivadas.","Uma rede neural é uma composição gigantesca de funções: a saída da camada um alimenta a dois, que alimenta a três, e assim por diante até a perda. Para saber o efeito de um peso lá na primeira camada sobre a perda no final, a regra da cadeia diz que basta multiplicar as derivadas ao longo do caminho.","Backpropagation é exatamente isso, com uma esperteza de engenharia: em vez de refazer o caminho inteiro para cada peso, o algoritmo percorre a rede uma única vez de trás para frente, reaproveitando os resultados parciais. É por isso que treinar é caro mas viável, e não impossível."],"formulas":[{"html":"d<i>z</i>⁄d<i>x</i> = (d<i>z</i>⁄d<i>y</i>) · (d<i>y</i>⁄d<i>x</i>)","leitura":"A derivada de z em relação a x é a derivada de z em relação a y vezes a derivada de y em relação a x. As sensibilidades se multiplicam ao longo da cadeia."}],"exemplo":{"titulo":"Cadeia de três elos","corpo":"Suponha que dobrar x dobre y, e que dobrar y triplique z. Então dobrar x multiplica z por seis. As taxas se multiplicam, não se somam. É a mesma lógica que governa a propagação de gradientes em uma rede de oitenta camadas."}},{"titulo":"Descida do gradiente e o papel de alfa","corpo":["O algoritmo de treino, em uma linha: calcule o gradiente da perda, dê um passo na direção contrária, repita. O tamanho do passo é a taxa de aprendizado, α.","Alfa grande demais faz o modelo saltar por cima do vale e oscilar sem convergir. Alfa pequeno demais faz o treino levar tempo inviável. Escolher e agendar alfa é uma das decisões mais consequentes do treino de um modelo, e é a razão de essa letra grega ser tão citada.","A animação do laboratório deste módulo deixa isso visível: ajuste a taxa de aprendizado e observe a bolinha descer suavemente, saltar em zigue-zague ou escapar completamente do vale."],"formulas":[{"html":"<i>θ</i><sub><i>t</i>+1</sub> = <i>θ</i><sub><i>t</i></sub> − <i>α</i> ∇<i>L</i>(<i>θ</i><sub><i>t</i></sub>)","leitura":"Os parâmetros no passo seguinte são os atuais menos alfa vezes o gradiente da perda nos parâmetros atuais."}]}],"exercicios":[{"q":"Calcule a derivada de f(x) = 3x² + 5 e avalie em x = 2.","a":"A derivada é seis x, porque a derivada de três x ao quadrado é seis x e a derivada da constante cinco é zero. Em x igual a dois, vale doze."},{"q":"O gradiente em um ponto é (0; 0). O que isso indica?","a":"Que o ponto é estacionário: pode ser um mínimo, um máximo ou um ponto de sela. O treino tende a parar de se mover ali."},{"q":"Por que a atualização de parâmetros usa menos alfa vezes o gradiente, e não mais?","a":"Porque o gradiente aponta para onde a perda cresce mais rápido, e o objetivo é diminuir a perda. Andar no sentido contrário é o que faz a perda cair."},{"q":"Uma cadeia tem derivadas 0,5, 0,5 e 0,5. Qual a derivada total, e o que isso sugere sobre redes profundas?","a":"O produto é 0,125. Em uma rede muito profunda, produtos de derivadas menores que um encolhem exponencialmente, que é o problema clássico do gradiente que desaparece. Conexões residuais e normalização existem em boa parte para atenuar isso."},{"q":"Descreva em uma frase o que a taxa de aprendizado controla.","a":"O tamanho do passo dado a cada atualização na direção contrária ao gradiente."}],"videos":[{"titulo":"Essence of Calculus, capítulos 1 a 4","fonte":"3Blue1Brown","url":"https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr","nota":"Foque na intuição de derivada e regra da cadeia; ignore as técnicas de integração."},{"titulo":"Gradient descent, how neural networks learn","fonte":"3Blue1Brown, Neural Networks cap. 2","url":"https://www.youtube.com/watch?v=IHZwWFHWa-w","nota":"Conecta diretamente o cálculo ao treino de redes. Assista ao final do módulo."},{"titulo":"What is backpropagation really doing?","fonte":"3Blue1Brown, Neural Networks cap. 3","url":"https://www.youtube.com/watch?v=Ilg3gGewQ5U","nota":"Fecha o módulo e prepara o M6."}],"checkpoint":[{"q":"O que a derivada mede?","a":"A taxa de variação da saída em relação a uma variação minúscula na entrada, ou seja a inclinação da função naquele ponto."},{"q":"Para que lado aponta o gradiente?","a":"Para a direção de maior crescimento da função."},{"q":"Enuncie a regra da cadeia e diga onde ela aparece em uma rede neural.","a":"A derivada de uma composição é o produto das derivadas dos elos. Aparece no backpropagation, que propaga sensibilidades da perda até os pesos de todas as camadas."},{"q":"O que acontece com alfa grande demais?","a":"O modelo salta por cima do mínimo, oscila e pode divergir em vez de convergir."},{"q":"Escreva a regra de atualização de parâmetros de memória.","a":"Teta no passo t mais um é igual a teta no passo t menos alfa vezes o gradiente da perda em teta no passo t."}],"livros":[{"t":"Cálculo, volume 1","a":"James Stewart, Daniel Clegg e Saleem Watson","e":"tradução da 9ª edição norte-americana, Cengage, 2022","c":"Capítulos de limites e derivadas, com atenção especial à seção da regra da cadeia","n":"É o núcleo bibliográfico deste módulo. Stewart constrói a derivada a partir da taxa de variação, que é exatamente a leitura que interessa aqui. Resolva os exercícios de regra da cadeia até fazê-los sem pensar.","u":"https://www.cengage.com.br/livro/calculo-volume-1-traducao-da-9a-edicao-norte-americana/"},{"t":"Cálculo, volume 2","a":"James Stewart, Daniel Clegg e Saleem Watson","e":"tradução da 9ª edição norte-americana, Cengage, 2022","c":"Capítulo de derivadas parciais, seções de derivadas parciais, plano tangente e vetor gradiente","n":"O gradiente aparece aqui com a interpretação geométrica de direção de maior crescimento, que é a peça que falta para entender o treino.","u":"https://www.cengage.com.br/livro/calculo-volume-2-traducao-da-9a-edicao-norte-americana/"},{"t":"Mathematics for Machine Learning","a":"Deisenroth, Faisal e Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Capítulo 5, Vector Calculus","n":"Traduz o cálculo de Stewart para a notação matricial usada em papers, incluindo a regra da cadeia em forma vetorial.","u":"https://mml-book.github.io/book/mml-book.pdf"}]},{"id":"M4","nome":"Probabilidade e informação","semanas":5,"lema":"Temperatura não é criatividade, é achatamento.","resumo":"Distribuições, softmax, temperatura, top-k, top-p, entropia e perplexidade. O módulo que converte parâmetros de API em objetos matemáticos que você entende de verdade.","porque":"Este é o módulo de retorno imediato. Ao terminá-lo, todo parâmetro que você mexe em uma chamada de API deixa de ser tentativa e erro e passa a ser uma decisão sobre a forma de uma distribuição de probabilidade.","lab":"softmax","secoes":[{"titulo":"Distribuição de probabilidade","corpo":["Uma distribuição de probabilidade sobre um conjunto de opções é uma lista de números não negativos que soma exatamente um. Cada número diz o quanto aquela opção é provável.","Um LLM, a cada passo, produz uma distribuição sobre todo o vocabulário, que costuma ter dezenas ou centenas de milhares de entradas. É essa a saída bruta do modelo: não um token, mas uma opinião completa sobre todos os tokens possíveis.","Escolher qual token de fato sai dessa distribuição é uma decisão separada, e é onde temperatura, top-k e top-p entram. O modelo propõe, a estratégia de amostragem dispõe."]},{"titulo":"Probabilidade condicional e o que um LLM realmente modela","corpo":["A notação P de A dado B, escrita com uma barra vertical, é a probabilidade de A acontecer sabendo que B aconteceu. É a operação mais importante do módulo.","Um modelo de linguagem é, por definição, um estimador de P do próximo token dado todos os tokens anteriores. Nada mais. Toda a impressão de raciocínio, estilo e conhecimento emerge de repetir essa estimativa token após token.","Isso explica um comportamento observado todo dia: mudar as primeiras palavras de um prompt muda tudo o que vem depois, porque tudo o que vem depois está condicionado nelas."],"formulas":[{"html":"<i>P</i>(<i>w</i><sub><i>t</i></sub> | <i>w</i><sub>1</sub>, <i>w</i><sub>2</sub>, …, <i>w</i><sub><i>t</i>−1</sub>)","leitura":"A probabilidade do token na posição t dado todos os tokens anteriores. Esta linha é a definição inteira do que um modelo de linguagem faz."}]},{"titulo":"Softmax: de logits para probabilidades","corpo":["A última camada do modelo produz logits, que são números reais quaisquer, positivos ou negativos, sem restrição. Eles medem preferência bruta, não probabilidade.","O softmax faz a conversão em dois movimentos. Primeiro aplica exponencial a cada logit, o que torna todos positivos e amplifica as diferenças, porque a exponencial cresce muito mais rápido para valores maiores. Depois divide cada resultado pela soma de todos, o que força o total a valer exatamente um.","O detalhe crucial é a amplificação. Uma diferença de dois pontos entre logits vira uma razão de aproximadamente sete vezes entre as probabilidades, porque e elevado a dois é cerca de 7,4. O softmax não preserva proporções, ele as exagera de forma controlada."],"formulas":[{"html":"softmax(<i>z</i>)<sub><i>i</i></sub> = <i>e</i><sup><i>z</i><sub><i>i</i></sub></sup> ⁄ <span>Σ</span><sub><i>j</i></sub> <i>e</i><sup><i>z</i><sub><i>j</i></sub></sup>","leitura":"O softmax do vetor z na posição i é e elevado a z índice i, dividido pela soma de e elevado a z índice j sobre todos os j."}],"exemplo":{"titulo":"Softmax de três logits, à mão","corpo":"Logits 2,0, 1,0 e 0,1. Exponenciais: aproximadamente 7,39, 2,72 e 1,11. Soma: 11,22. Probabilidades: 0,659, 0,242 e 0,099. Confira que somam um. Repare que uma diferença de um ponto nos logits virou quase o triplo de probabilidade."}},{"titulo":"Temperatura: dividir antes de exponenciar","corpo":["A temperatura, T, entra dividindo os logits antes do softmax. É uma única divisão, e ela reorganiza toda a distribuição.","Com T menor que um, os logits são multiplicados por um fator maior que um, as diferenças aumentam, e a distribuição fica mais pontuda: o token mais provável domina ainda mais. Com T maior que um, os logits encolhem, as diferenças diminuem, e a distribuição achata: tokens improváveis ganham chance real. No limite de T tendendo a zero, a distribuição vira uma escolha determinística do maior logit.","Por isso a palavra criatividade é enganosa. A temperatura não adiciona ideia nenhuma ao modelo. Ela apenas redistribui probabilidade das opções mais prováveis para as menos prováveis, e a impressão de originalidade vem de o modelo passar a escolher com mais frequência caminhos que ele mesmo considera menos prováveis."],"formulas":[{"html":"softmax(<i>z</i>⁄<i>T</i>)<sub><i>i</i></sub> = <i>e</i><sup><i>z</i><sub><i>i</i></sub>/<i>T</i></sup> ⁄ <span>Σ</span><sub><i>j</i></sub> <i>e</i><sup><i>z</i><sub><i>j</i></sub>/<i>T</i></sup>","leitura":"O softmax com temperatura divide cada logit por T antes de exponenciar. T menor que um afia a distribuição, T maior que um a achata."}],"exemplo":{"titulo":"Os mesmos logits, três temperaturas","corpo":"Logits 2,0, 1,0 e 0,1. Com T igual a 0,5, as probabilidades ficam aproximadamente 0,84, 0,11 e 0,05. Com T igual a 1, ficam 0,66, 0,24 e 0,10. Com T igual a 2, ficam 0,48, 0,29 e 0,23. O laboratório deste módulo deixa você mexer no controle e ver as barras responderem em tempo real."}},{"titulo":"Top-k e top-p: cortar antes de sortear","corpo":["Temperatura deforma a distribuição inteira. Top-k e top-p fazem outra coisa: eles a truncam, eliminando opções antes do sorteio.","Top-k mantém apenas os k tokens de maior probabilidade e renormaliza o que sobrou para somar um. É um corte de tamanho fixo, insensível ao formato da distribuição.","Top-p, também chamado de amostragem por núcleo, ordena os tokens do mais para o menos provável e vai acumulando até a soma passar de p. Só esses entram no sorteio. É um corte adaptativo: quando o modelo está confiante, poucos tokens já ultrapassam p e o corte é agressivo; quando está incerto, muitos tokens são necessários e o corte é generoso.","É por isso que top-p costuma ser preferido na prática. Ele respeita a confiança do próprio modelo em vez de impor um número fixo."]},{"titulo":"Entropia, cross-entropy e perplexidade","corpo":["A entropia mede a incerteza de uma distribuição. É zero quando uma opção tem probabilidade um e todas as outras zero, e é máxima quando todas são igualmente prováveis. Em termos práticos: entropia alta significa que o modelo não sabe bem o que vem a seguir.","A cross-entropy compara duas distribuições, a verdadeira e a prevista, e mede o custo de usar a prevista no lugar da verdadeira. É exatamente a função de perda usada para treinar modelos de linguagem: para cada posição, o modelo é penalizado pelo logaritmo negativo da probabilidade que atribuiu ao token que de fato apareceu.","A perplexidade é a exponencial da cross-entropy média, e existe para dar uma leitura intuitiva. Uma perplexidade de dez significa que o modelo está, em média, tão incerto quanto alguém escolhendo entre dez opções igualmente prováveis. Quanto menor, melhor o modelo prevê o texto."],"formulas":[{"html":"<i>H</i>(<i>p</i>) = − <span>Σ</span><sub><i>i</i></sub> <i>p</i><sub><i>i</i></sub> log <i>p</i><sub><i>i</i></sub>","leitura":"A entropia de p é menos o somatório de p índice i vezes o logaritmo de p índice i."},{"html":"<i>L</i> = − <span>Σ</span><sub><i>i</i></sub> <i>y</i><sub><i>i</i></sub> log <i>ŷ</i><sub><i>i</i></sub>&nbsp;&nbsp;&nbsp; PPL = <i>e</i><sup><i>L</i></sup>","leitura":"A cross-entropy é menos a soma do valor verdadeiro vezes o log do previsto, e a perplexidade é a exponencial dessa perda média."}]}],"exercicios":[{"q":"Calcule o softmax de (1,0; 1,0; 1,0) sem fazer contas pesadas.","a":"Logits iguais produzem exponenciais iguais, então cada probabilidade é um terço, aproximadamente 0,333. Distribuição uniforme, entropia máxima para três opções."},{"q":"Com T tendendo a zero, o que acontece com a saída do modelo?","a":"A distribuição colapsa em uma escolha determinística: o token de maior logit recebe probabilidade praticamente um. É o comportamento chamado greedy."},{"q":"Explique a diferença de comportamento entre top-k igual a 50 e top-p igual a 0,9 quando o modelo está muito confiante.","a":"Top-k mantém cinquenta candidatos independentemente da confiança, incluindo muitos absurdos com probabilidade quase nula. Top-p percebe que dois ou três tokens já somam noventa por cento e corta o resto, ficando muito mais restritivo justamente onde faz sentido."},{"q":"Um modelo atribui probabilidade 0,01 ao token que apareceu. Qual a contribuição dessa posição para a perda?","a":"Menos o logaritmo natural de 0,01, ou seja aproximadamente 4,6. É uma penalização alta, como deve ser: o modelo estava errado com confiança."},{"q":"Perplexidade 1 significa o quê?","a":"Que a cross-entropy é zero, ou seja o modelo atribuiu probabilidade um ao token correto em todas as posições. É previsão perfeita, algo que na prática só acontece em texto memorizado."}],"videos":[{"titulo":"But what is a GPT? Visual intro to Transformers","fonte":"3Blue1Brown","url":"https://www.youtube.com/watch?v=wjZofJX0v4M","nota":"A parte final, sobre softmax e temperatura, é a melhor explicação visual disponível. Assista no meio deste módulo."},{"titulo":"Entropy, cross-entropy and KL divergence","fonte":"StatQuest","url":"https://www.youtube.com/watch?v=6ArSys5qHAU","nota":"Fecha a parte de teoria da informação com exemplos numéricos pequenos."}],"checkpoint":[{"q":"O que define uma distribuição de probabilidade válida?","a":"Todos os valores não negativos e soma exatamente igual a um."},{"q":"Descreva os dois passos do softmax e o que cada um garante.","a":"Exponenciar garante positividade e amplifica diferenças; dividir pela soma garante que o total seja um."},{"q":"T igual a 0,3 produz que efeito na distribuição?","a":"Afia a distribuição, concentrando probabilidade nos tokens de maior logit e tornando a saída mais previsível."},{"q":"Por que top-p é adaptativo e top-k não?","a":"Top-p corta por massa de probabilidade acumulada, então o número de candidatos varia com a confiança do modelo. Top-k corta por contagem fixa, ignorando o formato da distribuição."},{"q":"Relacione cross-entropy e perplexidade.","a":"A perplexidade é a exponencial da cross-entropy média, e traduz a perda para o número equivalente de opções igualmente prováveis entre as quais o modelo hesita."}],"livros":[{"t":"Probabilidade: um curso moderno com aplicações","a":"Sheldon Ross","e":"edição brasileira, Bookman","c":"Capítulos de axiomas de probabilidade, probabilidade condicional e variáveis aleatórias discretas","n":"Texto clássico e bem escrito, com exercícios resolvidos. Cubra apenas o discreto; o contínuo não é necessário para esta trilha.","u":"https://www.grupoa.com.br/"},{"t":"Elements of Information Theory","a":"Thomas M. Cover e Joy A. Thomas","e":"2ª edição, Wiley, 2006","c":"Capítulo 2, Entropy, Relative Entropy and Mutual Information","n":"A fonte primária de entropia e cross-entropy. Leia as primeiras seções do capítulo 2 e pare; o resto é além do escopo.","u":"https://onlinelibrary.wiley.com/doi/book/10.1002/047174882X"},{"t":"Mathematics for Machine Learning","a":"Deisenroth, Faisal e Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Capítulo 6, Probability and Distributions","n":"Amarra probabilidade à notação de aprendizado de máquina, com o softmax já no contexto certo.","u":"https://mml-book.github.io/book/mml-book.pdf"}]},{"id":"M5","nome":"A matemática do Transformer","semanas":5,"lema":"Toda a arquitetura cabe em três multiplicações e um softmax.","resumo":"Tokenização, embeddings, posição, consultas, chaves e valores, atenção escalada, múltiplas cabeças, MLP, normalização, conexões residuais e a cabeça de saída. O módulo em que todas as peças anteriores se encaixam.","porque":"Este é o objetivo declarado do projeto. Ao terminar, você consegue narrar o caminho completo de um token, da string ao logit, sabendo qual operação matemática acontece em cada etapa e por quê.","lab":"atencao","secoes":[{"titulo":"Tokenização e o problema dos números fatiados","corpo":["Antes de qualquer matemática, o texto vira uma lista de inteiros. O tokenizador quebra a string em pedaços do vocabulário, que podem ser palavras inteiras, pedaços de palavra ou até bytes isolados, e troca cada pedaço pelo seu índice.","Essa etapa parece administrativa e não é. Ela explica limitações reais. Um número como 1234 pode virar dois tokens, 12 e 34, ou três, dependendo do tokenizador. O modelo nunca vê o número como quantidade, vê símbolos arbitrários que precisou aprender a relacionar. É uma das raízes concretas de erros aritméticos.","Também explica por que contar letras em uma palavra é difícil para um LLM: as letras individuais quase nunca são tokens separados, então a informação que a pergunta exige simplesmente não está disponível na representação de entrada."]},{"titulo":"Embeddings e posição","corpo":["Cada índice de token é usado para buscar uma linha em uma matriz de embeddings. Essa linha é um vetor de dimensão d, tipicamente entre 768 e alguns milhares, e é a primeira representação numérica com significado do token.","A operação é uma consulta em tabela, mas equivale matematicamente a multiplicar um vetor one-hot pela matriz de embeddings. Vale conhecer as duas leituras, porque papers usam a segunda.","Como a atenção, por construção, não distingue ordem, a posição precisa ser injetada explicitamente. Modelos somam ou combinam uma codificação posicional ao embedding. Sem isso, gato mordeu cachorro e cachorro mordeu gato seriam entradas idênticas para o mecanismo de atenção."],"formulas":[{"html":"<i>x</i><sub><i>t</i></sub> = <i>E</i>[<i>token</i><sub><i>t</i></sub>] + <i>P</i>[<i>t</i>]&nbsp;&nbsp;&nbsp; <i>x</i><sub><i>t</i></sub> ∈ ℝ<sup><i>d</i></sup>","leitura":"A representação da posição t é a linha da matriz de embeddings correspondente ao token, somada à codificação posicional daquela posição."}]},{"titulo":"Consultas, chaves e valores","corpo":["De cada vetor de entrada o modelo deriva três vetores diferentes, multiplicando por três matrizes de pesos aprendidas: W maiúsculo com subscrito Q, K e V.","A analogia que funciona é a de uma busca. A consulta é o que este token está procurando. A chave é o que cada token oferece como rótulo de si mesmo. O valor é a informação que cada token entrega se for selecionado. Três papéis distintos, extraídos do mesmo vetor por três projeções diferentes.","Nada disso é imposto por regra. As três matrizes são aprendidas no treino, e o modelo descobre sozinho que projeções tornam a busca útil."],"formulas":[{"html":"<i>Q</i> = <i>X W</i><sub><i>Q</i></sub>&nbsp;&nbsp; <i>K</i> = <i>X W</i><sub><i>K</i></sub>&nbsp;&nbsp; <i>V</i> = <i>X W</i><sub><i>V</i></sub>","leitura":"Q, K e V são obtidos multiplicando a matriz de entradas X por três matrizes de pesos distintas e aprendidas."}]},{"titulo":"Atenção escalada: a fórmula inteira, agora entendida","corpo":["Q vezes K transposta calcula, de uma vez, o produto escalar entre toda consulta e toda chave. O resultado é uma matriz de pontuações: a célula da linha i e coluna j diz o quanto a posição i acha a posição j relevante. Você já sabe que produto escalar mede concordância de direção, e é exatamente isso que está sendo medido.","A divisão pela raiz de d k existe por uma razão numérica precisa. Em dimensões altas, produtos escalares crescem em magnitude proporcionalmente à raiz da dimensão. Sem a divisão, as pontuações ficariam grandes demais, o softmax saturaria em praticamente zero ou um, e os gradientes desapareceriam. A raiz de d k mantém a escala em uma faixa onde o treino funciona.","O softmax é aplicado linha a linha, transformando cada linha de pontuações em uma distribuição que soma um: os pesos de atenção. Por fim, multiplicar por V produz, para cada posição, uma média ponderada dos valores de todas as posições, com os pesos que acabaram de ser calculados.","Em modelos causais existe ainda uma máscara: antes do softmax, todas as posições futuras recebem menos infinito, o que faz o softmax lhes atribuir probabilidade zero. É assim que o modelo é impedido de ver o que ainda não foi gerado."],"formulas":[{"html":"Atenção(<i>Q</i>, <i>K</i>, <i>V</i>) = softmax( <i>Q K</i><sup>T</sup> ⁄ √<i>d</i><sub><i>k</i></sub> + <i>M</i> ) <i>V</i>","leitura":"Atenção é o softmax das pontuações escaladas, somadas à máscara causal, multiplicado pela matriz de valores."}],"exemplo":{"titulo":"Uma linha de atenção, à mão","corpo":"Suponha três posições, com pontuações escaladas iguais a 2,0, 1,0 e 0,1 para a primeira consulta. O softmax dessa linha, que você já calculou no M4, dá 0,659, 0,242 e 0,099. A saída para essa posição é 0,659 vezes o valor da posição um, mais 0,242 vezes o da posição dois, mais 0,099 vezes o da posição três. Atenção é, literalmente, uma média ponderada."}},{"titulo":"Múltiplas cabeças","corpo":["Em vez de uma atenção sobre a dimensão inteira, o modelo divide o espaço em h fatias e roda o mesmo procedimento em paralelo em cada uma, com matrizes Q, K e V próprias. Cada fatia é uma cabeça.","A motivação é de capacidade. Uma única atenção precisa comprometer-se com um tipo de relação por posição. Com várias cabeças, uma pode acompanhar concordância gramatical, outra referência de pronomes, outra proximidade posicional, e assim por diante. As descobertas de interpretabilidade mostram que cabeças de fato se especializam, ainda que raramente de forma tão limpa quanto o exemplo sugere.","As saídas das cabeças são concatenadas e passam por uma última projeção, W com subscrito O, que devolve o resultado à dimensão original do modelo."]},{"titulo":"MLP: onde a informação é processada","corpo":["Depois da atenção vem um bloco totalmente conectado aplicado a cada posição independentemente: expande o vetor para uma dimensão maior, tipicamente quatro vezes maior, aplica uma não linearidade, e comprime de volta.","Se a atenção é a etapa em que as posições conversam entre si, o MLP é a etapa em que cada posição pensa sozinha sobre o que acabou de receber. É também onde mora a maior parte dos parâmetros do modelo, e há evidência de interpretabilidade de que muito do conhecimento factual está armazenado ali."],"formulas":[{"html":"MLP(<i>x</i>) = <i>W</i><sub>2</sub> · <i>g</i>( <i>W</i><sub>1</sub> <i>x</i> + <i>b</i><sub>1</sub> ) + <i>b</i><sub>2</sub>","leitura":"O MLP multiplica por uma matriz que expande, aplica a não linearidade g, e multiplica por outra matriz que comprime de volta."}]},{"titulo":"Normalização de camada e conexões residuais","corpo":["A normalização de camada recentra e reescala o vetor de ativações para média zero e desvio padrão um, e depois aplica dois parâmetros aprendidos de ganho e deslocamento. Serve para manter as ativações em uma faixa estável através de dezenas de camadas, sem o que o treino se torna instável.","A conexão residual soma a entrada do bloco à sua saída. Parece um detalhe e é estrutural: garante um caminho direto para o gradiente atravessar a rede inteira sem ser multiplicado sucessivamente por derivadas pequenas. É o que torna possível treinar oitenta ou cem camadas empilhadas.","Junte as duas e você tem a forma canônica de um bloco: x recebe x mais atenção da versão normalizada de x, e depois x recebe x mais MLP da versão normalizada de x."],"formulas":[{"html":"<i>x</i> ← <i>x</i> + Atenção( LN(<i>x</i>) )&nbsp;&nbsp;&nbsp; <i>x</i> ← <i>x</i> + MLP( LN(<i>x</i>) )","leitura":"O bloco de Transformer moderno: normaliza, aplica a operação, soma de volta à entrada. Duas vezes, uma para atenção e uma para o MLP."}]},{"titulo":"Logits e a cabeça de saída","corpo":["Depois do último bloco, o vetor da última posição é multiplicado por uma matriz de saída de shape dimensão do modelo por tamanho do vocabulário. O resultado é um logit por token possível.","Muitos modelos amarram essa matriz à matriz de embeddings de entrada, usando a transposta da mesma tabela. A leitura é bonita: prever o próximo token vira medir o produto escalar entre o estado final e o embedding de cada token candidato, ou seja, perguntar de qual token o estado atual mais se aproxima em direção.","Sobre esses logits roda o softmax com temperatura, o corte por top-k ou top-p, e o sorteio. O token escolhido é anexado à sequência e o processo inteiro recomeça. Este é o fluxograma completo, do prompt ao token, que o projeto se propôs a tornar transparente."],"formulas":[{"html":"logits = <i>h</i><sub>final</sub> <i>E</i><sup>T</sup>&nbsp;&nbsp;&nbsp; <i>p</i> = softmax(logits ⁄ <i>T</i>)","leitura":"Os logits são o produto do estado final pela transposta da matriz de embeddings, e as probabilidades saem do softmax com temperatura."}]}],"exercicios":[{"q":"Por que a atenção precisa de codificação posicional?","a":"Porque a operação de atenção é invariante à ordem: ela calcula produtos escalares entre todos os pares, sem nenhuma noção de quem veio antes. Sem posição injetada, permutar a frase não mudaria o resultado."},{"q":"Qual o shape de QKᵀ para uma sequência de n tokens?","a":"n por n. Cada célula é a pontuação de relevância de uma posição em relação a outra, o que explica por que o custo da atenção cresce com o quadrado do comprimento do contexto."},{"q":"O que aconteceria sem a divisão por √dk?","a":"As pontuações teriam magnitude proporcional à raiz da dimensão, o softmax saturaria perto de zero e um, e os gradientes ficariam próximos de zero, travando o treino."},{"q":"Explique a máscara causal em termos de softmax.","a":"Somar menos infinito às posições futuras faz a exponencial delas valer zero, então o softmax lhes atribui probabilidade zero. O token só pode atender a si mesmo e ao passado."},{"q":"Em uma frase, qual a divisão de trabalho entre atenção e MLP?","a":"A atenção move informação entre posições; o MLP processa a informação dentro de cada posição."}],"videos":[{"titulo":"Attention in transformers, visually explained","fonte":"3Blue1Brown, cap. 6","url":"https://www.youtube.com/watch?v=eMlx5fFNoYc","nota":"Assista duas vezes: uma antes de ler a seção de atenção, outra depois de fazer os exercícios."},{"titulo":"How might LLMs store facts","fonte":"3Blue1Brown, cap. 7","url":"https://www.youtube.com/watch?v=9-Jl0dxWQs8","nota":"Cobre o MLP e prepara o terreno para o M7."},{"titulo":"The Transformer Attention Mechanism","fonte":"MachineLearningMastery","url":"https://machinelearningmastery.com/the-transformer-attention-mechanism/","nota":"Texto de referência com a álgebra passo a passo, útil para conferir os shapes."}],"checkpoint":[{"q":"Narre o caminho de um token da string ao embedding.","a":"O tokenizador quebra o texto e devolve um índice; o índice busca uma linha na matriz de embeddings; a codificação posicional é somada; o resultado é o vetor de entrada do primeiro bloco."},{"q":"O que Q, K e V representam?","a":"Consulta, o que a posição procura; chave, o rótulo que cada posição oferece; valor, a informação que cada posição entrega quando selecionada."},{"q":"Por que existe a divisão pela raiz de dk?","a":"Para manter a escala das pontuações em uma faixa onde o softmax não satura e os gradientes continuam úteis."},{"q":"Qual o papel da conexão residual?","a":"Oferecer um caminho direto para o gradiente atravessar toda a rede, viabilizando o treino de modelos muito profundos."},{"q":"Como se obtêm os logits e o que se faz com eles?","a":"Multiplicando o estado final pela matriz de saída, frequentemente a transposta da matriz de embeddings. Depois vem softmax com temperatura, corte por top-k ou top-p, e sorteio do token."}],"livros":[{"t":"Attention Is All You Need","a":"Ashish Vaswani e outros","e":"NeurIPS, 2017","c":"Seções 3.1 a 3.3","n":"O paper original do Transformer. Depois deste módulo você consegue ler essas três seções inteiras entendendo cada fórmula. É o teste de leitura de paper previsto no PRD.","u":"https://arxiv.org/abs/1706.03762"},{"t":"Deep Learning: Foundations and Concepts","a":"Christopher M. Bishop e Hugh Bishop","e":"Springer, 2024","c":"Capítulo sobre Transformers","n":"O tratamento mais didático e atual da atenção em livro-texto, com a álgebra explicitada passo a passo. Versão de leitura livre disponível no site do livro.","u":"https://www.bishopbook.com/"},{"t":"Dive into Deep Learning","a":"Zhang, Lipton, Li e Smola","e":"Cambridge University Press, edição aberta","c":"Capítulo de mecanismos de atenção e Transformers","n":"Traz o código junto da matemática, útil para conferir shapes rodando os exemplos.","u":"https://d2l.ai/chapter_attention-mechanisms-and-transformers/index.html"}]},{"id":"M6","nome":"Fluxo de treino e inferência","semanas":3,"lema":"Treinar e usar são dois algoritmos diferentes.","resumo":"A função de perda, o backpropagation ponta a ponta, o otimizador e o laço autorregressivo da inferência. O módulo que separa o que acontece uma vez, na fábrica, do que acontece toda vez que você manda um prompt.","porque":"Boa parte da confusão pública sobre LLMs vem de misturar treino com inferência. Quem separa os dois entende por que o modelo não aprende com a sua conversa, por que o mesmo prompt pode dar respostas diferentes, e o que exatamente um contexto longo custa.","lab":"fluxo","secoes":[{"titulo":"A função de perda, na prática","corpo":["Durante o treino, o modelo recebe um trecho de texto real e tenta prever cada token a partir dos anteriores. Para cada posição, compara-se a distribuição prevista com a verdade, que é uma distribuição concentrada inteiramente no token que de fato apareceu.","A cross-entropy, nesse caso particular, colapsa em algo muito simples: a perda daquela posição é apenas menos o logaritmo da probabilidade que o modelo deu ao token correto. Se deu 0,9, a perda é 0,105. Se deu 0,01, a perda é 4,6. A perda total é a média sobre todas as posições do lote.","É uma métrica honesta e cruel: o modelo é punido pelo logaritmo, então errar com muita confiança custa desproporcionalmente caro."],"formulas":[{"html":"<i>L</i> = − (1⁄<i>N</i>) <span>Σ</span><sub><i>t</i></sub> log <i>P</i>(<i>w</i><sub><i>t</i></sub> | <i>w</i><sub>&lt;<i>t</i></sub>)","leitura":"A perda é a média, sobre todas as posições, do logaritmo negativo da probabilidade atribuída ao token correto."}]},{"titulo":"Backpropagation ponta a ponta","corpo":["Com a perda calculada, a pergunta passa a ser: qual a sensibilidade da perda em relação a cada um dos parâmetros. A resposta vem da regra da cadeia aplicada da saída para a entrada.","O procedimento tem duas passagens. Na passagem para frente, a entrada atravessa todas as camadas e cada resultado intermediário é guardado. Na passagem para trás, começa-se com a derivada da perda em relação à saída e propaga-se camada a camada, multiplicando pelas derivadas locais e reaproveitando os valores guardados.","O custo de memória dessa segunda passagem é a razão de treinar exigir muito mais memória do que rodar o modelo. Em inferência, nada precisa ser guardado para trás."]},{"titulo":"Otimizador, lote e época","corpo":["Calcular o gradiente sobre o conjunto inteiro de treino a cada passo seria proibitivo. Na prática usa-se um lote, um subconjunto aleatório, e o gradiente estimado nele. Daí o nome descida estocástica do gradiente: estocástico porque o lote é sorteado.","O otimizador usado quase universalmente hoje é o Adam, que mantém médias móveis do gradiente e do seu quadrado para ajustar automaticamente o passo de cada parâmetro. Na prática, parâmetros com gradientes historicamente grandes recebem passos menores, e vice-versa.","Uma época é uma passagem completa pelos dados. Modelos de linguagem grandes frequentemente treinam por menos de uma época sobre corpora gigantescos, o que muda a intuição herdada de aprendizado de máquina clássico."]},{"titulo":"Inferência: o laço autorregressivo","corpo":["Quando você manda um prompt, nenhum parâmetro muda. O modelo é uma função fixa, e o que acontece é um laço.","Primeiro, todo o prompt passa pelo modelo de uma vez, etapa chamada de preenchimento, e produz um logit para a próxima posição. Escolhido o token, ele é anexado à sequência e o modelo roda de novo, agora com um token a mais. E assim por diante, um token por iteração, até um limite ou até o token de parada.","Duas consequências práticas. A geração é sequencial por natureza, e é por isso que respostas longas demoram proporcionalmente ao número de tokens. E o custo de contexto é real: como a atenção compara cada posição com todas as outras, dobrar o contexto mais do que dobra o trabalho da atenção.","Uma otimização importante: como as chaves e valores das posições anteriores não mudam, eles são guardados em um cache. Isso evita recalcular tudo a cada token e é a razão de o segundo token sair muito mais rápido que o primeiro."]},{"titulo":"O papel do acaso","corpo":["Com temperatura zero e escolha do maior logit, o modelo é determinístico, e o mesmo prompt tende a produzir a mesma saída, ressalvadas diferenças de hardware e paralelismo que podem alterar arredondamentos.","Com temperatura acima de zero, há sorteio, e cada execução pode divergir. Um único token diferente no início muda o condicionamento de tudo que vem depois, e as saídas se separam rapidamente.","Isso responde a uma pergunta comum: o modelo não está sendo inconsistente nem mudando de opinião. Ele está amostrando de uma distribuição que ele mesmo considera plausível, e você está vendo amostras diferentes do mesmo objeto."]}],"exercicios":[{"q":"O modelo deu 0,25 ao token correto. Qual a perda nessa posição?","a":"Menos o logaritmo natural de 0,25, aproximadamente 1,386."},{"q":"Por que treinar consome muito mais memória do que inferir?","a":"Porque o backpropagation exige guardar as ativações intermediárias da passagem para frente para usá-las na passagem para trás. Em inferência, cada camada pode descartar o que já usou."},{"q":"Sua conversa de hoje muda os pesos do modelo?","a":"Não. Inferência não altera parâmetro nenhum. O que muda o comportamento dentro de uma conversa é o contexto, não o modelo."},{"q":"O que o cache de chaves e valores evita?","a":"Recalcular as projeções K e V de todas as posições anteriores a cada novo token gerado."},{"q":"Por que duas execuções do mesmo prompt divergem tanto com temperatura alta?","a":"Porque o sorteio de um token diferente muda o condicionamento de todos os tokens seguintes, e as trajetórias se afastam de forma composta."}],"videos":[{"titulo":"Backpropagation calculus","fonte":"3Blue1Brown, Neural Networks cap. 4","url":"https://www.youtube.com/watch?v=tIeHLnjs5U8","nota":"Formaliza o que o M3 introduziu como intuição."},{"titulo":"Let's build GPT: from scratch, in code","fonte":"Andrej Karpathy","url":"https://www.youtube.com/watch?v=kCc8FmEb1nY","nota":"Longo e opcional, mas se você quiser ver treino e inferência acontecendo em código, é a referência. Assista em blocos de trinta minutos."}],"checkpoint":[{"q":"Escreva a perda de uma posição em função da probabilidade do token correto.","a":"Menos o logaritmo dessa probabilidade."},{"q":"Quais são as duas passagens do backpropagation e o que cada uma faz?","a":"A passagem para frente calcula a saída e guarda os intermediários; a passagem para trás propaga as derivadas da perda até cada parâmetro."},{"q":"Explique a diferença entre lote e época.","a":"O lote é o subconjunto sorteado usado em um passo de atualização; a época é uma passagem completa por todo o conjunto de dados."},{"q":"Descreva o laço autorregressivo em três frases.","a":"O prompt inteiro é processado e gera um logit para a próxima posição. Um token é escolhido e anexado à sequência. O modelo roda de novo com a sequência aumentada, repetindo até parar."},{"q":"Por que o primeiro token demora mais que os seguintes?","a":"Porque o preenchimento processa o prompt inteiro de uma vez, enquanto os tokens seguintes aproveitam o cache de chaves e valores e só processam a posição nova."}],"livros":[{"t":"Deep Learning","a":"Ian Goodfellow, Yoshua Bengio e Aaron Courville","e":"MIT Press, 2016, livro aberto","c":"Capítulo 6, Deep Feedforward Networks, e capítulo 8, Optimization for Training Deep Models","n":"O capítulo 6 fecha backpropagation e o 8 explica por que o treino de fato funciona, incluindo lote, momento e Adam.","u":"https://www.deeplearningbook.org/"},{"t":"Deep Learning: Foundations and Concepts","a":"Christopher M. Bishop e Hugh Bishop","e":"Springer, 2024","c":"Capítulos de descida do gradiente e de backpropagation","n":"Versão moderna e mais legível dos mesmos assuntos, com notação alinhada à dos papers atuais.","u":"https://www.bishopbook.com/"}]},{"id":"M7","nome":"Como os LLMs calculam de verdade","semanas":3,"lema":"O que o modelo faz e o que o modelo diz que faz são coisas diferentes.","resumo":"Interpretabilidade aplicada: os caminhos paralelos da aritmética, o planejamento antecipado, a racionalização depois do fato, as raízes concretas dos erros de conta e a síntese final do fluxograma completo.","porque":"Este é o módulo que responde à pergunta que originou o projeto. Os módulos anteriores explicam a arquitetura no papel; este mostra o que a pesquisa encontrou quando foi olhar dentro de um modelo em funcionamento, e onde a arquitetura no papel engana.","lab":"sintese","secoes":[{"titulo":"O que é interpretabilidade e por que ela é necessária","corpo":["Conhecer a arquitetura de um Transformer não é o mesmo que saber o que um modelo treinado faz. A arquitetura define o formato do cálculo; o treino preenche bilhões de parâmetros com estratégias que ninguém projetou e que precisam ser descobertas depois, por investigação.","A analogia usada pela própria Anthropic é biológica: o modelo é cultivado, não construído, e estudar seus mecanismos internos se parece mais com microscopia do que com leitura de código-fonte. A linha de pesquisa que faz isso é a interpretabilidade, e ela desenvolveu ferramentas para rastrear quais circuitos internos se ativam durante uma resposta específica.","Para o seu objetivo como usuário avançado, esse é o material mais valioso que existe. Ele substitui suposições sobre o comportamento do modelo por evidência sobre o mecanismo."]},{"titulo":"Caminhos paralelos na aritmética","corpo":["O caso mais didático documentado pela Anthropic é uma soma simples, 36 mais 59. Rastreando os circuitos internos, os pesquisadores encontraram não um algoritmo, mas dois caminhos rodando ao mesmo tempo.","Um caminho é aproximado: estima grosseiramente a magnitude do resultado, algo como perto de noventa e cinco. O outro é preciso e estreito: calcula com exatidão o último dígito da soma. Os dois se combinam no final para produzir a resposta correta.","Nada nessa estratégia se parece com o algoritmo escolar de somar coluna por coluna com transporte. O modelo inventou um método próprio, adequado à maquinaria de que dispõe, e ninguém o ensinou a fazer assim."]},{"titulo":"A racionalização depois do fato","corpo":["O achado seguinte é o mais importante para quem usa modelos profissionalmente. Perguntado sobre como chegou ao resultado, o modelo descreve o algoritmo escolar, com unidades, dezenas e transporte. Ou seja, descreve um método que ele demonstravelmente não usou.","A explicação não é mentira no sentido intencional. O modelo aprendeu, dos textos humanos, como se explica uma soma, e essa explicação é o que ele produz quando o pedido é explicar. O circuito que calcula e o circuito que explica são diferentes.","A consequência prática é direta e vale para muito além de aritmética: a explicação que um modelo dá do próprio raciocínio é uma saída gerada como qualquer outra, não um registro de execução. Ela pode ser fiel, e frequentemente é útil, mas não é auditoria. Trate raciocínio verbalizado como evidência fraca sobre o processo interno, e verifique conclusões pelo resultado, não pela narrativa."]},{"titulo":"Planejamento antecipado e espaço conceitual compartilhado","corpo":["Dois outros achados da mesma linha de pesquisa reorganizam a intuição comum. O primeiro: ao escrever versos com rima, o modelo ativa candidatos de palavra final antes de começar a linha, e depois constrói a frase para chegar até eles. Isso contraria a imagem do modelo como puro previsor míope de um token por vez; há planejamento em algum horizonte.","O segundo: os mesmos circuitos internos se ativam para um conceito independentemente do idioma em que a pergunta é feita. Há indício de um espaço conceitual compartilhado entre línguas, com a tradução para o idioma de saída acontecendo em uma etapa posterior. É por isso que conhecimento adquirido em um idioma transfere para outro.","Ambos os achados justificam a mesma postura: a previsão do próximo token é a interface de treino, não a descrição completa da computação interna."]},{"titulo":"Por que modelos erram contas, em quatro razões concretas","corpo":["Primeira razão, a tokenização. Números são fatiados em pedaços arbitrários e o modelo nunca vê quantidade, vê símbolos. Já detalhado no M5, e é a raiz mais concreta.","Segunda razão, a ausência de laço. Uma passagem pelo modelo tem profundidade fixa, um número fixo de camadas. Algoritmos exatos com muitos passos, como multiplicação longa, exigiriam iteração que a arquitetura não oferece dentro de uma única passagem. É por isso que escrever o raciocínio passo a passo ajuda de verdade: o texto gerado vira a memória de trabalho externa que a arquitetura não tem.","Terceira razão, a natureza dos caminhos encontrados. Estratégias aproximadas funcionam bem na faixa de números que apareceu com frequência no treino e degradam fora dela. Números grandes ou incomuns caem justamente nessa borda.","Quarta razão, a amostragem. Mesmo com o cálculo interno correto, temperatura acima de zero pode sortear um token de dígito diferente. Para tarefas exatas, temperatura baixa é decisão técnica, não estilística.","Regra operacional que decorre disso: para aritmética que importa, peça o passo a passo, use temperatura baixa e prefira que o modelo chame uma ferramenta de cálculo em vez de calcular internamente."]},{"titulo":"Síntese: o fluxograma completo","corpo":["A prova final do projeto é narrar este caminho sem consultar nada. Ele tem onze etapas, e você já viu cada uma delas.","O texto entra e é fatiado pelo tokenizador em índices inteiros. Cada índice busca uma linha na matriz de embeddings, produzindo um vetor de dimensão d. A codificação posicional é somada para que a ordem exista. O vetor entra no primeiro bloco, onde é normalizado e projetado em consulta, chave e valor por três matrizes aprendidas. As pontuações de atenção saem do produto escalar entre consultas e chaves, escaladas pela raiz de d k e mascaradas para o futuro. O softmax converte cada linha de pontuações em pesos que somam um, e esses pesos produzem uma média ponderada dos valores. O resultado é somado de volta à entrada pela conexão residual. O MLP processa cada posição isoladamente, expandindo, aplicando não linearidade e comprimindo, com nova conexão residual. Esse bloco se repete dezenas de vezes. Ao final, o estado da última posição é multiplicado pela matriz de saída, produzindo um logit por token do vocabulário. O softmax com temperatura transforma logits em probabilidades, top-k ou top-p corta a cauda, e um token é sorteado. O token é anexado à sequência e tudo recomeça.","Quando você conseguir dizer isso em voz alta, com suas palavras, sabendo o que cada operação faz e por quê, o Projeto Axioma cumpriu o que prometeu."]}],"exercicios":[{"q":"Por que a explicação que um modelo dá do próprio cálculo não serve como auditoria?","a":"Porque a explicação é gerada pelos mesmos mecanismos de previsão de texto, a partir de como humanos explicam esse tipo de coisa, e não a partir de um registro do que os circuitos internos fizeram. Circuito que calcula e circuito que explica são distintos."},{"q":"Descreva os dois caminhos encontrados na soma 36 mais 59.","a":"Um caminho aproximado que estima a magnitude do resultado e um caminho preciso que calcula o último dígito. Os dois se combinam para produzir a resposta."},{"q":"Por que escrever o raciocínio passo a passo melhora o desempenho em contas?","a":"Porque a passagem pelo modelo tem profundidade fixa e não tem laço interno. O texto gerado funciona como memória de trabalho externa, permitindo que cada passo condicione o seguinte."},{"q":"Qual a decisão técnica correta de temperatura para tarefas aritméticas, e por quê?","a":"Temperatura baixa, próxima de zero, porque a amostragem pode sortear um dígito diferente mesmo quando o cálculo interno está correto."},{"q":"O que o achado sobre rimas sugere sobre a ideia de que o modelo só prevê o próximo token?","a":"Que a previsão do próximo token é o objetivo de treino, não a descrição completa da computação. O modelo ativa candidatos futuros antes e constrói a frase em direção a eles, o que é uma forma de planejamento."}],"videos":[{"titulo":"Tracing the thoughts of a large language model","fonte":"Anthropic","url":"https://www.anthropic.com/news/tracing-thoughts-language-model","nota":"Leitura obrigatória do módulo. É a fonte primária dos achados discutidos aqui."},{"titulo":"On the Biology of a Large Language Model","fonte":"Anthropic, Transformer Circuits","url":"https://transformer-circuits.pub/2025/attribution-graphs/biology.html","nota":"A versão técnica completa, com os grafos de atribuição. Leia as seções que despertarem curiosidade, não o artigo inteiro."},{"titulo":"Mapping the Mind of a Large Language Model","fonte":"Anthropic","url":"https://www.anthropic.com/news/mapping-mind-language-model","nota":"Contexto sobre características internas e como elas são identificadas."}],"checkpoint":[{"q":"O que a interpretabilidade estuda e por que ela é necessária mesmo conhecendo a arquitetura?","a":"Estuda os mecanismos internos que o treino produziu. É necessária porque a arquitetura define apenas o formato do cálculo; as estratégias específicas emergem do treino e precisam ser descobertas por investigação."},{"q":"Cite três razões concretas para erros aritméticos.","a":"Tokenização que fatia números, profundidade fixa sem laço interno e estratégias aproximadas que degradam fora da faixa vista no treino. A amostragem com temperatura é uma quarta."},{"q":"O que significa dizer que o modelo racionaliza?","a":"Que ele produz uma explicação plausível, aprendida de textos humanos, para um processo interno que foi diferente do descrito."},{"q":"O que o espaço conceitual compartilhado entre idiomas implica na prática?","a":"Que conhecimento adquirido em um idioma transfere para outro, porque os mesmos circuitos internos representam o conceito antes da tradução para a língua de saída."},{"q":"Narre o fluxograma completo, do prompt ao token, sem consultar.","a":"Tokenização, embeddings, posição, blocos com normalização, projeção em Q K V, pontuações escaladas e mascaradas, softmax, média ponderada de valores, residual, MLP, residual, repetição por dezenas de blocos, projeção final para logits, softmax com temperatura, corte por top-p, sorteio, anexação e recomeço."}],"livros":[{"t":"On the Biology of a Large Language Model","a":"Equipe de interpretabilidade da Anthropic","e":"Transformer Circuits, 2025","c":"Seções de aritmética, planejamento em poesia e multilinguismo","n":"Fonte primária dos achados discutidos no módulo. Leia as seções que despertarem curiosidade, com os grafos de atribuição ao lado.","u":"https://transformer-circuits.pub/2025/attribution-graphs/biology.html"},{"t":"A Mathematical Framework for Transformer Circuits","a":"Nelson Elhage e outros","e":"Transformer Circuits, 2021","c":"Seções iniciais, sobre modelos de zero e uma camada","n":"Onde a matemática do M5 vira ferramenta de investigação. Denso, mas é a ponte entre arquitetura e interpretabilidade.","u":"https://transformer-circuits.pub/2021/framework/index.html"},{"t":"Mathematics for Machine Learning","a":"Deisenroth, Faisal e Ong","e":"Cambridge University Press, 2020, livro aberto","c":"Livro inteiro, como consulta","n":"Ao final da trilha, folhear o índice deste livro e reconhecer quase tudo é a melhor medida objetiva de que o Axioma cumpriu o que prometeu.","u":"https://mml-book.github.io/book/mml-book.pdf"}]}],"glossario":[{"s":"α","n":"alfa","g":"grego","u":"Taxa de aprendizado, o tamanho do passo do otimizador. Também nível de significância em estatística.","m":"M3"},{"s":"β","n":"beta","g":"grego","u":"Coeficientes de médias móveis no otimizador Adam, escritos como beta um e beta dois. Também coeficientes de regressão.","m":"M6"},{"s":"γ","n":"gama","g":"grego","u":"Fator de desconto em aprendizado por reforço e parâmetro de ganho na normalização de camada.","m":"M5"},{"s":"δ","n":"delta","g":"grego","u":"Variação pequena de uma quantidade. Em backpropagation, o erro propagado de uma camada.","m":"M3"},{"s":"Δ","n":"delta maiúsculo","g":"grego","u":"Variação de uma quantidade entre dois estados, como diferença de perda entre dois passos.","m":"M3"},{"s":"ε","n":"épsilon","g":"grego","u":"Constante minúscula somada a denominadores para evitar divisão por zero. Aparece dentro da normalização de camada e do Adam.","m":"M5"},{"s":"ζ","n":"zeta","g":"grego","u":"Uso raro em aprendizado de máquina; aparece em funções especiais e em variáveis auxiliares.","m":"geral"},{"s":"η","n":"eta","g":"grego","u":"Taxa de aprendizado, alternativa a alfa. Papers de otimização preferem eta.","m":"M3"},{"s":"θ","n":"teta","g":"grego","u":"O conjunto de todos os parâmetros do modelo. O símbolo mais importante da trilha.","m":"M0"},{"s":"ι","n":"iota","g":"grego","u":"Praticamente não usado, por confundir-se visualmente com o índice i.","m":"geral"},{"s":"κ","n":"capa","g":"grego","u":"Número de condição de uma matriz e, ocasionalmente, um parâmetro de concentração.","m":"geral"},{"s":"λ","n":"lambda","g":"grego","u":"Peso de um termo de regularização. Também autovalor de uma matriz e taxa de uma distribuição de Poisson.","m":"M2"},{"s":"μ","n":"mi","g":"grego","u":"Média de uma distribuição. Aparece na normalização de camada como a média das ativações.","m":"M4"},{"s":"ν","n":"ni","g":"grego","u":"Graus de liberdade em estatística. Uso raro em textos de LLM.","m":"geral"},{"s":"ξ","n":"csi","g":"grego","u":"Variável auxiliar ou ruído, dependendo da convenção do paper.","m":"geral"},{"s":"π","n":"pi","g":"grego","u":"A constante 3,14159 e, em aprendizado por reforço, a política do agente.","m":"geral"},{"s":"Π","n":"pi maiúsculo","g":"grego","u":"Produtório: multiplique todos os termos. Aparece na verossimilhança de uma sequência.","m":"M0"},{"s":"ρ","n":"rô","g":"grego","u":"Correlação entre duas variáveis e taxa de decaimento em alguns otimizadores.","m":"geral"},{"s":"σ","n":"sigma","g":"grego","u":"Desvio padrão em estatística e função sigmoide em redes neurais. O contexto desfaz a ambiguidade.","m":"M1"},{"s":"Σ","n":"sigma maiúsculo","g":"grego","u":"Somatório: some todos os termos. Também matriz de covariância, em maiúscula e negrito.","m":"M0"},{"s":"τ","n":"tau","g":"grego","u":"Temperatura da distribuição, alternativa a T. Também constante de tempo.","m":"M4"},{"s":"φ","n":"fi","g":"grego","u":"Uma função de transformação de atributos, ou o mapa de características de um kernel.","m":"geral"},{"s":"χ","n":"qui","g":"grego","u":"Distribuição qui-quadrado, usada em testes estatísticos.","m":"geral"},{"s":"ψ","n":"psi","g":"grego","u":"Função auxiliar em derivações matemáticas.","m":"geral"},{"s":"ω","n":"ômega","g":"grego","u":"Um peso individual ou uma frequência angular em codificação posicional senoidal.","m":"M5"},{"s":"Ω","n":"ômega maiúsculo","g":"grego","u":"O espaço amostral em probabilidade e a notação de complexidade assintótica inferior.","m":"M4"},{"s":"∇","n":"nabla","g":"operador","u":"Gradiente: o vetor de todas as derivadas parciais. Aponta na direção de maior crescimento.","m":"M3"},{"s":"∂","n":"del","g":"operador","u":"Derivada parcial: a variação em relação a uma variável, com as demais mantidas fixas.","m":"M3"},{"s":"∈","n":"pertence a","g":"operador","u":"Indica que um elemento pertence a um conjunto. Ler x ∈ ℝᵈ como x é um vetor de d números reais.","m":"M0"},{"s":"ℝ","n":"erre maiúsculo vazado","g":"operador","u":"O conjunto dos números reais. Com expoente, o conjunto dos vetores daquela dimensão.","m":"M0"},{"s":"‖·‖","n":"norma","g":"operador","u":"O comprimento de um vetor, calculado como a raiz da soma dos quadrados das componentes.","m":"M2"},{"s":"·","n":"produto escalar","g":"operador","u":"Multiplica componente a componente e soma tudo. Mede concordância de direção entre vetores.","m":"M2"},{"s":"ᵀ","n":"transposta","g":"operador","u":"Gira a matriz trocando linhas por colunas. Aparece em QKᵀ na fórmula da atenção.","m":"M2"},{"s":"|","n":"barra de condicional","g":"operador","u":"Lê-se dado que. P(A | B) é a probabilidade de A sabendo que B ocorreu.","m":"M4"},{"s":"argmax","n":"argumento do máximo","g":"operador","u":"Devolve a posição de maior valor, não o valor. É a escolha determinística de token com temperatura zero.","m":"M4"},{"s":"x","n":"x","g":"latina","u":"A entrada do modelo. Em negrito ou com seta, um vetor.","m":"M0"},{"s":"y","n":"y","g":"latina","u":"A saída verdadeira, o alvo que o modelo deveria produzir.","m":"M0"},{"s":"ŷ","n":"y chapéu","g":"latina","u":"A previsão do modelo. O acento circunflexo sempre marca estimativa.","m":"M0"},{"s":"W","n":"W","g":"latina","u":"Uma matriz de pesos aprendida. Com subscritos Q, K, V ou O em textos de Transformer.","m":"M2"},{"s":"b","n":"b","g":"latina","u":"O viés, um vetor somado após a multiplicação por pesos.","m":"M2"},{"s":"h","n":"h","g":"latina","u":"O estado oculto, a representação interna em alguma camada. Com sobrescrito entre parênteses, indica a camada.","m":"M5"},{"s":"d","n":"d","g":"latina","u":"A dimensão de um vetor. Com subscrito k ou model, a dimensão das chaves ou do modelo.","m":"M2"},{"s":"n","n":"n","g":"latina","u":"Número de exemplos, ou comprimento da sequência em textos de Transformer.","m":"M0"},{"s":"k","n":"k","g":"latina","u":"Uma contagem ou recorte, como em top-k. Também índice de somatório.","m":"M4"},{"s":"i, j","n":"i, j","g":"latina","u":"Índices de posição. Em matrizes, i é a linha e j é a coluna.","m":"M0"},{"s":"t","n":"t","g":"latina","u":"O passo de tempo, ou a posição na sequência de tokens.","m":"M4"},{"s":"L","n":"L","g":"latina","u":"A função de perda. Também o número de camadas, dependendo do contexto.","m":"M3"},{"s":"T","n":"T","g":"latina","u":"A temperatura da amostragem. Como sobrescrito, indica transposta.","m":"M4"},{"s":"Q, K, V","n":"Q, K, V","g":"latina","u":"Consulta, chave e valor. As três projeções da entrada que alimentam a atenção.","m":"M5"},{"s":"E","n":"E","g":"latina","u":"A matriz de embeddings. Também o operador de esperança matemática, em contextos de probabilidade.","m":"M5"},{"s":"e","n":"e","g":"latina","u":"O número de Euler, aproximadamente 2,71828, base do logaritmo natural e da exponencial.","m":"M1"},{"s":"log","n":"logaritmo","g":"operador","u":"Sem base escrita, significa logaritmo natural em aprendizado de máquina. Transforma produto em soma.","m":"M1"}],"tutor":{"M0":{"modulo":"m0","tex":{"s1.f0":"\\theta_{\\text{novo}} = \\theta_{\\text{velho}} - \\alpha \\, \\nabla L(\\theta)","s3.f0":"S = \\sum_{i=1}^{n} x_i","s3.f1":"P(w_1, \\ldots, w_n) = \\prod_{t=1}^{n} P\\!\\left(w_t \\mid w_{<t}\\right)","s5.f0":"\\text{Atenção}(Q, K, V) = \\operatorname{softmax}\\!\\left( \\frac{Q K^{T}}{\\sqrt{d_k}} \\right) V"},"trilhos":[{"id":"m0-t1","titulo":"Um passo de descida do gradiente","secao":1,"enunciado":"Um modelo tem um único parâmetro, hoje valendo 0,80. A taxa de aprendizado vale 0,10 e o gradiente da perda nesse ponto vale 2,0. Vamos aplicar a fórmula do passo de atualização, símbolo por símbolo.","passos":[{"pergunta":"Na fórmula do passo de atualização, qual é o papel da letra alfa?","tipo":"escolha","resposta":0,"opcoes":["A taxa de aprendizado, ou seja, o tamanho do passo","O gradiente da perda","O conjunto de todos os parâmetros do modelo","O desvio padrão dos dados"],"erros":[{"valor":1,"diag":"Você atribuiu a alfa o papel do gradiente, que na fórmula está escrito com o nabla.","corrige":"Repare que existem dois objetos distintos multiplicando um ao outro no lado direito. Um deles é o triângulo invertido. O outro não é."},{"valor":2,"diag":"Você deu a alfa o papel de teta, que é o conjunto de parâmetros.","corrige":"Teta aparece três vezes na fórmula, dos dois lados da igualdade. Alfa aparece uma vez só. Isso já sugere funções diferentes."},{"valor":3,"diag":"Você confundiu alfa com sigma minúsculo, a letra que carrega o desvio padrão.","corrige":"Volte à lista das seis letras mais frequentes e separe quem cuida de estatística de quem cuida de otimização."}],"dicas":["Que informação um otimizador precisa ter além da direção para dar um passo?","A fórmula tem uma direção, dada pelo gradiente, e um tamanho. Alfa multiplica a direção, portanto controla uma dessas duas coisas.","Alfa multiplica o gradiente e o resultado é subtraído do parâmetro. Multiplicar a direção por um número muda o comprimento do deslocamento, não o rumo.","Alfa é a taxa de aprendizado, ou seja, o tamanho do passo. O gradiente diz para onde ir, alfa diz o quanto andar naquela direção."],"leitura":"Na fórmula do passo de atualização, qual é o papel da letra alfa? Ela é a taxa de aprendizado, o gradiente da perda, o conjunto de parâmetros ou o desvio padrão dos dados?"},{"pergunta":"Quanto vale o produto da taxa de aprendizado pelo gradiente?","tipo":"numero","resposta":0.2,"tol":0.001,"erros":[{"valor":20,"diag":"Você dividiu o gradiente pela taxa de aprendizado em vez de multiplicar.","corrige":"Na fórmula, alfa e o gradiente aparecem lado a lado, sem barra entre eles. Símbolos justapostos indicam multiplicação."},{"valor":2.1,"diag":"Você somou os dois valores em vez de multiplicá-los.","corrige":"Revise a leitura da fórmula: alfa está encostado no nabla, e não separado por um sinal de mais."},{"valor":0.02,"diag":"Você deslocou a vírgula uma casa a mais ao multiplicar por zero vírgula dez.","corrige":"Multiplicar por zero vírgula dez é o mesmo que dividir por dez. Confira quantas casas o resultado deve andar."}],"dicas":["Como se escreve, em linguagem de conta, a operação entre dois símbolos encostados um no outro?","Dois vezes um décimo é o mesmo que dois divididos por dez. Pense no resultado antes de escrever a vírgula.","A conta montada é zero vírgula dez multiplicado por dois vírgula zero. Falta apenas executá-la.","O produto vale zero vírgula dois. É esse o comprimento do passo que o otimizador vai dar neste ponto."],"leitura":"Quanto vale o produto da taxa de aprendizado, zero vírgula dez, pelo gradiente, dois vírgula zero?"},{"pergunta":"O passo soma ou subtrai esse produto ao valor atual do parâmetro, e por quê?","tipo":"escolha","resposta":0,"opcoes":["Subtrai, porque o gradiente aponta a direção de maior subida da perda","Soma, porque o objetivo do treino é aumentar a perda","Subtrai, porque a taxa de aprendizado é sempre negativa","Soma, porque o gradiente já vem com o sinal invertido pela biblioteca"],"erros":[{"valor":1,"diag":"Você escolheu somar, o que faria a perda crescer em vez de diminuir.","corrige":"Pergunte a si mesmo qual é o objetivo do treino: aumentar a perda ou reduzi-la?"},{"valor":2,"diag":"Você acertou a operação mas justificou com um sinal negativo na taxa de aprendizado, que não existe.","corrige":"A taxa de aprendizado é um número positivo escolhido por quem treina. O sinal de menos já está escrito na fórmula."},{"valor":3,"diag":"Você supôs que a biblioteca entrega o gradiente com o sinal invertido, o que dispensaria o menos da fórmula.","corrige":"Leia a fórmula como ela está escrita, sem supor convenções de implementação. O sinal de menos está explícito."}],"dicas":["O que o treino quer fazer com a perda ao longo das iterações?","O gradiente aponta para a direção em que a perda cresce mais rápido. Você quer ir para lá ou para o lado oposto?","A fórmula traz um sinal de menos entre teta velho e o produto. Esse sinal inverte a direção apontada pelo gradiente.","Subtrai. O gradiente aponta para a subida mais íngreme da perda, e como o objetivo é reduzir a perda, anda-se no sentido contrário."],"leitura":"O passo soma ou subtrai esse produto ao valor atual do parâmetro, e por qual motivo?"},{"pergunta":"Calcule o novo valor do parâmetro.","tipo":"numero","resposta":0.6,"tol":0.001,"erros":[{"valor":1.0,"diag":"Você somou o produto em vez de subtraí-lo.","corrige":"Confira o sinal que aparece na fórmula entre teta velho e o produto de alfa pelo gradiente."},{"valor":-1.2,"diag":"Você subtraiu o gradiente cru, sem multiplicá-lo pela taxa de aprendizado.","corrige":"O gradiente sozinho é apenas a direção. Ele precisa ser encurtado pela taxa antes de sair do valor antigo."},{"valor":0.7,"diag":"Você subtraiu apenas a taxa de aprendizado e esqueceu o gradiente.","corrige":"O termo que sai de teta velho é um produto de dois números, não um deles isolado."}],"dicas":["Você já tem o valor antigo e o tamanho do passo. O que falta fazer com eles?","A fórmula é uma subtração simples entre o valor antigo e o produto que você calculou no segundo passo.","Monte a conta: zero vírgula oitenta menos zero vírgula dois.","O novo valor do parâmetro é zero vírgula seis. O parâmetro andou dois décimos na direção que reduz a perda."],"leitura":"Calcule o novo valor do parâmetro, partindo de zero vírgula oitenta e descontando o passo que você acabou de calcular."},{"pergunta":"Refaça a conta trocando a taxa de aprendizado para 0,50, mantendo gradiente 2,0 e parâmetro 0,80. Qual é o novo valor?","tipo":"numero","resposta":-0.2,"tol":0.001,"erros":[{"valor":1.8,"diag":"Você somou o produto em vez de subtraí-lo.","corrige":"O sinal da fórmula não muda quando a taxa de aprendizado aumenta. Só o comprimento do passo muda."},{"valor":0.3,"diag":"Você subtraiu apenas a taxa de aprendizado, esquecendo de multiplicá-la pelo gradiente.","corrige":"O termo subtraído continua sendo um produto de dois números."},{"valor":0.6,"diag":"Você repetiu o resultado do passo anterior, sem trocar a taxa de aprendizado.","corrige":"Refaça a multiplicação com o novo valor da taxa antes de subtrair."}],"dicas":["O que muda na conta quando só a taxa de aprendizado é alterada?","O produto entre a taxa e o gradiente cresce proporcionalmente à taxa. Ele passa a valer bem mais que dois décimos.","Monte a conta: zero vírgula oitenta menos o produto de zero vírgula cinquenta por dois vírgula zero.","O produto vale um vírgula zero e o novo parâmetro fica em menos zero vírgula dois. O passo foi tão grande que o parâmetro atravessou o zero."],"leitura":"Refaça a conta com taxa de aprendizado zero vírgula cinquenta, gradiente dois vírgula zero e parâmetro zero vírgula oitenta. Qual é o novo valor?"}],"fecho":"Você leu uma fórmula de otimização inteira sem saber cálculo: bastou nomear teta, alfa e o nabla, e respeitar o sinal de menos. O último passo mostrou, com número na mão, por que uma taxa de aprendizado grande demais faz o parâmetro passar do ponto."},{"id":"m0-t2","titulo":"Somatório com índice, do símbolo ao número","secao":3,"enunciado":"Vamos executar dois somatórios à mão, com atenção especial aos limites que ficam embaixo e em cima do sigma maiúsculo.","passos":[{"pergunta":"No somatório com i indo de 1 até 4 da expressão 3i, quantos termos serão somados?","tipo":"numero","resposta":4,"tol":0.0001,"erros":[{"valor":3,"diag":"Você calculou a diferença entre os limites e esqueceu de incluir o primeiro termo.","corrige":"Escreva os valores que o índice assume, um a um, e conte quantos você escreveu."},{"valor":5,"diag":"Você incluiu um termo a mais, como se o índice começasse em zero.","corrige":"O limite de baixo diz exatamente onde o índice começa. Leia esse limite de novo."},{"valor":12,"diag":"Você multiplicou os limites em vez de contar quantos valores o índice percorre.","corrige":"Os limites delimitam uma contagem, não são fatores de uma multiplicação."}],"dicas":["Quais valores o índice assume, do primeiro ao último?","O limite de baixo diz onde o índice começa e o de cima diz onde ele termina, incluindo os dois extremos.","O índice passa por um, dois, três e quatro. Falta apenas contar essa lista.","São quatro termos, porque o índice assume um, dois, três e quatro, e os dois extremos entram na conta."],"leitura":"No somatório com i indo de um até quatro da expressão três i, quantos termos serão somados?"},{"pergunta":"Qual é o valor do primeiro termo?","tipo":"numero","resposta":3,"tol":0.0001,"erros":[{"valor":1,"diag":"Você entregou o valor do índice em vez do valor da expressão.","corrige":"O índice é apenas o contador. A expressão que fica à direita do sigma é que produz o termo."},{"valor":0,"diag":"Você começou o índice em zero, contrariando o limite de baixo.","corrige":"Confira o limite escrito embaixo do sigma antes de substituir."},{"valor":4,"diag":"Você somou três com um em vez de multiplicar.","corrige":"A expressão escreve o três encostado no i, e símbolos encostados indicam produto."}],"dicas":["Que valor o índice tem no primeiro termo, e o que a expressão faz com ele?","Substituir o índice pelo seu primeiro valor dentro da expressão é o procedimento padrão de qualquer somatório.","A expressão é três multiplicado pelo índice, e o índice começa em um.","O primeiro termo vale três, porque três multiplicado por um é três."],"leitura":"Qual é o valor do primeiro termo desse somatório?"},{"pergunta":"Qual é o valor do último termo?","tipo":"numero","resposta":12,"tol":0.0001,"erros":[{"valor":4,"diag":"Você entregou o valor final do índice em vez do valor da expressão.","corrige":"O limite de cima diz até onde o índice vai, e não quanto vale o termo."},{"valor":9,"diag":"Você parou o índice em três, um passo antes do limite de cima.","corrige":"O limite superior é inclusivo: o valor escrito em cima do sigma também entra."},{"valor":15,"diag":"Você levou o índice até cinco, um passo além do limite de cima.","corrige":"Releia o número escrito acima do sigma e pare exatamente nele."}],"dicas":["Qual é o último valor que o índice assume, e o que a expressão devolve para ele?","O limite de cima é inclusivo, portanto o índice chega até ele e para.","A expressão é três multiplicado pelo índice, e o índice termina em quatro.","O último termo vale doze, porque três multiplicado por quatro é doze."],"leitura":"Qual é o valor do último termo desse somatório?"},{"pergunta":"Some todos os termos e dê o total.","tipo":"numero","resposta":30,"tol":0.0001,"erros":[{"valor":10,"diag":"Você somou os valores do índice, e não os valores da expressão.","corrige":"Some os quatro termos que a expressão produziu, não os quatro contadores."},{"valor":27,"diag":"Você esqueceu o primeiro termo na hora de somar.","corrige":"Escreva os quatro termos em uma linha antes de somar, para não perder nenhum."},{"valor":18,"diag":"Você parou antes do último termo.","corrige":"Confira se o termo produzido pelo maior valor do índice entrou na soma."}],"dicas":["Você já tem o primeiro e o último termo. Quais são os dois do meio?","Substituir cada valor do índice na expressão gera a lista completa de parcelas. A soma vem depois.","Os quatro termos são três, seis, nove e doze. Falta somá-los.","O total é trinta, porque três mais seis mais nove mais doze é igual a trinta."],"leitura":"Some todos os termos desse somatório e dê o total."},{"pergunta":"Agora considere o somatório de i ao quadrado, com i indo de 2 até 4. Quanto vale?","tipo":"numero","resposta":29,"tol":0.0001,"erros":[{"valor":30,"diag":"Você começou o índice em um e incluiu um termo que não pertence a este somatório.","corrige":"O limite de baixo mudou. Confira em qual valor o índice deve começar agora."},{"valor":81,"diag":"Você somou os índices primeiro e só depois elevou ao quadrado.","corrige":"A potência está dentro da expressão, portanto ela age em cada termo antes da soma."},{"valor":18,"diag":"Você multiplicou cada índice por dois em vez de elevá-lo ao quadrado.","corrige":"Elevar ao quadrado é multiplicar o número por ele mesmo, e não pelo expoente."}],"dicas":["Quais valores o índice assume agora, e o que a nova expressão faz com cada um?","A expressão mudou de três vezes o índice para o índice elevado ao quadrado, e o limite de baixo também mudou.","Os termos são quatro, nove e dezesseis. Falta somá-los.","O total é vinte e nove, porque dois ao quadrado é quatro, três ao quadrado é nove, quatro ao quadrado é dezesseis, e a soma dá vinte e nove."],"leitura":"Agora considere o somatório de i ao quadrado, com i indo de dois até quatro. Quanto vale?"},{"pergunta":"Voltando ao primeiro somatório, o que muda no total se o limite de baixo passar de i igual a 1 para i igual a 0?","tipo":"escolha","resposta":0,"opcoes":["Nada, porque o termo de índice zero vale zero","O total aumenta em três unidades","O total dobra","O somatório fica indefinido"],"erros":[{"valor":1,"diag":"Você achou que o total cresceria três unidades, como se o termo de índice zero valesse três.","corrige":"Substitua o zero na expressão e veja quanto o novo termo realmente vale."},{"valor":2,"diag":"Você supôs que baixar o limite dobra a soma.","corrige":"Um limite menor acrescenta um termo apenas. Calcule quanto vale esse termo específico."},{"valor":3,"diag":"Você concluiu que o somatório fica indefinido com índice zero.","corrige":"Índice zero é perfeitamente válido. Basta substituí-lo na expressão e ver o resultado."}],"dicas":["Que termo novo entra na soma quando o índice passa a começar em zero?","O termo novo é o valor da expressão calculado no índice zero. Substitua e observe.","Três multiplicado por zero produz um termo específico, e somar esse termo tem um efeito previsível no total.","Nada muda, porque três multiplicado por zero é zero, e somar zero ao total não altera o resultado, que continua trinta."],"leitura":"Voltando ao primeiro somatório, o que muda no total se o limite de baixo passar de i igual a um para i igual a zero?"}],"fecho":"O sigma maiúsculo deixou de ser um símbolo e virou um procedimento: leia o limite de baixo, leia o limite de cima, substitua o índice na expressão e some. Os limites são inclusivos dos dois lados, e essa é a origem da maior parte dos erros de contagem."},{"id":"m0-t3","titulo":"Do produtório à definição de modelo de linguagem","secao":3,"enunciado":"Um modelo atribui às três palavras de uma frase as probabilidades condicionais 0,50, 0,40 e 0,25. Vamos aplicar a fórmula do produtório e ver por que ela é a definição formal do que um modelo de linguagem faz.","passos":[{"pergunta":"Quantos fatores o produtório vai multiplicar?","tipo":"numero","resposta":3,"tol":0.0001,"erros":[{"valor":2,"diag":"Você calculou a diferença entre os limites em vez de contar as posições.","corrige":"Conte quantas palavras a frase tem, uma a uma. É esse o número de fatores."},{"valor":4,"diag":"Você incluiu um fator extra, como se o índice de posição começasse em zero.","corrige":"O limite de baixo do produtório indica a primeira posição da frase."},{"valor":1.15,"diag":"Você somou as probabilidades em vez de contar quantas são.","corrige":"A pergunta é sobre quantidade de fatores, não sobre o valor deles."}],"dicas":["Quantas palavras a frase tem, e quantas probabilidades foram dadas?","O índice t percorre uma posição por palavra, do começo ao fim da frase.","As posições são um, dois e três. Falta apenas contá-las.","São três fatores, um para cada palavra da frase, exatamente como o limite de cima do produtório indica."],"leitura":"Quantos fatores o produtório vai multiplicar?"},{"pergunta":"Multiplique as três probabilidades e dê o resultado.","tipo":"numero","resposta":0.05,"tol":0.0001,"erros":[{"valor":1.15,"diag":"Você somou em vez de multiplicar, trocando o produtório por um somatório.","corrige":"O símbolo pi maiúsculo pede multiplicação. Sigma é quem pede soma."},{"valor":0.2,"diag":"Você multiplicou apenas os dois primeiros fatores e parou.","corrige":"Confira se todas as posições da frase entraram no produto."},{"valor":0.1,"diag":"Você esqueceu o primeiro fator e multiplicou apenas os dois últimos.","corrige":"Todo produtório começa no limite de baixo. Volte a ele antes de multiplicar."}],"dicas":["Qual operação o pi maiúsculo pede, e sobre quais números ela age?","Multiplicar três números menores que um produz um número menor que qualquer um deles. Espere um resultado pequeno.","Monte a conta: zero vírgula cinquenta multiplicado por zero vírgula quarenta, e o resultado multiplicado por zero vírgula vinte e cinco.","O produto vale zero vírgula zero cinco, porque zero vírgula cinquenta vezes zero vírgula quarenta é zero vírgula vinte, e zero vírgula vinte vezes zero vírgula vinte e cinco é zero vírgula zero cinco."],"leitura":"Multiplique as três probabilidades e dê o resultado."},{"pergunta":"O que o subscrito 'menor que t' significa dentro da probabilidade condicional?","tipo":"escolha","resposta":0,"opcoes":["Todas as palavras que aparecem antes da posição t","As palavras cujo índice de posição é negativo","As palavras que virão depois da posição t","As palavras de menor probabilidade da frase"],"erros":[{"valor":1,"diag":"Você leu o sinal de menor como se apontasse para índices negativos.","corrige":"O sinal compara posições da frase, e posições são contadas a partir do começo do texto."},{"valor":2,"diag":"Você inverteu o sentido e imaginou as palavras futuras.","corrige":"Um modelo que gera texto da esquerda para a direita não pode olhar o que ainda não escreveu."},{"valor":3,"diag":"Você leu o sinal como comparação entre probabilidades, e não entre posições.","corrige":"O que está sendo comparado é o índice t, que marca posição, e não o valor da probabilidade."}],"dicas":["O que a letra t marca nessa fórmula, posição ou valor?","O modelo escreve a frase da esquerda para a direita. Ao decidir a palavra de uma posição, o que ele já tem disponível?","O sinal de menor compara índices de posição, e o índice t é a posição da palavra que está sendo prevista agora.","Significa todas as palavras que aparecem antes da posição t, ou seja, o contexto já escrito. É por isso que a fórmula descreve exatamente o que um modelo de linguagem faz."],"leitura":"O que o subscrito menor que t significa dentro da probabilidade condicional?"},{"pergunta":"Se alguém trocasse por engano o pi maiúsculo por um sigma maiúsculo, que número apareceria?","tipo":"numero","resposta":1.15,"tol":0.001,"erros":[{"valor":0.05,"diag":"Você repetiu o produto, sem trocar a operação.","corrige":"A pergunta pede o que aconteceria com soma no lugar de multiplicação."},{"valor":0.383,"diag":"Você calculou a média das três probabilidades.","corrige":"Somatório é soma pura, sem dividir pela quantidade de termos."},{"valor":3,"diag":"Você respondeu com o número de fatores em vez do valor da soma.","corrige":"O número de parcelas e o valor da soma são coisas diferentes."}],"dicas":["Que operação o sigma maiúsculo pede, e sobre os mesmos três números?","Somar três probabilidades que já são frações produz um número bem maior que o produto delas.","Monte a conta: zero vírgula cinquenta mais zero vírgula quarenta mais zero vírgula vinte e cinco.","A soma vale um vírgula quinze, um número maior que um, e portanto impossível como probabilidade."],"leitura":"Se alguém trocasse por engano o pi maiúsculo por um sigma maiúsculo, que número apareceria?"},{"pergunta":"Por que esse resultado já denuncia o erro por si só?","tipo":"escolha","resposta":0,"opcoes":["Porque nenhuma probabilidade pode passar de um","Porque a frase tem apenas três palavras","Porque o somatório só vale para números inteiros","Porque o produto de três números é sempre menor que a soma deles"],"erros":[{"valor":1,"diag":"Você atribuiu o problema ao tamanho da frase.","corrige":"O número de palavras não determina se um valor é probabilidade válida ou não."},{"valor":2,"diag":"Você supôs uma restrição de somatório a números inteiros, que não existe.","corrige":"Somatórios aceitam qualquer número, inclusive frações. O problema está em outro lugar."},{"valor":3,"diag":"Você formulou uma regra genérica sobre produto e soma que não é verdadeira sempre.","corrige":"Concentre-se no que uma probabilidade pode ou não pode valer, e não em comparar operações."}],"dicas":["Que valores uma probabilidade pode assumir?","Toda probabilidade vive entre zero e um, extremos incluídos. Compare esse intervalo com o resultado obtido.","O valor um vírgula quinze está fora do intervalo permitido para probabilidades.","Porque nenhuma probabilidade pode passar de um. Um resultado maior que um prova que a operação usada estava errada, sem precisar refazer conta alguma."],"leitura":"Por que esse resultado já denuncia o erro por si só?"}],"fecho":"A fórmula do produtório deixou de ser decorativa: ela diz, com precisão, que a probabilidade de uma frase é o produto das probabilidades de cada palavra dado o que veio antes. E você ganhou um teste de sanidade barato, já que qualquer resultado maior que um denuncia erro de operação."},{"id":"m0-t4","titulo":"Anatomia da fórmula da atenção","secao":5,"enunciado":"Sem calcular nada de verdade, vamos separar a fórmula da atenção em objetos e operações, exatamente como o protocolo de leitura em voz alta manda.","passos":[{"pergunta":"Quantas matrizes aparecem na fórmula da atenção?","tipo":"numero","resposta":3,"tol":0.0001,"erros":[{"valor":4,"diag":"Você contou d com subscrito k como se fosse uma matriz.","corrige":"Releia a seção: aquele objeto é uma dimensão, portanto um número solto."},{"valor":5,"diag":"Você contou softmax e a transposta como se fossem objetos, e não operações.","corrige":"Separe o que é objeto do que é ação sobre objetos antes de recontar."},{"valor":2,"diag":"Você esqueceu que V também é matriz.","corrige":"Percorra a fórmula da esquerda para a direita e não pare no fechamento do parêntese."}],"dicas":["Quais letras da fórmula são maiúsculas e representam objetos, e não operações?","A convenção diz que letras latinas maiúsculas costumam nomear matrizes. Liste quais aparecem.","As letras Q, K e V aparecem na fórmula como objetos. Falta contá-las.","São três matrizes: Q de consulta, K de chave e V de valor. As demais partes da fórmula são operações ou números."],"leitura":"Quantas matrizes aparecem na fórmula da atenção?"},{"pergunta":"O objeto d com subscrito k é o quê?","tipo":"escolha","resposta":0,"opcoes":["Um escalar, a dimensão das chaves","Uma matriz de chaves","Uma função de normalização","Um índice de posição"],"erros":[{"valor":1,"diag":"Você o classificou como matriz, provavelmente por causa da letra K no subscrito.","corrige":"O subscrito é apenas um rótulo que diz de onde vem a dimensão. Ele não transforma o objeto em matriz."},{"valor":2,"diag":"Você o tratou como função de normalização, papel que pertence ao softmax.","corrige":"Funções na fórmula vêm acompanhadas de parênteses com argumentos. Verifique se é o caso aqui."},{"valor":3,"diag":"Você o leu como índice de posição.","corrige":"Índices de posição costumam ser i, j ou t, e aparecem apontando elementos. Este objeto está sob uma raiz quadrada."}],"dicas":["O que aquele objeto está fazendo dentro da fórmula, sendo apontado ou sendo calculado?","A seção diz que ele é a dimensão das chaves. Dimensão é uma contagem, portanto um número.","Ele aparece sob uma raiz quadrada e o resultado divide uma matriz. Só números fazem esse papel de escala.","É um escalar, a dimensão das chaves. Ele existe na fórmula para fornecer um divisor de escala, não para ser combinado como matriz."],"leitura":"O objeto d com subscrito k é o quê?"},{"pergunta":"Se d com subscrito k vale 64, quanto vale o divisor de escala?","tipo":"numero","resposta":8,"tol":0.0001,"erros":[{"valor":32,"diag":"Você dividiu por dois em vez de extrair a raiz quadrada.","corrige":"Raiz quadrada pergunta que número multiplicado por si mesmo devolve sessenta e quatro."},{"valor":64,"diag":"Você usou a própria dimensão e ignorou a raiz.","corrige":"O símbolo de raiz envolve a dimensão na fórmula. Ele não é decoração."},{"valor":4096,"diag":"Você elevou ao quadrado em vez de extrair a raiz.","corrige":"Raiz e potência ao quadrado são operações inversas. Confira qual delas a fórmula pede."}],"dicas":["Que número multiplicado por ele mesmo devolve sessenta e quatro?","A fórmula divide pela raiz quadrada da dimensão, e não pela dimensão inteira.","Procure o número que, elevado ao quadrado, resulta em sessenta e quatro.","O divisor vale oito, porque oito multiplicado por oito é sessenta e quatro."],"leitura":"Se d com subscrito k vale sessenta e quatro, quanto vale o divisor de escala?"},{"pergunta":"Qual operação é executada primeiro quando se calcula a atenção?","tipo":"escolha","resposta":0,"opcoes":["O produto de Q por K transposta","O softmax","A multiplicação por V","A divisão pela raiz de d com subscrito k"],"erros":[{"valor":1,"diag":"Você começou pelo softmax, que é a operação mais externa do parêntese.","corrige":"O protocolo manda ler de dentro para fora. Procure o que está mais aninhado."},{"valor":2,"diag":"Você começou pela multiplicação por V, que é a última coisa a acontecer.","corrige":"V está fora do parêntese do softmax, portanto espera todo o resto ficar pronto."},{"valor":3,"diag":"Você começou pela divisão, mas ela precisa de um resultado que ainda não existe.","corrige":"Para dividir alguma coisa pela raiz da dimensão, é preciso já ter essa alguma coisa."}],"dicas":["O que está mais aninhado dentro da fórmula, no ponto mais interno de todos?","O protocolo de leitura manda começar pelo mais interno e subir um nível de cada vez.","Dentro do parêntese do softmax há uma fração, e o numerador dessa fração é o ponto mais profundo.","Primeiro vem o produto de Q por K transposta. Depois a divisão pela raiz da dimensão, depois o softmax e por fim a multiplicação por V."],"leitura":"Qual operação é executada primeiro quando se calcula a atenção?"},{"pergunta":"Quantas funções, no sentido de regra que recebe uma lista e devolve outra, aparecem na fórmula?","tipo":"numero","resposta":1,"tol":0.0001,"erros":[{"valor":2,"diag":"Você contou a raiz quadrada como se fosse uma dessas funções.","corrige":"A raiz quadrada age sobre um número solto, e não sobre a lista inteira. Ela conta como operação."},{"valor":3,"diag":"Você contou a transposta e a raiz junto com o softmax.","corrige":"Transposta e raiz são operações elementares, não funções que remapeiam uma lista de valores."},{"valor":0,"diag":"Você tratou softmax como se fosse mais uma matriz.","corrige":"Softmax vem seguido de parênteses com um argumento dentro, que é a assinatura de uma função."}],"dicas":["Qual parte da fórmula vem escrita com nome e parênteses, no formato de função?","A seção diz que uma das partes transforma uma lista de números quaisquer em uma lista de probabilidades.","Softmax é o único nome de função escrito por extenso na fórmula.","Apenas uma: o softmax. As outras partes são objetos, como Q, K, V e a dimensão, ou operações, como transposta, raiz e multiplicação."],"leitura":"Quantas funções, no sentido de regra que recebe uma lista e devolve outra, aparecem na fórmula?"}],"fecho":"Você desmontou a fórmula mais famosa dos Transformers sem calcular uma linha de álgebra: três matrizes, um escalar, uma função e uma ordem de execução clara. Era exatamente isso que o módulo zero prometia entregar."},{"id":"m0-t5","titulo":"Índices, dimensões e conjuntos","secao":3,"enunciado":"Vamos ler quatro notações de conjunto e de índice, transformando cada uma em uma contagem concreta de quantos números existem por trás do símbolo.","passos":[{"pergunta":"Se x pertence ao conjunto dos vetores de quatro números reais, quantos números x guarda?","tipo":"numero","resposta":4,"tol":0.0001,"erros":[{"valor":1,"diag":"Você leu o quatro como potência e imaginou um único número elevado à quarta.","corrige":"Naquela notação, o número que acompanha o símbolo dos reais indica quantidade de coordenadas."},{"valor":16,"diag":"Você elevou quatro ao quadrado, tratando o vetor como matriz quadrada.","corrige":"Vetor tem uma dimensão só. Duas dimensões apareceriam com dois números separados."},{"valor":8,"diag":"Você dobrou a dimensão, talvez pensando em pares de coordenadas.","corrige":"Cada posição do vetor guarda um número, e não dois."}],"dicas":["O que o número que acompanha o símbolo dos reais está contando?","A seção diz que aquele conjunto reúne listas de números reais, e o expoente diz o comprimento da lista.","A notação descreve uma lista, e o número escrito no alto informa quantos elementos ela tem.","São quatro números, porque a notação diz literalmente que x é uma lista de quatro números reais."],"leitura":"Se x pertence ao conjunto dos vetores de quatro números reais, quantos números x guarda?"},{"pergunta":"Uma matriz W tem três linhas e cinco colunas. Quantos elementos ela guarda?","tipo":"numero","resposta":15,"tol":0.0001,"erros":[{"valor":8,"diag":"Você somou linhas e colunas em vez de multiplicá-las.","corrige":"Cada linha contém uma coluna inteira de posições. Pense em quantas posições cabem em uma grade."},{"valor":35,"diag":"Você juntou os dois números lado a lado, formando um número novo.","corrige":"Os dois valores descrevem os lados da grade, e a contagem de casas exige uma operação entre eles."},{"valor":9,"diag":"Você elevou o número de linhas ao quadrado.","corrige":"A matriz não é quadrada. Linhas e colunas têm contagens diferentes aqui."}],"dicas":["Quantas posições cabem numa grade com três linhas e cinco colunas?","Cada linha tem tantas posições quanto o número de colunas. Some ou multiplique, decida qual faz sentido.","Três linhas, cada uma com cinco posições. Monte a conta.","São quinze elementos, porque três multiplicado por cinco é quinze."],"leitura":"Uma matriz W tem três linhas e cinco colunas. Quantos elementos ela guarda?"},{"pergunta":"Nessa mesma matriz, o que o símbolo W com subscritos dois e quatro identifica?","tipo":"escolha","resposta":0,"opcoes":["O elemento da linha dois e da coluna quatro","O elemento da coluna dois e da linha quatro","O produto de dois por quatro dentro da matriz","A submatriz das duas primeiras linhas e quatro primeiras colunas"],"erros":[{"valor":1,"diag":"Você trocou a ordem dos subscritos e leu coluna antes de linha.","corrige":"Repare que, com essa leitura, você pediria a linha quatro de uma matriz que só tem três linhas."},{"valor":2,"diag":"Você leu os subscritos como fatores de uma multiplicação.","corrige":"Subscritos localizam posição. Eles não entram em conta aritmética."},{"valor":3,"diag":"Você leu os subscritos como recorte de submatriz.","corrige":"Um par de subscritos aponta uma casa única da grade, e não um bloco de casas."}],"dicas":["Na convenção do módulo, qual subscrito vem primeiro, o de linha ou o de coluna?","A seção define que o primeiro subscrito marca a linha e o segundo marca a coluna.","Leia o par na ordem em que está escrito e aponte uma única casa da grade.","Identifica o elemento da linha dois e da coluna quatro. A ordem importa, tanto que a leitura invertida pediria uma linha que esta matriz nem tem."],"leitura":"Nessa mesma matriz, o que o símbolo W com subscritos dois e quatro identifica?"},{"pergunta":"Um embedding vive no conjunto dos vetores de setecentos e sessenta e oito números reais. Quantos números o modelo guarda para representar um único token?","tipo":"numero","resposta":768,"tol":0.0001,"erros":[{"valor":1,"diag":"Você imaginou o token representado por um único número.","corrige":"Se fosse um número só, a notação não precisaria informar dimensão alguma."},{"valor":3,"diag":"Você contou os dígitos escritos no alto em vez de ler o valor deles.","corrige":"O número escrito no alto é uma quantidade, e não uma contagem de algarismos."},{"valor":589824,"diag":"Você elevou a dimensão ao quadrado, confundindo vetor com matriz.","corrige":"Um vetor é uma lista simples. Só matrizes exigem multiplicar duas dimensões."}],"dicas":["A notação já responde a pergunta em palavras. O que ela diz literalmente?","Aquele conjunto é o das listas de números reais, e o valor no alto informa o comprimento da lista.","O valor escrito no alto é setecentos e sessenta e oito, e ele conta as posições da lista.","São setecentos e sessenta e oito números. É exatamente isso que um embedding é: uma lista longa de números reais que representa um token."],"leitura":"Um embedding vive no conjunto dos vetores de setecentos e sessenta e oito números reais. Quantos números o modelo guarda para representar um único token?"},{"pergunta":"Em h com três entre parênteses no alto e em x com dois no alto, os sobrescritos significam a mesma coisa?","tipo":"escolha","resposta":0,"opcoes":["Não: o que está entre parênteses é rótulo de camada, o outro é potência","Sim: os dois são potências","Sim: os dois são rótulos de camada","Não: o que está entre parênteses é potência, o outro é rótulo"],"erros":[{"valor":1,"diag":"Você tratou os dois sobrescritos como potências.","corrige":"Se ambos fossem potência, os parênteses de um deles não teriam função nenhuma."},{"valor":2,"diag":"Você tratou os dois sobrescritos como rótulos de camada.","corrige":"Rótulo é justamente o caso que precisa de parênteses. Sem eles, a convenção diz outra coisa."},{"valor":3,"diag":"Você acertou a distinção mas inverteu qual é qual.","corrige":"Volte à regra: são os parênteses que sinalizam rótulo, e não o contrário."}],"dicas":["O que aparece em um dos dois sobrescritos e não aparece no outro?","A seção explica que a convenção dos parênteses existe exatamente para desfazer essa ambiguidade.","Um dos sobrescritos vem entre parênteses e o outro não. Essa diferença gráfica carrega toda a distinção.","Não significam a mesma coisa. O sobrescrito entre parênteses é rótulo, indicando a saída da terceira camada. O sobrescrito sem parênteses é potência, indicando x multiplicado por si mesmo."],"leitura":"Em h com três entre parênteses no alto e em x com dois no alto, os sobrescritos significam a mesma coisa?"}],"fecho":"Notação de conjunto e de índice virou contagem: um vetor guarda tantos números quanto sua dimensão, uma matriz guarda o produto de linhas por colunas, e um par de subscritos aponta uma casa única. Com isso, ler que um embedding vive em setecentos e sessenta e oito dimensões deixa de ser abstrato."}],"duvidas":[{"p":"Preciso decorar as vinte e quatro letras gregas antes de seguir adiante?","chaves":["decorar","letras","gregas","alfabeto","vinte e quatro","memorizar"],"r":"Não. O módulo pede reconhecimento, não recitação. Comece pelas seis que respondem pela maior parte do que aparece em textos sobre LLMs: teta, alfa, sigma minúsculo, sigma maiúsculo, lambda e épsilon. As outras você consulta no glossário do Studio quando aparecerem, e a repetição faz o trabalho de fixação sozinha. O teste real é conseguir nomear cada símbolo de uma fórmula em voz alta, sem travar.","secao":1},{"p":"Como distingo sigma minúsculo de sigma maiúsculo quando os dois aparecem no mesmo texto?","chaves":["sigma","minusculo","maiusculo","somatorio","sigmoide","desvio padrao"],"r":"Pelo formato e pelo contexto. O sigma maiúsculo é o somatório: ele vem com um índice embaixo, um limite em cima e uma expressão à direita, e sempre pede uma soma. O sigma minúsculo nunca carrega limites. Ele aparece ou como desvio padrão, em contexto de estatística, ou como função sigmoide, e nesse caso vem seguido de parênteses com um argumento dentro. Se houver parênteses com argumento, é função. Se houver limites em cima e embaixo, é somatório.","secao":1},{"p":"Como sei se um sobrescrito é potência ou rótulo de camada?","chaves":["sobrescrito","potencia","rotulo","camada","parenteses","expoente"],"r":"Pelos parênteses. Quando o sobrescrito vem entre parênteses, ele é rótulo, e h com três entre parênteses no alto significa a saída da terceira camada. Quando vem sem parênteses, é expoente, e x com dois no alto significa x multiplicado por si mesmo. A convenção foi criada justamente para desfazer essa ambiguidade, e papers sérios a respeitam. Em caso de dúvida, confira a dimensão do objeto: rótulos de camada acompanham vetores e matrizes, expoentes costumam agir sobre escalares.","secao":3},{"p":"O que exatamente é teta em um modelo de linguagem?","chaves":["teta","theta","parametros","pesos","modelo"],"r":"Teta é o nome coletivo de todos os números que o treino ajusta, ou seja, todos os pesos e vieses do modelo. Em um modelo grande, teta representa bilhões de valores empacotados sob uma única letra. Quando um paper escreve que a perda é função de teta, ele está dizendo que a qualidade do modelo depende inteiramente desse conjunto de números. E quando escreve o passo de atualização, está dizendo como esse conjunto muda a cada iteração de treino.","secao":1},{"p":"Por que o passo de atualização tem um sinal de menos na frente do gradiente?","chaves":["sinal","menos","gradiente","descida","atualizacao","nabla"],"r":"Porque o gradiente aponta para a direção em que a perda cresce mais rápido, e o objetivo do treino é reduzir a perda. Andar no sentido oposto ao gradiente é, por isso, andar ladeira abaixo. O sinal de menos é justamente essa inversão de sentido. Se você trocasse o menos por um mais, o treino subiria a ladeira e a perda pioraria a cada passo, que é exatamente o sintoma clássico de sinal invertido em uma implementação.","secao":1},{"p":"O que significa aquele T pequeno no alto da letra K?","chaves":["transposta","T","sobrescrito","matriz","K"],"r":"Significa transposta, que é a matriz girada com linhas e colunas trocadas de lugar. O que estava na linha dois e coluna cinco passa para a linha cinco e coluna dois. Na fórmula da atenção, a transposta existe para que as dimensões de Q e de K se encaixem na multiplicação. No módulo zero basta reconhecer o símbolo e saber nomeá-lo, porque a mecânica da multiplicação de matrizes é assunto do módulo seguinte da trilha.","secao":5},{"p":"Qual a diferença prática entre escalar, vetor e matriz na notação?","chaves":["escalar","vetor","matriz","negrito","maiuscula","convencao"],"r":"Escalar é um número solto e costuma vir em letra minúscula simples, como n, d ou k. Vetor é uma lista de números e costuma vir em letra minúscula em negrito ou com uma seta em cima. Matriz é uma grade de números e costuma vir em letra maiúscula, como W, Q, K ou V. A convenção não é obrigatória, e alguns autores a violam, mas ela acerta na esmagadora maioria dos textos. Quando estiver em dúvida, procure o momento em que o autor define o objeto.","secao":2},{"p":"O que quer dizer aquele erre estilizado com um número no alto?","chaves":["reais","conjunto","pertence","dimensao","vetor","erre"],"r":"É o conjunto dos números reais, e o número escrito no alto informa quantas coordenadas o objeto tem. Escrever que x pertence a esse conjunto com quatro no alto é dizer que x é uma lista de quatro números reais. Com setecentos e sessenta e oito no alto, é dizer que x é uma lista de setecentos e sessenta e oito números reais, que é exatamente o formato de um embedding. O símbolo que parece um E arredondado, antes do conjunto, lê-se pertence a.","secao":3},{"p":"Por que a fórmula da atenção divide pela raiz da dimensão das chaves?","chaves":["raiz","dk","divisao","escala","atencao","porque"],"r":"No módulo zero, a resposta suficiente é que aquele divisor existe para controlar a escala dos números que entram no softmax. Sem ele, produtos entre vetores longos ficariam grandes demais e o softmax saturaria, devolvendo quase tudo concentrado em uma posição só. A justificativa quantitativa, que envolve variância de produtos internos, aparece adiante na trilha. Por ora, reconheça o divisor, saiba nomeá-lo e siga.","secao":5},{"p":"O nabla é uma letra grega?","chaves":["nabla","gradiente","triangulo","grega","simbolo"],"r":"Não é letra do alfabeto grego, embora more na mesma vizinhança visual e apareça no mesmo tipo de fórmula. Ele é um operador, escrito como um triângulo apontando para baixo, e significa gradiente. Quando você lê o nabla aplicado à perda em relação a teta, está lendo o vetor que reúne a taxa de variação da perda em cada parâmetro. No módulo zero, nomear já basta, porque o cálculo do gradiente vem depois.","secao":1},{"p":"Como leio um somatório em voz alta sem me atrapalhar?","chaves":["somatorio","ler","voz alta","limites","indice","sigma"],"r":"Siga sempre a mesma ordem: diga somatório, depois o índice e o limite de baixo, depois o limite de cima, depois a expressão à direita. Para o somatório com i de um a n de x índice i, a leitura é somatório, com i indo de um até n, de x índice i. Em português corrente isso vira some todos os elementos do vetor x, do primeiro ao último. Falar na mesma ordem toda vez elimina a hesitação em poucas semanas.","secao":3},{"p":"As letras Q, K e V foram escolhidas por acaso?","chaves":["Q","K","V","query","key","value","nomes"],"r":"Não. Elas vêm das palavras query, key e value, ou seja, consulta, chave e valor, e ganharam nome próprio na literatura de Transformer. São matrizes, e a fórmula da atenção é a receita de como combiná-las. Guardar a origem das três palavras ajuda porque a metáfora é fiel ao que a operação faz: uma consulta procura chaves parecidas e recolhe os valores associados a elas.","secao":2},{"p":"Como se lê e o que significa o y com um chapeuzinho em cima?","chaves":["y chapeu","chapeu","previsao","saida","verdadeiro"],"r":"Lê-se y chapéu e representa a saída prevista pelo modelo. O y sem chapéu é a saída verdadeira, aquela que consta dos dados. A distinção é central em qualquer função de perda, porque a perda mede exatamente a distância entre o que o modelo previu e o que era verdade. Sempre que encontrar os dois na mesma fórmula, identifique primeiro quem é previsto e quem é verdadeiro antes de tentar entender a conta.","secao":2},{"p":"O protocolo de cinco passos serve para qualquer fórmula ou só para as do módulo?","chaves":["protocolo","cinco passos","leitura","voz alta","metodo"],"r":"Serve para qualquer fórmula, e é para ser usado fora da trilha também. Leia o lado esquerdo e diga o que está sendo definido. Nomeie cada símbolo do lado direito, sem tentar entender ainda. Identifique a operação principal, aquela que ficaria por último se você fosse calcular à mão. Traduza tudo para uma frase em português. Por fim, invente um exemplo numérico minúsculo e calcule. O quinto passo é o que separa reconhecer de entender.","secao":4},{"p":"Índices em fórmulas começam em zero ou em um?","chaves":["indice","zero","um","comeco","limite","contagem"],"r":"Depende do que estiver escrito embaixo do símbolo, e não de convenção universal. Em textos matemáticos é muito comum começar em um, enquanto em código é comum começar em zero. Por isso o limite inferior vem sempre escrito: ele é a fonte da verdade daquela fórmula específica. Lembre também que os dois limites são inclusivos, ou seja, tanto o valor de baixo quanto o de cima produzem termos, e é daí que vem a maior parte dos erros de contagem.","secao":3},{"p":"Por que épsilon aparece somado em denominadores?","chaves":["epsilon","denominador","divisao por zero","estabilidade"],"r":"Para impedir divisão por zero. Épsilon é um número minúsculo, algo como um décimo de milionésimo, somado ao denominador de uma fração para garantir que ele nunca fique exatamente em zero. O efeito no resultado é desprezível, mas o efeito na estabilidade numérica é decisivo, porque uma única divisão por zero contamina todo o restante do cálculo. Sempre que vir um mais épsilon embaixo de uma fração, leia como uma proteção, e não como parte da matemática do modelo.","secao":1}]},"M1":{"modulo":"m1","tex":{"s0.f0":"a^{m} \\cdot a^{n} = a^{m+n} \\qquad a^{-n} = \\frac{1}{a^{n}} \\qquad a^{1/2} = \\sqrt{a}","s1.f0":"e^{0} = 1 \\qquad e^{1} \\approx 2{,}718 \\qquad e^{-2} \\approx 0{,}135 \\qquad e^{x} > 0 \\ \\text{sempre}","s2.f0":"\\log(a \\cdot b) = \\log a + \\log b \\qquad \\log(1) = 0 \\qquad \\log(0{,}5) \\approx -0{,}693","s3.f0":"\\sigma(x) = \\frac{1}{1 + e^{-x}} \\qquad \\operatorname{ReLU}(x) = \\max(0,\\, x)"},"trilhos":[{"id":"m1-t1","titulo":"As três regras de potência até o divisor da atenção","secao":0,"enunciado":"Cinco contas curtas de potência e, no fim, a reescrita do divisor da fórmula da atenção na forma compacta que aparece em papers.","passos":[{"pergunta":"Quanto vale dois elevado a cinco?","tipo":"numero","resposta":32,"tol":0.0001,"erros":[{"valor":10,"diag":"Você multiplicou a base pelo expoente em vez de multiplicar a base por ela mesma.","corrige":"Potência é multiplicação repetida da base. O expoente diz quantas vezes, não é um fator."},{"valor":25,"diag":"Você trocou base por expoente e calculou cinco ao quadrado.","corrige":"A base é o número de baixo e o expoente é o de cima. Confira qual é qual antes de calcular."},{"valor":16,"diag":"Você parou em dois elevado a quatro, uma multiplicação antes do fim.","corrige":"Conte quantos fatores dois você usou e compare com o expoente pedido."}],"dicas":["O que exatamente o expoente está contando?","Potência é multiplicação repetida da base por ela mesma, e o expoente diz quantas vezes ela entra.","Escreva dois multiplicado por dois multiplicado por dois multiplicado por dois multiplicado por dois e resolva.","Vale trinta e dois, porque cinco fatores dois multiplicados entre si dão trinta e dois."],"leitura":"Quanto vale dois elevado a cinco?"},{"pergunta":"Multiplique dois elevado a três por dois elevado a quatro e dê o resultado numérico.","tipo":"numero","resposta":128,"tol":0.0001,"erros":[{"valor":4096,"diag":"Você multiplicou os expoentes em vez de somá-los.","corrige":"A regra da multiplicação de potências de mesma base soma os expoentes. Multiplicar expoentes é outra regra, a da potência de potência."},{"valor":0.5,"diag":"Você subtraiu os expoentes, aplicando por engano a regra da divisão.","corrige":"Subtrair expoentes vale quando há uma barra entre as potências. Aqui elas estão multiplicadas."},{"valor":7,"diag":"Você entregou o expoente somado em vez de calcular a potência resultante.","corrige":"Somar os expoentes é o meio do caminho. Depois disso ainda falta elevar a base ao expoente obtido."}],"dicas":["Que regra se aplica quando duas potências de mesma base são multiplicadas?","Multiplicar potências de mesma base soma os expoentes, e o resultado continua sendo uma potência dessa mesma base.","Os expoentes somados dão sete. Agora eleve a base dois a esse expoente.","Vale cento e vinte e oito, porque três mais quatro é sete, e dois elevado a sete é cento e vinte e oito."],"leitura":"Multiplique dois elevado a três por dois elevado a quatro e dê o resultado numérico."},{"pergunta":"Quanto vale dois elevado a menos três?","tipo":"numero","resposta":0.125,"tol":0.0001,"erros":[{"valor":-8,"diag":"Você passou o sinal de menos do expoente para o resultado.","corrige":"Expoente negativo não produz número negativo. Ele produz o inverso da potência."},{"valor":8,"diag":"Você ignorou o sinal do expoente e calculou dois elevado a três.","corrige":"O sinal no expoente tem consequência. Releia a segunda das três regras."},{"valor":-0.125,"diag":"Você inverteu corretamente a fração mas manteve um sinal de menos indevido no resultado.","corrige":"A inversão já consome o sinal do expoente. Ele não reaparece no valor final."}],"dicas":["O que a regra do expoente negativo transforma numa potência?","Expoente negativo significa inverso, ou seja, um dividido pela potência de expoente positivo.","Monte a fração: um dividido por dois elevado a três.","Vale zero vírgula cento e vinte e cinco, porque um dividido por oito é um oitavo, ou zero vírgula cento e vinte e cinco."],"leitura":"Quanto vale dois elevado a menos três?"},{"pergunta":"Elevar um número ao expoente um meio equivale a que operação?","tipo":"escolha","resposta":0,"opcoes":["Extrair a raiz quadrada do número","Dividir o número por dois","Multiplicar o número por ele mesmo","Reduzir à metade o expoente original"],"erros":[{"valor":1,"diag":"Você leu o expoente como se fosse uma divisão do número por dois.","corrige":"Expoente age sobre a base de outro modo. Compare com o caso do expoente dois, que não multiplica o número por dois."},{"valor":2,"diag":"Você descreveu o efeito do expoente dois, e não o do expoente um meio.","corrige":"Expoente dois multiplica o número por ele mesmo. O expoente um meio faz a operação inversa dessa."},{"valor":3,"diag":"Você imaginou que o expoente um meio corta pela metade outro expoente.","corrige":"Aqui o um meio é o expoente inteiro da expressão, e não um fator aplicado a outro expoente."}],"dicas":["Se o expoente dois multiplica o número por ele mesmo, o que faz o expoente que é a metade de um?","A terceira das três regras liga expoente fracionário a radical.","Um número elevado ao expoente um meio, quando multiplicado por si mesmo, devolve o número original. Isso caracteriza uma operação conhecida.","Equivale a extrair a raiz quadrada, porque a base elevada a um meio, multiplicada por si mesma, devolve a base."],"leitura":"Elevar um número ao expoente um meio equivale a que operação?"},{"pergunta":"Se a dimensão das chaves vale 64, quanto vale sessenta e quatro elevado a menos um meio?","tipo":"numero","resposta":0.125,"tol":0.0001,"erros":[{"valor":8,"diag":"Você extraiu a raiz corretamente mas esqueceu de inverter por causa do sinal.","corrige":"O expoente traz duas informações ao mesmo tempo: a fração pede raiz e o sinal pede inverso."},{"valor":32,"diag":"Você dividiu por dois em vez de extrair a raiz quadrada.","corrige":"Raiz quadrada pergunta que número multiplicado por si mesmo devolve sessenta e quatro."},{"valor":-8,"diag":"Você passou o sinal do expoente para o resultado.","corrige":"Expoente negativo produz inverso, jamais número negativo."}],"dicas":["O expoente traz duas informações, uma no sinal e outra na fração. Quais são?","A fração um meio pede raiz quadrada e o sinal de menos pede inverso. Aplique as duas coisas.","A raiz quadrada de sessenta e quatro é oito. Falta apenas usar o sinal do expoente.","Vale zero vírgula cento e vinte e cinco, porque a raiz de sessenta e quatro é oito e o inverso de oito é um oitavo."],"leitura":"Se a dimensão das chaves vale sessenta e quatro, quanto vale sessenta e quatro elevado a menos um meio?"},{"pergunta":"Por que os papers escrevem multiplicação por essa potência em vez de divisão por uma raiz?","tipo":"escolha","resposta":0,"opcoes":["Porque multiplicar por uma potência é mais compacto de escrever e dá o mesmo resultado","Porque o resultado é diferente do da divisão por raiz","Porque a raiz quadrada não existe para números grandes","Porque expoentes negativos são executados mais rápido na placa de vídeo"],"erros":[{"valor":1,"diag":"Você supôs que as duas formas dão resultados diferentes.","corrige":"Compare os dois valores que você já calculou nesta trilha. Eles coincidem?"},{"valor":2,"diag":"Você imaginou uma limitação da raiz quadrada para números grandes.","corrige":"Raiz quadrada existe para qualquer número positivo, por maior que seja."},{"valor":3,"diag":"Você atribuiu a escolha a desempenho de hardware.","corrige":"A motivação aqui é de escrita, e não de execução. Pense em quanto espaço cada forma ocupa na linha."}],"dicas":["As duas formas dão o mesmo número. Então o que pode ter motivado a escolha?","A seção observa que a equivalência entre expoente fracionário e raiz permite escrever a mesma coisa de dois jeitos.","Uma das formas cabe em linha, sem barra de fração nem sinal de radical envolvendo símbolos.","Porque escrever uma multiplicação por potência é mais compacto que desenhar uma divisão por raiz, e o resultado é exatamente o mesmo."],"leitura":"Por que os papers escrevem multiplicação por essa potência em vez de divisão por uma raiz?"}],"fecho":"As três regras deixaram de ser fórmulas de escola e viraram ferramenta de leitura: você reconhece a mesma escala da atenção escrita de dois modos diferentes e sabe que ambos valem um oitavo quando a dimensão é sessenta e quatro."},{"id":"m1-t2","titulo":"A exponencial e a garantia de positividade","secao":1,"enunciado":"Três valores da exponencial, uma soma e a primeira divisão que produz probabilidades. Use as referências da seção: e elevado a um vale aproximadamente 2,718 e e elevado a menos dois vale aproximadamente 0,135.","passos":[{"pergunta":"Quanto vale e elevado a zero?","tipo":"numero","resposta":1,"tol":0.0001,"erros":[{"valor":0,"diag":"Você aplicou a ideia de que zero anula tudo, o que não vale para expoentes.","corrige":"Expoente zero e fator zero são coisas diferentes. Reveja o que o expoente representa."},{"valor":2.718,"diag":"Você entregou o valor de e elevado a um.","corrige":"Confira o expoente pedido antes de escolher a linha da tabela de referência."},{"valor":0.135,"diag":"Você leu a linha de e elevado a menos dois por engano.","corrige":"Volte à tabela e localize a linha em que o expoente é zero."}],"dicas":["Que valor qualquer base assume quando o expoente é zero?","A seção lista esse valor como primeira referência da exponencial.","Toda base positiva elevada a zero devolve o mesmo número, e ele é o elemento neutro da multiplicação.","Vale um. É a primeira referência da tabela e vale para qualquer base positiva, não só para e."],"leitura":"Quanto vale e elevado a zero?"},{"pergunta":"Quanto vale e elevado a menos dois, com três casas decimais?","tipo":"numero","resposta":0.135,"tol":0.001,"erros":[{"valor":-0.135,"diag":"Você passou o sinal do expoente para o resultado.","corrige":"Expoente negativo puxa o valor para perto de zero, mas nunca faz a exponencial ficar negativa."},{"valor":7.389,"diag":"Você ignorou o sinal do expoente e calculou e elevado a dois.","corrige":"Expoente positivo faz crescer e expoente negativo faz encolher. Confira o sinal."},{"valor":-7.389,"diag":"Você calculou e elevado a dois e depois trocou o sinal do resultado.","corrige":"O sinal pertence ao expoente, e o efeito dele é encolher o valor, não invertê-lo."}],"dicas":["Para expoente negativo, a exponencial cresce ou encolhe em direção a zero?","A seção diz que, para expoente negativo, a função cai em direção a zero e permanece positiva.","A tabela de referência da seção já traz esse valor pronto, com três casas.","Vale aproximadamente zero vírgula cento e trinta e cinco, um número pequeno e positivo."],"leitura":"Quanto vale e elevado a menos dois, com três casas decimais?"},{"pergunta":"A exponencial de um número real pode dar resultado negativo?","tipo":"escolha","resposta":0,"opcoes":["Não, ela é sempre estritamente positiva","Sim, quando o expoente é negativo","Sim, quando o expoente é menor que menos um","Só quando a base é menor que um"],"erros":[{"valor":1,"diag":"Você associou expoente negativo a resultado negativo.","corrige":"Expoente negativo produz um valor pequeno, e pequeno não é o mesmo que negativo."},{"valor":2,"diag":"Você imaginou um limiar a partir do qual a função cruzaria o zero.","corrige":"A função se aproxima de zero indefinidamente, mas o valor exato zero nunca é atingido."},{"valor":3,"diag":"Você condicionou o sinal do resultado ao valor da base.","corrige":"Aqui a base é o número e, que é positivo e fixo. Concentre-se no comportamento da função."}],"dicas":["Você já calculou dois valores da exponencial. Algum deles ficou abaixo de zero?","A seção afirma que a função cai em direção a zero para expoente negativo, mas nunca chega a zero.","Se a função nunca chega a zero e vem descendo de valores positivos, ela não pode cruzar para o lado negativo.","Não, ela é sempre estritamente positiva. É exatamente essa propriedade que permite usar a exponencial para transformar números quaisquer em candidatos a probabilidade."],"leitura":"A exponencial de um número real pode dar resultado negativo?"},{"pergunta":"Some os três valores: e elevado a zero, e elevado a menos dois e e elevado a um. Dê o total com três casas.","tipo":"numero","resposta":3.853,"tol":0.002,"erros":[{"valor":2.853,"diag":"Você esqueceu de incluir o valor um na soma.","corrige":"Confira se os três termos entraram, inclusive aquele que veio do expoente zero."},{"valor":1.135,"diag":"Você somou apenas os dois primeiros valores.","corrige":"Falta o maior dos três, o que vem do expoente um."},{"valor":0.367,"diag":"Você multiplicou os três valores em vez de somá-los.","corrige":"A pergunta pede soma. Multiplicar produziria um número bem menor que qualquer um dos termos."}],"dicas":["Quais são os três valores em jogo, escritos lado a lado?","Os valores vêm da tabela de referência da seção, e a operação pedida é a mais simples possível.","Monte a conta: um mais zero vírgula cento e trinta e cinco mais dois vírgula setecentos e dezoito.","O total é aproximadamente três vírgula oitocentos e cinquenta e três."],"leitura":"Some os três valores: e elevado a zero, e elevado a menos dois e e elevado a um. Dê o total com três casas."},{"pergunta":"Divida o primeiro valor pela soma que você obteve e dê o resultado com três casas.","tipo":"numero","resposta":0.26,"tol":0.002,"erros":[{"valor":0.035,"diag":"Você usou o valor de e elevado a menos dois no numerador.","corrige":"A pergunta pede o primeiro dos três valores, aquele que veio do expoente zero."},{"valor":0.705,"diag":"Você usou o valor de e elevado a um no numerador.","corrige":"Confira qual dos três termos é o primeiro da lista."},{"valor":3.853,"diag":"Você inverteu a divisão e devolveu a soma dividida pelo primeiro valor.","corrige":"Numerador e denominador não são intercambiáveis. Releia a ordem pedida."}],"dicas":["Qual número vai em cima da fração e qual vai embaixo?","Dividir um dos valores pela soma de todos produz a fração que aquele valor representa do total.","Monte a fração: um dividido por três vírgula oitocentos e cinquenta e três.","O resultado é aproximadamente zero vírgula duzentos e sessenta, ou seja, cerca de vinte e seis por cento do total."],"leitura":"Divida o primeiro valor pela soma que você obteve e dê o resultado com três casas."},{"pergunta":"Se você repetir essa divisão para os três valores, quanto valerá a soma dos três resultados?","tipo":"escolha","resposta":0,"opcoes":["Exatamente um","Depende dos expoentes escolhidos","Sempre menos que um","Sempre mais que um"],"erros":[{"valor":1,"diag":"Você achou que o total dependeria dos expoentes escolhidos.","corrige":"Experimente com outros três números quaisquer e observe que o total não muda."},{"valor":2,"diag":"Você supôs que a soma ficaria abaixo de um.","corrige":"Some as três frações mentalmente: elas repartem exatamente o mesmo total que está no denominador."},{"valor":3,"diag":"Você supôs que a soma passaria de um.","corrige":"Se cada parcela é uma fração do mesmo total, o conjunto delas não pode ultrapassar esse total."}],"dicas":["O que acontece quando cada parte de um total é dividida por esse mesmo total?","Cada divisão devolve a fatia que aquele valor ocupa do bolo inteiro, e as fatias juntas formam o bolo.","Some as três frações com denominador comum e observe que o numerador reconstitui o denominador.","Vale exatamente um. É essa propriedade que transforma exponenciais positivas em uma distribuição de probabilidade legítima, mecanismo que a trilha detalha adiante."],"leitura":"Se você repetir essa divisão para os três valores, quanto valerá a soma dos três resultados?"}],"fecho":"Você viu, com números na mão, por que a exponencial é a escolha certa para preparar probabilidades: ela nunca devolve negativo e, depois de dividida pela soma, produz partes que fecham exatamente em um."},{"id":"m1-t3","titulo":"Logprobs de uma sequência de três tokens","secao":2,"enunciado":"Três tokens com probabilidades 0,4, 0,3 e 0,5. Use os logaritmos naturais aproximados que a seção fornece: menos 0,92, menos 1,20 e menos 0,69.","passos":[{"pergunta":"Multiplique as três probabilidades e dê o produto.","tipo":"numero","resposta":0.06,"tol":0.0001,"erros":[{"valor":1.2,"diag":"Você somou em vez de multiplicar.","corrige":"A probabilidade conjunta de tokens em sequência vem de um produto, como o produtório do módulo anterior mostra."},{"valor":0.12,"diag":"Você multiplicou apenas os dois primeiros fatores e parou.","corrige":"Confira se as três probabilidades entraram no produto."},{"valor":0.15,"diag":"Você esqueceu o primeiro fator e multiplicou apenas os dois últimos.","corrige":"Recomece pelo primeiro token da sequência."}],"dicas":["Quantos fatores existem, e qual operação liga probabilidades de tokens em sequência?","Probabilidade conjunta de eventos encadeados vem de multiplicação, e não de soma.","Monte a conta: zero vírgula quatro vezes zero vírgula três, e o resultado vezes zero vírgula cinco.","O produto vale zero vírgula zero seis, porque zero vírgula quatro vezes zero vírgula três é zero vírgula doze, e zero vírgula doze vezes zero vírgula cinco é zero vírgula zero seis."],"leitura":"Multiplique as três probabilidades e dê o produto."},{"pergunta":"Some os três logaritmos naturais fornecidos.","tipo":"numero","resposta":-2.81,"tol":0.01,"erros":[{"valor":2.81,"diag":"Você largou o sinal de menos ao somar.","corrige":"Todos os três termos são negativos, portanto a soma também será negativa."},{"valor":-0.762,"diag":"Você multiplicou os três logaritmos em vez de somá-los.","corrige":"A propriedade diz que o logaritmo do produto vira soma dos logaritmos, e não produto deles."},{"valor":-2.12,"diag":"Você somou apenas dois dos três termos.","corrige":"Confira se o logaritmo de cada uma das três probabilidades entrou na conta."}],"dicas":["Que operação a propriedade do logaritmo do produto sugere aqui?","O logaritmo de um produto é a soma dos logaritmos dos fatores, e é isso que substitui a multiplicação.","Monte a conta: menos zero vírgula noventa e dois, menos um vírgula vinte, menos zero vírgula sessenta e nove.","A soma vale aproximadamente menos dois vírgula oitenta e um."],"leitura":"Some os três logaritmos naturais fornecidos."},{"pergunta":"Por que a soma dos logaritmos deu negativa?","tipo":"escolha","resposta":0,"opcoes":["Porque cada probabilidade está entre zero e um, e o logaritmo nesse intervalo é negativo","Porque o logaritmo natural é sempre negativo","Porque somar três números pequenos sempre dá negativo","Porque o modelo errou a previsão"],"erros":[{"valor":1,"diag":"Você generalizou demais e afirmou que o logaritmo natural é sempre negativo.","corrige":"Pense no logaritmo de um número maior que um, como dez ou cem. Ele continua negativo?"},{"valor":2,"diag":"Você atribuiu o sinal ao tamanho dos números somados.","corrige":"Somar três números pequenos e positivos daria resultado positivo. O sinal vem de outro lugar."},{"valor":3,"diag":"Você interpretou o sinal como sintoma de erro do modelo.","corrige":"O sinal aparece mesmo quando o modelo acerta. Ele é consequência do intervalo em que probabilidades vivem."}],"dicas":["Em que intervalo vivem as probabilidades, e o que o logaritmo faz nesse intervalo?","A seção afirma que o logaritmo de um número entre zero e um é negativo, e é daí que vem o menos das perdas.","Cada uma das três probabilidades é menor que um, portanto cada logaritmo já nasce negativo.","Porque cada probabilidade está entre zero e um, e o logaritmo de qualquer número nesse intervalo é negativo. Somar três negativos mantém o sinal."],"leitura":"Por que a soma dos logaritmos deu negativa?"},{"pergunta":"Se você aplicar a exponencial ao resultado da soma, que número deve reaparecer?","tipo":"escolha","resposta":0,"opcoes":["Aproximadamente zero vírgula zero seis, o produto original","Aproximadamente menos dois vírgula oitenta e um, a própria soma","Exatamente um","Aproximadamente um vírgula dois"],"erros":[{"valor":1,"diag":"Você repetiu o valor da soma, sem aplicar a exponencial.","corrige":"A exponencial desfaz o logaritmo. O resultado dela não pode ser o próprio logaritmo."},{"valor":2,"diag":"Você respondeu um, valor que corresponderia a logaritmo zero.","corrige":"Compare o resultado da soma com zero. Eles são iguais?"},{"valor":3,"diag":"Você respondeu com a soma das probabilidades, e não com o produto delas.","corrige":"A conta feita foi de logaritmos de fatores, portanto a exponencial devolve o produto."}],"dicas":["O que a exponencial faz com um logaritmo, do ponto de vista de operação inversa?","Logaritmo e exponencial desfazem um ao outro. Se a soma dos logaritmos equivale ao logaritmo do produto, a exponencial devolve o produto.","Você já calculou o produto no primeiro passo desta trilha. Esse é o número que deve reaparecer.","Reaparece aproximadamente zero vírgula zero seis, ou seja, o mesmo produto do primeiro passo. É essa a confirmação de que os dois caminhos levam ao mesmo lugar."],"leitura":"Se você aplicar a exponencial ao resultado da soma, que número deve reaparecer?"},{"pergunta":"Quanto vale o logaritmo de um?","tipo":"numero","resposta":0,"tol":0.0001,"erros":[{"valor":1,"diag":"Você repetiu o argumento como se fosse o resultado.","corrige":"A pergunta do logaritmo é a que expoente elevo a base para chegar neste número. Responda a essa pergunta."},{"valor":2.718,"diag":"Você respondeu com o valor do número e.","corrige":"O número e é a base do logaritmo natural, e não a resposta desta pergunta."},{"valor":-1,"diag":"Você aplicou o sinal de menos que costuma acompanhar as perdas.","corrige":"O sinal de menos das perdas vem de probabilidades menores que um. Aqui o argumento é exatamente um."}],"dicas":["A que expoente é preciso elevar a base para chegar em um?","Qualquer base positiva elevada a zero devolve um. O logaritmo apenas inverte essa pergunta.","Se a base elevada a zero dá um, então o logaritmo de um é o próprio zero.","Vale zero, porque qualquer base elevada a zero resulta em um. É a fronteira entre logaritmos negativos, para argumentos abaixo de um, e positivos, para argumentos acima de um."],"leitura":"Quanto vale o logaritmo de um?"},{"pergunta":"Numa sequência de quinhentos tokens, por que o produto direto das probabilidades não sobrevive na máquina?","tipo":"escolha","resposta":0,"opcoes":["Porque o produto fica tão pequeno que a máquina o arredonda para zero","Porque o produto fica grande demais para caber na memória","Porque a multiplicação é mais lenta que a soma","Porque cada probabilidade precisaria ser um número inteiro"],"erros":[{"valor":1,"diag":"Você imaginou o problema oposto, de número grande demais.","corrige":"Multiplicar números menores que um encolhe o resultado a cada fator. Pense para onde isso caminha."},{"valor":2,"diag":"Você atribuiu o problema à velocidade da multiplicação.","corrige":"A questão aqui é de precisão numérica, e não de tempo de execução."},{"valor":3,"diag":"Você supôs uma exigência de números inteiros.","corrige":"A máquina lida com frações sem problema. O limite está em quão pequeno um número pode ficar antes de virar zero."}],"dicas":["O que acontece com um número quando ele é multiplicado quinhentas vezes por fatores menores que um?","A seção estima que o produto chega a uma ordem de grandeza como dez elevado a menos oitocentos.","Números tão pequenos ficam abaixo do menor valor que a máquina consegue representar, e ela então os arredonda.","Porque o produto fica tão pequeno que a máquina o arredonda para zero. Somando logaritmos, o mesmo dado vira um número da ordem de menos mil e duzentos, perfeitamente representável, e é por isso que a interface devolve logprobs."],"leitura":"Numa sequência de quinhentos tokens, por que o produto direto das probabilidades não sobrevive na máquina?"}],"fecho":"Você percorreu os dois caminhos, o do produto e o da soma de logaritmos, e chegou ao mesmo número. Com três tokens os dois funcionam. Com quinhentos, só o segundo, e essa é a razão prática de existirem logprobs."},{"id":"m1-t4","titulo":"Sigmoide e ReLU, valor a valor","secao":3,"enunciado":"Vamos avaliar as duas não linearidades mais comuns em pontos escolhidos, usando a referência de que e elevado a menos dois vale aproximadamente 0,135.","passos":[{"pergunta":"Quanto vale a sigmoide de zero?","tipo":"numero","resposta":0.5,"tol":0.001,"erros":[{"valor":1,"diag":"Você parou no valor da exponencial e não completou a fração.","corrige":"A exponencial é apenas uma parte do denominador. Falta montar a fração inteira."},{"valor":0,"diag":"Você devolveu a entrada em vez da saída.","corrige":"A entrada zero passa por uma regra que a transforma. Aplique a regra."},{"valor":2,"diag":"Você entregou o denominador em vez do valor da fração.","corrige":"Depois de montar o denominador, ainda falta dividir um por ele."}],"dicas":["Quanto vale a exponencial quando o expoente é zero, e o que a fórmula faz com esse valor?","A sigmoide é um dividido por um mais a exponencial do oposto da entrada.","Com entrada zero, o denominador fica um mais um. Falta apenas concluir a divisão.","Vale zero vírgula cinco, porque a exponencial de zero é um, o denominador fica dois, e um dividido por dois é meio. Entrada neutra, probabilidade de cinquenta por cento."],"leitura":"Quanto vale a sigmoide de zero?"},{"pergunta":"Calcule o denominador da sigmoide quando a entrada vale dois.","tipo":"numero","resposta":1.135,"tol":0.001,"erros":[{"valor":8.389,"diag":"Você usou e elevado a dois em vez de e elevado a menos dois.","corrige":"A fórmula troca o sinal da entrada antes de aplicar a exponencial. Repare no menos que precede o x."},{"valor":0.135,"diag":"Você esqueceu de somar o um.","corrige":"O denominador é um mais a exponencial, e não só a exponencial."},{"valor":0.865,"diag":"Você subtraiu a exponencial em vez de somá-la.","corrige":"O sinal escrito no denominador é de soma. O menos que existe na fórmula está no expoente."}],"dicas":["Qual é o expoente da exponencial quando a entrada vale dois?","A fórmula aplica a exponencial ao oposto da entrada, portanto o expoente fica negativo.","A exponencial vale aproximadamente zero vírgula cento e trinta e cinco. Falta somar o um.","O denominador vale aproximadamente um vírgula cento e trinta e cinco."],"leitura":"Calcule o denominador da sigmoide quando a entrada vale dois."},{"pergunta":"Quanto vale a sigmoide de dois, com três casas?","tipo":"numero","resposta":0.881,"tol":0.002,"erros":[{"valor":1.135,"diag":"Você entregou o denominador em vez do valor da fração.","corrige":"Falta a última divisão: um dividido pelo denominador que você montou."},{"valor":0.119,"diag":"Você calculou a sigmoide de menos dois, trocando o sinal da entrada.","corrige":"Confira qual número vai no numerador da fração final."},{"valor":0.135,"diag":"Você parou no valor da exponencial.","corrige":"A exponencial é insumo do denominador, e não a resposta."}],"dicas":["Com o denominador pronto, o que falta fazer?","A sigmoide é um dividido pelo denominador que você acabou de montar.","Monte a fração: um dividido por um vírgula cento e trinta e cinco.","Vale aproximadamente zero vírgula oitocentos e oitenta e um. Entrada positiva empurra a saída para perto de um, sem nunca alcançá-lo."],"leitura":"Quanto vale a sigmoide de dois, com três casas?"},{"pergunta":"Quanto vale a ReLU de menos três?","tipo":"numero","resposta":0,"tol":0.0001,"erros":[{"valor":-3,"diag":"Você deixou o valor negativo passar, sem aplicar o corte.","corrige":"A ReLU escolhe o maior entre zero e a entrada. Compare os dois candidatos."},{"valor":3,"diag":"Você tomou o módulo da entrada em vez do máximo com zero.","corrige":"Máximo e módulo são operações diferentes. Uma escolhe entre dois números, a outra apaga o sinal."},{"valor":0.047,"diag":"Você aplicou a sigmoide em vez da ReLU.","corrige":"Confira qual das duas funções a pergunta pede."}],"dicas":["Entre zero e menos três, qual é o maior?","A ReLU devolve o máximo entre zero e a entrada, e nada mais que isso.","Compare os dois candidatos, zero e menos três, e escolha o maior.","Vale zero, porque entre zero e menos três o maior é zero. Toda entrada negativa é zerada pela ReLU."],"leitura":"Quanto vale a ReLU de menos três?"},{"pergunta":"Quanto vale a ReLU de dois vírgula cinco?","tipo":"numero","resposta":2.5,"tol":0.0001,"erros":[{"valor":0,"diag":"Você aplicou o corte também para entrada positiva.","corrige":"O corte só age quando a entrada perde para o zero na comparação."},{"valor":2,"diag":"Você arredondou a entrada para o inteiro mais próximo abaixo.","corrige":"A ReLU não arredonda nada. Ela apenas escolhe entre dois candidatos."},{"valor":0.924,"diag":"Você aplicou a sigmoide em vez da ReLU.","corrige":"Confira qual das duas funções a pergunta pede."}],"dicas":["Entre zero e dois vírgula cinco, qual é o maior?","A ReLU devolve a própria entrada quando ela é positiva.","Compare os dois candidatos e escolha o maior, sem alterar o valor escolhido.","Vale dois vírgula cinco, porque a entrada é positiva e a ReLU a devolve intacta."],"leitura":"Quanto vale a ReLU de dois vírgula cinco?"},{"pergunta":"Qual é a diferença estrutural entre sigmoide e softmax, segundo a seção?","tipo":"escolha","resposta":0,"opcoes":["A sigmoide vai de um número para um número, o softmax vai de uma lista para uma lista","As duas vão de lista para lista","A sigmoide vai de lista para número","O softmax é a sigmoide aplicada duas vezes"],"erros":[{"valor":1,"diag":"Você igualou as duas, tratando ambas como transformações de lista.","corrige":"A sigmoide recebe um argumento só. Verifique se ela precisa de outros valores para calcular a saída."},{"valor":2,"diag":"Você inverteu os papéis, atribuindo a entrada em lista à sigmoide.","corrige":"Releia a fórmula da sigmoide e conte quantos números ela recebe."},{"valor":3,"diag":"Você descreveu o softmax como sigmoide aplicada duas vezes.","corrige":"O softmax é a generalização da sigmoide para muitas saídas ao mesmo tempo, e não uma repetição dela."}],"dicas":["Quantos números a sigmoide recebe por vez, e quantos o softmax precisa ver ao mesmo tempo?","A seção fecha justamente com essa distinção, para evitar confusão adiante na trilha.","A sigmoide age sobre um número isolado. O softmax precisa de toda a lista para normalizar.","A sigmoide vai de um número para um número, enquanto o softmax vai de uma lista para uma lista. Por isso o softmax só faz sentido quando existem várias saídas concorrendo entre si."],"leitura":"Qual é a diferença estrutural entre sigmoide e softmax, segundo a seção?"}],"fecho":"Duas funções, quatro avaliações e uma distinção estrutural. A sigmoide comprime qualquer real no intervalo entre zero e um sem tocar nos extremos, a ReLU zera negativos e deixa positivos intactos, e o softmax fica reservado para quando houver uma lista inteira em jogo."},{"id":"m1-t5","titulo":"Ordem de operações de dentro para fora","secao":4,"enunciado":"Uma expressão empilhada, resolvida na ordem em que a máquina a executa. Considere a sigmoide aplicada ao resultado de dois multiplicado por 1,5, menos 1.","passos":[{"pergunta":"Resolva primeiro o que está mais aninhado: quanto vale dois multiplicado por 1,5, menos 1?","tipo":"numero","resposta":2,"tol":0.0001,"erros":[{"valor":1,"diag":"Você subtraiu antes de multiplicar, calculando dois vezes o resultado de um vírgula cinco menos um.","corrige":"Multiplicação tem precedência sobre subtração quando não há parênteses forçando outra ordem."},{"valor":3,"diag":"Você esqueceu de subtrair o um.","corrige":"A expressão tem dois passos: um produto e uma subtração. Confira se os dois foram feitos."},{"valor":0.5,"diag":"Você resolveu apenas a subtração e ignorou o fator dois.","corrige":"O fator dois multiplica um dos termos antes de qualquer subtração acontecer."}],"dicas":["Qual operação tem precedência quando não há parênteses, multiplicação ou subtração?","A leitura de dentro para fora começa pelo que estiver mais profundo, e a precedência aritmética decide o resto.","Primeiro dois multiplicado por um vírgula cinco, e só depois a subtração de um.","Vale dois, porque dois multiplicado por um vírgula cinco é três, e três menos um é dois."],"leitura":"Resolva primeiro o que está mais aninhado: quanto vale dois multiplicado por um vírgula cinco, menos um?"},{"pergunta":"Qual operação fica por último nessa expressão inteira?","tipo":"escolha","resposta":0,"opcoes":["A sigmoide, que envolve todo o resto","A multiplicação por dois","A subtração de um","A exponencial que aparece no denominador"],"erros":[{"valor":1,"diag":"Você apontou a multiplicação, que na verdade é a mais interna.","corrige":"Ordem de execução caminha do mais profundo para o mais externo. Localize o mais externo."},{"valor":2,"diag":"Você apontou a subtração, que também pertence ao miolo.","corrige":"Tudo aquilo alimenta a função que envolve a expressão. Procure quem envolve."},{"valor":3,"diag":"Você apontou a exponencial, que é intermediária.","corrige":"A exponencial ainda está dentro do denominador. Falta a divisão que fecha a função."}],"dicas":["Que operação depende do resultado de todas as outras para poder acontecer?","A seção diz que a ordem de leitura é sempre de dentro para fora, e a última é a mais externa.","A função que envolve tudo é a que só pode agir quando o argumento já estiver pronto.","A sigmoide fica por último, porque ela só pode ser avaliada depois que todo o argumento interno tiver um valor."],"leitura":"Qual operação fica por último nessa expressão inteira?"},{"pergunta":"Aplique a exponencial ao oposto do resultado do primeiro passo. Quanto dá?","tipo":"numero","resposta":0.135,"tol":0.001,"erros":[{"valor":7.389,"diag":"Você esqueceu de trocar o sinal do expoente.","corrige":"A fórmula da sigmoide aplica a exponencial ao oposto da entrada."},{"valor":-0.135,"diag":"Você passou o sinal para o resultado em vez de deixá-lo no expoente.","corrige":"A exponencial nunca devolve valor negativo, por maior que seja o expoente negativo."},{"valor":0.368,"diag":"Você usou expoente menos um em vez de menos dois.","corrige":"Revise o resultado do primeiro passo antes de trocar o sinal."}],"dicas":["Que número o primeiro passo produziu, e qual sinal a fórmula da sigmoide impõe a ele?","A sigmoide aplica a exponencial ao oposto da entrada, portanto o expoente muda de sinal.","O expoente é menos dois, e o valor de referência da seção já traz esse resultado pronto.","Dá aproximadamente zero vírgula cento e trinta e cinco, o valor de e elevado a menos dois."],"leitura":"Aplique a exponencial ao oposto do resultado do primeiro passo. Quanto dá?"},{"pergunta":"Monte o denominador completo e dê o valor.","tipo":"numero","resposta":1.135,"tol":0.001,"erros":[{"valor":0.135,"diag":"Você esqueceu de somar o um.","corrige":"O denominador da sigmoide é um mais a exponencial."},{"valor":0.865,"diag":"Você subtraiu em vez de somar.","corrige":"O sinal escrito no denominador é de soma. O menos da fórmula fica no expoente."},{"valor":8.389,"diag":"Você somou o um a e elevado a dois, com o sinal do expoente trocado.","corrige":"Confira o resultado do passo anterior antes de somar."}],"dicas":["O que a fórmula manda somar ao valor da exponencial?","O denominador da sigmoide é um mais a exponencial do oposto da entrada.","Some um a zero vírgula cento e trinta e cinco.","O denominador vale aproximadamente um vírgula cento e trinta e cinco."],"leitura":"Monte o denominador completo e dê o valor."},{"pergunta":"Dê o resultado final da expressão, com três casas.","tipo":"numero","resposta":0.881,"tol":0.002,"erros":[{"valor":1.135,"diag":"Você entregou o denominador em vez de concluir a divisão.","corrige":"Falta dividir um pelo denominador montado."},{"valor":0.119,"diag":"Você inverteu a fração, colocando a exponencial no numerador.","corrige":"O numerador da sigmoide é sempre o número um."},{"valor":0.5,"diag":"Você repetiu o valor da sigmoide em zero, ignorando a conta interna.","corrige":"O argumento da sigmoide não era zero. Revise o primeiro passo."}],"dicas":["Com o denominador pronto, qual é a última divisão a fazer?","A sigmoide é um dividido pelo denominador, e a divisão é justamente a operação mais externa.","Monte a fração: um dividido por um vírgula cento e trinta e cinco.","O resultado é aproximadamente zero vírgula oitocentos e oitenta e um, o mesmo valor da sigmoide em dois, como esperado."],"leitura":"Dê o resultado final da expressão, com três casas."}],"fecho":"Resolver de dentro para fora transformou uma expressão empilhada em quatro contas simples encadeadas. É esse mesmo hábito que faz a fórmula da atenção parar de intimidar, porque ela também é apenas uma pilha lida na ordem certa."}],"duvidas":[{"p":"Quando um texto escreve log sem indicar a base, qual base devo assumir?","chaves":["log","base","natural","ln","convencao"],"r":"Em aprendizado de máquina, log sem base escrita significa quase sempre logaritmo natural, ou seja, base e, também escrito como ln. Essa é a convenção do campo e vale para praticamente todo paper de LLM. Quando um autor precisa de outra base, ele avisa explicitamente, escrevendo a base como subscrito. Se você encontrar um texto ambíguo, procure a primeira definição de perda: ela normalmente revela a convenção adotada.","secao":2},{"p":"Por que a interface de um modelo devolve logprobs em vez das probabilidades diretas?","chaves":["logprobs","probs","probabilidade","underflow","api"],"r":"Porque a probabilidade de uma sequência longa é o produto de milhares de números menores que um, e esse produto encolhe até um valor que a máquina não consegue representar, sendo então arredondado para zero. Somando os logaritmos em vez de multiplicar as probabilidades, o mesmo dado vira um número de magnitude modesta, algo como menos mil e duzentos, perfeitamente representável. A propriedade que autoriza a troca é a do logaritmo do produto, que vira soma de logaritmos. Logprobs são, portanto, uma decisão de estabilidade numérica, e não de gosto.","secao":2},{"p":"O que acontece com o logaritmo quando a probabilidade é exatamente zero?","chaves":["log de zero","zero","infinito","indefinido","probabilidade"],"r":"Não existe expoente que faça uma base positiva chegar a zero, portanto o logaritmo de zero não tem valor finito. Na prática ele tende a menos infinito conforme o argumento se aproxima de zero. É exatamente por isso que implementações somam um épsilon minúsculo antes de tomar o logaritmo, protegendo a conta de um valor não representável. Guarde a intuição: quanto menor a probabilidade, mais negativo o logaritmo, e no limite ele despenca sem fundo.","secao":2},{"p":"Por que as funções de perda aparecem com um sinal de menos na frente?","chaves":["perda","sinal","menos","negativo","logaritmo","loss"],"r":"Porque o logaritmo de uma probabilidade é sempre negativo, já que probabilidades vivem entre zero e um. Se a perda fosse simplesmente a soma dos logaritmos, ela seria um número negativo, e minimizar um número negativo é confuso de acompanhar. Colocando um menos na frente, a perda vira positiva, e quanto melhor o modelo, mais próxima de zero ela fica. O sinal é uma conveniência de leitura que preserva integralmente a matemática.","secao":2},{"p":"O número e foi escolhido por conveniência ou tem um motivo real?","chaves":["numero e","euler","base natural","derivada","porque"],"r":"Tem motivo real. O número e, aproximadamente 2,71828, é a única base cuja função exponencial é igual à sua própria derivada. Isso significa que a taxa de crescimento da função coincide com o valor da função em cada ponto, propriedade que simplifica enormemente qualquer conta de otimização. Como todo treino de rede neural é otimização, a base e acaba sendo a escolha natural em vez de uma preferência estética.","secao":1},{"p":"A equivalência entre expoente fracionário e raiz vale sempre?","chaves":["expoente fracionario","raiz","meio","equivalencia","potencia"],"r":"Para bases positivas, sim, e é esse o caso em praticamente tudo que aparece na trilha. Elevar a um meio é extrair a raiz quadrada, elevar a um terço é extrair a raiz cúbica, e assim por diante. Com bases negativas a coisa se complica e sai do escopo do módulo. Na fórmula da atenção, a base é uma dimensão, portanto um número inteiro positivo, e a equivalência vale sem ressalvas.","secao":0},{"p":"Qual a diferença entre e elevado a x e x elevado a e?","chaves":["exponencial","potencia","diferenca","base","expoente"],"r":"Na primeira, a base é fixa e o expoente varia, e é isso que se chama função exponencial. Na segunda, a base varia e o expoente é fixo, o que caracteriza uma função de potência. Elas crescem de maneiras muito diferentes: a exponencial acelera cada vez mais, enquanto a potência cresce de modo mais comportado. Em redes neurais é quase sempre a primeira que aparece, dentro de sigmoides, softmax e distribuições.","secao":1},{"p":"Por que o softmax usa exponencial em vez de simplesmente tomar o módulo dos valores?","chaves":["softmax","exponencial","modulo","positivo","logits"],"r":"Porque o módulo destruiria a informação de ordem entre os valores, fazendo um logit muito negativo virar um número grande e positivo. A exponencial também garante positividade, mas preserva a ordenação: valores maiores continuam maiores depois da transformação, e valores muito negativos viram números próximos de zero, que é justamente o comportamento desejado. Positividade e preservação de ordem são os dois requisitos, e a exponencial atende aos dois.","secao":1},{"p":"A sigmoide chega a valer exatamente zero ou exatamente um em algum ponto?","chaves":["sigmoide","imagem","zero","um","intervalo","aberto"],"r":"Não. A imagem da sigmoide é o intervalo aberto entre zero e um, o que significa que ela se aproxima dos dois extremos indefinidamente sem jamais alcançá-los. A razão está no denominador: como a exponencial é sempre estritamente positiva, o denominador nunca vale exatamente um nem cresce ao infinito em tempo finito. Na prática, com entradas muito grandes em módulo, a máquina arredonda o resultado para zero ou um, e é daí que vêm certos problemas numéricos em treino.","secao":3},{"p":"Por que a ReLU é tão usada se ela parece simples demais?","chaves":["relu","simples","nao linearidade","mlp","barata"],"r":"Justamente por ser simples. A ReLU devolve o próprio valor quando ele é positivo e zero caso contrário, o que exige apenas uma comparação, sem exponencial nem divisão. Isso a torna muito barata de calcular, e em uma rede com bilhões de operações por passo essa economia é decisiva. Ao mesmo tempo, ela introduz não linearidade genuína, que é o requisito para uma rede empilhada representar algo além de uma transformação linear.","secao":3},{"p":"O que domínio e imagem significam na prática, fora do vocabulário formal?","chaves":["dominio","imagem","funcao","entrada","saida"],"r":"Domínio é a lista de entradas que a função aceita e imagem é a lista de saídas que ela consegue produzir. Na sigmoide, o domínio é todo o conjunto dos números reais, porque qualquer entrada é aceita, e a imagem é o intervalo aberto entre zero e um. Na ReLU, o domínio também é todo o conjunto dos reais, mas a imagem é o conjunto dos números maiores ou iguais a zero. Saber a imagem é útil por um motivo prático: ela diz se a saída da função pode ou não ser lida como probabilidade.","secao":3},{"p":"Por que a ordem de leitura de uma fórmula é de dentro para fora?","chaves":["ordem","operacoes","dentro para fora","aninhado","leitura"],"r":"Porque uma operação externa só pode agir quando o argumento dela já tiver um valor. O softmax não tem o que normalizar antes que a fração exista, e a fração não existe antes que o numerador seja calculado. Ler de dentro para fora é, portanto, ler na mesma ordem em que a máquina executa. Esse hábito converte qualquer expressão longa em uma sequência de contas curtas encadeadas, e é o que faz fórmulas empilhadas pararem de intimidar.","secao":4},{"p":"Perplexidade é citada no resumo do módulo. Já preciso saber calcular?","chaves":["perplexidade","resumo","metrica","adiante","logprob"],"r":"Ainda não. Neste módulo basta reter a ligação estrutural: a perplexidade é construída a partir dos mesmos logaritmos de probabilidade que você acabou de somar, e por isso ela depende inteiramente do que foi visto aqui. O cálculo em si, com a exponenciação da média dos logprobs negativos, aparece adiante na trilha, quando o vocabulário de médias e distribuições já estiver assentado. Fixe agora a ideia de que logprob é a matéria-prima e a perplexidade é um produto derivado dela.","secao":2},{"p":"Por que multiplicar milhares de números menores que um estoura a precisão da máquina?","chaves":["precisao","underflow","produto","arredonda","zero"],"r":"Porque cada multiplicação por um número menor que um encolhe o resultado, e o encolhimento é cumulativo. Depois de algumas centenas de fatores, o produto atinge uma ordem de grandeza como dez elevado a menos oitocentos, abaixo do menor valor que os formatos numéricos usuais conseguem representar. A máquina então arredonda para zero, e todo o cálculo posterior herda esse zero. A soma de logaritmos evita o problema porque troca uma cadeia de multiplicações por uma cadeia de adições, e adições não encolhem o resultado dessa forma.","secao":2},{"p":"Como leio a fórmula da sigmoide em voz alta sem me perder?","chaves":["sigmoide","ler","voz alta","formula","denominador"],"r":"Leia de fora para dentro na hora de nomear, e de dentro para fora na hora de calcular. Nomeando: sigmoide de x é igual a um sobre um mais e elevado a menos x. Calculando: troque o sinal da entrada, aplique a exponencial, some um e divida um pelo total. Repetir essa dupla leitura em voz alta poucas vezes fixa tanto a forma escrita quanto o procedimento, e é exatamente o protocolo de cinco passos do módulo anterior aplicado a um caso concreto.","secao":3},{"p":"Duas potências de bases diferentes podem ter os expoentes somados?","chaves":["potencias","bases diferentes","somar expoentes","regra","limite"],"r":"Não. A regra que soma expoentes exige que a base seja a mesma nas duas potências. Dois elevado a três vezes dois elevado a quatro dá dois elevado a sete, mas dois elevado a três vezes três elevado a quatro não se simplifica dessa forma, e o único caminho é calcular cada potência e multiplicar os resultados. Esse é um dos erros mais frequentes quando a regra é aplicada no automático, sem conferir a base.","secao":0}]},"M2":{"modulo":"m2","tex":{"s1.f0":"\\lVert v \\rVert = \\sqrt{v_1^2 + v_2^2 + \\cdots + v_d^2}","s2.f0":"a \\cdot b = \\sum_i a_i\\, b_i = \\lVert a \\rVert\\, \\lVert b \\rVert \\cos \\theta","s3.f0":"\\cos(a, b) = \\frac{a \\cdot b}{\\lVert a \\rVert\\, \\lVert b \\rVert}","s5.f0":"(m \\times n) \\cdot (n \\times p) \\;\\longrightarrow\\; (m \\times p)"},"trilhos":[{"id":"m2-t1","titulo":"Norma e normalização do vetor (3; 4)","secao":1,"enunciado":"Considere o vetor de duas dimensões (3; 4), um embedding minúsculo. Vamos medir o comprimento dele e depois reduzi-lo a comprimento um, que é exatamente o que a normalização de camada faz com as ativações dentro de um Transformer.","passos":[{"pergunta":"Some os quadrados das duas componentes de (3; 4). Qual é esse total, ou seja, o número que fica embaixo da raiz?","tipo":"numero","resposta":25,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":7,"diag":"Somou as componentes cruas, três mais quatro, sem elevar nenhuma ao quadrado.","corrige":"Releia a fórmula da norma: cada componente entra elevada ao quadrado antes de qualquer soma."},{"valor":12,"diag":"Multiplicou uma componente pela outra em vez de somar os quadrados.","corrige":"Não existe produto entre componentes diferentes aqui. Cada uma é elevada ao quadrado sozinha."},{"valor":5,"diag":"Entregou direto o comprimento final, pulando a etapa que este passo pede.","corrige":"Este passo quer apenas o valor que fica dentro da raiz. A raiz é assunto do passo seguinte."}],"dicas":["O que a fórmula da norma manda fazer com cada componente antes de somar qualquer coisa?","A norma é o teorema de Pitágoras vestido de notação: cateto ao quadrado mais cateto ao quadrado.","Você precisa de três ao quadrado mais quatro ao quadrado. Nove mais alguma coisa. Termine a conta.","Três ao quadrado é nove, quatro ao quadrado é dezesseis, e nove mais dezesseis é vinte e cinco. Esse vinte e cinco é o que vai embaixo da raiz."],"leitura":"Some os quadrados das duas componentes do vetor três, quatro. Qual é o número que fica embaixo da raiz?"},{"pergunta":"Agora conclua: qual é a norma do vetor (3; 4)?","tipo":"numero","resposta":5,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":25,"diag":"Parou na soma dos quadrados e esqueceu de extrair a raiz.","corrige":"A soma dos quadrados ainda não é comprimento. Falta a última operação da fórmula."},{"valor":7,"diag":"Somou as componentes cruas e chamou o resultado de comprimento.","corrige":"Comprimento não é soma de componentes. Volte à soma dos quadrados que você já obteve."},{"valor":12.5,"diag":"Dividiu a soma dos quadrados por dois em vez de extrair a raiz quadrada.","corrige":"Raiz quadrada e divisão por dois são operações diferentes. Pergunte-se que número multiplicado por si mesmo dá vinte e cinco."}],"dicas":["Você já tem vinte e cinco. Que operação da fórmula ainda não foi usada?","A norma é a raiz quadrada da soma dos quadrados, e nesse caso a raiz é exata.","Procure o número que, multiplicado por ele mesmo, devolve vinte e cinco.","A raiz de vinte e cinco é cinco. A norma de (3; 4) vale cinco, o comprimento da seta que sai da origem e chega ao ponto três à direita e quatro acima."],"leitura":"Agora conclua. Qual é a norma, ou seja o comprimento, do vetor três, quatro?"},{"pergunta":"Para normalizar, divida cada componente pela norma. Qual é a primeira componente do vetor normalizado?","tipo":"numero","resposta":0.6,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Repetiu a componente original sem dividir por nada.","corrige":"Normalizar exige uma divisão. Por qual número, exatamente, cada componente é dividida?"},{"valor":0.12,"diag":"Dividiu pela soma dos quadrados, vinte e cinco, em vez de dividir pela norma.","corrige":"O divisor é o comprimento, não o número que estava embaixo da raiz."},{"valor":0.8,"diag":"Dividiu a segunda componente e apresentou o resultado como se fosse a primeira.","corrige":"Mantenha a ordem: a primeira componente do vetor original vira a primeira do normalizado."}],"dicas":["Qual é a operação que transforma um vetor qualquer em um vetor de comprimento um?","Normalizar é dividir o vetor inteiro pela própria norma, componente por componente.","A primeira componente é três e a norma é cinco. Falta uma divisão.","Três dividido por cinco é zero vírgula seis. O vetor normalizado é (0,6; 0,8), com a mesma direção do original."],"leitura":"Para normalizar, divida cada componente pela norma. Qual é a primeira componente do vetor normalizado?"},{"pergunta":"Confirme o trabalho: qual é a norma do vetor normalizado (0,6; 0,8)?","tipo":"numero","resposta":1,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Repetiu a norma do vetor original, sem recalcular com as componentes novas.","corrige":"As componentes mudaram. Refaça a soma dos quadrados com zero vírgula seis e zero vírgula oito."},{"valor":1.4,"diag":"Somou as componentes cruas, zero vírgula seis mais zero vírgula oito.","corrige":"Continua valendo a mesma fórmula: quadrados primeiro, soma depois, raiz por último."},{"valor":0.2,"diag":"Dividiu de novo por cinco um vetor que já estava normalizado.","corrige":"A normalização é feita uma única vez. Este passo apenas mede o comprimento do resultado."}],"dicas":["Se a normalização funcionou, que valor você espera encontrar aqui antes mesmo de fazer a conta?","Aplique a mesma fórmula da norma, agora sobre as componentes já divididas.","Zero vírgula seis ao quadrado é zero vírgula trinta e seis, e zero vírgula oito ao quadrado é zero vírgula sessenta e quatro. Some e tire a raiz.","Zero vírgula trinta e seis mais zero vírgula sessenta e quatro é um, e a raiz de um é um. Todo vetor normalizado tem comprimento um, por construção."],"leitura":"Confirme o trabalho. Qual é a norma do vetor normalizado zero vírgula seis, zero vírgula oito?"},{"pergunta":"O que a normalização preserva e o que ela descarta?","tipo":"escolha","resposta":0,"opcoes":["Preserva a direção e descarta a magnitude, deixando todo vetor com comprimento um","Preserva a magnitude e gira o vetor para uma direção padrão","Preserva as duas coisas, apenas troca a unidade de medida do eixo","Descarta as duas e devolve um vetor sem relação com o original"],"aceita":[],"erros":[{"valor":1,"diag":"Inverteu os papéis, achando que a operação mexe na direção e guarda o comprimento.","corrige":"Compare (3; 4) com (0,6; 0,8): a razão entre as componentes mudou ou continuou a mesma?"},{"valor":2,"diag":"Tratou a normalização como uma simples troca de escala do eixo, sem perda de informação.","corrige":"O comprimento original, cinco, não aparece em lugar nenhum do vetor normalizado. Essa informação foi mesmo descartada."},{"valor":3,"diag":"Concluiu que o vetor normalizado não guarda relação com o original.","corrige":"Observe que as duas componentes foram divididas pelo mesmo número, o que mantém a proporção entre elas."}],"dicas":["Compare as duas componentes antes e depois: a proporção entre elas mudou?","Dividir todas as componentes pelo mesmo número não muda para onde a seta aponta, muda só o tamanho dela.","A direção continua sendo três para a direita e quatro para cima, em proporção. O que sumiu foi o número cinco.","A normalização preserva a direção e descarta a magnitude. É por isso que ela serve para separar significado, que mora na direção, de escala, que a rede prefere manter estável."],"leitura":"O que a normalização preserva e o que ela descarta?"}],"fecho":"Este trilho mostrou que norma é comprimento e que normalizar é ficar só com a direção. Guarde a imagem: dentro de um Transformer, a normalização de camada faz esse mesmo movimento milhões de vezes para manter as ativações em escala estável."},{"id":"m2-t2","titulo":"Do produto escalar até a similaridade do cosseno","secao":3,"enunciado":"Sejam os vetores a igual a (2; −1; 3) e b igual a (0; 4; 1). Vamos calcular o produto escalar, as duas normas e, por fim, o cosseno do ângulo entre eles, que é a medida usada em busca vetorial.","passos":[{"pergunta":"Calcule o produto escalar de a com b.","tipo":"numero","resposta":-1,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":7,"diag":"Ignorou o sinal negativo da segunda componente de a e somou tudo como positivo.","corrige":"A segunda componente de a é menos um. O sinal entra na multiplicação e muda o resultado."},{"valor":1,"diag":"Chegou ao valor certo em módulo mas inverteu o sinal final.","corrige":"Some as três parcelas na ordem, prestando atenção em qual delas é negativa."},{"valor":3,"diag":"Esqueceu de somar a parcela da segunda componente, que valia menos quatro.","corrige":"O produto escalar tem tantas parcelas quantas são as dimensões. Aqui devem ser três parcelas."}],"dicas":["Quantas parcelas essa soma deve ter, e qual delas tem chance de ser negativa?","O produto escalar multiplica componente por componente, na mesma posição, e soma todos os produtos.","As parcelas são dois vezes zero, menos um vezes quatro e três vezes um. Some as três.","Dois vezes zero é zero, menos um vezes quatro é menos quatro, três vezes um é três. Zero menos quatro mais três é menos um."],"leitura":"Calcule o produto escalar do vetor dois, menos um, três com o vetor zero, quatro, um."},{"pergunta":"Qual é a norma de a, com três casas decimais?","tipo":"numero","resposta":3.742,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":14,"diag":"Parou na soma dos quadrados, sem extrair a raiz.","corrige":"Catorze é o número que fica embaixo da raiz. Ainda falta uma operação."},{"valor":3.464,"diag":"Usou menos um em vez do quadrado de menos um, somando onze em vez de catorze.","corrige":"O quadrado de um número negativo é positivo. Reveja a parcela da segunda componente."},{"valor":4,"diag":"Somou as componentes cruas, dois menos um mais três.","corrige":"A fórmula da norma eleva ao quadrado antes de somar, justamente para que sinais não se cancelem."}],"dicas":["Que cuidado a componente negativa exige quando entra na soma dos quadrados?","A norma é a raiz da soma dos quadrados, e o quadrado de menos um é mais um.","A soma vale quatro mais um mais nove. Extraia a raiz desse total.","Quatro mais um mais nove é catorze, e a raiz de catorze é aproximadamente três vírgula setecentos e quarenta e dois."],"leitura":"Qual é a norma do vetor a, com três casas decimais?"},{"pergunta":"Qual é a norma de b, com três casas decimais?","tipo":"numero","resposta":4.123,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":17,"diag":"Parou na soma dos quadrados, sem extrair a raiz.","corrige":"Dezessete é o conteúdo da raiz, não o comprimento do vetor."},{"valor":5,"diag":"Somou as componentes cruas, zero mais quatro mais um.","corrige":"Some os quadrados, não as componentes. Só assim o resultado é comprimento."},{"valor":4,"diag":"Desprezou a terceira componente por ser pequena e ficou só com o quatro.","corrige":"Toda componente entra na conta, mesmo quando é pequena diante das outras."}],"dicas":["A componente zero atrapalha alguma coisa nessa soma?","Zero ao quadrado é zero e simplesmente não contribui, mas as outras duas contribuem.","A soma vale zero mais dezesseis mais um. Extraia a raiz.","Zero mais dezesseis mais um é dezessete, e a raiz de dezessete é aproximadamente quatro vírgula cento e vinte e três."],"leitura":"Qual é a norma do vetor b, com três casas decimais?"},{"pergunta":"Calcule a similaridade do cosseno entre a e b, com três casas decimais.","tipo":"numero","resposta":-0.065,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":-1,"diag":"Entregou o produto escalar cru, sem dividir pelo produto das normas.","corrige":"O cosseno exige uma divisão, e é justamente ela que remove a influência dos comprimentos."},{"valor":0.065,"diag":"Acertou o valor absoluto e perdeu o sinal negativo pelo caminho.","corrige":"O numerador é negativo e os dois comprimentos são positivos. Que sinal sobra no resultado?"},{"valor":-0.127,"diag":"Dividiu pela soma das normas em vez do produto delas.","corrige":"A fórmula traz as duas normas multiplicadas, uma ao lado da outra, no denominador."}],"dicas":["Quais três números você já calculou, e qual deles vai no numerador?","A similaridade do cosseno é o produto escalar dividido pelo produto das duas normas.","O numerador é menos um, e o denominador é três vírgula setecentos e quarenta e dois vezes quatro vírgula cento e vinte e três.","O produto das normas é aproximadamente quinze vírgula quatrocentos e vinte e sete, e menos um dividido por isso é aproximadamente menos zero vírgula zero sessenta e cinco."],"leitura":"Calcule a similaridade do cosseno entre a e b, com três casas decimais."},{"pergunta":"O que esse valor de cosseno diz sobre a relação entre os dois vetores?","tipo":"escolha","resposta":0,"opcoes":["São praticamente perpendiculares, ou seja, não há relação semântica detectável entre eles nesse espaço","Apontam quase na mesma direção, ou seja, têm significado muito próximo","Apontam em direções opostas, ou seja, significam o contrário um do outro","O valor é pequeno demais para ser interpretado e a conta precisa ser refeita"],"aceita":[],"erros":[{"valor":1,"diag":"Leu qualquer valor pequeno como sinal de proximidade semântica.","corrige":"Proximidade de significado corresponde a cosseno perto de um, não perto de zero."},{"valor":2,"diag":"Tratou o sinal negativo como se já bastasse para caracterizar oposição.","corrige":"Oposição corresponde a cosseno perto de menos um. Compare menos zero vírgula zero sessenta e cinco com menos um."},{"valor":3,"diag":"Concluiu que o resultado é pequeno demais para significar alguma coisa.","corrige":"Um cosseno próximo de zero é uma informação legítima e bastante específica sobre o ângulo."}],"dicas":["Entre menos um e um, onde exatamente cai o valor que você encontrou?","Cosseno perto de um significa direções quase iguais, perto de zero significa perpendicular, perto de menos um significa oposto.","Menos zero vírgula zero sessenta e cinco está bem mais perto de zero do que de qualquer um dos extremos.","O valor indica vetores praticamente perpendiculares. O ângulo é próximo de noventa graus e, em um espaço de embeddings, isso significa ausência de relação semântica detectável."],"leitura":"O que esse valor de cosseno diz sobre a relação entre os dois vetores?"},{"pergunta":"Se todas as componentes de a forem multiplicadas por dez, quanto passa a valer o cosseno entre a e b?","tipo":"escolha","resposta":0,"opcoes":["Continua em cerca de menos zero vírgula zero sessenta e cinco, porque o alongamento é cancelado na divisão","Fica dez vezes maior em módulo, cerca de menos zero vírgula sessenta e cinco","Fica dez vezes menor em módulo, cerca de menos zero vírgula zero zero sessenta e cinco","Passa a ser menos um, porque o vetor ficou muito mais longo que b"],"aceita":[],"erros":[{"valor":1,"diag":"Multiplicou o numerador por dez e esqueceu que a norma de a também cresceu dez vezes.","corrige":"Verifique o denominador: ele muda quando o vetor é alongado?"},{"valor":2,"diag":"Aplicou o fator dez apenas no denominador.","corrige":"O alongamento aparece nos dois lados da fração ao mesmo tempo. Veja o que sobra depois."},{"valor":3,"diag":"Confundiu comprimento com ângulo e concluiu que o vetor mais longo força oposição.","corrige":"O cosseno mede ângulo. Alongar uma seta não muda para onde ela aponta."}],"dicas":["Multiplicar por dez muda a direção da seta ou apenas o tamanho dela?","A divisão pelas normas existe justamente para eliminar a influência do comprimento.","O produto escalar fica dez vezes maior e a norma de a também fica dez vezes maior. Simplifique a fração.","O fator dez aparece no numerador e no denominador e se cancela. O cosseno continua em cerca de menos zero vírgula zero sessenta e cinco, porque o ângulo não mudou."],"leitura":"Se todas as componentes de a forem multiplicadas por dez, quanto passa a valer o cosseno entre a e b?"}],"fecho":"Você calculou as três peças da fórmula e viu por que o denominador existe: ele separa ângulo de comprimento. É essa separação que torna a similaridade do cosseno a métrica padrão de busca semântica."},{"id":"m2-t3","titulo":"Multiplicação de matrizes célula por célula","secao":4,"enunciado":"Seja A a matriz com linhas (2, 0) e (1, 3), e B a matriz com linhas (1, 4) e (2, 5). Vamos preencher as quatro células do produto A vezes B, uma de cada vez, e depois testar se a ordem dos fatores importa.","passos":[{"pergunta":"Para obter a célula da linha 2 e coluna 1 do produto, quais dois vetores entram no produto escalar?","tipo":"escolha","resposta":0,"opcoes":["A linha 2 de A com a coluna 1 de B","A linha 2 de A com a linha 1 de B","A coluna 2 de A com a linha 1 de B","A linha 1 de A com a coluna 2 de B"],"aceita":[],"erros":[{"valor":1,"diag":"Pegou linha na primeira matriz e linha também na segunda.","corrige":"A regra combina uma linha da matriz da esquerda com uma coluna da matriz da direita."},{"valor":2,"diag":"Trocou linha por coluna na primeira matriz.","corrige":"O índice de linha do resultado sempre indexa linha na matriz da esquerda."},{"valor":3,"diag":"Inverteu os dois índices, usando a linha 1 e a coluna 2.","corrige":"Leia o endereço da célula na ordem: primeiro o número da linha, depois o da coluna."}],"dicas":["O endereço da célula é linha 2, coluna 1. Cada um desses números aponta para qual matriz?","A célula da linha i e coluna j do produto é o produto escalar entre a linha i da primeira e a coluna j da segunda.","O número 2 manda buscar a linha 2 de A, que é (1, 3). O número 1 manda buscar a coluna 1 de B.","Entram a linha 2 de A, que é (1, 3), e a coluna 1 de B, que é (1, 2), lida de cima para baixo."],"leitura":"Para obter a célula da linha dois e coluna um do produto, quais dois vetores entram no produto escalar?"},{"pergunta":"Calcule a célula da linha 1 e coluna 1 do produto A vezes B.","tipo":"numero","resposta":2,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":8,"diag":"Usou a coluna 2 de B, que é (4, 5), em vez da coluna 1.","corrige":"Para a coluna 1 do resultado, a coluna que entra é a primeira de B, lida de cima para baixo."},{"valor":6,"diag":"Somou as componentes de cada vetor antes de multiplicar, fazendo dois mais zero vezes um mais dois.","corrige":"A ordem é multiplicar primeiro, posição por posição, e somar depois."},{"valor":3,"diag":"Somou os elementos da coluna 1 de B e ignorou a linha de A.","corrige":"Os dois vetores participam. Cada elemento de um multiplica o elemento de mesma posição do outro."}],"dicas":["Quais são as duas listas de dois números que precisam se encontrar aqui?","É o produto escalar entre a linha 1 de A e a coluna 1 de B.","A linha 1 de A é (2, 0) e a coluna 1 de B é (1, 2). Faça dois vezes um mais zero vezes dois.","Dois vezes um é dois, zero vezes dois é zero, e a soma é dois. A célula superior esquerda vale dois."],"leitura":"Calcule a célula da linha um e coluna um do produto de A por B."},{"pergunta":"Calcule a célula da linha 1 e coluna 2 do produto A vezes B.","tipo":"numero","resposta":8,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":4,"diag":"Usou a linha 2 de B, que é (2, 5), em vez da coluna 2.","corrige":"Na matriz da direita sempre se lê coluna, de cima para baixo, nunca linha."},{"valor":18,"diag":"Somou as componentes de cada vetor antes de multiplicar, fazendo dois mais zero vezes quatro mais cinco.","corrige":"Multiplique posição por posição primeiro. A soma vem depois, e só uma vez."},{"valor":2,"diag":"Repetiu o valor da célula anterior sem trocar a coluna de B.","corrige":"Mudou a coluna do resultado, então a coluna de B que entra na conta também muda."}],"dicas":["Qual das duas listas muda em relação ao passo anterior, e qual permanece?","A linha de A continua sendo a primeira. O que muda é a coluna de B.","A linha 1 de A é (2, 0) e a coluna 2 de B é (4, 5). Monte dois vezes quatro mais zero vezes cinco.","Dois vezes quatro é oito, zero vezes cinco é zero, e a soma é oito. A célula da linha 1 e coluna 2 vale oito."],"leitura":"Calcule a célula da linha um e coluna dois do produto de A por B."},{"pergunta":"Calcule a célula da linha 2 e coluna 1 do produto A vezes B.","tipo":"numero","resposta":7,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":13,"diag":"Usou a linha 1 de B, que é (1, 4), em vez da coluna 1.","corrige":"A coluna 1 de B é formada pelos primeiros elementos de cada linha, ou seja (1, 2)."},{"valor":17,"diag":"Usou a linha 2 de B, que é (2, 5), em vez da coluna 1.","corrige":"Confira de novo o que significa coluna: leitura vertical, de cima para baixo."},{"valor":2,"diag":"Multiplicou apenas os elementos que ocupam a mesma posição nas duas matrizes.","corrige":"Não é multiplicação célula a célula. Cada célula do resultado nasce de um produto escalar inteiro."}],"dicas":["Você já identificou no primeiro passo quais vetores entram aqui. Quais eram?","É o produto escalar entre a linha 2 de A e a coluna 1 de B.","A linha 2 de A é (1, 3) e a coluna 1 de B é (1, 2). Monte um vezes um mais três vezes dois.","Um vezes um é um, três vezes dois é seis, e a soma é sete. A célula da linha 2 e coluna 1 vale sete."],"leitura":"Calcule a célula da linha dois e coluna um do produto de A por B."},{"pergunta":"Calcule a célula da linha 2 e coluna 2 do produto A vezes B.","tipo":"numero","resposta":19,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":17,"diag":"Usou a linha 2 de B, que é (2, 5), em vez da coluna 2.","corrige":"A coluna 2 de B é formada pelos segundos elementos de cada linha, ou seja (4, 5)."},{"valor":15,"diag":"Multiplicou apenas o elemento da linha 2 coluna 2 de A pelo da mesma posição em B.","corrige":"Faltou a primeira parcela do produto escalar. São dois produtos somados, não um só."},{"valor":4,"diag":"Parou na primeira parcela e não somou a segunda.","corrige":"Depois de um vezes quatro ainda falta três vezes cinco. Some as duas parcelas."}],"dicas":["Que par de vetores fecha a última célula da tabela?","É o produto escalar entre a linha 2 de A e a coluna 2 de B.","A linha 2 de A é (1, 3) e a coluna 2 de B é (4, 5). Monte um vezes quatro mais três vezes cinco.","Um vezes quatro é quatro, três vezes cinco é quinze, e a soma é dezenove. O produto completo tem linhas (2, 8) e (7, 19)."],"leitura":"Calcule a célula da linha dois e coluna dois do produto de A por B."},{"pergunta":"Agora inverta a ordem dos fatores. Qual é a célula da linha 1 e coluna 1 do produto B vezes A?","tipo":"numero","resposta":6,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":2,"diag":"Repetiu o resultado de A vezes B, supondo que a ordem não altera o produto.","corrige":"Refaça a conta trocando quem entra com linha e quem entra com coluna, e compare os dois resultados."},{"valor":5,"diag":"Usou a linha 1 de A, que é (2, 0), em vez da coluna 1 de A.","corrige":"Agora A está à direita, então dela se lê coluna, e a coluna 1 é (2, 1)."},{"valor":3,"diag":"Somou os elementos da linha 1 de B sem multiplicar por nada.","corrige":"Os dois vetores precisam entrar. Multiplique posição por posição antes de somar."}],"dicas":["Quando B vai para a esquerda, de qual matriz passamos a ler linhas e de qual passamos a ler colunas?","A regra não muda, apenas os papéis: linha da matriz da esquerda, que agora é B, com coluna da matriz da direita, que agora é A.","A linha 1 de B é (1, 4) e a coluna 1 de A é (2, 1). Monte um vezes dois mais quatro vezes um.","Um vezes dois é dois, quatro vezes um é quatro, e a soma é seis. Como seis é diferente de dois, fica provado que a multiplicação de matrizes não é comutativa."],"leitura":"Agora inverta a ordem dos fatores. Qual é a célula da linha um e coluna um do produto de B por A?"}],"fecho":"As quatro células saíram de quatro produtos escalares, exatamente como diz a definição. E a última conta provou algo que vale para todo o resto da trilha: trocar a ordem dos fatores muda o resultado."},{"id":"m2-t4","titulo":"Rastrear shapes em uma cabeça de atenção","secao":5,"enunciado":"Uma sequência de 6 tokens é representada por uma matriz X de shape 6 por 8, com 8 sendo a dimensão do modelo. A projeção de consulta tem shape 8 por 4. Vamos seguir os shapes até a saída da atenção, sem calcular um único número.","passos":[{"pergunta":"Quantas linhas tem a matriz resultante de X multiplicada pela projeção de consulta?","tipo":"numero","resposta":6,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":8,"diag":"Ficou com a dimensão interna, que é justamente a que desaparece na multiplicação.","corrige":"O oito aparece nos dois fatores e some. Sobrevivem apenas as dimensões externas."},{"valor":4,"diag":"Informou o número de colunas do resultado no lugar do número de linhas.","corrige":"A dimensão de linha do resultado vem sempre da matriz da esquerda."},{"valor":48,"diag":"Multiplicou as duas dimensões externas e devolveu o total de células.","corrige":"Este passo pede uma das duas dimensões, não a contagem de números da matriz."}],"dicas":["Na regra de shapes, qual das dimensões do primeiro fator sobrevive ao produto?","Uma matriz m por n vezes uma n por p resulta em uma m por p, com o n interno sendo consumido.","Aqui m vale seis, n vale oito e p vale quatro. A pergunta é sobre m.","O resultado é seis por quatro, então tem seis linhas, uma para cada token da sequência."],"leitura":"Quantas linhas tem a matriz resultante de X multiplicada pela projeção de consulta?"},{"pergunta":"E quantas colunas tem essa mesma matriz de consultas?","tipo":"numero","resposta":4,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":8,"diag":"Manteve a dimensão do modelo, que foi consumida na multiplicação.","corrige":"A projeção existe justamente para trocar a dimensão do modelo pela dimensão da chave."},{"valor":6,"diag":"Repetiu o número de linhas.","corrige":"A dimensão de coluna do resultado vem da matriz da direita, não da esquerda."},{"valor":24,"diag":"Devolveu o total de números da matriz em vez de uma das dimensões.","corrige":"Vinte e quatro é seis vezes quatro, ou seja a contagem de células. A pergunta é sobre a dimensão."}],"dicas":["Qual das dimensões do segundo fator sobrevive ao produto?","As dimensões externas sobrevivem, e a externa do segundo fator é a de colunas.","A projeção é oito por quatro, então a dimensão que sobra dela é quatro.","O resultado é seis por quatro, ou seja quatro colunas. Cada token passou a ser descrito por um vetor de quatro números."],"leitura":"E quantas colunas tem essa mesma matriz de consultas?"},{"pergunta":"Se alguém escrever a projeção de consulta multiplicada por X, nessa ordem, o que acontece?","tipo":"escolha","resposta":0,"opcoes":["A operação fica indefinida, porque as 4 colunas da projeção não casam com as 6 linhas de X","A operação é válida e resulta em uma matriz 8 por 8","A operação é válida e resulta em uma matriz 4 por 8","A operação é válida e resulta na mesma matriz 6 por 4 de antes"],"aceita":[],"erros":[{"valor":1,"diag":"Casou as duas dimensões de valor oito e ignorou que elas não estão em posição de contato.","corrige":"O que precisa coincidir é o número de colunas do primeiro fator com o número de linhas do segundo."},{"valor":2,"diag":"Aplicou a regra das externas sem antes verificar se as internas batem.","corrige":"A verificação das dimensões internas vem primeiro. Sem ela, a operação nem existe."},{"valor":3,"diag":"Supôs que a ordem dos fatores não altera o shape do resultado.","corrige":"A ordem determina quais dimensões entram em contato, e às vezes ela impede a operação por completo."}],"dicas":["Escreva os dois shapes lado a lado, na ordem proposta, e olhe para os dois números do meio.","A multiplicação só existe quando o número de colunas da primeira é igual ao número de linhas da segunda.","Na ordem proposta temos oito por quatro seguido de seis por oito. Compare o quatro com o seis.","Quatro é diferente de seis, então as dimensões internas não batem e a operação é indefinida. A ordem correta é X primeiro, projeção depois."],"leitura":"Se alguém escrever a projeção de consulta multiplicada por X, nessa ordem, o que acontece?"},{"pergunta":"As consultas, de shape 6 por 4, multiplicam as chaves transpostas, de shape 4 por 6. Quantos números tem a matriz de escores resultante?","tipo":"numero","resposta":36,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":24,"diag":"Contou as células de uma matriz seis por quatro, sem aplicar a regra ao novo produto.","corrige":"Determine primeiro o shape do resultado e só então multiplique as duas dimensões."},{"valor":16,"diag":"Usou a dimensão interna quatro nos dois lados, formando quatro por quatro.","corrige":"O quatro é a dimensão consumida. As que sobrevivem são as duas pontas."},{"valor":12,"diag":"Somou as dimensões em vez de multiplicá-las.","corrige":"A contagem de células de uma matriz é o produto do número de linhas pelo número de colunas."}],"dicas":["Qual é o shape do resultado antes de qualquer contagem?","Seis por quatro vezes quatro por seis consome o quatro e deixa as duas pontas.","O shape é seis por seis. Falta apenas contar quantas células isso tem.","Seis por seis dá trinta e seis números, um escore para cada par de posições da sequência. É por isso que a atenção cresce com o quadrado do comprimento."],"leitura":"As consultas, de shape seis por quatro, multiplicam as chaves transpostas, de shape quatro por seis. Quantos números tem a matriz de escores resultante?"},{"pergunta":"Por fim, a matriz de pesos, de shape 6 por 6, multiplica os valores, de shape 6 por 4. Quantos números tem a saída da atenção?","tipo":"numero","resposta":24,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":36,"diag":"Repetiu a contagem da matriz de escores, sem refazer a regra para o novo produto.","corrige":"Cada multiplicação tem o seu próprio shape de saída. Reaplique a regra do começo."},{"valor":16,"diag":"Formou uma matriz quatro por quatro usando a dimensão que deveria ter sido consumida.","corrige":"O seis interno é o que some. As dimensões que sobram são seis e quatro."},{"valor":10,"diag":"Somou as dimensões do resultado em vez de multiplicá-las.","corrige":"Contar células é multiplicar linhas por colunas, não somar."}],"dicas":["Aplique a regra pela terceira vez: quais dimensões batem e qual desaparece?","Seis por seis vezes seis por quatro consome o seis interno e devolve seis por quatro.","O shape da saída é seis por quatro. Conte as células.","Seis vezes quatro dá vinte e quatro números. A saída volta a ter uma linha por token, exatamente como a entrada, o que permite empilhar camadas."],"leitura":"Por fim, a matriz de pesos, de shape seis por seis, multiplica os valores, de shape seis por quatro. Quantos números tem a saída da atenção?"}],"fecho":"Você percorreu uma cabeça de atenção inteira sem calcular um número sequer, só com a regra de shapes. É esse o hábito que faz um paper ficar legível: anote os shapes à margem antes de tentar entender o significado."},{"id":"m2-t5","titulo":"O quadrado unitário sob uma matriz","secao":6,"enunciado":"Seja M a matriz com linhas (2, 0) e (0, 3). Vamos ver o que ela faz com o quadrado de lado um apoiado na origem, que é a forma mais rápida de enxergar uma matriz como transformação do espaço.","passos":[{"pergunta":"Aplique M ao vetor (1; 0). Qual é a primeira componente do resultado?","tipo":"numero","resposta":2,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1,"diag":"Devolveu o vetor original, sem aplicar a matriz.","corrige":"Aplicar a matriz é fazer o produto escalar de cada linha dela com o vetor."},{"valor":3,"diag":"Usou a segunda linha de M em vez da primeira.","corrige":"A primeira componente do resultado nasce da primeira linha da matriz."},{"valor":0,"diag":"Multiplicou o zero do vetor pelo zero da matriz e ignorou a outra parcela.","corrige":"São duas parcelas somadas. Comece por dois vezes um."}],"dicas":["Qual linha da matriz produz a primeira componente do resultado?","Cada componente do resultado é o produto escalar entre uma linha da matriz e o vetor de entrada.","A primeira linha de M é (2, 0) e o vetor é (1; 0). Monte dois vezes um mais zero vezes zero.","Dois vezes um é dois e zero vezes zero é zero, então a primeira componente vale dois. O canto direito do quadrado foi empurrado de um para dois."],"leitura":"Aplique a matriz M ao vetor um, zero. Qual é a primeira componente do resultado?"},{"pergunta":"Aplique M ao vetor (0; 1). Qual é a segunda componente do resultado?","tipo":"numero","resposta":3,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1,"diag":"Devolveu o vetor original, sem aplicar a matriz.","corrige":"Refaça o produto escalar entre a segunda linha da matriz e o vetor."},{"valor":2,"diag":"Usou a primeira linha de M em vez da segunda.","corrige":"A segunda componente do resultado nasce da segunda linha da matriz."},{"valor":0,"diag":"Parou na primeira parcela, zero vezes zero, sem somar a segunda.","corrige":"Some as duas parcelas. A segunda é três vezes um."}],"dicas":["Qual linha da matriz produz a segunda componente do resultado?","A segunda componente sai do produto escalar entre a segunda linha da matriz e a entrada.","A segunda linha de M é (0, 3) e o vetor é (0; 1). Monte zero vezes zero mais três vezes um.","Zero vezes zero é zero e três vezes um é três, então a segunda componente vale três. O canto de cima do quadrado subiu de um para três."],"leitura":"Aplique a matriz M ao vetor zero, um. Qual é a segunda componente do resultado?"},{"pergunta":"Os dois lados do quadrado viraram um lado de comprimento 2 na horizontal e um lado de comprimento 3 na vertical. Qual é a área da figura resultante?","tipo":"numero","resposta":6,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Somou os dois comprimentos em vez de multiplicá-los.","corrige":"Área de retângulo é produto dos lados, não soma."},{"valor":1,"diag":"Manteve a área do quadrado original, como se a transformação não mexesse no tamanho.","corrige":"Os lados mudaram de comprimento. A área tem de acompanhar essa mudança."},{"valor":3,"diag":"Usou apenas o alongamento vertical e esqueceu o horizontal.","corrige":"Os dois eixos foram esticados. Considere os dois fatores juntos."}],"dicas":["Se os lados agora medem dois e três, que figura é essa e como se calcula a área dela?","Como M não gira nem inclina nada, o quadrado virou um retângulo alinhado aos eixos.","Os lados são dois e três. Falta uma multiplicação.","Dois vezes três dá área seis. A transformação ampliou a área do quadrado unitário em seis vezes."],"leitura":"Os dois lados do quadrado viraram um lado de comprimento dois na horizontal e um lado de comprimento três na vertical. Qual é a área da figura resultante?"},{"pergunta":"Para onde a matriz M leva o ponto da origem, (0; 0)?","tipo":"escolha","resposta":0,"opcoes":["Continua na origem, porque toda transformação linear deixa a origem fixa","Vai para o ponto (2; 3), acompanhando os fatores de alongamento","Vai para o ponto (1; 1), no centro do quadrado transformado","Depende dos outros pontos que forem transformados junto"],"aceita":[],"erros":[{"valor":1,"diag":"Aplicou os fatores de alongamento a um ponto que só tem zeros.","corrige":"Faça a conta: qualquer número multiplicado por zero continua zero."},{"valor":2,"diag":"Confundiu a origem com o centro da figura.","corrige":"A origem é o ponto de coordenadas zero e zero, e não o meio do quadrado."},{"valor":3,"diag":"Supôs que o destino de um ponto depende dos outros pontos transformados.","corrige":"A matriz age em cada ponto de forma independente, sempre com a mesma regra."}],"dicas":["O que acontece com qualquer produto escalar quando todas as componentes do vetor são zero?","Uma transformação linear estica, gira ou espelha, mas mantém a origem no lugar.","As duas parcelas de cada componente do resultado envolvem multiplicação por zero.","Tudo dá zero, então a origem continua na origem. Retas continuam retas e o ponto zero fica fixo: é assim que se reconhece uma transformação linear."],"leitura":"Para onde a matriz M leva o ponto da origem, de coordenadas zero e zero?"},{"pergunta":"Por que uma camada de rede neural não pode ser só a matriz, e precisa de uma função não linear depois?","tipo":"escolha","resposta":0,"opcoes":["Porque compor matrizes só produz outra transformação linear, e retas continuariam sempre retas","Porque a matriz sozinha aumenta demais a área e o treino estoura","Porque sem a função não linear a origem sairia do lugar","Porque a multiplicação de matrizes é lenta e a função não linear acelera o cálculo"],"aceita":[],"erros":[{"valor":1,"diag":"Atribuiu a necessidade da não linearidade a um problema de escala numérica.","corrige":"Escala se controla com normalização. A questão aqui é o tipo de relação que a camada consegue representar."},{"valor":2,"diag":"Inverteu o papel da função não linear, achando que ela é que fixa a origem.","corrige":"A origem já fica fixa em qualquer transformação linear. Pense no que ainda falta representar."},{"valor":3,"diag":"Tratou a função não linear como recurso de desempenho.","corrige":"A motivação é de expressividade, não de velocidade."}],"dicas":["Se você aplicar duas matrizes em sequência, o efeito total ainda pode ser descrito por uma única matriz?","Empilhar transformações lineares dá outra transformação linear, com as mesmas limitações da primeira.","Sem algo que dobre o espaço, mil camadas fariam o mesmo que uma só.","Compor matrizes produz apenas outra matriz, então a profundidade não acrescentaria nada. A função não linear dobra o espaço de um jeito que a matriz sozinha não consegue, e é dessa alternância que sai a capacidade de representar relações complicadas."],"leitura":"Por que uma camada de rede neural não pode ser só a matriz, e precisa de uma função não linear depois?"}],"fecho":"Duas colunas da matriz bastaram para descrever o destino de todo o plano. Guarde a leitura: matriz não é tabela de números, é função que transforma o espaço inteiro, e a não linearidade é o que impede que empilhar camadas seja inútil."}],"duvidas":[{"p":"Qual é a diferença real entre produto escalar e similaridade do cosseno?","chaves":["produto","escalar","cosseno","similaridade","diferenca","normas"],"r":"O produto escalar mistura duas informações em um número só: o ângulo entre os vetores e o comprimento de cada um. A similaridade do cosseno é esse mesmo produto escalar dividido pelo produto das normas, o que elimina os comprimentos e deixa apenas o ângulo. Na prática, o produto escalar cresce se você simplesmente alongar um dos vetores, enquanto o cosseno não muda. Por isso o cosseno é a métrica usada quando se quer comparar significado, e o produto escalar cru é o que aparece dentro da atenção, onde a magnitude também carrega informação.","secao":3},{"p":"Por que o produto escalar devolve um número só, e não um vetor?","chaves":["escalar","numero","vetor","resultado","soma"],"r":"Porque a última operação da fórmula é uma soma. Você multiplica componente por componente, o que ainda produz uma lista, mas em seguida soma todos esses produtos, e uma soma de números é um número. O nome escalar vem exatamente daí: o resultado é uma grandeza sem direção, apenas magnitude e sinal. É por isso que uma célula de uma matriz produto guarda um único valor, mesmo tendo nascido de dois vetores inteiros.","secao":2},{"p":"A norma de um vetor pode dar negativa?","chaves":["norma","negativa","comprimento","sinal","raiz"],"r":"Não. Cada componente entra elevada ao quadrado, e quadrado nunca é negativo, então a soma dentro da raiz é sempre maior ou igual a zero. A raiz quadrada dessa soma também é tomada como positiva. O único vetor com norma zero é o vetor de todas as componentes zero. Se você chegou a um número negativo, quase sempre foi por ter somado as componentes cruas em vez de somar os quadrados delas.","secao":1},{"p":"Preciso decorar a fórmula da norma para vetores de milhares de dimensões?","chaves":["norma","dimensoes","milhares","formula","decorar","4096"],"r":"A fórmula é a mesma, só com mais termos. Em duas dimensões você soma dois quadrados, em quatro mil e noventa e seis você soma quatro mil e noventa e seis quadrados, e o resto do procedimento não muda em nada. O que vale decorar é a estrutura, quadrados primeiro, soma depois, raiz por último. A conta em si nunca será feita à mão em dimensão alta, mas a leitura da notação sim, e é ela que este módulo cobra.","secao":1},{"p":"Se a similaridade do cosseno entre dois embeddings deu 0,02, isso é bom ou ruim?","chaves":["cosseno","0,02","valor","interpretar","perpendicular","proximo de zero"],"r":"Não é bom nem ruim, é uma informação: significa que os vetores estão praticamente perpendiculares. Em um espaço de embeddings, isso quer dizer que não há relação semântica detectável entre os dois itens naquele espaço. Se você esperava que fossem parecidos, o valor indica que o modelo não enxerga essa semelhança. Para comparação, proximidade real costuma aparecer como cosseno claramente acima de zero, tendendo a um, e oposição aparece como valor negativo tendendo a menos um.","secao":3},{"p":"Por que a multiplicação de matrizes não é comutativa?","chaves":["comutativa","ordem","matrizes","A vezes B","diferente"],"r":"Porque a definição não é simétrica: da matriz da esquerda se leem linhas e da matriz da direita se leem colunas. Ao trocar a ordem, você troca quem entra como linha e quem entra como coluna, e os produtos escalares passam a ser entre vetores diferentes. Com A de linhas (2, 0) e (1, 3) e B de linhas (1, 4) e (2, 5), a célula superior esquerda vale dois em uma ordem e seis na outra. Em muitos casos a inversão nem é definida, porque as dimensões internas deixam de bater.","secao":4},{"p":"Como eu sei rapidamente se uma multiplicação de matrizes é possível?","chaves":["shape","possivel","dimensoes","internas","definida","regra"],"r":"Escreva os dois shapes lado a lado, na ordem em que aparecem, e olhe apenas para os dois números do meio. Se eles forem iguais, a operação existe e o resultado tem como shape os dois números das pontas. Se forem diferentes, a operação é indefinida e não há o que calcular. Uma matriz 4 por 8 vezes uma 8 por 2 funciona e devolve 4 por 2, enquanto a mesma 4 por 8 vezes uma 2 por 8 não funciona, porque oito não casa com dois.","secao":5},{"p":"O que quer dizer, na prática, um shape lote por sequência por dimensão do modelo?","chaves":["shape","lote","sequencia","dimensao do modelo","tres","batch"],"r":"É a mesma regra de shapes com um eixo a mais na frente. O eixo de lote conta quantos exemplos estão sendo processados juntos, o de sequência conta quantos tokens tem cada exemplo, e o de dimensão do modelo conta quantos números descrevem cada token. Nas multiplicações, o eixo de lote costuma ficar parado enquanto os dois últimos seguem a regra usual, com a dimensão interna sendo consumida. Por isso multiplicar por uma projeção de dimensão do modelo por dimensão da chave produz lote por sequência por dimensão da chave.","secao":5},{"p":"Aquela história de rei menos homem mais mulher dar rainha é verdade?","chaves":["rei","rainha","analogia","embeddings","palavras","contextual"],"r":"Funciona em modelos clássicos de embedding de palavras e serve muito bem para construir a imagem mental de que direções carregam significado. Em modelos de linguagem grandes contemporâneos, porém, os embeddings são contextuais, ou seja, mudam conforme a frase em que a palavra aparece, e essas relações deixam de ser tão limpas. Use a analogia para entender a geometria e desconfie dela como descrição literal do que acontece dentro de um modelo atual.","secao":3},{"p":"Por que normalizar os vetores antes de compará-los?","chaves":["normalizar","comparar","antes","por que","escala"],"r":"Porque comprimento e direção carregam informações diferentes, e para comparar significado geralmente interessa só a direção. Um vetor pode ser longo apenas porque o texto era maior ou porque as ativações tinham escala alta, sem que isso diga nada sobre o conteúdo. Ao normalizar, todos os vetores passam a ter comprimento um e a comparação fica sendo puramente angular. Comparar vetores já normalizados por produto escalar é, aliás, exatamente a mesma coisa que calcular a similaridade do cosseno.","secao":1},{"p":"O que é uma transformação linear, em uma frase?","chaves":["transformacao","linear","definicao","espaco","matriz"],"r":"É uma função que transforma o espaço inteiro esticando, girando ou espelhando, de modo que retas continuam retas e a origem permanece no lugar. Toda matriz representa uma dessas funções, e aplicar a matriz a um vetor é justamente perguntar para onde aquele ponto foi. A imagem canônica é o quadrado unitário virando um paralelogramo. Se você quiser um teste rápido, verifique se a origem ficou parada: se saiu do lugar, a transformação não é linear.","secao":6},{"p":"Se a matriz já transforma o espaço, para que serve a função não linear?","chaves":["nao linear","funcao","camada","por que","empilhar","profundidade"],"r":"Porque compor transformações lineares devolve outra transformação linear. Sem algo entre elas, empilhar oitenta camadas teria exatamente o mesmo poder de representação de uma única camada, o que tornaria a profundidade inútil. A função não linear dobra o espaço de um jeito que nenhuma matriz consegue sozinha, e é a alternância entre esticar e dobrar que permite representar relações complicadas. É por isso que toda arquitetura intercala multiplicação de matrizes com não linearidade.","secao":6},{"p":"Embedding e vetor são a mesma coisa?","chaves":["embedding","vetor","mesma coisa","diferenca","token"],"r":"Todo embedding é um vetor, mas nem todo vetor é um embedding. Vetor é o objeto matemático, uma lista ordenada de números que também pode ser lida como uma seta. Embedding é o nome que se dá ao vetor quando ele foi produzido para representar alguma coisa, um token, uma frase, uma imagem, de modo que a posição no espaço carregue significado. A matemática é idêntica nos dois casos, o que muda é a interpretação.","secao":0},{"p":"Onde exatamente o produto escalar aparece dentro da atenção?","chaves":["atencao","produto escalar","consulta","chave","onde","transformer"],"r":"No cálculo dos escores. Quando um token pergunta quais posições anteriores importam para ele, o modelo faz o produto escalar entre a consulta desse token e as chaves de todas as outras posições. Concordância alta entre consulta e chave produz escore alto, que depois vira atenção alta. Como isso é feito para todos os pares de posições de uma vez, o cálculo inteiro é escrito como uma multiplicação de matrizes, que nada mais é do que uma coleção organizada desses produtos escalares.","secao":2},{"p":"Como visualizar um vetor de quatro mil e noventa e seis dimensões?","chaves":["visualizar","dimensoes","4096","imaginar","alta dimensao"],"r":"Não tente. Ninguém visualiza mais do que três dimensões, e a boa notícia é que não é preciso. Pense em duas ou três dimensões para construir a intuição de direção, comprimento e ângulo, e confie que todas as fórmulas continuam valendo com mais termos. O que muda em dimensão alta é apenas o número de parcelas nas somas, nunca a lógica da operação. A geometria mental de duas dimensões é uma bengala legítima, desde que você saiba que é uma bengala.","secao":0}]},"M3":{"modulo":"m3","tex":{"s0.f0":"f'(x) = \\lim_{h \\to 0} \\frac{f(x+h) - f(x)}{h}","s1.f0":"(x^{n})' = n\\,x^{n-1} \\qquad (e^{x})' = e^{x} \\qquad (\\ln x)' = \\frac{1}{x}","s2.f0":"\\nabla L(\\theta) = \\left( \\frac{\\partial L}{\\partial \\theta_1},\\; \\frac{\\partial L}{\\partial \\theta_2},\\; \\ldots,\\; \\frac{\\partial L}{\\partial \\theta_n} \\right)","s3.f0":"\\frac{dz}{dx} = \\frac{dz}{dy} \\cdot \\frac{dy}{dx}","s4.f0":"\\theta_{t+1} = \\theta_t - \\alpha\\, \\nabla L(\\theta_t)"},"trilhos":[{"id":"m3-t1","titulo":"A derivada por aproximação, com h encolhendo","secao":0,"enunciado":"Seja f de x igual a x ao quadrado, e o ponto x igual a 3. Vamos calcular a inclinação em intervalos cada vez menores e ver o número se estabilizar, que é exatamente o que a definição de derivada descreve.","passos":[{"pergunta":"Comece com h igual a 1. Quanto vale f de 3 mais h, ou seja f de 4?","tipo":"numero","resposta":16,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":9,"diag":"Calculou f de 3 e não somou o h antes de elevar ao quadrado.","corrige":"O h entra dentro da função. Some primeiro, eleve depois."},{"valor":10,"diag":"Elevou o 3 ao quadrado e só então somou o h, fazendo nove mais um.","corrige":"A ordem importa: a função recebe a entrada já somada, então três mais um vai inteiro para dentro do quadrado."},{"valor":4,"diag":"Somou três mais um e esqueceu de aplicar a função.","corrige":"Quatro é a entrada, não a saída. Falta elevar ao quadrado."}],"dicas":["Qual é a entrada da função neste ponto, antes de qualquer conta?","A notação f de x mais h manda somar primeiro e aplicar a função ao resultado dessa soma.","A entrada é três mais um, ou seja quatro. Aplique x ao quadrado a esse quatro.","Quatro ao quadrado é dezesseis, então f de quatro vale dezesseis."],"leitura":"Comece com h igual a um. Quanto vale f de três mais h, ou seja f de quatro?"},{"pergunta":"Ainda com h igual a 1, calcule o quociente da definição: a variação da saída dividida pela variação da entrada.","tipo":"numero","resposta":7,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":16,"diag":"Entregou f de quatro sem subtrair f de três.","corrige":"O numerador é uma diferença: quanto a saída mudou, e não quanto ela vale."},{"valor":25,"diag":"Somou f de quatro com f de três em vez de subtrair.","corrige":"Variação é sempre valor final menos valor inicial."},{"valor":9,"diag":"Usou f de três como se fosse a variação.","corrige":"Nove é o ponto de partida. A pergunta é quanto se andou a partir dele."}],"dicas":["O que vai no numerador da definição, e o que vai no denominador?","O numerador é f de x mais h menos f de x, e o denominador é o próprio h.","O numerador é dezesseis menos nove. O denominador é um.","Dezesseis menos nove é sete, e sete dividido por um é sete. Essa é a inclinação média entre x igual a três e x igual a quatro."],"leitura":"Ainda com h igual a um, calcule o quociente da definição: a variação da saída dividida pela variação da entrada."},{"pergunta":"Agora encolha o intervalo: com h igual a 0,1, quanto vale o quociente?","tipo":"numero","resposta":6.1,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":0.61,"diag":"Calculou a variação da saída e esqueceu de dividir pela variação da entrada.","corrige":"O denominador é o próprio h, que agora vale zero vírgula um."},{"valor":9.61,"diag":"Entregou f de três vírgula um sem montar o quociente.","corrige":"Falta subtrair f de três e dividir pelo h."},{"valor":6,"diag":"Adiantou o valor para onde a sequência converge, sem calcular este intervalo.","corrige":"Com h igual a zero vírgula um o quociente ainda não é o limite. Faça a conta e veja quanto falta."}],"dicas":["Qual é a nova entrada da função, e qual passa a ser o denominador?","A estrutura é a mesma do passo anterior, só que o h ficou dez vezes menor.","F de três vírgula um vale nove vírgula sessenta e um. Faça nove vírgula sessenta e um menos nove e divida por zero vírgula um.","A diferença é zero vírgula sessenta e um, e dividida por zero vírgula um dá seis vírgula um. Repare que o resultado caiu de sete para seis vírgula um."],"leitura":"Agora encolha o intervalo. Com h igual a zero vírgula um, quanto vale o quociente?"},{"pergunta":"Encolha mais uma vez: com h igual a 0,01, quanto vale o quociente?","tipo":"numero","resposta":6.01,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":6.1,"diag":"Repetiu o resultado do h anterior sem refazer a conta.","corrige":"Cada h dá um quociente diferente. Recalcule com a nova entrada."},{"valor":0.0601,"diag":"Parou na variação da saída e não dividiu pelo h.","corrige":"Divida por zero vírgula zero um, que é o tamanho do intervalo desta vez."},{"valor":6,"diag":"Entregou o valor do limite em vez do quociente deste intervalo.","corrige":"O limite é o destino da sequência. Aqui ainda se pede um termo dela."}],"dicas":["O que muda em relação ao passo anterior, além do tamanho do intervalo?","Nada muda na estrutura: mesma diferença no numerador, mesmo h no denominador.","F de três vírgula zero um vale nove vírgula zero seiscentos e um. Subtraia nove e divida por zero vírgula zero um.","A diferença é zero vírgula zero seiscentos e um, e dividida por zero vírgula zero um dá seis vírgula zero um. A sequência sete, seis vírgula um, seis vírgula zero um está claramente indo para algum lugar."],"leitura":"Encolha mais uma vez. Com h igual a zero vírgula zero um, quanto vale o quociente?"},{"pergunta":"Para que número esses quocientes estão convergindo, ou seja, quanto vale a derivada de f em x igual a 3?","tipo":"numero","resposta":6,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":6.01,"diag":"Parou no último quociente calculado e o apresentou como se fosse o limite.","corrige":"O limite é o valor para onde a sequência caminha quando h continua encolhendo. Olhe a tendência, não o último termo."},{"valor":9,"diag":"Entregou f de três em vez da inclinação em três.","corrige":"Valor da função e inclinação da função são coisas diferentes. A derivada é a segunda."},{"valor":3,"diag":"Repetiu o próprio ponto x igual a três.","corrige":"A derivada é um resultado da conta, não a entrada. Observe para onde os quocientes convergem."}],"dicas":["Olhe a sequência sete, seis vírgula um, seis vírgula zero um. Qual seria o próximo termo com h igual a zero vírgula zero zero um?","O limite é o valor de que os quocientes chegam arbitrariamente perto quando h tende a zero.","Cada casa decimal que h perde aproxima o quociente de um número inteiro. Qual é ele?","A derivada vale seis. Confere com a regra: a derivada de x ao quadrado é dois x, e em x igual a três isso dá seis."],"leitura":"Para que número esses quocientes estão convergindo, ou seja, quanto vale a derivada de f em x igual a três?"}],"fecho":"Você viu a definição funcionando: intervalo menor, inclinação mais precisa, até o número parar de mudar. É por isso que a derivada é chamada de taxa de variação instantânea, e é essa a ideia por trás de toda a regra que vem depois."},{"id":"m3-t2","titulo":"Derivar 3x ao quadrado mais 5 e ler o sinal","secao":1,"enunciado":"Seja f de x igual a 3x ao quadrado mais 5. Vamos aplicar a regra da potência termo a termo, avaliar a derivada em um ponto e interpretar o sinal do resultado.","passos":[{"pergunta":"Na regra da potência, qual número desce e vira fator multiplicando o termo 3x ao quadrado?","tipo":"numero","resposta":2,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Confundiu o coeficiente que já estava na frente com o expoente.","corrige":"O coeficiente três apenas acompanha o termo. Quem desce é o número que está lá em cima."},{"valor":1,"diag":"Usou o expoente já reduzido em vez do expoente original.","corrige":"Primeiro o expoente desce como fator, e só depois ele diminui em uma unidade."},{"valor":6,"diag":"Adiantou o produto do coeficiente pelo expoente.","corrige":"Este passo isola só o número que desce. A multiplicação vem em seguida."}],"dicas":["Na expressão três x ao quadrado, quem é coeficiente e quem é expoente?","A regra diz que a derivada de x elevado a n é n vezes x elevado a n menos um, e o n é o expoente.","O expoente aqui está escrito acima do x. Qual é o valor dele?","O expoente é dois, e é ele que desce como fator. O três continua sendo apenas o coeficiente que multiplica tudo."],"leitura":"Na regra da potência, qual número desce e vira fator multiplicando o termo três x ao quadrado?"},{"pergunta":"Escreva a derivada do termo 3x ao quadrado.","tipo":"expressao","resposta":"6x","opcoes":[],"aceita":["6 x","6*x","6·x","6.x","6 vezes x"],"erros":[{"valor":"3x","diag":"Reduziu o expoente mas esqueceu de multiplicar pelo número que desceu.","corrige":"A regra tem duas ações: o expoente desce multiplicando e depois diminui em uma unidade. Faltou a primeira."},{"valor":"6x^2","diag":"Multiplicou pelo expoente mas não reduziu o expoente do x.","corrige":"Depois de descer, o expoente vira n menos um. Confira quanto sobra em cima do x."},{"valor":"2x","diag":"Aplicou a regra ignorando o coeficiente três que estava na frente.","corrige":"O coeficiente permanece multiplicando o resultado. Junte-o ao fator que desceu."}],"dicas":["Quais são as duas coisas que a regra da potência faz com o expoente?","O expoente desce multiplicando e, em seguida, diminui em uma unidade. O coeficiente que já estava lá continua multiplicando.","O dois desce e encontra o três, e o expoente do x passa a ser um. Falta juntar as peças.","Dois vezes três é seis, e x elevado a um é o próprio x, então a derivada do termo é seis x."],"leitura":"Escreva a derivada do termo três x ao quadrado."},{"pergunta":"Quanto vale a derivada do termo constante 5?","tipo":"numero","resposta":0,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Copiou a constante para a derivada, como se ela sobrevivesse à operação.","corrige":"Pergunte-se quanto a saída muda quando x varia um tiquinho e o termo é sempre cinco."},{"valor":1,"diag":"Tratou a constante como se tivesse um x escondido de expoente um.","corrige":"Não há x nenhum nesse termo. Ele não responde a variações da entrada."}],"dicas":["Se x mudar, o valor do termo cinco muda em quanto?","A derivada mede taxa de variação, e um termo que não depende de x não varia.","O gráfico desse termo isolado é uma reta horizontal. Qual é a inclinação de uma reta horizontal?","A derivada de qualquer constante é zero. É por isso que o cinco desaparece completamente na derivada de f."],"leitura":"Quanto vale a derivada do termo constante cinco?"},{"pergunta":"Junte os dois termos e avalie a derivada de f em x igual a 2.","tipo":"numero","resposta":12,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":17,"diag":"Calculou f de dois em vez da derivada de f em dois.","corrige":"Dezessete é a altura do gráfico naquele ponto. A pergunta é sobre a inclinação."},{"valor":6,"diag":"Parou no coeficiente da derivada e não substituiu o x pelo valor dois.","corrige":"Seis x ainda depende de x. Substitua o x pelo ponto pedido."},{"valor":24,"diag":"Elevou o x ao quadrado depois de já ter aplicado a regra, calculando seis vezes dois ao quadrado.","corrige":"O expoente já foi consumido pela regra. Na derivada, o x aparece elevado a um."}],"dicas":["Qual é a expressão completa da derivada de f, somando os dois termos?","A derivada de uma soma é a soma das derivadas, e uma delas é zero.","A derivada é seis x mais zero, ou seja seis x. Substitua x por dois.","Seis vezes dois é doze. A derivada de f em x igual a dois vale doze."],"leitura":"Junte os dois termos e avalie a derivada de f em x igual a dois."},{"pergunta":"O que o valor doze diz sobre o comportamento da função naquele ponto?","tipo":"escolha","resposta":0,"opcoes":["Que a função está subindo ali, e com inclinação bastante acentuada","Que a função vale doze naquele ponto","Que a função está descendo ali, porque valores altos indicam queda rápida","Que o ponto é um mínimo, já que a derivada não deu zero"],"aceita":[],"erros":[{"valor":1,"diag":"Confundiu o valor da derivada com o valor da função.","corrige":"A derivada não é a função nem o valor dela. É uma direção com intensidade."},{"valor":2,"diag":"Leu o tamanho do número como se fosse o sinal dele.","corrige":"Quem indica subida ou descida é o sinal. O tamanho indica apenas a intensidade."},{"valor":3,"diag":"Associou derivada diferente de zero a mínimo.","corrige":"Mínimos, máximos e platôs aparecem com derivada zero. Aqui ela é claramente positiva."}],"dicas":["Das três leituras do sinal, positiva, negativa e zero, qual se aplica ao número doze?","Derivada positiva significa função subindo, negativa significa descendo e zero significa momentaneamente plana.","Doze é positivo e grande, então há duas informações ali: o sentido e a intensidade.","A função está subindo em x igual a dois, e com inclinação acentuada: aumentar x em uma unidade minúscula aumenta f em aproximadamente doze vezes essa unidade."],"leitura":"O que o valor doze diz sobre o comportamento da função naquele ponto?"},{"pergunta":"Em qual valor de x a derivada dessa função vale zero?","tipo":"numero","resposta":0,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Usou a constante da função original como se ela influenciasse a derivada.","corrige":"A constante já desapareceu na derivação. Trabalhe apenas com a expressão da derivada."},{"valor":2,"diag":"Repetiu o ponto usado no passo anterior.","corrige":"Em x igual a dois a derivada valia doze. Procure onde ela se anula."},{"valor":6,"diag":"Confundiu o coeficiente da derivada com o valor de x que a zera.","corrige":"Iguale a expressão seis x a zero e resolva para x."}],"dicas":["Que equação você precisa resolver para responder isso?","Basta igualar a expressão da derivada a zero e descobrir o x correspondente.","A equação é seis x igual a zero. Divida os dois lados por seis.","A derivada se anula em x igual a zero, que é o fundo da parábola. Ali a função está momentaneamente plana."],"leitura":"Em qual valor de x a derivada dessa função vale zero?"}],"fecho":"Três regras bastaram para derivar a função inteira, e o resultado foi lido como direção, não como número solto. Guardar essa leitura evita o erro mais comum de quem começa, que é confundir a derivada com o valor da função."},{"id":"m3-t3","titulo":"Gradiente de uma perda com dois parâmetros","secao":2,"enunciado":"Seja a perda L igual a teta um ao quadrado mais três vezes teta dois ao quadrado, avaliada no ponto em que teta um vale 2 e teta dois vale 1. Vamos montar o gradiente componente por componente e dar um passo de treino.","passos":[{"pergunta":"Calcule a derivada parcial de L em relação a teta um, avaliada nesse ponto.","tipo":"numero","resposta":4,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":2,"diag":"Escreveu dois teta um mas devolveu o próprio teta um, sem completar a multiplicação.","corrige":"Depois de escrever a expressão da derivada parcial, substitua o valor e termine a conta."},{"valor":7,"diag":"Calculou o valor da perda naquele ponto em vez da derivada parcial.","corrige":"Sete é a altura da perda. A pergunta é sobre a sensibilidade dela a um dos parâmetros."},{"valor":10,"diag":"Somou as duas derivadas parciais em um número só.","corrige":"Cada parâmetro tem a sua própria derivada parcial. Elas formam um vetor, não uma soma."}],"dicas":["Ao derivar em relação a teta um, o que acontece com o termo que só contém teta dois?","Derivada parcial em relação a um parâmetro trata todos os outros como constantes, e derivada de constante é zero.","Sobra apenas a derivada de teta um ao quadrado, que é dois teta um. Substitua teta um por dois.","Dois vezes dois é quatro. A derivada parcial em relação a teta um vale quatro nesse ponto."],"leitura":"Calcule a derivada parcial da perda em relação a teta um, avaliada nesse ponto."},{"pergunta":"Calcule a derivada parcial de L em relação a teta dois, avaliada no mesmo ponto.","tipo":"numero","resposta":6,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Manteve o coeficiente três mas não fez o expoente descer.","corrige":"A regra da potência precisa ser aplicada ao teta dois ao quadrado, e o expoente desce como fator."},{"valor":2,"diag":"Aplicou a regra da potência e esqueceu o coeficiente três.","corrige":"O coeficiente continua multiplicando o resultado inteiro."},{"valor":1,"diag":"Devolveu o próprio valor de teta dois, sem derivar.","corrige":"Um é o ponto onde a conta é avaliada, não a derivada. Aplique a regra primeiro."}],"dicas":["Ao derivar em relação a teta dois, o que sobra da expressão da perda?","Sobra apenas três vezes teta dois ao quadrado, e o coeficiente três acompanha o fator que desce.","O expoente dois desce e encontra o três, dando seis teta dois. Substitua teta dois por um.","Seis vezes um é seis. A derivada parcial em relação a teta dois vale seis, então o gradiente nesse ponto é o vetor (4; 6)."],"leitura":"Calcule a derivada parcial da perda em relação a teta dois, avaliada no mesmo ponto."},{"pergunta":"Qual é a norma do vetor gradiente (4; 6), com três casas decimais?","tipo":"numero","resposta":7.211,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":10,"diag":"Somou as duas componentes em vez de somar os quadrados e extrair a raiz.","corrige":"O gradiente é um vetor, e comprimento de vetor segue a fórmula da norma."},{"valor":52,"diag":"Parou na soma dos quadrados, sem extrair a raiz.","corrige":"Cinquenta e dois é o número que fica embaixo da raiz."},{"valor":24,"diag":"Multiplicou as duas componentes uma pela outra.","corrige":"Não há produto entre componentes na fórmula da norma. Cada uma entra elevada ao quadrado."}],"dicas":["O gradiente é um vetor. Que ferramenta do módulo anterior mede o comprimento de um vetor?","A norma é a raiz da soma dos quadrados das componentes, e vale para qualquer vetor, inclusive um gradiente.","A soma é dezesseis mais trinta e seis, ou seja cinquenta e dois. Extraia a raiz.","A raiz de cinquenta e dois é aproximadamente sete vírgula duzentos e onze. Esse número é a intensidade com que a perda cresce na direção mais íngreme."],"leitura":"Qual é a norma do vetor gradiente quatro, seis, com três casas decimais?"},{"pergunta":"Para que direção aponta esse vetor (4; 6)?","tipo":"escolha","resposta":0,"opcoes":["Para a direção em que a perda cresce mais rápido","Para a direção em que a perda diminui mais rápido","Para o ponto de mínimo da perda","Para uma direção qualquer, porque o gradiente só informa intensidade"],"aceita":[],"erros":[{"valor":1,"diag":"Inverteu o sentido do gradiente, confundindo-o com a direção de atualização.","corrige":"A direção de descida é a oposta à do gradiente. É justamente por isso que a fórmula de atualização tem um sinal de menos."},{"valor":2,"diag":"Tratou o gradiente como se apontasse para o destino final do treino.","corrige":"O gradiente é local. Ele descreve a vizinhança imediata do ponto, não a localização do mínimo."},{"valor":3,"diag":"Reduziu o gradiente a uma medida de intensidade, sem direção.","corrige":"Por ser um vetor, o gradiente carrega direção e intensidade ao mesmo tempo."}],"dicas":["Qual é a propriedade geométrica que torna o gradiente útil no treino?","O gradiente aponta na direção de maior crescimento da função em que foi calculado.","Se ele apontasse para onde a perda cai, a fórmula de atualização não precisaria de sinal negativo.","Ele aponta para a direção de maior crescimento da perda. Por isso o treino anda no sentido contrário, e a fórmula traz teta menos alfa vezes o gradiente."],"leitura":"Para que direção aponta esse vetor quatro, seis?"},{"pergunta":"Com taxa de aprendizado igual a 0,1, qual é o novo valor de teta um após uma atualização?","tipo":"numero","resposta":1.6,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":2.4,"diag":"Somou o passo em vez de subtrair, andando no sentido em que a perda cresce.","corrige":"A atualização subtrai, porque o objetivo é diminuir a perda."},{"valor":-2,"diag":"Subtraiu o gradiente inteiro, sem multiplicar pela taxa de aprendizado.","corrige":"O gradiente dá a direção, e alfa controla o tamanho do passo. Os dois entram na conta."},{"valor":1.4,"diag":"Usou a derivada parcial do outro parâmetro nesta atualização.","corrige":"Cada parâmetro é atualizado com a sua própria derivada parcial."}],"dicas":["Quais são as três peças da fórmula de atualização, e qual delas se aplica a teta um?","O novo valor é o valor atual menos alfa vezes a derivada parcial correspondente.","O valor atual é dois, alfa é zero vírgula um e a derivada parcial é quatro. Monte a subtração.","Zero vírgula um vezes quatro dá zero vírgula quatro, e dois menos zero vírgula quatro dá um vírgula seis."],"leitura":"Com taxa de aprendizado igual a zero vírgula um, qual é o novo valor de teta um após uma atualização?"},{"pergunta":"Em qual valor de teta dois a derivada parcial correspondente se anula?","tipo":"numero","resposta":0,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1,"diag":"Repetiu o ponto atual, onde a derivada parcial valia seis.","corrige":"Procure o valor que zera a expressão da derivada parcial, e não o ponto de partida."},{"valor":6,"diag":"Confundiu o coeficiente da derivada parcial com o valor que a anula.","corrige":"Iguale seis teta dois a zero e resolva para teta dois."},{"valor":3,"diag":"Usou o coeficiente que aparecia na perda original.","corrige":"Trabalhe com a expressão já derivada, não com a expressão da perda."}],"dicas":["Que equação simples responde a essa pergunta?","Basta igualar a expressão da derivada parcial a zero.","A equação é seis teta dois igual a zero. Divida os dois lados por seis.","A derivada parcial se anula em teta dois igual a zero. Como a outra também se anula em teta um igual a zero, a origem é o ponto estacionário dessa perda."],"leitura":"Em qual valor de teta dois a derivada parcial correspondente se anula?"}],"fecho":"Duas derivadas parciais formaram um vetor, o vetor apontou para o crescimento e o passo foi dado no sentido contrário. Esse ciclo, repetido bilhões de vezes com bilhões de parâmetros, é literalmente o treino de um modelo de linguagem."},{"id":"m3-t4","titulo":"Regra da cadeia com elos que se multiplicam","secao":3,"enunciado":"Uma cadeia de dependências tem três elos, cada um com derivada 0,5. Vamos calcular a derivada total, testar o que acontece quando os elos são maiores que um e depois esticar a cadeia até dez elos.","passos":[{"pergunta":"Considere apenas os dois primeiros elos, cada um com derivada 0,5. Qual é a derivada total desse trecho?","tipo":"numero","resposta":0.25,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":1,"diag":"Somou as duas derivadas em vez de multiplicá-las.","corrige":"Na regra da cadeia as sensibilidades se multiplicam ao longo do caminho."},{"valor":0.5,"diag":"Usou apenas um dos elos e ignorou o outro.","corrige":"Todos os elos do trecho entram na conta, um multiplicando o outro."},{"valor":0,"diag":"Tratou valores menores que um como se anulassem a cadeia.","corrige":"Um elo menor que um encolhe o efeito, mas não o elimina. Faça a multiplicação."}],"dicas":["Quando uma quantidade depende de outra que depende de uma terceira, as taxas se somam ou se multiplicam?","A derivada de uma composição é o produto das derivadas dos elos.","O produto é zero vírgula cinco vezes zero vírgula cinco.","Zero vírgula cinco vezes zero vírgula cinco dá zero vírgula vinte e cinco. Cada elo cortou o efeito pela metade."],"leitura":"Considere apenas os dois primeiros elos, cada um com derivada zero vírgula cinco. Qual é a derivada total desse trecho?"},{"pergunta":"Agora inclua o terceiro elo, também com derivada 0,5. Qual é a derivada total da cadeia inteira?","tipo":"numero","resposta":0.125,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":1.5,"diag":"Somou as três derivadas em vez de multiplicá-las.","corrige":"A composição multiplica. Some apenas quando os caminhos forem paralelos, o que não é o caso aqui."},{"valor":0.25,"diag":"Parou no resultado dos dois primeiros elos e não incluiu o terceiro.","corrige":"Multiplique o resultado parcial pelo elo que faltava."},{"valor":0.75,"diag":"Multiplicou os dois primeiros elos e somou o terceiro no final.","corrige":"A operação é a mesma em todos os elos, do começo ao fim da cadeia."}],"dicas":["Você já tem o resultado de dois elos. O que fazer com o terceiro?","A regra vale para qualquer número de elos: multiplique todos.","Multiplique zero vírgula vinte e cinco por zero vírgula cinco.","Zero vírgula vinte e cinco vezes zero vírgula cinco dá zero vírgula cento e vinte e cinco. Três elos de metade deixaram apenas um oitavo do efeito original."],"leitura":"Agora inclua o terceiro elo, também com derivada zero vírgula cinco. Qual é a derivada total da cadeia inteira?"},{"pergunta":"Se cada um dos três elos tivesse derivada 2 em vez de 0,5, qual seria a derivada total?","tipo":"numero","resposta":8,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":6,"diag":"Somou os três elos em vez de multiplicá-los.","corrige":"Nada muda na regra quando os elos passam de um. O produto continua sendo o produto."},{"valor":4,"diag":"Multiplicou apenas dois elos.","corrige":"São três elos na cadeia. Falta um fator."},{"valor":2,"diag":"Devolveu o valor de um único elo.","corrige":"Um elo isolado não descreve a cadeia inteira. Componha os três."}],"dicas":["A regra muda quando os elos são maiores que um?","A regra é a mesma: produto de todas as derivadas do caminho.","Monte dois vezes dois vezes dois.","Dois vezes dois vezes dois dá oito. Com elos maiores que um, o efeito cresce em vez de encolher, e é assim que aparece o gradiente que explode."],"leitura":"Se cada um dos três elos tivesse derivada dois em vez de zero vírgula cinco, qual seria a derivada total?"},{"pergunta":"Volte aos elos de 0,5 e imagine uma cadeia de dez elos. Qual é a derivada total, com quatro casas decimais?","tipo":"numero","resposta":0.0009765625,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Somou os dez elos, obtendo dez vezes zero vírgula cinco.","corrige":"Nem em cadeias longas a regra vira soma. É sempre produto."},{"valor":0.125,"diag":"Manteve o resultado de três elos, sem estender para dez.","corrige":"Cada elo a mais multiplica de novo por zero vírgula cinco. Conte quantos ainda faltavam."},{"valor":0.05,"diag":"Dividiu zero vírgula cinco por dez em vez de elevá-lo à décima potência.","corrige":"Multiplicar dez fatores iguais é elevar à décima potência, não dividir por dez."}],"dicas":["Multiplicar dez fatores iguais tem um nome mais curto. Qual?","É zero vírgula cinco elevado a dez, ou seja, o produto de dez metades.","Cada elo divide o resultado por dois, e você começa em um. Faça isso dez vezes.","Zero vírgula cinco elevado a dez dá aproximadamente zero vírgula zero zero zero nove sete seis. O sinal do gradiente chega quase apagado na primeira camada."],"leitura":"Volte aos elos de zero vírgula cinco e imagine uma cadeia de dez elos. Qual é a derivada total, com quatro casas decimais?"},{"pergunta":"Que fenômeno esse encolhimento descreve, e o que existe nas arquiteturas modernas para atenuá-lo?","tipo":"escolha","resposta":0,"opcoes":["O gradiente que desaparece, atenuado por conexões residuais e normalização","O gradiente que explode, atenuado por taxas de aprendizado maiores","A perda que satura, atenuada por aumento do número de camadas","Um erro de arredondamento, corrigido por mais casas decimais no cálculo"],"aceita":[],"erros":[{"valor":1,"diag":"Trocou os dois fenômenos, chamando de explosão o que na verdade é encolhimento.","corrige":"Compare os dois casos que você calculou: elos menores que um encolhem, elos maiores que um crescem."},{"valor":2,"diag":"Atribuiu o efeito à perda e propôs mais profundidade como remédio.","corrige":"Mais camadas alongam a cadeia, o que agrava o encolhimento em vez de resolvê-lo."},{"valor":3,"diag":"Tratou o resultado como imprecisão numérica.","corrige":"O valor está correto e o encolhimento é real, não é artefato de arredondamento."}],"dicas":["Qual dos dois casos que você calculou corresponde a uma rede muito profunda com elos pequenos?","Produtos de derivadas menores que um encolhem exponencialmente com a profundidade.","O nome clássico do problema descreve exatamente o que acontece com o sinal do gradiente ao chegar nas primeiras camadas.","É o gradiente que desaparece. Conexões residuais e normalização existem em boa parte para atenuar esse encolhimento e permitir treinar redes muito profundas."],"leitura":"Que fenômeno esse encolhimento descreve, e o que existe nas arquiteturas modernas para atenuá-lo?"}],"fecho":"A cadeia inteira coube em uma multiplicação, e foi a multiplicação que explicou por que profundidade é difícil. Backpropagation é essa mesma conta, feita de trás para frente uma única vez, reaproveitando os resultados parciais."},{"id":"m3-t5","titulo":"Uma volta completa de descida do gradiente","secao":4,"enunciado":"Seja a perda L de teta igual a teta ao quadrado, com teta partindo de 4 e taxa de aprendizado igual a 0,1. Vamos executar duas atualizações à mão e depois testar o efeito de um alfa grande demais.","passos":[{"pergunta":"Quanto vale o gradiente da perda em teta igual a 4?","tipo":"numero","resposta":8,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":16,"diag":"Calculou a perda em teta igual a quatro em vez do gradiente.","corrige":"Dezesseis é a altura do vale naquele ponto. A pergunta é sobre a inclinação."},{"valor":4,"diag":"Repetiu o valor de teta, sem aplicar a derivada.","corrige":"Aplique a regra da potência a teta ao quadrado antes de substituir o valor."},{"valor":2,"diag":"Parou no coeficiente da derivada e não substituiu o teta.","corrige":"A expressão dois teta ainda depende de teta. Substitua o valor pedido."}],"dicas":["Qual é a expressão da derivada de teta ao quadrado?","Pela regra da potência, a derivada de teta ao quadrado é dois teta.","A expressão é dois teta. Substitua teta por quatro.","Dois vezes quatro é oito. O gradiente vale oito, e é positivo porque a perda cresce quando teta cresce a partir de quatro."],"leitura":"Quanto vale o gradiente da perda em teta igual a quatro?"},{"pergunta":"Com alfa igual a 0,1, qual é o tamanho do passo, ou seja, alfa vezes o gradiente?","tipo":"numero","resposta":0.8,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":80,"diag":"Dividiu pelo alfa em vez de multiplicar por ele.","corrige":"A fórmula traz alfa multiplicando o gradiente, o que encolhe o passo quando alfa é pequeno."},{"valor":8,"diag":"Ignorou o alfa e tomou o gradiente inteiro como passo.","corrige":"Sem alfa não há controle do tamanho do passo, e é justamente esse controle que a taxa de aprendizado oferece."},{"valor":0.1,"diag":"Devolveu o próprio alfa, sem multiplicá-lo pelo gradiente.","corrige":"O passo depende dos dois números ao mesmo tempo, alfa e gradiente."}],"dicas":["Quais dois números determinam o tamanho de cada passo do treino?","O passo é o produto da taxa de aprendizado pelo gradiente.","Multiplique zero vírgula um por oito.","Zero vírgula um vezes oito dá zero vírgula oito. Esse é o quanto teta vai se mover nesta atualização."],"leitura":"Com alfa igual a zero vírgula um, qual é o tamanho do passo, ou seja, alfa vezes o gradiente?"},{"pergunta":"Qual é o novo valor de teta após a primeira atualização?","tipo":"numero","resposta":3.2,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":4.8,"diag":"Somou o passo em vez de subtrair, andando na direção em que a perda cresce.","corrige":"O sinal de menos existe justamente para andar no sentido contrário ao do gradiente."},{"valor":0.8,"diag":"Confundiu o tamanho do passo com o novo valor do parâmetro.","corrige":"O passo é o quanto se anda. O novo valor é o ponto de partida menos esse deslocamento."},{"valor":-4,"diag":"Subtraiu o gradiente inteiro, sem aplicar a taxa de aprendizado.","corrige":"O gradiente precisa ser encolhido por alfa antes de ser subtraído."}],"dicas":["Você tem o ponto de partida e o tamanho do passo. Qual operação junta os dois?","A fórmula diz teta no passo seguinte igual a teta atual menos alfa vezes o gradiente.","O ponto de partida é quatro e o passo é zero vírgula oito. Subtraia.","Quatro menos zero vírgula oito dá três vírgula dois. O parâmetro andou na direção do fundo do vale."],"leitura":"Qual é o novo valor de teta após a primeira atualização?"},{"pergunta":"Quanto vale a perda nesse novo teta, com duas casas decimais?","tipo":"numero","resposta":10.24,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":16,"diag":"Calculou a perda ainda no teta antigo, sem usar o valor atualizado.","corrige":"A pergunta é sobre o ponto novo. Use o teta que resultou da atualização."},{"valor":6.4,"diag":"Multiplicou o teta novo por dois em vez de elevá-lo ao quadrado.","corrige":"Dois teta é a derivada. A perda é teta ao quadrado."},{"valor":3.2,"diag":"Repetiu o valor do parâmetro como se fosse o valor da perda.","corrige":"Aplique a função perda ao parâmetro antes de responder."}],"dicas":["Qual é a diferença entre a expressão da perda e a expressão do gradiente?","A perda é teta ao quadrado, enquanto o gradiente é dois teta.","Eleve três vírgula dois ao quadrado.","Três vírgula dois ao quadrado dá dez vírgula vinte e quatro. A perda caiu de dezesseis para dez vírgula vinte e quatro em um único passo."],"leitura":"Quanto vale a perda nesse novo teta, com duas casas decimais?"},{"pergunta":"Execute a segunda atualização, sempre com alfa igual a 0,1. Qual passa a ser o valor de teta?","tipo":"numero","resposta":2.56,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":2.4,"diag":"Reaproveitou o gradiente antigo, que valia oito, em vez de recalculá-lo no ponto novo.","corrige":"O gradiente muda de ponto para ponto. Recalcule em três vírgula dois antes de dar o passo."},{"valor":3.84,"diag":"Somou o passo em vez de subtrair.","corrige":"A atualização subtrai sempre, porque o objetivo é reduzir a perda."},{"valor":0.64,"diag":"Confundiu o tamanho do novo passo com o novo valor do parâmetro.","corrige":"Subtraia o passo do valor atual de teta para obter o próximo."}],"dicas":["O que precisa ser refeito antes de dar o segundo passo?","O gradiente é local, então precisa ser recalculado no ponto onde você está agora.","Em três vírgula dois o gradiente vale seis vírgula quatro, e o passo vale zero vírgula sessenta e quatro. Subtraia.","Três vírgula dois menos zero vírgula sessenta e quatro dá dois vírgula cinquenta e seis. Repare que os passos vão encolhendo à medida que o gradiente diminui."],"leitura":"Execute a segunda atualização, sempre com alfa igual a zero vírgula um. Qual passa a ser o valor de teta?"},{"pergunta":"Voltando ao ponto de partida, teta igual a 4, o que aconteceria com alfa igual a 1?","tipo":"escolha","resposta":0,"opcoes":["Teta saltaria para menos 4, atravessando o vale e ficando à mesma distância do mínimo, sem progresso","Teta chegaria direto ao mínimo, em zero, porque o passo maior acelera a convergência","Teta ficaria parado em 4, porque alfa igual a 1 anula o efeito do gradiente","A conta ficaria indefinida, porque alfa precisa ser sempre menor que o gradiente"],"aceita":[],"erros":[{"valor":1,"diag":"Supôs que passo maior sempre significa convergência mais rápida.","corrige":"Faça a conta com alfa igual a um e veja onde teta realmente cai."},{"valor":2,"diag":"Achou que alfa igual a um cancela o efeito do gradiente.","corrige":"Multiplicar por um preserva o gradiente inteiro, então o passo fica do tamanho dele."},{"valor":3,"diag":"Inventou uma restrição que a fórmula não tem.","corrige":"Alfa pode assumir qualquer valor positivo. O que muda é a qualidade do resultado, não a validade da conta."}],"dicas":["Refaça a atualização trocando apenas o valor de alfa e veja onde teta vai parar.","Alfa grande demais faz o modelo saltar por cima do vale em vez de descer para dentro dele.","Com alfa igual a um o passo é o próprio gradiente, oito, e o ponto de partida é quatro.","Quatro menos oito dá menos quatro, a mesma distância do mínimo, só que do outro lado. O treino oscilaria sem progresso, e com alfa ainda maior a oscilação cresceria até divergir."],"leitura":"Voltando ao ponto de partida, teta igual a quatro, o que aconteceria com alfa igual a um?"}],"fecho":"Duas voltas do laço bastaram para ver a perda cair e os passos encolherem sozinhos. E o teste final mostrou por que a escolha de alfa é uma das decisões mais consequentes do treino: o mesmo algoritmo converge ou oscila conforme esse único número."}],"duvidas":[{"p":"Derivada e inclinação são a mesma coisa?","chaves":["derivada","inclinacao","tangente","mesma coisa","grafico"],"r":"Sim, com um cuidado: a derivada em um ponto é a inclinação da reta tangente ao gráfico naquele ponto, e não a inclinação do gráfico inteiro. Como a inclinação costuma mudar de ponto para ponto, a derivada também muda, e por isso ela é uma função. O que se calcula quando se pede a derivada em x igual a três é o valor dessa função naquele lugar específico. Guarde a leitura do sinal: positiva significa subindo, negativa significa descendo, zero significa momentaneamente plana.","secao":0},{"p":"Se depois eu só uso as regrinhas, para que serve a definição com limite?","chaves":["limite","definicao","regras","para que serve","h"],"r":"A definição é o que dá sentido às regras. Ela mostra que a derivada nasce de medir a variação em um intervalo e ir encolhendo esse intervalo até o número parar de mudar. Sem essa imagem, a regra da potência vira decoreba e você perde a leitura de que derivada é taxa de variação, que é justamente a leitura que interessa no treino de um modelo. Na prática você vai usar as regras o tempo todo e a definição quase nunca, mas é a definição que explica por que as regras funcionam.","secao":0},{"p":"Qual a diferença entre derivada e derivada parcial?","chaves":["derivada parcial","diferenca","parcial","varias variaveis","simbolo"],"r":"A derivada comum existe quando a função depende de uma única variável. Quando a função depende de vários parâmetros, cada um deles tem a sua derivada parcial, que mede o efeito de mexer naquele parâmetro mantendo todos os outros fixos. O símbolo muda para deixar isso explícito, e na prática o cálculo é o mesmo: você trata os outros parâmetros como constantes e deriva normalmente. O conjunto de todas as derivadas parciais forma o gradiente.","secao":2},{"p":"O que é aquele símbolo nabla que aparece na fórmula do gradiente?","chaves":["nabla","simbolo","gradiente","triangulo","notacao"],"r":"É o triângulo invertido que anuncia gradiente. Escrever nabla L de teta significa o vetor formado por todas as derivadas parciais de L em relação a cada um dos parâmetros. Ele não é uma conta a mais, é uma abreviação: sem esse símbolo, seria preciso escrever bilhões de derivadas parciais uma a uma. Sempre que você o encontrar em um paper, leia como sensibilidade da perda a cada parâmetro, reunida em um vetor.","secao":2},{"p":"Por que a atualização usa menos alfa vezes o gradiente, e não mais?","chaves":["sinal","menos","atualizacao","por que","alfa","gradiente"],"r":"Porque o gradiente aponta para onde a perda cresce mais rápido, e o objetivo do treino é fazer a perda cair. Andar no sentido contrário ao do gradiente é, por definição, andar na direção de descida mais íngreme. Se o sinal fosse de mais, o treino subiria a montanha em vez de descer o vale, e a perda aumentaria a cada passo. É um caso raro em que um único sinal na fórmula carrega a intenção inteira do algoritmo.","secao":4},{"p":"Como se escolhe a taxa de aprendizado na prática?","chaves":["taxa de aprendizado","alfa","escolher","valor","ajustar"],"r":"Por tentativa informada, observando o comportamento da perda. Alfa grande demais faz o modelo saltar por cima do vale, e o sintoma é a perda oscilando ou disparando. Alfa pequeno demais faz a perda cair de forma tão lenta que o treino se torna inviável, e o sintoma é uma curva quase plana. Na prática também se agenda alfa, começando maior e reduzindo ao longo do treino, e essa é uma das decisões mais consequentes de todo o processo.","secao":4},{"p":"O que é o problema do gradiente que desaparece?","chaves":["gradiente","desaparece","vanishing","profunda","cadeia","encolhe"],"r":"É o efeito de multiplicar muitas derivadas menores que um ao longo de uma cadeia longa. Três elos de zero vírgula cinco já reduzem o efeito a zero vírgula cento e vinte e cinco, e dez elos o reduzem a menos de um milésimo. Em uma rede muito profunda, o sinal que deveria chegar às primeiras camadas chega praticamente apagado, e elas quase não aprendem. Conexões residuais e normalização existem em boa parte para atenuar exatamente esse encolhimento.","secao":3},{"p":"Backpropagation e regra da cadeia são a mesma coisa?","chaves":["backpropagation","regra da cadeia","mesma coisa","diferenca","algoritmo"],"r":"A regra da cadeia é o fato matemático, e o backpropagation é a maneira eficiente de aplicá-lo. O fato diz que a derivada de uma composição é o produto das derivadas dos elos. A esperteza de engenharia está em não refazer o caminho inteiro para cada peso: o algoritmo percorre a rede uma única vez, de trás para frente, e reaproveita os resultados parciais que já calculou. É essa reutilização que torna o treino caro mas viável, em vez de impossível.","secao":3},{"p":"Se o gradiente deu zero, o treino acabou?","chaves":["gradiente zero","estacionario","acabou","minimo","sela"],"r":"Não necessariamente. Gradiente zero indica apenas um ponto estacionário, que pode ser um mínimo, um máximo ou um ponto de sela. Em qualquer um deles a atualização deixa de mover os parâmetros, porque o passo é alfa vezes zero. Ou seja, o treino para de se mexer, mas parar não é sinônimo de ter encontrado a melhor configuração possível. É por isso que se olha para o valor da perda, e não apenas para o gradiente.","secao":2},{"p":"Por que importa tanto que a derivada de e elevado a x seja ela mesma?","chaves":["exponencial","e elevado a x","derivada","por que importa","logaritmo"],"r":"Porque essa propriedade mantém o cálculo de gradientes barato. A exponencial e o logaritmo natural aparecem em toda a matemática de redes neurais, sobretudo na função de perda, e derivadas simples significam menos operações repetidas bilhões de vezes. Se essas funções tivessem derivadas complicadas, cada passo de treino custaria muito mais. Aí está boa parte da razão de elas dominarem as fórmulas que você vai encontrar nos papers.","secao":1},{"p":"Por que a derivada de uma constante é zero?","chaves":["constante","zero","derivada","por que","some"],"r":"Porque a derivada mede o quanto a saída muda quando a entrada varia um tiquinho, e um termo constante não muda nunca. O gráfico de uma constante é uma reta horizontal, e a inclinação de uma reta horizontal é zero. Na prática isso significa que constantes somadas desaparecem por completo na derivada, como o cinco em três x ao quadrado mais cinco. Repare que isso vale para constantes somadas, não para coeficientes que multiplicam, que permanecem na conta.","secao":1},{"p":"O que é um ponto de sela?","chaves":["ponto de sela","sela","estacionario","minimo","maximo"],"r":"É um ponto em que o gradiente se anula sem que ele seja mínimo nem máximo. A imagem que dá nome ao objeto é a de uma sela de cavalo: em uma direção o terreno sobe, em outra ele desce, e no ponto central a inclinação é zero. Para o treino isso é inconveniente, porque a atualização quase não move os parâmetros ali, mesmo havendo direções de descida por perto. Faz parte do grupo dos pontos estacionários, ao lado de mínimos e máximos.","secao":2},{"p":"Preciso calcular gradientes à mão para entender um modelo de linguagem?","chaves":["a mao","calcular","precisa","entender","pratica"],"r":"Calcular à mão em escala real, não. Nenhuma biblioteca vai pedir isso de você, e nenhum profissional deriva bilhões de parâmetros no papel. O que este módulo cobra é outra coisa: saber ler a notação, entender o que cada peça significa e conseguir seguir uma volta completa do laço em um exemplo pequeno. Fazer duas ou três contas curtas à mão é o que transforma a fórmula em intuição, e depois disso a máquina cuida do resto.","secao":4},{"p":"Por que a regra da cadeia multiplica em vez de somar?","chaves":["cadeia","multiplica","soma","por que","taxas"],"r":"Porque as taxas se compõem, e compor taxas é multiplicar. Se dobrar x dobra y, e dobrar y triplica z, então dobrar x multiplica z por seis, não por cinco. Cada elo funciona como um fator de amplificação ou de redução do efeito que veio do elo anterior, e fatores se multiplicam. Somar só faria sentido se os caminhos fossem paralelos e independentes, o que não é o caso de uma composição em cadeia.","secao":3},{"p":"O que é exatamente a perda que aparece nessas fórmulas?","chaves":["perda","L","o que e","loss","minimizar"],"r":"É a quantidade que o treino tenta diminuir, escrita como L de teta para deixar claro que ela depende dos parâmetros do modelo. Cada configuração de parâmetros produz um valor de perda, e o conjunto de todos esses valores forma a paisagem em que a descida do gradiente caminha. Quando se diz que o modelo está aprendendo, o que se observa é esse número caindo ao longo dos passos. O gradiente é a bússola dessa paisagem, e alfa é o tamanho da passada.","secao":4}]},"M4":{"modulo":"m4","tex":{"s1.f0":"P(w_t \\mid w_1, w_2, \\ldots, w_{t-1})","s2.f0":"\\operatorname{softmax}(z)_i = \\frac{e^{z_i}}{\\sum_{j} e^{z_j}}","s3.f0":"\\operatorname{softmax}\\!\\left(\\frac{z}{T}\\right)_i = \\frac{e^{z_i/T}}{\\sum_{j} e^{z_j/T}}","s5.f0":"H(p) = -\\sum_{i} p_i \\log p_i","s5.f1":"L = -\\sum_{i} y_i \\log \\hat{y}_i \\qquad \\mathrm{PPL} = e^{L}"},"trilhos":[{"id":"m4-t1","titulo":"Softmax de três logits, do zero até a soma um","secao":2,"enunciado":"A última camada devolveu os logits 2,0, 1,0 e 0,1 para três tokens candidatos. Vamos converter esses três números em uma distribuição de probabilidade, uma operação de cada vez.","passos":[{"pergunta":"Calcule a exponencial do primeiro logit, ou seja e elevado a 2,0. Responda com três casas decimais.","tipo":"numero","resposta":7.389,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":5.437,"diag":"Você multiplicou o logit por e em vez de elevar e ao logit.","corrige":"Repare que o logit fica no expoente, e não ao lado da base. Reveja onde cada número entra."},{"valor":6.58,"diag":"Você calculou 2 elevado a e, invertendo base e expoente.","corrige":"A base do softmax é sempre o número e. O logit é quem sobe para o expoente."},{"valor":4.0,"diag":"Você elevou o logit ao quadrado em vez de exponenciar.","corrige":"Elevar ao quadrado é outra operação. Aqui a base é fixa e vale aproximadamente 2,718."}],"dicas":["Qual é a base que o softmax usa, e qual dos dois números vai para o expoente?","A primeira metade do softmax é simplesmente aplicar a função exponencial natural a cada logit. Nada de divisão ainda.","Monte a conta como e elevado a 2,0, com e valendo aproximadamente 2,71828. Falta só avaliar.","O valor de e elevado a 2,0 é 7,389. É o maior dos três porque a exponencial cresce depressa e 2,0 é o maior logit."],"leitura":"Calcule e elevado a dois vírgula zero, com três casas decimais."},{"pergunta":"Some as três exponenciais: e elevado a 2,0 mais e elevado a 1,0 mais e elevado a 0,1. Três casas decimais.","tipo":"numero","resposta":11.213,"tol":0.003,"opcoes":[],"aceita":[],"erros":[{"valor":3.1,"diag":"Você somou os logits em vez de somar as exponenciais.","corrige":"A soma do denominador acontece depois de exponenciar, nunca antes. Exponencie cada um primeiro."},{"valor":10.107,"diag":"Você esqueceu a terceira parcela, e elevado a 0,1.","corrige":"Todo token candidato entra no denominador, mesmo o de logit baixo. Confira se são três parcelas."},{"valor":8.494,"diag":"Você deixou de fora a parcela e elevado a 1,0.","corrige":"Refaça a lista das três exponenciais antes de somar, uma linha para cada logit."}],"dicas":["Quantas parcelas o denominador do softmax deve ter neste problema?","O denominador é a soma das exponenciais de todos os logits, sem exceção. Ele é o mesmo para as três probabilidades.","As três exponenciais são aproximadamente 7,389, 2,718 e 1,105. Falta somar.","A soma vale 11,213. Esse número será o denominador comum das três probabilidades."],"leitura":"Some as três exponenciais: sete vírgula três oito nove, dois vírgula sete um oito e um vírgula um zero cinco."},{"pergunta":"Qual a probabilidade do primeiro token? Divida a exponencial dele pela soma. Três casas decimais.","tipo":"numero","resposta":0.659,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":2.463,"diag":"Você dividiu pela quantidade de tokens em vez de dividir pela soma das exponenciais.","corrige":"O softmax normaliza pela soma, e não pela contagem. Recupere o denominador do passo anterior."},{"valor":0.645,"diag":"Você dividiu o logit pela soma dos logits, pulando a exponencial.","corrige":"Sem exponenciar, as diferenças não são amplificadas e o resultado deixa de ser softmax."},{"valor":0.333,"diag":"Você assumiu distribuição uniforme entre três opções.","corrige":"Uniforme só aparece quando os logits são iguais, o que não é o caso aqui."}],"dicas":["Qual numerador pertence ao primeiro token, e qual denominador vale para todos?","Cada probabilidade é a exponencial daquele logit dividida pela soma de todas as exponenciais.","Monte 7,389 dividido por 11,213 e avalie.","O resultado é 0,659. O primeiro token leva quase dois terços da massa, embora seu logit seja apenas um ponto maior que o segundo."],"leitura":"Divida sete vírgula três oito nove por onze vírgula dois um três."},{"pergunta":"Qual a probabilidade do terceiro token, o de logit 0,1? Três casas decimais.","tipo":"numero","resposta":0.099,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.341,"diag":"Você subtraiu a primeira probabilidade de um e esqueceu que existe um segundo token.","corrige":"Com três tokens, o complemento de um deles ainda contém os outros dois. Calcule a divisão diretamente."},{"valor":0.032,"diag":"Você dividiu o logit 0,1 pela soma dos logits.","corrige":"O numerador precisa ser a exponencial do logit, e não o logit cru."},{"valor":0.1,"diag":"Você confundiu o valor do logit com a probabilidade.","corrige":"Logit e probabilidade vivem em escalas diferentes. Só o softmax faz a ponte entre elas."}],"dicas":["Qual é a exponencial do logit 0,1, e por qual número ela precisa ser dividida?","O denominador não muda de token para token. Muda apenas o numerador.","Monte 1,105 dividido por 11,213 e avalie.","O resultado é 0,099. Mesmo com logit positivo, o terceiro token fica com menos de dez por cento da massa."],"leitura":"Divida um vírgula um zero cinco por onze vírgula dois um três."},{"pergunta":"Calcule a razão entre a primeira e a segunda probabilidade. Três casas decimais.","tipo":"numero","resposta":2.718,"tol":0.005,"opcoes":[],"aceita":[],"erros":[{"valor":1.0,"diag":"Você entregou a diferença dos logits em vez de dividir as probabilidades.","corrige":"Divida o primeiro valor de probabilidade pelo segundo e observe o número que aparece."},{"valor":2.0,"diag":"Você dividiu os logits, 2,0 por 1,0, em vez das probabilidades.","corrige":"A razão pedida é entre as probabilidades já normalizadas."},{"valor":0.368,"diag":"Você inverteu a ordem da divisão.","corrige":"A ordem importa. O primeiro valor vai no numerador."}],"dicas":["O denominador do softmax é o mesmo para as duas probabilidades. O que sobra quando você divide uma pela outra?","Como o denominador se cancela, a razão entre duas probabilidades é a razão entre as exponenciais, ou seja a exponencial da diferença dos logits.","A diferença dos logits é 2,0 menos 1,0, igual a 1,0. A razão é a exponencial disso.","A razão vale 2,718, exatamente o número e. Um ponto de diferença em logit equivale sempre a um fator e entre as probabilidades."],"leitura":"Divida zero vírgula seis cinco nove por zero vírgula dois quatro dois."}],"fecho":"Você transformou três números sem restrição em uma distribuição válida e viu, na razão final, o coração do softmax: diferença de logit vira fator multiplicativo entre probabilidades."},{"id":"m4-t2","titulo":"Os mesmos logits sob temperatura 0,5","secao":3,"enunciado":"Mantenha os logits 2,0, 1,0 e 0,1 e ligue a temperatura em 0,5. A única mudança é uma divisão antes da exponencial, e ela reorganiza a distribuição inteira.","passos":[{"pergunta":"Qual o valor do primeiro logit depois de dividido pela temperatura 0,5?","tipo":"numero","resposta":4.0,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1.0,"diag":"Você multiplicou o logit pela temperatura em vez de dividir.","corrige":"A temperatura aparece no denominador do expoente. Reveja a posição dela na fórmula."},{"valor":1.5,"diag":"Você subtraiu a temperatura do logit.","corrige":"Não há subtração envolvida. A operação é uma divisão pura."},{"valor":2.0,"diag":"Você deixou o logit intacto, ignorando a temperatura.","corrige":"Com temperatura diferente de um, todo logit muda antes de entrar na exponencial."}],"dicas":["A temperatura entra antes ou depois da exponencial, e ela multiplica ou divide?","Dividir por um número menor que um sempre aumenta o valor. Espere um logit maior que o original.","Monte 2,0 dividido por 0,5.","O resultado é 4,0. Dividir por 0,5 equivale a dobrar, então a distância entre os logits também dobra."],"leitura":"Divida dois vírgula zero por zero vírgula cinco."},{"pergunta":"Calcule a exponencial desse logit escalado, ou seja e elevado a 4,0. Três casas decimais.","tipo":"numero","resposta":54.598,"tol":0.01,"opcoes":[],"aceita":[],"erros":[{"valor":14.778,"diag":"Você dobrou a exponencial do logit original em vez de exponenciar o logit dobrado.","corrige":"Dobrar o expoente eleva a exponencial ao quadrado, e não ao dobro. Reveja qual operação vem primeiro."},{"valor":7.389,"diag":"Você exponenciou o logit original, sem aplicar a temperatura.","corrige":"A divisão pela temperatura precisa acontecer antes da exponencial."},{"valor":2.718,"diag":"Você exponenciou o resultado de multiplicar o logit pela temperatura.","corrige":"Confira o passo anterior: o logit escalado vale quatro, e não um."}],"dicas":["Qual número exatamente vai para o expoente agora que a temperatura já foi aplicada?","A exponencial é aplicada ao logit já dividido pela temperatura, nunca ao logit cru.","Monte e elevado a 4,0 e avalie.","O valor é 54,598. Compare com 7,389, que era a exponencial sem temperatura: o mesmo logit passou a pesar mais de sete vezes mais."],"leitura":"Calcule e elevado a quatro vírgula zero, com três casas decimais."},{"pergunta":"Some as três exponenciais escaladas. Os expoentes são 4,0, 2,0 e 0,2. Três casas decimais.","tipo":"numero","resposta":63.209,"tol":0.02,"opcoes":[],"aceita":[],"erros":[{"valor":11.213,"diag":"Você reaproveitou a soma calculada sem temperatura.","corrige":"Com a temperatura ligada, todas as três parcelas mudam. Refaça cada exponencial."},{"valor":61.987,"diag":"Você esqueceu a terceira parcela, e elevado a 0,2.","corrige":"Mesmo o token menos provável entra no denominador. São três parcelas."},{"valor":6.2,"diag":"Você somou os expoentes em vez das exponenciais.","corrige":"Exponencie primeiro, some depois. A ordem não pode ser invertida."}],"dicas":["Você já tem a primeira parcela. Quais são as outras duas depois de dividir cada logit por 0,5?","Os três expoentes viram 4,0, 2,0 e 0,2. Cada um precisa passar pela exponencial antes de entrar na soma.","As parcelas são aproximadamente 54,598, 7,389 e 1,221. Falta somar.","A soma vale 63,209. Ela será o denominador comum das três probabilidades com temperatura 0,5."],"leitura":"Some cinquenta e quatro vírgula cinco nove oito, sete vírgula três oito nove e um vírgula dois dois um."},{"pergunta":"Qual a probabilidade do primeiro token com temperatura 0,5? Três casas decimais.","tipo":"numero","resposta":0.864,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.659,"diag":"Você entregou a probabilidade calculada com temperatura um.","corrige":"Com temperatura 0,5 o numerador e o denominador mudam. Use os valores escalados."},{"valor":0.333,"diag":"Você assumiu distribuição uniforme.","corrige":"Uniforme só ocorre com logits iguais, e a temperatura baixa afasta ainda mais os logits."},{"valor":1.153,"diag":"Você dividiu o numerador escalado pela soma sem temperatura, misturando duas escalas.","corrige":"Numerador e denominador precisam vir do mesmo conjunto de expoentes escalados. Uma probabilidade nunca passa de um."}],"dicas":["Qual numerador e qual denominador pertencem agora à temperatura 0,5?","A fórmula não muda: exponencial daquele logit escalado, dividida pela soma das exponenciais escaladas.","Monte 54,598 dividido por 63,209 e avalie.","O resultado é 0,864. A probabilidade do favorito subiu de 0,659 para 0,864 sem que nenhum logit original mudasse."],"leitura":"Divida cinquenta e quatro vírgula cinco nove oito por sessenta e três vírgula dois zero nove."},{"pergunta":"Calcule a razão entre a primeira e a segunda probabilidade com temperatura 0,5. Três casas decimais.","tipo":"numero","resposta":7.389,"tol":0.01,"opcoes":[],"aceita":[],"erros":[{"valor":2.718,"diag":"Você reaproveitou a razão obtida com temperatura um.","corrige":"A temperatura multiplica a diferença de logits antes da exponencial, então a razão também muda."},{"valor":2.0,"diag":"Você dividiu os logits escalados, 4,0 por 2,0.","corrige":"A razão pedida é entre probabilidades, e não entre expoentes."},{"valor":0.135,"diag":"Você inverteu a ordem da divisão.","corrige":"O primeiro valor vai no numerador."}],"dicas":["O denominador se cancela de novo. O que sobra depende de qual diferença?","A razão é a exponencial da diferença dos logits já dividida pela temperatura.","A diferença dos logits é 1,0, e dividida por 0,5 vira 2,0. A razão é a exponencial de 2,0.","A razão vale 7,389. Era 2,718 com temperatura um: baixar a temperatura pela metade elevou a razão ao quadrado."],"leitura":"Divida zero vírgula oito seis quatro por zero vírgula um um sete."},{"pergunta":"Comparando a distribuição com temperatura 0,5 e a com temperatura um, o que aconteceu?","tipo":"escolha","resposta":0,"opcoes":["A distribuição ficou mais pontuda, concentrando massa no maior logit.","A distribuição ficou mais achatada, distribuindo massa para os tokens fracos.","A distribuição não mudou, porque a temperatura só afeta o sorteio.","A ordem dos tokens se inverteu, porque a divisão troca o sinal."],"aceita":[],"erros":[{"valor":1,"diag":"Você inverteu o efeito e associou temperatura baixa a achatamento.","corrige":"Compare 0,864 com 0,659 e pergunte se o favorito ficou mais forte ou mais fraco."},{"valor":2,"diag":"Você tratou a temperatura como parâmetro do sorteio e não da distribuição.","corrige":"A temperatura entra dentro do softmax, então ela muda as probabilidades antes de qualquer sorteio."},{"valor":3,"diag":"Você imaginou troca de ordem entre os tokens.","corrige":"Dividir todos os logits por um número positivo preserva a ordem entre eles."}],"dicas":["As três probabilidades mudaram na mesma direção ou em direções opostas?","Temperatura menor que um multiplica os logits por um fator maior que um, e diferenças maiores produzem distribuições mais desiguais.","O favorito passou de 0,659 para 0,864 enquanto os outros dois encolheram. Isso tem um nome.","A resposta é a primeira alternativa: a distribuição afiou. Temperatura baixa concentra massa no maior logit e torna a saída mais previsível."],"leitura":"Escolha a alternativa que descreve o efeito de baixar a temperatura para zero vírgula cinco."}],"fecho":"Uma única divisão antes da exponencial deslocou vinte pontos percentuais de massa para o token favorito. Nenhum logit foi alterado, e nenhuma informação nova entrou no modelo."},{"id":"m4-t3","titulo":"Entropia e perplexidade de uma distribuição pequena","secao":5,"enunciado":"Considere a distribuição 0,50, 0,25 e 0,25 sobre três opções. Vamos medir a incerteza dela em nats e traduzir o resultado para número equivalente de opções.","passos":[{"pergunta":"Calcule menos o logaritmo natural de 0,50. Três casas decimais.","tipo":"numero","resposta":0.693,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":-0.693,"diag":"Você deixou o sinal negativo do logaritmo sem aplicar o menos da fórmula.","corrige":"A fórmula já traz um sinal negativo na frente. Duas trocas de sinal devolvem um número positivo."},{"valor":0.301,"diag":"Você usou logaritmo na base dez em vez do logaritmo natural.","corrige":"A perplexidade deste módulo usa a exponencial natural, então o logaritmo tem que ser natural para casar."},{"valor":1.0,"diag":"Você usou logaritmo na base dois.","corrige":"Base dois mede em bits. Aqui o módulo trabalha em nats, com base e."}],"dicas":["Qual base de logaritmo combina com a exponencial que aparece na fórmula da perplexidade?","Como 0,50 é menor que um, seu logaritmo é negativo, e o menos da fórmula devolve um valor positivo.","Monte menos o logaritmo natural de 0,5, sabendo que o logaritmo natural de 2 vale 0,693.","O resultado é 0,693. Esse é o custo em nats de uma opção com metade da massa."],"leitura":"Calcule menos o logaritmo natural de zero vírgula cinco zero."},{"pergunta":"Calcule a primeira parcela da entropia, ou seja 0,50 vezes o valor que você acabou de obter. Três casas decimais.","tipo":"numero","resposta":0.347,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.693,"diag":"Você esqueceu de multiplicar pela própria probabilidade.","corrige":"Cada termo da entropia é um produto: a probabilidade pesa o próprio custo em log."},{"valor":1.386,"diag":"Você dividiu pela probabilidade em vez de multiplicar.","corrige":"A fórmula tem p vezes o logaritmo de p, nunca um sobre p."},{"valor":0.5,"diag":"Você entregou apenas a probabilidade, sem o fator logarítmico.","corrige":"Falta multiplicar pelo custo em nats calculado no passo anterior."}],"dicas":["Cada termo da entropia junta dois números. Quais são eles nesta primeira opção?","A entropia pondera o custo de cada opção pela chance de aquela opção acontecer.","Monte 0,50 vezes 0,693.","O resultado é 0,347. Essa é a contribuição da opção mais provável para a incerteza total."],"leitura":"Multiplique zero vírgula cinco zero por zero vírgula seis nove três."},{"pergunta":"Some as duas parcelas das opções de probabilidade 0,25. Três casas decimais.","tipo":"numero","resposta":0.693,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.347,"diag":"Você calculou apenas uma das duas parcelas.","corrige":"São duas opções com 0,25 cada, e as duas entram no somatório."},{"valor":2.773,"diag":"Você somou os logaritmos sem multiplicar por 0,25.","corrige":"Cada parcela é a probabilidade vezes o próprio custo em log, e só depois vem a soma."},{"valor":0.5,"diag":"Você somou apenas as probabilidades.","corrige":"As probabilidades sozinhas não medem incerteza. Falta o fator logarítmico."}],"dicas":["Quantas opções têm probabilidade 0,25 nesta distribuição?","Menos o logaritmo natural de 0,25 vale 1,386, porque 0,25 é um quarto e o logaritmo natural de 4 é 1,386.","Cada parcela é 0,25 vezes 1,386, o que dá 0,347. Falta somar as duas.","A soma vale 0,693. Duas opções de um quarto contribuem exatamente o mesmo que uma opção de metade."],"leitura":"Some as duas parcelas de zero vírgula dois cinco vezes um vírgula três oito seis."},{"pergunta":"Qual a entropia total da distribuição, em nats? Três casas decimais.","tipo":"numero","resposta":1.04,"tol":0.003,"opcoes":[],"aceita":[],"erros":[{"valor":-1.04,"diag":"Você deixou o resultado negativo.","corrige":"Entropia nunca é negativa. Confira o sinal que a fórmula coloca na frente do somatório."},{"valor":0.347,"diag":"Você entregou apenas a primeira parcela.","corrige":"A entropia soma a contribuição de todas as opções da distribuição."},{"valor":1.733,"diag":"Você somou 0,347 com 1,386, misturando uma parcela já ponderada com um logaritmo cru.","corrige":"Todas as parcelas precisam estar ponderadas pela respectiva probabilidade antes da soma."}],"dicas":["Quais números dos passos anteriores precisam entrar nesta soma final?","A entropia é a soma das contribuições de todas as opções, com o sinal já acertado para dar valor positivo.","Monte 0,347 mais 0,693.","A entropia vale 1,040 nats. É menor que a entropia máxima de três opções porque a distribuição não é uniforme."],"leitura":"Some zero vírgula três quatro sete e zero vírgula seis nove três."},{"pergunta":"Calcule a perplexidade, ou seja a exponencial da entropia. Três casas decimais.","tipo":"numero","resposta":2.828,"tol":0.005,"opcoes":[],"aceita":[],"erros":[{"valor":1.04,"diag":"Você entregou a própria entropia sem exponenciar.","corrige":"Perplexidade e entropia vivem em unidades diferentes. Falta a exponencial."},{"valor":0.354,"diag":"Você exponenciou o negativo da entropia.","corrige":"O expoente é a entropia com sinal positivo."},{"valor":2.056,"diag":"Você usou base dois em vez da exponencial natural.","corrige":"Como a entropia foi medida em nats, a tradução para número de opções usa a base e."}],"dicas":["Qual operação desfaz o logaritmo natural que apareceu na entropia?","A perplexidade traduz nats para número equivalente de opções igualmente prováveis.","Monte e elevado a 1,040.","A perplexidade vale 2,828. O modelo hesita como quem escolhe entre pouco menos de três opções iguais, o que faz sentido para uma distribuição de três opções desbalanceada."],"leitura":"Calcule e elevado a um vírgula zero quatro zero."},{"pergunta":"Qual seria a entropia se as três opções fossem igualmente prováveis? Três casas decimais.","tipo":"numero","resposta":1.099,"tol":0.003,"opcoes":[],"aceita":[],"erros":[{"valor":-1.099,"diag":"Você entregou o logaritmo de um terço sem aplicar o sinal da fórmula.","corrige":"Entropia é sempre não negativa. Reveja o menos que precede o somatório."},{"valor":0.477,"diag":"Você usou logaritmo na base dez.","corrige":"Mantenha a base e para poder comparar com o valor de 1,040 obtido antes."},{"valor":1.04,"diag":"Você repetiu a entropia da distribuição desbalanceada.","corrige":"Recalcule com as três probabilidades iguais a um terço."}],"dicas":["Se as três opções valem um terço cada, quanto vale menos o logaritmo de um terço?","Com distribuição uniforme sobre n opções, a entropia é simplesmente o logaritmo natural de n.","Monte o logaritmo natural de 3.","A entropia máxima vale 1,099 nats. Como 1,040 é menor, a distribuição original já carregava alguma informação sobre qual opção é favorita."],"leitura":"Calcule o logaritmo natural de três."}],"fecho":"Você mediu incerteza em nats e a traduziu para número de opções equivalentes. A distância entre 1,040 e o teto de 1,099 é exatamente o quanto essa distribuição sabe a mais do que o puro acaso."},{"id":"m4-t4","titulo":"Top-k e top-p sobre a mesma distribuição","secao":4,"enunciado":"Um modelo produziu, em ordem decrescente, as probabilidades 0,50, 0,25, 0,15, 0,07 e 0,03. Vamos aplicar os dois cortes sobre essa lista e comparar o que cada um deixa passar.","passos":[{"pergunta":"Com top-p igual a 0,85, quantos tokens entram no sorteio?","tipo":"numero","resposta":3,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":2,"diag":"Você parou no acumulado 0,75, que ainda não ultrapassa 0,85.","corrige":"Continue acumulando até a soma passar do limiar, e inclua o token que fez isso acontecer."},{"valor":4,"diag":"Você incluiu um token a mais depois de o limiar já ter sido ultrapassado.","corrige":"O corte para assim que a massa acumulada passa de p. Confira o acumulado após o terceiro token."},{"valor":5,"diag":"Você manteve a distribuição inteira.","corrige":"Se todos entram, nenhum corte foi aplicado. Reveja o acumulado token a token."}],"dicas":["Vá somando as probabilidades em ordem decrescente. Em qual token a soma passa de 0,85?","Top-p acumula massa do mais provável para o menos provável e para quando ultrapassa o limiar.","Os acumulados são 0,50, depois 0,75, depois 0,90. Repare onde 0,85 fica.","Entram três tokens. O acumulado passa de 0,85 exatamente ao incluir o terceiro, que vale 0,15."],"leitura":"Com top pê igual a zero vírgula oito cinco, quantos tokens entram no sorteio?"},{"pergunta":"Qual a soma das probabilidades dos tokens mantidos por esse corte? Duas casas decimais.","tipo":"numero","resposta":0.9,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.85,"diag":"Você entregou o próprio limiar em vez da massa efetivamente mantida.","corrige":"O limiar diz quando parar, mas a massa mantida costuma ultrapassá-lo um pouco."},{"valor":0.75,"diag":"Você somou apenas os dois primeiros tokens.","corrige":"O terceiro token entrou no corte e a massa dele conta."},{"valor":1.0,"diag":"Você somou a distribuição inteira.","corrige":"Os dois últimos tokens ficaram de fora do corte."}],"dicas":["Quais probabilidades sobreviveram ao corte, e quanto elas somam juntas?","A massa mantida é a soma das probabilidades dos tokens que entraram, e não o limiar escolhido.","Some 0,50 mais 0,25 mais 0,15.","A massa mantida vale 0,90. Sobra sempre um excedente sobre o limiar, porque o último token entra inteiro."],"leitura":"Some as probabilidades dos tokens mantidos, com duas casas decimais."},{"pergunta":"Depois de renormalizar, qual a probabilidade do token mais provável? Três casas decimais.","tipo":"numero","resposta":0.556,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.5,"diag":"Você não renormalizou e manteve a probabilidade original.","corrige":"Depois de descartar tokens, a soma dos restantes ficou menor que um e precisa ser corrigida."},{"valor":0.588,"diag":"Você dividiu pelo limiar 0,85 em vez da massa realmente mantida.","corrige":"A renormalização divide pela soma dos sobreviventes, que você já calculou."},{"valor":0.667,"diag":"Você dividiu pela massa de apenas dois tokens.","corrige":"São três tokens no corte, e os três entram no denominador."}],"dicas":["Depois do corte, a soma das probabilidades restantes ainda vale um?","Renormalizar é dividir cada sobrevivente pela soma dos sobreviventes, para que o total volte a valer um.","Monte 0,50 dividido por 0,90.","O resultado é 0,556. O favorito ganha pouco mais de cinco pontos percentuais só por causa do descarte da cauda."],"leitura":"Divida zero vírgula cinco zero por zero vírgula nove zero."},{"pergunta":"Agora aplique top-k com k igual a dois. Depois de renormalizar, qual a probabilidade do token mais provável? Três casas decimais.","tipo":"numero","resposta":0.667,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.5,"diag":"Você não renormalizou.","corrige":"Com apenas dois sobreviventes, a soma caiu para 0,75 e precisa voltar a um."},{"valor":0.556,"diag":"Você reaproveitou a renormalização do corte por top-p.","corrige":"O conjunto de sobreviventes mudou, então o denominador também muda."},{"valor":0.25,"diag":"Você dividiu pelo número de sobreviventes em vez da massa deles.","corrige":"A renormalização divide pela soma das probabilidades que restaram, e não pela contagem."}],"dicas":["Quais tokens sobrevivem quando k vale dois, e quanto eles somam?","Top-k corta por contagem fixa, e a renormalização segue a mesma regra de sempre.","Monte 0,50 dividido por 0,75.","O resultado é 0,667. Cortar por contagem fixa concentrou mais massa no favorito do que o corte por massa acumulada."],"leitura":"Divida zero vírgula cinco zero por zero vírgula sete cinco."},{"pergunta":"Nesta distribuição específica, qual dos dois cortes foi mais restritivo?","tipo":"escolha","resposta":0,"opcoes":["Top-k com k igual a dois, que deixou apenas dois candidatos.","Top-p com p igual a 0,85, que deixou três candidatos.","Os dois cortaram exatamente a mesma quantidade de tokens.","Nenhum dos dois cortou nada, porque a distribuição já somava um."],"aceita":[],"erros":[{"valor":1,"diag":"Você inverteu a comparação.","corrige":"Conte quantos candidatos cada corte deixou de pé nesta distribuição."},{"valor":2,"diag":"Você assumiu equivalência entre os dois critérios.","corrige":"Um corta por contagem, o outro por massa acumulada, e aqui os números de sobreviventes diferem."},{"valor":3,"diag":"Você concluiu que não houve corte.","corrige":"Tokens foram descartados nos dois casos, tanto que houve renormalização."}],"dicas":["Quantos candidatos sobreviveram em cada um dos dois cortes?","Restritivo, aqui, significa deixar menos candidatos disponíveis para o sorteio.","Top-p deixou três, top-k deixou dois. Compare os dois números.","A resposta é a primeira alternativa. Nesta distribuição específica, top-k com k igual a dois foi mais restritivo, mas basta a distribuição mudar de formato para a comparação se inverter."],"leitura":"Escolha qual dos dois cortes foi mais restritivo nesta distribuição."},{"pergunta":"Se o limiar caísse para top-p igual a 0,70, quantos tokens entrariam no sorteio?","tipo":"numero","resposta":2,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1,"diag":"Você parou no primeiro token, cujo acumulado de 0,50 ainda não passa de 0,70.","corrige":"O corte para quando a massa acumulada ultrapassa o limiar, e 0,50 não ultrapassa 0,70."},{"valor":3,"diag":"Você manteve o resultado do limiar anterior.","corrige":"Com limiar mais baixo, a massa acumulada ultrapassa o alvo mais cedo."},{"valor":5,"diag":"Você manteve a distribuição inteira.","corrige":"Um limiar menor produz um corte mais agressivo, e não menos."}],"dicas":["Em qual token o acumulado passa de 0,70?","Limiar menor significa parar mais cedo, então espere menos candidatos que no caso anterior.","Os acumulados são 0,50 e depois 0,75. Veja qual deles ultrapassa 0,70.","Entram dois tokens. Baixar o limiar de 0,85 para 0,70 tirou um candidato do sorteio."],"leitura":"Com top pê igual a zero vírgula sete zero, quantos tokens entrariam no sorteio?"}],"fecho":"Os dois cortes agiram sobre a mesma lista e produziram conjuntos diferentes. Top-k ignorou o formato da distribuição, top-p leu esse formato e ajustou o número de candidatos à confiança do modelo."}],"duvidas":[{"p":"Por que o softmax usa exponencial e não simplesmente divide cada logit pela soma dos logits?","chaves":["softmax","exponencial","por que","dividir","logit","soma"],"r":"Por dois motivos práticos. Primeiro, logits podem ser negativos, e dividir números negativos pela soma produziria probabilidades negativas, o que não existe. Segundo, a exponencial amplifica diferenças de forma controlada, transformando uma vantagem de um ponto em um fator de aproximadamente 2,718 na probabilidade. Uma normalização linear preservaria as proporções originais, e o modelo perderia a capacidade de expressar confiança forte.","secao":2},{"p":"Temperatura zero é a mesma coisa que temperatura 0,01?","chaves":["temperatura","zero","greedy","deterministico","limite"],"r":"Na prática quase sempre sim, mas não pela definição. Temperatura zero literal dividiria por zero, o que não está definido, então as bibliotecas tratam esse caso escolhendo diretamente o maior logit, comportamento chamado de greedy. Com 0,01 a fórmula continua valendo, só que as diferenças de logit são multiplicadas por cem e a probabilidade do favorito fica indistinguível de um. O resultado observável é o mesmo em quase todos os casos, mas o caminho matemático é diferente.","secao":3},{"p":"Se eu subir muito a temperatura, o modelo fica criativo mesmo?","chaves":["temperatura","alta","criatividade","criativo","achatamento"],"r":"Ele fica menos previsível, o que não é a mesma coisa. A temperatura não acrescenta nenhuma ideia ao modelo, ela apenas transfere massa de probabilidade das opções que o modelo considera boas para as que ele considera ruins. O texto resultante tende a soar mais surpreendente porque caminhos improváveis passam a ser escolhidos com mais frequência, e a partir de certo ponto isso degrada em incoerência. O lema do módulo resume bem: temperatura não é criatividade, é achatamento.","secao":3},{"p":"Qual a diferença prática entre mexer na temperatura e mexer no top-p?","chaves":["temperatura","top-p","diferenca","pratica","deformar","truncar"],"r":"Temperatura deforma a distribuição inteira sem eliminar ninguém: todos os tokens continuam podendo sair, com probabilidades redistribuídas. Top-p trunca, ou seja elimina candidatos antes do sorteio e renormaliza o que sobrou. Por isso os dois se combinam bem: a temperatura ajusta o quanto o modelo se compromete com o favorito, e o top-p garante que a cauda absurda nunca entre no sorteio, independentemente de como a distribuição foi deformada.","secao":4},{"p":"Por que top-p é chamado de amostragem por núcleo?","chaves":["top-p","nucleo","nucleus","nome","amostragem"],"r":"Porque o conjunto de tokens que sobrevive ao corte é chamado de núcleo da distribuição: é o menor grupo de tokens de maior probabilidade cuja massa acumulada já ultrapassa o limiar p. O tamanho desse núcleo varia a cada passo de geração, conforme o modelo esteja mais ou menos confiante. O nome em inglês, nucleus sampling, vem do artigo que propôs a técnica.","secao":4},{"p":"Posso usar top-k e top-p ao mesmo tempo?","chaves":["top-k","top-p","juntos","combinar","ao mesmo tempo"],"r":"Pode, e várias APIs aplicam os dois em sequência. O efeito é o de um teto duplo: o corte mais restritivo dos dois é o que vale naquele passo. Na prática, muita gente mantém top-k como uma trava de segurança larga, por exemplo cinquenta, e deixa o top-p fazer o trabalho fino. Vale conferir na documentação da API a ordem em que os cortes são aplicados, porque ela muda o resultado.","secao":4},{"p":"Logit é a mesma coisa que probabilidade?","chaves":["logit","probabilidade","diferenca","escala"],"r":"Não. Logit é um número real qualquer, positivo ou negativo, sem limite superior ou inferior, e mede preferência bruta. Probabilidade vive entre zero e um, e o conjunto delas precisa somar exatamente um. O softmax é a ponte entre as duas escalas. Uma consequência útil: somar a mesma constante a todos os logits não muda nenhuma probabilidade, porque a constante se cancela entre numerador e denominador.","secao":2},{"p":"O que significa dizer que o modelo estima a probabilidade do próximo token dado o contexto?","chaves":["probabilidade condicional","proximo token","contexto","condicionado","definicao"],"r":"Significa que, a cada passo, o modelo recebe a sequência inteira já escrita e devolve uma distribuição sobre todo o vocabulário, dizendo o quanto cada token possível se encaixa como continuação. Nada além disso é produzido pelo modelo. A impressão de raciocínio e estilo emerge de repetir essa estimativa token após token, sempre com a saída anterior incorporada ao condicionamento. É por isso que mudar as primeiras palavras de um prompt muda tudo o que vem depois.","secao":1},{"p":"Entropia alta é ruim?","chaves":["entropia","alta","ruim","boa","incerteza"],"r":"Depende de onde ela aparece. Entropia alta na distribuição de saída significa que o modelo está genuinamente indeciso naquela posição, o que é ruim se o texto exigia uma resposta única e certa, e perfeitamente saudável se a posição admite muitas continuações válidas. O que costuma ser realmente ruim é entropia baixa com o token errado, ou seja confiança alta em uma previsão equivocada, porque é exatamente isso que a perda penaliza com mais força.","secao":5},{"p":"Nats ou bits: qual base de logaritmo eu devo usar?","chaves":["nats","bits","base","logaritmo","log2","ln"],"r":"As duas medem a mesma coisa em unidades diferentes, e a conversão é uma divisão por 0,693. Use logaritmo natural, ou nats, quando for calcular perplexidade com a exponencial natural, que é o padrão em modelos de linguagem. Use base dois, ou bits, quando quiser a leitura de quantas perguntas de sim ou não seriam necessárias, tradição mais comum na teoria da informação clássica. O importante é não misturar as duas na mesma conta.","secao":5},{"p":"Como a cross-entropy vira perda de treino na prática?","chaves":["cross-entropy","perda","treino","loss","como funciona"],"r":"Para cada posição do texto de treino existe um token que realmente apareceu. A distribuição verdadeira é então um vetor com um no lugar desse token e zero em todos os outros, e o somatório da cross-entropy colapsa em um único termo: menos o logaritmo da probabilidade que o modelo atribuiu ao token correto. A perda do lote é a média desses valores. Quanto mais probabilidade o modelo tiver dado ao token certo, menor a perda.","secao":5},{"p":"Perplexidade 20 é melhor ou pior que perplexidade 8?","chaves":["perplexidade","comparar","melhor","pior","numero"],"r":"Pior. Perplexidade é a exponencial da cross-entropy média, e ela responde a uma pergunta: entre quantas opções igualmente prováveis o modelo está hesitando, em média. Vinte significa hesitação equivalente a vinte alternativas, oito significa hesitação equivalente a oito. Uma ressalva importante: perplexidade só é comparável entre modelos que usam o mesmo tokenizador e o mesmo conjunto de texto, porque mudar a tokenização muda o número sem que o modelo tenha melhorado.","secao":5},{"p":"Por que somar uma constante a todos os logits não muda nada?","chaves":["constante","invariancia","logits","somar","shift","estabilidade"],"r":"Porque a exponencial transforma soma em produto: somar c a cada logit multiplica cada exponencial pelo mesmo fator, e esse fator aparece tanto no numerador quanto no denominador, cancelando-se. Essa propriedade não é curiosidade, ela é usada em toda implementação séria: subtrai-se o maior logit de todos antes de exponenciar, para evitar que a exponencial estoure o limite numérico do computador. O resultado é idêntico e o cálculo fica estável.","secao":2},{"p":"Se dois logits são iguais, o que acontece com as probabilidades deles?","chaves":["logits iguais","empate","uniforme","mesma probabilidade"],"r":"Ficam exatamente iguais, porque o softmax depende apenas do valor de cada logit e do denominador comum, que é o mesmo para todos. Se todos os logits do vocabulário forem iguais, a distribuição vira uniforme e a entropia atinge o máximo possível para aquele tamanho de vocabulário. Esse é o estado de um modelo que não aprendeu nada: opinião nula sobre qual token vem a seguir.","secao":0},{"p":"Uma distribuição pode ter probabilidade exatamente zero em algum token?","chaves":["zero","probabilidade nula","softmax","nunca zero","mascara"],"r":"Pelo softmax puro, não. A exponencial de qualquer número real é sempre positiva, então todo token do vocabulário recebe alguma massa, por menor que seja. O zero só aparece de duas formas: por truncamento, quando top-k ou top-p descartam o token antes do sorteio, ou por máscara, quando o logit recebe menos infinito e a exponencial vai a zero. Guarde isso, porque a máscara causal do módulo seguinte usa exatamente esse mecanismo.","secao":4},{"p":"Como eu escolho temperatura e top-p para uma tarefa real?","chaves":["escolher","configurar","parametros","tarefa","valores","recomendacao"],"r":"Comece pela pergunta de qual é o custo de uma saída inesperada. Para extração de dados, classificação e código, a saída certa é única, então temperatura baixa, perto de zero, e top-p apertado entregam previsibilidade. Para redação, brainstorm e variação de texto, uma temperatura perto de um com top-p em torno de 0,9 deixa o modelo transitar por caminhos alternativos sem cair na cauda absurda. Mexa em um parâmetro de cada vez, porque os efeitos se sobrepõem e ficam impossíveis de atribuir se mudarem juntos.","secao":4}]},"M5":{"modulo":"m5","tex":{"s1.f0":"x_t = E[\\text{token}_t] + P[t] \\qquad x_t \\in \\mathbb{R}^{d}","s2.f0":"Q = X W_Q \\qquad K = X W_K \\qquad V = X W_V","s3.f0":"\\text{Atenção}(Q, K, V) = \\operatorname{softmax}\\!\\left( \\frac{Q K^{\\top}}{\\sqrt{d_k}} + M \\right) V","s5.f0":"\\operatorname{MLP}(x) = W_2 \\cdot g\\!\\left( W_1 x + b_1 \\right) + b_2","s6.f0":"x \\leftarrow x + \\text{Atenção}\\big(\\operatorname{LN}(x)\\big) \\qquad x \\leftarrow x + \\operatorname{MLP}\\big(\\operatorname{LN}(x)\\big)","s7.f0":"\\text{logits} = h_{\\text{final}}\\, E^{\\top} \\qquad p = \\operatorname{softmax}\\!\\left(\\frac{\\text{logits}}{T}\\right)"},"trilhos":[{"id":"m5-t1","titulo":"Uma linha inteira de atenção, calculada à mão","secao":3,"enunciado":"Três posições, dimensão de chave igual a quatro. A consulta da primeira posição é q igual a (2, 1, 1, 1). As chaves são k1 igual a (1, 2, 0, 0), k2 igual a (0, 1, 1, 0) e k3 igual a (0; 0; 0; 0,2). Os valores são v1 igual a (2, 0), v2 igual a (0, 4) e v3 igual a (1, 1). Vamos percorrer a fórmula inteira, do produto escalar até a média ponderada.","passos":[{"pergunta":"Calcule o produto escalar entre a consulta q e a chave k1.","tipo":"numero","resposta":4,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Você somou os componentes de k1 e ignorou a consulta.","corrige":"Produto escalar emparelha os dois vetores componente a componente antes de somar. Nenhum dos dois pode ser ignorado."},{"valor":5,"diag":"Você somou os componentes de q e ignorou a chave.","corrige":"O resultado precisa depender das duas entradas. Multiplique posição por posição primeiro."},{"valor":8,"diag":"Você somou os vetores componente a componente e depois somou tudo, em vez de multiplicar os pares.","corrige":"A operação entre pares é multiplicação, e só depois vem a soma."}],"dicas":["Quantos produtos você precisa formar antes de somar qualquer coisa?","Produto escalar é multiplicar cada componente de um vetor pelo componente de mesma posição do outro e somar os quatro resultados.","Os quatro produtos são 2 vezes 1, 1 vezes 2, 1 vezes 0 e 1 vezes 0. Falta somar.","A soma é 2 mais 2 mais 0 mais 0, igual a 4. Essa é a pontuação bruta que a posição um atribui à posição um."],"leitura":"Calcule o produto escalar entre dois, um, um, um e um, dois, zero, zero."},{"pergunta":"Divida essa pontuação pela raiz de d k, sabendo que d k vale quatro. Uma casa decimal.","tipo":"numero","resposta":2.0,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":1.0,"diag":"Você dividiu pela própria dimensão em vez da raiz dela.","corrige":"A fórmula traz uma raiz quadrada sob a dimensão. Calcule a raiz antes de dividir."},{"valor":8.0,"diag":"Você multiplicou pela raiz em vez de dividir.","corrige":"O fator aparece no denominador, então ele encolhe a pontuação, e não a aumenta."},{"valor":4.0,"diag":"Você deixou a pontuação bruta, sem escalar.","corrige":"Sem a divisão, as pontuações crescem com a dimensão e o softmax satura. A escala é parte da fórmula."}],"dicas":["Qual é a raiz quadrada de quatro, e ela vai no numerador ou no denominador?","A divisão pela raiz de d k existe para manter as pontuações em uma faixa onde o softmax ainda tem gradiente útil.","Monte 4 dividido por 2.","O resultado é 2,0. É a mesma pontuação de 2,0 que abriu o exemplo do módulo anterior, e não por acaso: o exemplo foi construído para casar."],"leitura":"Divida quatro pela raiz quadrada de quatro."},{"pergunta":"Calcule agora a pontuação escalada da segunda chave, ou seja o produto escalar de q com k2 dividido pela raiz de d k. Uma casa decimal.","tipo":"numero","resposta":1.0,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":2.0,"diag":"Você calculou o produto escalar corretamente, mas esqueceu de escalar.","corrige":"Toda pontuação da linha passa pela mesma divisão, e não apenas a primeira."},{"valor":0.5,"diag":"Você dividiu pela dimensão quatro em vez da raiz dela.","corrige":"O denominador é a raiz de d k, que vale dois neste exemplo."},{"valor":0.0,"diag":"Você multiplicou apenas o primeiro par de componentes, 2 vezes 0, e parou ali.","corrige":"Os quatro pares entram na soma, mesmo quando algum deles dá zero."}],"dicas":["Quais componentes de q encontram componentes não nulos em k2?","Repita exatamente o procedimento do primeiro passo, agora com a segunda chave, e aplique a mesma divisão.","Os produtos são 0, 1, 1 e 0, o que soma 2. Falta dividir pela raiz de quatro.","A pontuação escalada vale 1,0. Com a terceira chave o mesmo procedimento dá 0,1, então a linha completa é 2,0, 1,0 e 0,1."],"leitura":"Calcule o produto escalar entre dois, um, um, um e zero, um, um, zero, e divida por dois."},{"pergunta":"Aplique o softmax à linha 2,0, 1,0 e 0,1 e informe o peso de atenção da primeira posição. Três casas decimais.","tipo":"numero","resposta":0.659,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.864,"diag":"Você aplicou o softmax às pontuações brutas, sem a divisão pela raiz de d k.","corrige":"A escala precisa ser aplicada antes do softmax. Use a linha já escalada."},{"valor":0.645,"diag":"Você normalizou as pontuações dividindo pela soma delas, sem exponenciar.","corrige":"Softmax exponencia antes de normalizar, e é isso que amplifica as diferenças."},{"valor":0.333,"diag":"Você distribuiu peso igual entre as três posições.","corrige":"Peso igual só apareceria se as três pontuações fossem idênticas, o que não é o caso."}],"dicas":["Esta linha de pontuações é a mesma do exemplo de softmax do módulo anterior. O que você fez lá?","Exponencie cada pontuação escalada, some as três exponenciais e divida a primeira pela soma.","As exponenciais são 7,389, 2,718 e 1,105, e somam 11,213. Falta a divisão.","O peso é 0,659. A primeira posição vai contribuir com quase dois terços da saída desta linha."],"leitura":"Aplique o softmax à linha dois vírgula zero, um vírgula zero e zero vírgula um, e informe o primeiro peso."},{"pergunta":"Qual o peso de atenção da terceira posição? Três casas decimais.","tipo":"numero","resposta":0.099,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.341,"diag":"Você subtraiu o primeiro peso de um e esqueceu a segunda posição.","corrige":"Com três posições, o que sobra depois do primeiro peso ainda se divide entre duas. Calcule a divisão diretamente."},{"valor":0.032,"diag":"Você dividiu a pontuação 0,1 pela soma das pontuações.","corrige":"O numerador precisa ser a exponencial da pontuação, e não a pontuação crua."},{"valor":0.333,"diag":"Você assumiu pesos iguais.","corrige":"As pontuações são diferentes, então os pesos também precisam ser."}],"dicas":["Qual é a exponencial de 0,1, e qual denominador vale para toda a linha?","O denominador do softmax é o mesmo para os três pesos. Só o numerador muda.","Monte 1,105 dividido por 11,213.","O peso é 0,099. Some com 0,659 e 0,242 para confirmar que a linha soma um, como toda distribuição deve somar."],"leitura":"Calcule o terceiro peso de atenção da linha."},{"pergunta":"Calcule a primeira componente da saída, ou seja a média dos valores ponderada pelos pesos, usando v1 igual a (2, 0), v2 igual a (0, 4) e v3 igual a (1, 1). Três casas decimais.","tipo":"numero","resposta":1.417,"tol":0.004,"opcoes":[],"aceita":[],"erros":[{"valor":1.318,"diag":"Você somou apenas as duas primeiras parcelas e esqueceu a contribuição de v3.","corrige":"Todas as posições contribuem, inclusive as de peso baixo. Confira se são três parcelas."},{"valor":1.0,"diag":"Você tirou a média simples dos valores, ignorando os pesos.","corrige":"A atenção é uma média ponderada. Cada valor entra multiplicado pelo peso da sua posição."},{"valor":4.1,"diag":"Você usou as pontuações escaladas como pesos, sem passar pelo softmax.","corrige":"Só depois do softmax os números somam um e podem funcionar como pesos de uma média."}],"dicas":["Quantas parcelas essa soma tem, e o que multiplica o quê em cada uma?","A saída é a soma, sobre todas as posições, do peso daquela posição vezes o vetor de valor daquela posição. Faça componente a componente.","As parcelas da primeira componente são 0,659 vezes 2, mais 0,242 vezes 0, mais 0,099 vezes 1.","A soma é 1,318 mais 0 mais 0,099, igual a 1,417. Repare que o resultado ficou perto de v1, porque v1 levou o maior peso."],"leitura":"Calcule a primeira componente da média ponderada dos três vetores de valor."},{"pergunta":"Calcule a segunda componente da saída. Três casas decimais.","tipo":"numero","resposta":1.068,"tol":0.004,"opcoes":[],"aceita":[],"erros":[{"valor":0.97,"diag":"Você esqueceu a contribuição de v3 nesta componente.","corrige":"A terceira posição tem peso pequeno, mas ainda assim entra na soma."},{"valor":1.667,"diag":"Você tirou a média simples das segundas componentes.","corrige":"Os pesos calculados pelo softmax precisam multiplicar cada valor antes da soma."},{"valor":4.1,"diag":"Você usou as pontuações escaladas no lugar dos pesos de atenção.","corrige":"Pontuação e peso são coisas distintas. Só o softmax converte uma na outra."}],"dicas":["Quais são as segundas componentes de v1, v2 e v3?","O procedimento é idêntico ao da componente anterior, com os mesmos três pesos e as segundas coordenadas dos valores.","As parcelas são 0,659 vezes 0, mais 0,242 vezes 4, mais 0,099 vezes 1.","A soma é 0 mais 0,970 mais 0,099, igual a 1,068. A saída completa desta posição é o vetor (1,417; 1,068)."],"leitura":"Calcule a segunda componente da média ponderada dos três vetores de valor."}],"fecho":"Você percorreu a fórmula inteira da atenção sem pular nenhuma etapa: produto escalar, escala pela raiz de d k, softmax e média ponderada dos valores. Tudo o que um Transformer faz nessa camada é repetir esse cálculo para cada linha e para cada cabeça."},{"id":"m5-t2","titulo":"Da string ao vetor de entrada","secao":1,"enunciado":"Considere um modelo com vocabulário de 50 000 tokens e dimensão d igual a 768. Vamos acompanhar o que acontece antes de o primeiro bloco começar a trabalhar.","passos":[{"pergunta":"Quantos números guarda a matriz de embeddings desse modelo?","tipo":"numero","resposta":38400000,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":50768,"diag":"Você somou o tamanho do vocabulário com a dimensão.","corrige":"A matriz é uma tabela com uma linha por token e uma coluna por dimensão. Conte as células."},{"valor":50000,"diag":"Você contou apenas as linhas.","corrige":"Cada linha guarda um vetor inteiro, e esse vetor tem 768 números."},{"valor":768,"diag":"Você contou apenas uma linha.","corrige":"A tabela precisa de uma linha para cada token do vocabulário."}],"dicas":["Quantas linhas essa tabela tem, e quantos números cabem em cada linha?","A matriz de embeddings tem uma linha por token do vocabulário e uma coluna por dimensão do modelo.","Monte 50 000 vezes 768.","São 38 400 000 números. Só a tabela de entrada já guarda quase quarenta milhões de parâmetros, antes de qualquer bloco de atenção existir."],"leitura":"Quantos números guarda uma tabela de cinquenta mil linhas por setecentas e sessenta e oito colunas?"},{"pergunta":"Depois de somar a codificação posicional ao embedding, qual a dimensão do vetor da posição t?","tipo":"numero","resposta":768,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1536,"diag":"Você concatenou os dois vetores em vez de somá-los.","corrige":"A fórmula usa soma, e somar dois vetores de mesma dimensão devolve um vetor da mesma dimensão."},{"valor":769,"diag":"Você somou uma unidade de posição ao final do vetor.","corrige":"A posição não vira uma coordenada extra. Ela é somada como um vetor inteiro de mesmo tamanho."},{"valor":50000,"diag":"Você confundiu a dimensão do modelo com o tamanho do vocabulário.","corrige":"Vocabulário conta tokens possíveis. Dimensão conta coordenadas do vetor de cada token."}],"dicas":["A operação entre o embedding e a codificação posicional é soma ou concatenação?","Somar dois vetores exige que eles tenham a mesma dimensão, e o resultado preserva essa dimensão.","A linha da matriz de embeddings tem 768 números, e a codificação posicional também.","A dimensão continua 768. A posição é injetada dentro do mesmo espaço, sem alargar o vetor."],"leitura":"Qual a dimensão do vetor depois de somar embedding e codificação posicional?"},{"pergunta":"Para uma sequência de 10 tokens, quantos números tem a matriz de entrada X?","tipo":"numero","resposta":7680,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":778,"diag":"Você somou o número de tokens com a dimensão.","corrige":"X é uma tabela com uma linha por token e uma coluna por dimensão. Conte as células."},{"valor":768,"diag":"Você contou apenas uma linha.","corrige":"São 10 posições na sequência, e cada uma carrega o próprio vetor."},{"valor":10,"diag":"Você contou apenas as linhas.","corrige":"Cada linha guarda um vetor de 768 coordenadas."}],"dicas":["Qual o formato de X quando a sequência tem 10 tokens?","X empilha os vetores de entrada, uma linha por posição, mantendo a dimensão do modelo nas colunas.","Monte 10 vezes 768.","São 7 680 números. Esse bloco de números é tudo o que o primeiro bloco do Transformer recebe do mundo externo."],"leitura":"Quantos números tem uma tabela de dez linhas por setecentas e sessenta e oito colunas?"},{"pergunta":"Multiplicar um vetor one-hot pela matriz de embeddings produz o quê?","tipo":"escolha","resposta":0,"opcoes":["A linha da matriz correspondente ao índice que vale um no vetor.","A soma de todas as linhas da matriz, ponderada igualmente.","A coluna da matriz correspondente à dimensão do modelo.","Um número único, resultado de um produto escalar sobre a matriz inteira."],"aceita":[],"erros":[{"valor":1,"diag":"Você imaginou que todas as linhas contribuem.","corrige":"No vetor one-hot só uma coordenada vale um e todas as outras valem zero. Pense no que sobra depois da multiplicação."},{"valor":2,"diag":"Você trocou linha por coluna.","corrige":"O vetor one-hot indexa tokens, e tokens ocupam as linhas da tabela de embeddings."},{"valor":3,"diag":"Você tratou a operação como produto escalar entre dois vetores.","corrige":"O resultado de vetor vezes matriz é outro vetor, e não um escalar."}],"dicas":["Se apenas uma coordenada do vetor vale um e o resto vale zero, quais parcelas do produto sobrevivem?","Multiplicar por zero apaga a contribuição de uma linha inteira, então só a linha marcada pelo um permanece.","O resultado tem 768 coordenadas e coincide exatamente com uma linha específica da tabela.","A resposta é a primeira alternativa. Buscar uma linha na tabela e multiplicar por um vetor one-hot são a mesma operação, escritas de duas formas: a primeira é como se implementa, a segunda é como os artigos escrevem."],"leitura":"Escolha o que resulta de multiplicar um vetor one-hot pela matriz de embeddings."},{"pergunta":"Sem codificação posicional, o que aconteceria com as frases gato mordeu cachorro e cachorro mordeu gato?","tipo":"escolha","resposta":0,"opcoes":["A atenção trataria as duas de forma equivalente, porque ela é invariante à ordem das posições.","A atenção rejeitaria a segunda frase, porque a ordem não bateria com o vocabulário.","A atenção produziria resultados diferentes, porque o produto escalar já carrega a posição.","Nada mudaria, porque a ordem é resolvida pelo tokenizador antes do primeiro bloco."],"aceita":[],"erros":[{"valor":1,"diag":"Você imaginou uma verificação de ordem dentro da atenção.","corrige":"A atenção não valida sequências. Ela apenas calcula produtos escalares entre todos os pares."},{"valor":2,"diag":"Você atribuiu informação de posição ao produto escalar.","corrige":"O produto escalar depende só dos valores dos vetores, e nada nele registra quem veio antes."},{"valor":3,"diag":"Você atribuiu a ordem ao tokenizador.","corrige":"O tokenizador devolve índices em sequência, mas quem precisa da ordem é o mecanismo de atenção, e ele não a recebe de graça."}],"dicas":["A fórmula da atenção contém alguma referência ao índice da posição?","A atenção calcula produtos escalares entre todos os pares de vetores, e permutar as linhas permuta apenas as saídas correspondentes.","Sem a soma de P[t], os vetores de entrada das duas frases são o mesmo conjunto, apenas em outra ordem.","A resposta é a primeira alternativa. É exatamente por isso que a posição precisa ser injetada explicitamente na entrada, e não deduzida pelo mecanismo."],"leitura":"Escolha o que aconteceria sem codificação posicional nas duas frases."}],"fecho":"Antes de qualquer atenção acontecer, o texto já virou uma tabela de números com posição embutida. Duas decisões de projeto, a tabela de embeddings e a codificação posicional, definem tudo o que o modelo pode enxergar."},{"id":"m5-t3","titulo":"Formas e custos de Q, K e V","secao":2,"enunciado":"Um modelo com d igual a 768 projeta cada posição em consultas, chaves e valores de dimensão d k igual a 64. A sequência tem 12 tokens. Vamos contar parâmetros e células para entender de onde vem o custo da atenção.","passos":[{"pergunta":"Quantos parâmetros tem a matriz W com subscrito Q, de forma 768 por 64?","tipo":"numero","resposta":49152,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":832,"diag":"Você somou as duas dimensões em vez de multiplicá-las.","corrige":"O número de parâmetros de uma matriz é o número de células dela. Conte linhas vezes colunas."},{"valor":768,"diag":"Você contou apenas as linhas.","corrige":"Cada linha da matriz tem 64 colunas, e cada célula é um parâmetro aprendido."},{"valor":64,"diag":"Você contou apenas as colunas.","corrige":"A matriz recebe vetores de dimensão 768, então precisa de 768 linhas."}],"dicas":["Quantas células tem uma tabela de 768 linhas por 64 colunas?","Toda matriz de projeção guarda um parâmetro por célula, e todos são aprendidos no treino.","Monte 768 vezes 64.","São 49 152 parâmetros. É esse bloco de números que define o que a consulta de cada posição vai procurar."],"leitura":"Quantos parâmetros tem uma matriz de setecentas e sessenta e oito linhas por sessenta e quatro colunas?"},{"pergunta":"Somando W com subscrito Q, W com subscrito K e W com subscrito V, quantos parâmetros essa cabeça de atenção usa nas projeções?","tipo":"numero","resposta":147456,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":49152,"diag":"Você contou apenas uma das três matrizes.","corrige":"São três projeções diferentes, uma para cada papel, e cada uma tem os próprios pesos."},{"valor":98304,"diag":"Você contou apenas duas matrizes.","corrige":"Consulta, chave e valor são três papéis distintos, e portanto três matrizes."},{"valor":2496,"diag":"Você somou as dimensões antes de multiplicar.","corrige":"Calcule o tamanho de uma matriz primeiro e só então multiplique pelo número de matrizes."}],"dicas":["Quantas projeções distintas existem por cabeça de atenção?","Cada um dos três papéis, consulta, chave e valor, tem a própria matriz de pesos e nenhuma delas compartilha parâmetros com as outras.","Monte 3 vezes 49 152.","São 147 456 parâmetros por cabeça, contando só as projeções de entrada e deixando de fora a projeção de saída W com subscrito O."],"leitura":"Some os parâmetros das três matrizes de projeção de uma cabeça."},{"pergunta":"Quantos números tem a matriz Q para essa sequência de 12 tokens?","tipo":"numero","resposta":768,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":9216,"diag":"Você usou a dimensão do modelo em vez da dimensão da projeção.","corrige":"Depois da projeção, cada posição tem 64 coordenadas, e não mais 768."},{"valor":12,"diag":"Você contou apenas as linhas.","corrige":"Cada linha guarda um vetor de consulta inteiro."},{"valor":64,"diag":"Você contou apenas uma linha.","corrige":"Existe uma consulta por posição da sequência, e são 12 posições."}],"dicas":["Qual a forma de Q depois que X, de 12 por 768, passa por uma matriz de 768 por 64?","Multiplicar uma matriz de n por d por outra de d por d k devolve uma matriz de n por d k.","Monte 12 vezes 64.","São 768 números. Coincidência divertida com o valor de d, mas a origem é outra: 12 posições vezes 64 coordenadas por consulta."],"leitura":"Quantos números tem uma tabela de doze linhas por sessenta e quatro colunas?"},{"pergunta":"Quantas células tem a matriz de pontuações Q vezes K transposta para essa sequência?","tipo":"numero","resposta":144,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":768,"diag":"Você repetiu a contagem de Q.","corrige":"A matriz de pontuações compara posições com posições, então a dimensão 64 desaparece no produto escalar."},{"valor":24,"diag":"Você somou as duas dimensões.","corrige":"Cada par ordenado de posições gera uma célula. Conte pares, e não somas."},{"valor":64,"diag":"Você usou a dimensão da projeção como lado da matriz.","corrige":"A dimensão da projeção é consumida pelo produto escalar. O que sobra é posição contra posição."}],"dicas":["Quantos pares ordenados de posições existem em uma sequência de 12 tokens?","A célula da linha i e coluna j compara a consulta da posição i com a chave da posição j, então a matriz é quadrada e do tamanho da sequência.","Monte 12 vezes 12.","São 144 células. Repare que a dimensão 64 não aparece: ela foi consumida dentro de cada produto escalar."],"leitura":"Quantas células tem a matriz de pontuações de uma sequência de doze tokens?"},{"pergunta":"Se a sequência dobrar para 24 tokens, quantas células passa a ter essa matriz?","tipo":"numero","resposta":576,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":288,"diag":"Você dobrou o número de células junto com a sequência.","corrige":"A matriz cresce nos dois lados ao mesmo tempo, e não apenas em um."},{"valor":144,"diag":"Você manteve o resultado anterior.","corrige":"Com mais posições, tanto as linhas quanto as colunas aumentam."},{"valor":48,"diag":"Você somou as duas dimensões.","corrige":"Conte pares ordenados de posições, ou seja linhas vezes colunas."}],"dicas":["Se as linhas dobram e as colunas dobram, o total é multiplicado por quanto?","A matriz de pontuações é quadrada no comprimento da sequência, então o total cresce com o quadrado desse comprimento.","Monte 24 vezes 24.","São 576 células, quatro vezes as 144 anteriores. É esse crescimento quadrático que torna contexto longo caro em memória e em tempo."],"leitura":"Quantas células tem a matriz de pontuações de uma sequência de vinte e quatro tokens?"},{"pergunta":"O que a célula da linha i e coluna j da matriz de pontuações representa?","tipo":"escolha","resposta":0,"opcoes":["O quanto a posição i considera a posição j relevante, medido pelo produto escalar entre a consulta de i e a chave de j.","A probabilidade de o token j aparecer logo depois do token i.","A distância entre as posições i e j dentro da sequência.","O valor que a posição j vai entregar à posição i na saída da camada."],"aceita":[],"erros":[{"valor":1,"diag":"Você leu a célula como probabilidade antes do softmax.","corrige":"Antes do softmax essas células são números reais sem restrição, que podem inclusive ser negativos."},{"valor":2,"diag":"Você confundiu pontuação com distância posicional.","corrige":"A pontuação depende do conteúdo dos vetores. A informação de posição chega antes, pela codificação posicional."},{"valor":3,"diag":"Você confundiu pontuação com valor.","corrige":"A pontuação decide o peso. O que é entregue são os vetores de valor, e isso acontece só na multiplicação final por V."}],"dicas":["Quais dois vetores foram multiplicados para gerar essa célula específica?","A linha vem de Q e a coluna vem de K, então a célula mede concordância de direção entre uma consulta e uma chave.","Como o produto escalar mede alinhamento entre vetores, a célula responde a uma pergunta de relevância, não de probabilidade.","A resposta é a primeira alternativa. Só depois do softmax linha a linha essas pontuações viram pesos que somam um."],"leitura":"Escolha o que a célula da linha i e coluna j da matriz de pontuações representa."}],"fecho":"As três projeções custam parâmetros que não dependem do comprimento do texto, mas a matriz de pontuações cresce com o quadrado desse comprimento. Essa assimetria é a explicação inteira de por que janelas de contexto longas são caras."},{"id":"m5-t4","titulo":"O bloco por dentro: MLP, normalização e residual","secao":6,"enunciado":"Ainda com d igual a 768 e expansão de quatro vezes no MLP, vamos contar os parâmetros do bloco e depois normalizar um vetor pequeno à mão para ver o que a normalização de camada realmente faz.","passos":[{"pergunta":"Qual a dimensão interna do MLP quando a expansão é de quatro vezes?","tipo":"numero","resposta":3072,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":772,"diag":"Você somou quatro à dimensão em vez de multiplicar.","corrige":"Expansão de quatro vezes é uma multiplicação. Reveja a operação."},{"valor":192,"diag":"Você dividiu a dimensão por quatro.","corrige":"Expandir aumenta a dimensão. Dividir é o que a segunda matriz faz depois."},{"valor":768,"diag":"Você manteve a dimensão original.","corrige":"O bloco expande, aplica a não linearidade e só então volta ao tamanho de origem."}],"dicas":["Expandir quatro vezes significa multiplicar ou somar?","O MLP alarga o vetor antes de aplicar a não linearidade, justamente para ter espaço de representação maior.","Monte 768 vezes 4.","A dimensão interna é 3 072. É nesse espaço alargado que a não linearidade g atua antes da compressão de volta."],"leitura":"Qual a dimensão interna do eme ele pê com expansão de quatro vezes?"},{"pergunta":"Quantos parâmetros tem a matriz W com subscrito 1, que faz a expansão?","tipo":"numero","resposta":2359296,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":3840,"diag":"Você somou as duas dimensões.","corrige":"Conte as células da matriz, ou seja linhas vezes colunas."},{"valor":768,"diag":"Você contou apenas a dimensão de entrada.","corrige":"A matriz precisa de uma coluna para cada uma das 3 072 saídas."},{"valor":4718592,"diag":"Você já somou as duas matrizes do MLP.","corrige":"Este passo pede apenas a primeira, a que expande."}],"dicas":["Qual a forma de W com subscrito 1, e quantas células ela tem?","A matriz que expande vai de 768 para 3 072, então tem 768 linhas e 3 072 colunas.","Monte 768 vezes 3 072.","São 2 359 296 parâmetros em uma única matriz, e ainda falta a que comprime de volta."],"leitura":"Quantos parâmetros tem a matriz que expande de setecentas e sessenta e oito para três mil e setenta e duas dimensões?"},{"pergunta":"Somando as duas matrizes do MLP, quantos parâmetros o bloco usa, deixando os vieses de fora?","tipo":"numero","resposta":4718592,"tol":0.5,"opcoes":[],"aceita":[],"erros":[{"valor":2359296,"diag":"Você contou apenas a matriz que expande.","corrige":"A matriz que comprime tem exatamente o mesmo número de células, só com as dimensões trocadas."},{"valor":7680,"diag":"Você somou as dimensões em vez de contar células.","corrige":"Multiplique linhas por colunas em cada matriz e some os dois resultados."},{"valor":147456,"diag":"Você reaproveitou a contagem das projeções de atenção.","corrige":"O MLP é outro bloco, com matrizes bem maiores que as de projeção."}],"dicas":["As duas matrizes do MLP têm o mesmo tamanho ou tamanhos diferentes?","Uma vai de 768 para 3 072 e a outra volta de 3 072 para 768, então ambas têm o mesmo número de células.","Monte 2 vezes 2 359 296.","São 4 718 592 parâmetros por bloco, só no MLP. Isso é mais de trinta vezes o que as três projeções de uma cabeça consomem, e explica por que a maior parte dos parâmetros do modelo mora aqui."],"leitura":"Some os parâmetros das duas matrizes do eme ele pê."},{"pergunta":"Considere o vetor de ativações (2, 4, 4, 4, 5, 5, 7, 9). Qual a média dele?","tipo":"numero","resposta":5,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":40,"diag":"Você entregou a soma sem dividir pelo número de coordenadas.","corrige":"Média é soma dividida pela quantidade de elementos. Conte quantos são."},{"valor":4.5,"diag":"Você calculou a mediana em vez da média.","corrige":"A normalização de camada usa a média aritmética, e não o valor central da lista ordenada."},{"valor":4,"diag":"Você usou a moda, o valor que mais se repete.","corrige":"A normalização de camada recentra pela média aritmética de todas as coordenadas."}],"dicas":["Quantas coordenadas o vetor tem, e quanto elas somam juntas?","A normalização de camada calcula média e desvio padrão sobre as coordenadas de um único vetor, e não sobre o lote inteiro.","A soma é 40 e existem 8 coordenadas. Falta a divisão.","A média é 5. Esse é o valor que será subtraído de cada coordenada para recentrar o vetor em zero."],"leitura":"Calcule a média de dois, quatro, quatro, quatro, cinco, cinco, sete e nove."},{"pergunta":"Qual o desvio padrão desse vetor, usando a divisão pelo número de coordenadas?","tipo":"numero","resposta":2,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":4,"diag":"Você entregou a variância sem tirar a raiz quadrada.","corrige":"Desvio padrão é a raiz quadrada da variância. Falta um passo."},{"valor":2.138,"diag":"Você dividiu por sete em vez de oito ao calcular a variância.","corrige":"A normalização de camada divide pelo número de coordenadas, sem correção amostral."},{"valor":5,"diag":"Você repetiu a média.","corrige":"O desvio mede espalhamento em torno da média, e não a média em si."}],"dicas":["Quanto vale cada desvio em relação à média de 5, e o que se faz com esses desvios?","Eleve cada desvio ao quadrado, tire a média desses quadrados e depois a raiz quadrada do resultado.","Os quadrados dos desvios são 9, 1, 1, 1, 0, 0, 4 e 16, que somam 32. Divida por 8 e tire a raiz.","A variância é 4 e o desvio padrão é 2. É por esse valor que cada coordenada recentrada será dividida."],"leitura":"Calcule o desvio padrão do vetor, dividindo pelo número de coordenadas."},{"pergunta":"Qual o valor normalizado da primeira coordenada, aquela que valia 2? Uma casa decimal.","tipo":"numero","resposta":-1.5,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":-3,"diag":"Você subtraiu a média mas não dividiu pelo desvio padrão.","corrige":"A normalização tem dois movimentos: recentrar e reescalar. Falta o segundo."},{"valor":-0.75,"diag":"Você dividiu pela variância em vez do desvio padrão.","corrige":"O denominador é a raiz da variância, e não a variância."},{"valor":1.5,"diag":"Você inverteu o sinal da subtração.","corrige":"A coordenada vale menos que a média, então o valor normalizado precisa ser negativo."}],"dicas":["Quanto essa coordenada está distante da média, e em quantos desvios padrão isso dá?","Normalizar uma coordenada é subtrair a média e dividir pelo desvio padrão, exatamente nessa ordem.","Monte 2 menos 5, dividido por 2.","O resultado é menos 1,5. A coordenada estava a um desvio e meio abaixo da média, e é isso que o número normalizado passa a dizer."],"leitura":"Calcule o valor normalizado da coordenada que valia dois."}],"fecho":"O bloco tem duas metades com papéis opostos: o MLP concentra a maior parte dos parâmetros e processa cada posição sozinha, enquanto a normalização e a conexão residual não carregam quase nenhum parâmetro e existem só para que o treino continue possível camada após camada."},{"id":"m5-t5","titulo":"Do estado final ao token escolhido","secao":7,"enunciado":"Um modelo de brinquedo tem dimensão três e vocabulário de três tokens. O estado final da última posição é h igual a (1, 2, menos 1). Os embeddings dos tokens são eA igual a (2, 1, 0), eB igual a (0, 1, 1) e eC igual a (1, 0, 1). Vamos fechar o caminho até o token de saída.","passos":[{"pergunta":"Qual o logit do token A, ou seja o produto escalar entre h e eA?","tipo":"numero","resposta":4,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Você somou os componentes de eA e ignorou o estado final.","corrige":"O logit compara os dois vetores. Multiplique posição por posição antes de somar."},{"valor":2,"diag":"Você usou apenas o primeiro par de componentes.","corrige":"As três coordenadas entram na soma, mesmo quando alguma delas dá zero."},{"valor":5,"diag":"Você somou os dois vetores componente a componente e depois somou tudo.","corrige":"Entre os pares a operação é multiplicação, e a soma vem só no final."}],"dicas":["Quantos produtos entram nessa soma, e quais pares eles formam?","Amarrar a matriz de saída aos embeddings torna o logit de um token o produto escalar entre o estado final e o embedding daquele token.","Os produtos são 1 vezes 2, 2 vezes 1 e menos 1 vezes 0. Falta somar.","A soma é 2 mais 2 mais 0, igual a 4. O token A é o que mais se alinha em direção com o estado final."],"leitura":"Calcule o produto escalar entre um, dois, menos um e dois, um, zero."},{"pergunta":"Qual o logit do token C?","tipo":"numero","resposta":0,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":2,"diag":"Você ignorou o sinal negativo da terceira coordenada de h.","corrige":"A terceira coordenada de h vale menos um, e o produto com ela precisa entrar negativo."},{"valor":1,"diag":"Você usou apenas o primeiro par de componentes.","corrige":"As três coordenadas entram na soma, inclusive a que dá contribuição negativa."},{"valor":3,"diag":"Você somou os componentes de eC ignorando o estado final.","corrige":"O logit depende dos dois vetores, e não só do embedding."}],"dicas":["Qual coordenada de h é negativa, e com o que ela se multiplica em eC?","Um logit igual a zero significa que os dois vetores são perpendiculares, ou seja não há alinhamento nem oposição.","Os produtos são 1 vezes 1, 2 vezes 0 e menos 1 vezes 1. Falta somar.","A soma é 1 mais 0 menos 1, igual a 0. Logit zero não significa probabilidade zero, como o próximo passo vai mostrar."],"leitura":"Calcule o produto escalar entre um, dois, menos um e um, zero, um."},{"pergunta":"Os três logits são 4, 1 e 0. Some as três exponenciais. Três casas decimais.","tipo":"numero","resposta":58.316,"tol":0.02,"opcoes":[],"aceita":[],"erros":[{"valor":5,"diag":"Você somou os logits em vez das exponenciais.","corrige":"Exponencie cada logit primeiro, some depois. A ordem é fixa."},{"valor":57.316,"diag":"Você tratou a exponencial de zero como zero.","corrige":"A exponencial de zero vale um, e não zero. Essa parcela existe."},{"valor":54.598,"diag":"Você usou apenas a maior parcela.","corrige":"Todos os tokens do vocabulário entram no denominador, por menores que sejam."}],"dicas":["Quanto vale a exponencial de zero?","O denominador do softmax soma a exponencial de cada logit, sem exceção, e nenhuma dessas parcelas pode ser nula.","As parcelas são 54,598, 2,718 e 1. Falta somar.","A soma vale 58,316. Repare o peso da primeira parcela: quatro pontos de vantagem em logit já dominam quase todo o denominador."],"leitura":"Some e elevado a quatro, e elevado a um e e elevado a zero."},{"pergunta":"Com temperatura igual a um, qual a probabilidade do token A? Três casas decimais.","tipo":"numero","resposta":0.936,"tol":0.002,"opcoes":[],"aceita":[],"erros":[{"valor":0.8,"diag":"Você dividiu o logit 4 pela soma dos logits, que vale 5.","corrige":"O numerador precisa ser a exponencial do logit, e não o logit cru."},{"valor":0.333,"diag":"Você assumiu distribuição uniforme.","corrige":"Os três logits são bem diferentes, então a distribuição não pode ser uniforme."},{"valor":0.864,"diag":"Você usou um denominador de outro exercício.","corrige":"Recupere a soma calculada no passo anterior, que vale 58,316."}],"dicas":["Qual numerador pertence ao token A, e qual denominador vale para os três?","Com temperatura igual a um, o softmax é aplicado diretamente aos logits, sem nenhuma divisão prévia.","Monte 54,598 dividido por 58,316.","O resultado é 0,936. O modelo está bastante confiante nesse token, e uma vantagem de três pontos sobre o segundo colocado basta para isso."],"leitura":"Divida cinquenta e quatro vírgula cinco nove oito por cinquenta e oito vírgula três um seis."},{"pergunta":"Agora ligue a temperatura em 2. Qual passa a ser a probabilidade do token A? Três casas decimais.","tipo":"numero","resposta":0.736,"tol":0.003,"opcoes":[],"aceita":[],"erros":[{"valor":0.936,"diag":"Você manteve o resultado da temperatura um.","corrige":"Com temperatura 2 todos os logits são divididos por 2 antes da exponencial, então todas as parcelas mudam."},{"valor":0.468,"diag":"Você dividiu a probabilidade final pela temperatura.","corrige":"A temperatura entra antes da exponencial, e não depois do softmax. Uma divisão no final quebraria a soma um."},{"valor":0.983,"diag":"Você multiplicou os logits pela temperatura em vez de dividir.","corrige":"A temperatura aparece no denominador do expoente, então temperatura maior que um encolhe os logits."}],"dicas":["O que acontece com os logits 4, 1 e 0 quando cada um é dividido por 2?","Depois de escalar, aplique o softmax normalmente aos novos expoentes 2, 0,5 e 0.","As exponenciais viram 7,389, 1,649 e 1, somando 10,038. Falta a divisão.","O resultado é 0,736. Dobrar a temperatura tirou vinte pontos percentuais do favorito e os distribuiu entre os outros dois tokens."],"leitura":"Calcule a probabilidade do token A com temperatura igual a dois."},{"pergunta":"De volta à temperatura um, o token C ficou com probabilidade 0,017. Se ele fosse o token correto, qual seria a contribuição dessa posição para a perda? Três casas decimais.","tipo":"numero","resposta":4.066,"tol":0.01,"opcoes":[],"aceita":[],"erros":[{"valor":0.017,"diag":"Você entregou a própria probabilidade em vez da perda.","corrige":"A perda é menos o logaritmo da probabilidade atribuída ao token correto."},{"valor":-4.066,"diag":"Você deixou o resultado negativo.","corrige":"A fórmula coloca um sinal de menos na frente do logaritmo, o que devolve um valor positivo."},{"valor":1.766,"diag":"Você usou logaritmo na base dez.","corrige":"A perda de treino de modelos de linguagem usa logaritmo natural, para casar com a exponencial da perplexidade."}],"dicas":["Qual operação a cross-entropy aplica à probabilidade do token que realmente apareceu?","Quando a distribuição verdadeira concentra tudo em um token, o somatório colapsa em um único termo: menos o logaritmo da probabilidade daquele token.","Monte menos o logaritmo natural de 0,017148.","A perda vale 4,066. É uma penalização alta, e deve ser mesmo: o modelo estava confiante em outro token e errou."],"leitura":"Calcule menos o logaritmo natural de zero vírgula zero um sete um."}],"fecho":"Você fechou o caminho completo: do estado final saem logits por produto escalar com os embeddings, do softmax com temperatura sai a distribuição, e do logaritmo dessa distribuição sai o sinal que treinou o modelo em primeiro lugar."}],"duvidas":[{"p":"Por que dividir pela raiz de dk e não pelo próprio dk?","chaves":["raiz","dk","escala","por que","divisao","saturacao"],"r":"Porque o que cresce com a dimensão é o desvio padrão do produto escalar, e não a magnitude bruta dele. Se as coordenadas de q e k forem aproximadamente independentes e de variância um, a soma de d k produtos tem variância d k, logo desvio padrão igual à raiz de d k. Dividir por esse desvio devolve as pontuações a uma faixa de variância um, que é exatamente onde o softmax ainda tem gradiente útil. Dividir pelo próprio d k encolheria demais e achataria a distribuição de atenção.","secao":3},{"p":"A máscara causal é aplicada antes ou depois do softmax?","chaves":["mascara","causal","antes","depois","softmax","menos infinito"],"r":"Antes, e isso é essencial. A máscara soma menos infinito às posições futuras enquanto elas ainda são pontuações, e a exponencial de menos infinito vale zero, então o softmax atribui probabilidade zero a elas e ainda assim a linha soma um. Se você zerasse os pesos depois do softmax, a linha deixaria de somar um e seria preciso renormalizar na mão. Somar a máscara antes resolve as duas coisas de uma vez.","secao":3},{"p":"Se atenção é só uma média ponderada, de onde vem a inteligência do modelo?","chaves":["media ponderada","inteligencia","atencao","simples","poder"],"r":"De três lugares que a média ponderada sozinha não mostra. Primeiro, os pesos não são fixos: eles são recalculados a cada posição e a cada entrada, a partir de projeções aprendidas. Segundo, o bloco se repete dezenas de vezes, e cada camada trabalha sobre o resultado da anterior. Terceiro, entre as atenções está o MLP, que é onde a maior parte dos parâmetros mora e onde a informação recolhida é de fato processada. A média ponderada é o mecanismo de transporte, não o modelo inteiro.","secao":3},{"p":"Qual a diferença entre chave e valor? Parecem a mesma informação.","chaves":["chave","valor","diferenca","K","V","papeis"],"r":"São projeções diferentes do mesmo vetor de entrada, e cumprem papéis que não se confundem. A chave existe para ser comparada com as consultas e decide o quanto aquela posição será atendida. O valor existe para ser entregue e decide o que aquela posição contribui quando é atendida. Separar as duas permite que uma posição seja fácil de encontrar por um critério e entregue conteúdo de outra natureza, e o modelo aprende essa separação sozinho durante o treino.","secao":2},{"p":"Cada cabeça de atenção realmente aprende uma coisa diferente?","chaves":["cabecas","multiplas","especializacao","interpretabilidade","heads"],"r":"Em parte. Trabalhos de interpretabilidade encontram cabeças com comportamento reconhecível, por exemplo cabeças que acompanham o token anterior ou que ligam pronomes a seus antecedentes. Mas a especialização raramente é limpa: a mesma cabeça costuma participar de vários padrões, e um padrão costuma estar espalhado por várias cabeças. Trate os exemplos didáticos como ilustração do porquê de haver várias cabeças, e não como descrição fiel do que cada uma faz.","secao":4},{"p":"Por que concatenar as cabeças e ainda passar por uma projeção W com subscrito O?","chaves":["concatenar","cabecas","projecao","WO","saida"],"r":"Por duas razões. A primeira é de forma: a concatenação devolve um vetor do tamanho da dimensão do modelo, mas ele é apenas a justaposição de fatias independentes, e a projeção final permite que informação de uma cabeça influencie coordenadas associadas a outra. A segunda é de aprendizado: sem essa matriz, o modelo não teria como ponderar a importância relativa das cabeças, e cada fatia entraria na conexão residual com o mesmo peso.","secao":4},{"p":"Por que o MLP expande a dimensão antes de comprimir de volta?","chaves":["MLP","expandir","comprimir","quatro vezes","dimensao interna"],"r":"Porque a não linearidade precisa de espaço para trabalhar. Em uma dimensão maior é possível separar padrões que ficariam sobrepostos no espaço original, e a compressão seguinte escolhe o que vale a pena manter. A expansão de quatro vezes é convenção empírica, não teorema: valores diferentes funcionam, e arquiteturas recentes ajustam esse fator junto com o tipo de não linearidade usada.","secao":5},{"p":"Normalização de camada e normalização de lote são a mesma coisa?","chaves":["layer norm","batch norm","normalizacao","diferenca","lote"],"r":"Não. A normalização de camada calcula média e desvio padrão sobre as coordenadas de um único vetor, uma posição por vez, e por isso funciona igual em treino e em inferência e não depende de quantos exemplos há no lote. A normalização de lote calcula essas estatísticas sobre o lote inteiro, o que cria dependência entre exemplos e complica o uso em sequências de comprimento variável. Transformers usam normalização de camada justamente para evitar essa dependência.","secao":6},{"p":"O que muda entre normalizar antes ou depois do bloco?","chaves":["pre-norm","pos-norm","antes","depois","ordem","estabilidade"],"r":"Muda a estabilidade do treino. Na forma que o módulo apresenta, a normalização acontece antes da operação e a soma residual recebe a saída direto, o que deixa um caminho totalmente livre para o gradiente atravessar a rede. Na forma original do artigo de 2017, a normalização vinha depois da soma, e treinar modelos muito profundos exigia aquecimento cuidadoso da taxa de aprendizado. A prática atual prefere normalizar antes, porque o treino fica mais tolerante.","secao":6},{"p":"Por que amarrar a matriz de saída à matriz de embeddings?","chaves":["amarrar","tied weights","matriz de saida","embeddings","transposta"],"r":"Por economia e por coerência. Economia porque a tabela de embeddings costuma ser uma das maiores do modelo, e reutilizá-la na saída elimina uma segunda tabela do mesmo tamanho. Coerência porque a leitura fica limpa: prever o próximo token vira medir o produto escalar entre o estado final e o embedding de cada candidato, ou seja perguntar de qual token o estado atual mais se aproxima em direção. Nem todo modelo faz isso, mas é prática comum.","secao":7},{"p":"Por que os modelos erram contas simples se sabem tanta coisa?","chaves":["aritmetica","numeros","erro","tokenizacao","contas"],"r":"Uma das raízes está na tokenização. Um número como 1234 pode virar dois ou três tokens conforme o tokenizador, e nenhum desses pedaços carrega a noção de quantidade. O modelo aprendeu a relacionar símbolos que aparecem juntos, e não a executar um algoritmo posicional de soma. Some a isso o fato de que cada passo produz apenas uma distribuição sobre o próximo token, sem memória de trabalho separada, e fica claro por que contas longas quebram com facilidade.","secao":0},{"p":"Por que contar as letras de uma palavra é difícil para um LLM?","chaves":["contar letras","palavra","tokenizacao","dificil","caracteres"],"r":"Porque as letras individuais quase nunca são tokens separados. A palavra chega ao modelo como um ou dois pedaços, e a decomposição em caracteres simplesmente não está presente na representação de entrada. Para responder, o modelo precisa recuperar da memória de treino como aquele pedaço se soletra, o que é indireto e falível. É o mesmo problema de fundo dos erros de aritmética: a pergunta exige uma informação que a tokenização apagou.","secao":0},{"p":"O custo da atenção cresce com o quadrado do contexto. Isso é inevitável?","chaves":["quadratico","custo","contexto longo","atencao","eficiencia"],"r":"É inevitável na forma exata apresentada no módulo, porque a matriz de pontuações compara todos os pares de posições e o número de pares cresce com o quadrado do comprimento. Existem alternativas que trocam exatidão por custo, por exemplo restringir cada posição a uma janela local, atender a um subconjunto esparso de posições ou aproximar o produto por métodos de baixa dimensão. Todas mudam o que é calculado, então a fórmula deste módulo continua sendo a referência do que está sendo aproximado.","secao":3},{"p":"A conexão residual não estraga o resultado ao somar a entrada crua na saída?","chaves":["residual","somar","entrada","estragar","gradiente"],"r":"Não, e o motivo é que o bloco não precisa produzir a saída inteira: ele produz apenas a correção a ser somada. Isso torna a identidade fácil de representar, porque basta o bloco devolver algo próximo de zero para a informação atravessar intacta. O ganho decisivo aparece no gradiente, que encontra um caminho direto até as camadas iniciais sem ser multiplicado sucessivamente por derivadas pequenas. É essa soma aparentemente ingênua que viabiliza dezenas de camadas empilhadas.","secao":6},{"p":"Onde exatamente entram temperatura e top-p no fluxo do Transformer?","chaves":["temperatura","top-p","onde","fluxo","amostragem","final"],"r":"Bem no final, depois de tudo o que o módulo descreve. O modelo termina o último bloco, projeta o estado final na matriz de saída e produz um logit por token do vocabulário. Só então a temperatura divide esses logits, o softmax os converte em probabilidades, o corte por top-k ou top-p descarta candidatos e o sorteio escolhe um token. Nada disso faz parte do modelo: são decisões de amostragem aplicadas sobre a saída dele, e é por isso que dá para mudá-las sem retreinar nada.","secao":7},{"p":"Depois de escolher um token, o modelo recalcula tudo do zero?","chaves":["recalcular","proximo token","cache","autoregressivo","repetir"],"r":"Conceitualmente sim: o token escolhido é anexado à sequência e o processo inteiro recomeça com um contexto uma posição maior. Na prática, as implementações guardam as chaves e os valores já calculados das posições anteriores, porque eles não mudam quando um token novo entra no final. Assim, cada passo novo calcula apenas a consulta, a chave e o valor da posição recém acrescentada, e reaproveita o resto. O resultado é idêntico, só que muito mais barato.","secao":7}]},"M6":{"modulo":"m6","tex":{"s0.f0":"L = -\\frac{1}{N} \\sum_{t} \\log P\\left(w_t \\mid w_{<t}\\right)"},"trilhos":[{"id":"m6-t1","titulo":"Da probabilidade do token correto até a perda do lote","secao":0,"enunciado":"Um lote minúsculo, de apenas três posições. O modelo atribuiu ao token correto as probabilidades 0,25, depois 0,9 e depois 0,01. Vamos transformar isso em perda.","passos":[{"pergunta":"Na primeira posição o modelo deu probabilidade 0,25 ao token correto. Qual é a perda dessa posição, com três casas decimais?","tipo":"numero","resposta":1.386,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":0.602,"diag":"Você usou logaritmo na base dez em vez do logaritmo natural.","corrige":"Volte à fórmula da seção e repare em qual logaritmo ela pede. Na perda de linguagem, a base é sempre a natural."},{"valor":-1.386,"diag":"Você calculou o logaritmo certo, mas devolveu o sinal negativo.","corrige":"Repare que a fórmula já traz um sinal de menos na frente. Aplique esse sinal ao resultado do logaritmo antes de responder."},{"valor":0.25,"diag":"Você entregou a própria probabilidade como se ela fosse a perda.","corrige":"Probabilidade e perda são grandezas diferentes. Uma vive entre zero e um, a outra cresce sem limite quando o modelo erra."},{"valor":0.75,"diag":"Você calculou um menos a probabilidade, e não o logaritmo negativo dela.","corrige":"A punição da perda não é linear. Procure na seção qual operação transforma a probabilidade em perda."}],"dicas":["A fórmula da seção diz que a perda de uma posição depende apenas da probabilidade dada ao token correto. Que operação ela aplica a essa probabilidade?","A perda é o logaritmo natural da probabilidade com o sinal trocado. Logaritmo natural, de base e, nunca de base dez.","Monte assim: perda igual a menos o logaritmo natural de 0,25. Como o logaritmo de um número menor que um é negativo, o resultado final fica positivo. Falta executar a conta.","O logaritmo natural de 0,25 vale aproximadamente menos 1,386. Trocando o sinal, a perda é 1,386. O valor confere com a intuição: uma probabilidade baixa custa caro."],"leitura":"O modelo deu probabilidade zero vírgula vinte e cinco ao token correto. Calcule a perda dessa posição com três casas decimais, usando menos o logaritmo natural da probabilidade."},{"pergunta":"Na segunda posição o modelo acertou com folga e deu 0,9 ao token correto. Qual é a perda dessa posição, com três casas decimais?","tipo":"numero","resposta":0.105,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":0.046,"diag":"Você usou logaritmo na base dez em vez do natural.","corrige":"Repita a conta na base e. A diferença entre as duas bases é um fator constante, mas o valor pedido é o natural."},{"valor":-0.105,"diag":"Você esqueceu de aplicar o sinal de menos que a fórmula já traz.","corrige":"Perda é sempre positiva ou nula. Se o seu resultado ficou negativo, falta o sinal da fórmula."},{"valor":0.1,"diag":"Você calculou um menos a probabilidade.","corrige":"O resultado é parecido por acaso, porque perto de um o logaritmo se aproxima dessa diferença. Mas a operação pedida é o logaritmo."}],"dicas":["A operação é a mesma da posição anterior. O que muda apenas é o número que entra nela.","Quando a probabilidade se aproxima de um, o logaritmo se aproxima de zero, e portanto a perda também. Espere um valor pequeno.","Monte assim: perda igual a menos o logaritmo natural de 0,9. Falta executar.","O logaritmo natural de 0,9 vale aproximadamente menos 0,105. Trocando o sinal, a perda é 0,105. Acertar com confiança quase não custa."],"leitura":"O modelo deu probabilidade zero vírgula nove ao token correto. Calcule a perda dessa posição com três casas decimais."},{"pergunta":"Na terceira posição o modelo deu apenas 0,01 ao token correto. Qual é a perda dessa posição, com três casas decimais?","tipo":"numero","resposta":4.605,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":2.0,"diag":"Você usou logaritmo na base dez, que dá exatamente dois para 0,01.","corrige":"O número redondo é justamente o sinal de que você trocou de base. Refaça na base natural."},{"valor":-4.605,"diag":"Você deixou o sinal negativo do logaritmo na resposta.","corrige":"Aplique o menos que a fórmula traz na frente e a perda volta a ser positiva."},{"valor":0.99,"diag":"Você calculou um menos a probabilidade.","corrige":"Compare com o caso de 0,25. Se a perda fosse um menos a probabilidade, errar feio custaria quase o mesmo que errar pouco, e não é isso que a seção descreve."}],"dicas":["Mesma operação, número muito menor entrando. O que você espera que aconteça com o tamanho da perda?","A seção avisa que a perda é honesta e cruel: errar com confiança custa desproporcionalmente caro. Espere um valor bem maior que os anteriores.","Monte assim: perda igual a menos o logaritmo natural de 0,01. Falta executar.","O logaritmo natural de 0,01 vale aproximadamente menos 4,605. Trocando o sinal, a perda é 4,605, mais de trinta vezes a perda da posição que acertou com 0,9."],"leitura":"O modelo deu probabilidade zero vírgula zero um ao token correto. Calcule a perda dessa posição com três casas decimais."},{"pergunta":"Agora junte as três posições. Qual é a perda do lote, com três casas decimais?","tipo":"numero","resposta":2.032,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":6.097,"diag":"Você somou as três perdas e parou antes de dividir.","corrige":"A fórmula pede a média sobre as posições, não a soma. Falta um passo."},{"valor":0.95,"diag":"Você calculou a média das probabilidades e só depois aplicou o logaritmo.","corrige":"A ordem importa. Primeiro cada posição vira perda, e só então as perdas são promediadas."},{"valor":3.048,"diag":"Você dividiu por dois em vez de dividir pelo número de posições.","corrige":"Confira quantas posições existem no lote antes de escolher o divisor."}],"dicas":["A fórmula da seção tem um fator de um sobre N na frente do somatório. O que N representa aqui?","N é o número de posições do lote. A perda do lote é a média aritmética das perdas individuais, calculadas uma a uma.","Monte assim: some 1,386 mais 0,105 mais 4,605 e divida por três. Falta executar.","A soma dá aproximadamente 6,097 e a divisão por três dá 2,032. Repare como a posição de 0,01 sozinha domina a média inteira."],"leitura":"Some as três perdas, um vírgula trezentos e oitenta e seis, zero vírgula cento e cinco e quatro vírgula seiscentos e cinco, e divida pelo número de posições. Responda com três casas decimais."},{"pergunta":"Qual das três posições contribuiu com mais da metade da perda do lote?","tipo":"escolha","resposta":2,"tol":0.0001,"opcoes":["A posição em que o modelo deu 0,9 ao token correto","A posição em que o modelo deu 0,25 ao token correto","A posição em que o modelo deu 0,01 ao token correto"],"aceita":[],"erros":[{"valor":0,"diag":"Você associou probabilidade alta a perda alta.","corrige":"A relação é inversa. Quanto maior a probabilidade dada ao token correto, menor a punição."},{"valor":1,"diag":"Você escolheu a posição intermediária, provavelmente por ela estar no meio da faixa.","corrige":"Compare os três valores de perda que você mesmo calculou e veja qual deles sozinho já passa da metade da soma."}],"dicas":["Você já tem as três perdas calculadas. Qual delas é a maior, e por quanto?","A soma das três perdas é 6,097. Metade disso é aproximadamente 3,05. Alguma perda individual passa desse valor?","A perda da terceira posição é 4,605, e a soma inteira é 6,097. Compare os dois números.","A posição que recebeu 0,01 responde por 4,605 de uma perda total de 6,097, ou seja, cerca de três quartos. É essa a resposta, e é assim que o treino aprende: os erros confiantes puxam o gradiente."],"leitura":"Entre as três posições, qual delas contribuiu com mais da metade da perda do lote? A que recebeu zero vírgula nove, a que recebeu zero vírgula vinte e cinco ou a que recebeu zero vírgula zero um."},{"pergunta":"Fechando o raciocínio ao contrário: qual probabilidade o modelo precisaria dar ao token correto para que a perda daquela posição fosse exatamente 1? Responda com três casas decimais.","tipo":"numero","resposta":0.368,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":0.1,"diag":"Você inverteu na base dez, e não na base natural.","corrige":"A operação inversa do logaritmo natural é a exponencial de base e, não a potência de dez."},{"valor":0.632,"diag":"Você calculou um menos e elevado a menos um.","corrige":"Não há nenhum um menos nessa inversão. Isole a probabilidade diretamente na fórmula da perda."},{"valor":2.718,"diag":"Você elevou e a mais um em vez de a menos um.","corrige":"Probabilidade nunca passa de um. Se o seu resultado passou, o expoente está com o sinal trocado."}],"dicas":["A perda é menos o logaritmo natural da probabilidade. Se a perda vale um, o que o logaritmo natural da probabilidade precisa valer?","O logaritmo natural precisa valer menos um. A operação que desfaz o logaritmo natural é a exponencial de base e.","Monte assim: probabilidade igual a e elevado a menos um. Falta executar.","E elevado a menos um vale aproximadamente 0,368. Ou seja, uma perda de valor um corresponde a acertar com pouco mais de um terço de confiança."],"leitura":"Qual probabilidade produz perda exatamente igual a um? Inverta a fórmula usando a exponencial de base e e responda com três casas decimais."}],"fecho":"Este trilho mostrou que a perda não é uma medida de acerto ou erro, e sim de confiança calibrada. Uma única posição errada com convicção domina a média de todo um lote."},{"id":"m6-t2","titulo":"Por que treinar pesa mais na memória do que inferir","secao":1,"enunciado":"Um modelo com 40 camadas, cada uma produzindo uma ativação intermediária de 8 megabytes por exemplo. Vamos comparar o que o treino precisa guardar com o que a inferência precisa guardar.","passos":[{"pergunta":"Das duas passagens do backpropagation, qual delas guarda os resultados intermediários?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["A passagem para frente, que leva a entrada até a saída","A passagem para trás, que propaga as derivadas","Nenhuma das duas, porque tudo é recalculado quando faz falta"],"aceita":[],"erros":[{"valor":1,"diag":"Você inverteu os papéis das duas passagens.","corrige":"Pense na ordem do tempo: para a passagem para trás usar um valor, alguém precisa ter guardado esse valor antes."},{"valor":2,"diag":"Você supôs que o algoritmo recalcula tudo em vez de armazenar.","corrige":"A seção é explícita sobre o custo de memória dessa etapa. Se nada fosse guardado, esse custo não existiria."}],"dicas":["A seção descreve duas passagens em ordem. Qual delas acontece primeiro, e o que a segunda precisa ter em mãos?","A passagem para trás reaproveita valores calculados antes. Alguém teve que produzir e reter esses valores.","É na ida, quando a entrada atravessa todas as camadas, que cada resultado intermediário é retido para uso posterior.","A resposta é a passagem para frente. Ela calcula a saída e guarda cada intermediário, exatamente porque a passagem para trás vai multiplicar por derivadas locais e precisa desses valores."],"leitura":"Das duas passagens do backpropagation, qual guarda os resultados intermediários? A passagem para frente, a passagem para trás, ou nenhuma das duas."},{"pergunta":"E o que exatamente a passagem para trás produz ao final?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["A saída do modelo para a entrada que foi dada","A sensibilidade da perda em relação a cada parâmetro","A probabilidade do próximo token da sequência"],"aceita":[],"erros":[{"valor":0,"diag":"Você descreveu o resultado da passagem para frente.","corrige":"A saída já existe quando a passagem para trás começa. O que falta descobrir é como mexer nos parâmetros."},{"valor":2,"diag":"Você citou um produto da inferência, não do treino.","corrige":"A probabilidade do próximo token é o que o modelo entrega. A passagem para trás responde outra pergunta, sobre parâmetros."}],"dicas":["A seção abre com uma pergunta: qual a sensibilidade da perda em relação a cada um dos parâmetros. O que responde essa pergunta?","Sensibilidade em relação a um parâmetro é derivada. A ferramenta que a produz camada a camada é a regra da cadeia.","Começa-se com a derivada da perda em relação à saída e propaga-se para trás até cada matriz de peso.","A resposta é a sensibilidade da perda em relação a cada parâmetro, isto é, o gradiente. É com ele que o otimizador decide o ajuste."],"leitura":"O que a passagem para trás produz ao final? A saída do modelo, a sensibilidade da perda em relação a cada parâmetro, ou a probabilidade do próximo token."},{"pergunta":"Durante o treino, com 40 camadas e 8 megabytes de ativação por camada, quantos megabytes de ativação precisam ficar guardados para um único exemplo?","tipo":"numero","resposta":320,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":8,"diag":"Você guardou apenas a ativação da camada corrente.","corrige":"Essa é a regra da inferência. No treino, a passagem para trás vai visitar todas as camadas de novo."},{"valor":48,"diag":"Você somou o número de camadas ao tamanho da ativação.","corrige":"As unidades não combinam nessa soma. São 40 blocos de 8 megabytes cada."},{"valor":40,"diag":"Você respondeu o número de camadas e esqueceu o tamanho de cada ativação.","corrige":"A pergunta é em megabytes. Cada camada contribui com quantos?"}],"dicas":["Se cada camada guarda a sua ativação e nenhuma pode ser descartada, quantas ativações coexistem?","Todas as quarenta coexistem, porque a passagem para trás percorrerá a pilha inteira do fim para o começo.","Monte assim: quarenta camadas vezes oito megabytes por camada. Falta executar.","Quarenta vezes oito dá 320 megabytes. É esse acúmulo que faz o treino estourar a memória de placas que rodam o mesmo modelo sem esforço em inferência."],"leitura":"Com quarenta camadas e oito megabytes de ativação por camada, quantos megabytes o treino precisa manter guardados para um exemplo?"},{"pergunta":"Em inferência, cada camada pode descartar o que já usou assim que passa adiante. Quantos megabytes de ativação ficam vivos ao mesmo tempo, na mesma escala do enunciado?","tipo":"numero","resposta":8,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":320,"diag":"Você aplicou à inferência a conta que vale para o treino.","corrige":"Releia o que a seção diz sobre a inferência não precisar guardar nada para trás."},{"valor":0,"diag":"Você concluiu que a inferência não usa memória de ativação nenhuma.","corrige":"Alguma coisa precisa existir enquanto a camada calcula. O que some é o histórico, não o valor corrente."},{"valor":16,"diag":"Você manteve duas camadas vivas ao mesmo tempo.","corrige":"Assim que o resultado é entregue à camada seguinte, o anterior deixa de ser necessário."}],"dicas":["Se nada precisa ser guardado para trás, quantas ativações precisam existir simultaneamente?","Basta a ativação que está sendo processada agora. As anteriores já cumpriram o seu papel.","É uma única camada viva por vez, com o tamanho de ativação dado no enunciado.","A resposta é 8 megabytes, o tamanho de uma só ativação. É por isso que o mesmo modelo cabe confortavelmente em hardware muito mais modesto quando apenas roda."],"leitura":"Em inferência, quantos megabytes de ativação ficam vivos ao mesmo tempo, se cada camada descarta o que já usou?"},{"pergunta":"Qual é a razão entre a memória de ativação do treino e a da inferência, nesse exemplo?","tipo":"numero","resposta":40,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":0.025,"diag":"Você inverteu a divisão e dividiu a inferência pelo treino.","corrige":"A pergunta é quantas vezes o treino é maior. Coloque o número maior em cima."},{"valor":312,"diag":"Você subtraiu em vez de dividir.","corrige":"A diferença em megabytes é outra grandeza. Razão pede divisão."},{"valor":328,"diag":"Você somou os dois valores.","corrige":"Razão entre duas quantidades é o quociente delas, não a soma."}],"dicas":["Você tem 320 de um lado e 8 do outro. Que operação responde quantas vezes um cabe no outro?","Razão é divisão. Divida o valor do treino pelo valor da inferência.","Monte assim: 320 dividido por 8. Falta executar.","320 dividido por 8 dá 40, exatamente o número de camadas. Não é coincidência: a razão é o próprio número de ativações retidas."],"leitura":"Divida a memória de ativação do treino pela memória de ativação da inferência e diga quantas vezes uma é maior que a outra."},{"pergunta":"Qual frase resume corretamente a causa dessa diferença?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["O treino usa números maiores, que ocupam mais espaço por elemento","O treino precisa reter as ativações da ida para usá-las na volta, e a inferência não tem volta","O lote de treino sempre tem mais tokens do que qualquer prompt de inferência"],"aceita":[],"erros":[{"valor":0,"diag":"Você atribuiu a diferença à precisão numérica.","corrige":"O enunciado usa o mesmo tamanho de ativação nos dois casos. O que muda é quantas delas ficam vivas."},{"valor":2,"diag":"Você atribuiu a diferença ao tamanho do lote.","corrige":"A conta que você fez foi para um único exemplo nos dois casos, e a diferença de quarenta vezes apareceu do mesmo jeito."}],"dicas":["Nos dois cenários a ativação tinha o mesmo tamanho. Então o que exatamente mudou?","Mudou o número de ativações que precisam coexistir, e isso depende de haver ou não uma passagem para trás.","No treino existe uma volta que consome os valores guardados na ida. Em inferência, nada volta.","A resposta correta é a segunda: o treino retém as ativações da ida para a passagem para trás, e a inferência simplesmente não tem passagem para trás."],"leitura":"Qual frase resume a causa da diferença de memória entre treino e inferência? Números maiores, retenção das ativações para a passagem para trás, ou tamanho do lote."}],"fecho":"Treinar e inferir usam a mesma rede, mas não o mesmo algoritmo. A memória do treino cresce com a profundidade porque a volta precisa dos valores da ida."},{"id":"m6-t3","titulo":"Lote, época e a contagem de passos de atualização","secao":2,"enunciado":"Um conjunto de treino com 12.000 exemplos e um lote de 32 exemplos por passo. Vamos contar quantas vezes os pesos mudam.","passos":[{"pergunta":"Quantos passos de atualização acontecem em uma época completa?","tipo":"numero","resposta":375,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":384000,"diag":"Você multiplicou o tamanho do conjunto pelo tamanho do lote.","corrige":"O lote consome exemplos, não os cria. A operação certa reduz o número de exemplos, não o aumenta."},{"valor":11968,"diag":"Você subtraiu o lote do conjunto, como se houvesse um passo só.","corrige":"Cada passo consome um lote inteiro, e os passos se repetem até acabar o conjunto."},{"valor":32,"diag":"Você respondeu o tamanho do lote em vez do número de passos.","corrige":"O tamanho do lote é o dado de entrada. A pergunta é quantas vezes ele cabe no conjunto."}],"dicas":["Cada passo consome um lote. Quantos lotes cabem dentro do conjunto inteiro?","Uma época percorre todos os exemplos uma vez, em blocos do tamanho do lote.","Monte assim: 12.000 dividido por 32. Falta executar.","12.000 dividido por 32 dá 375. São 375 atualizações de peso em uma única passagem pelos dados."],"leitura":"Com doze mil exemplos e lote de trinta e dois, quantos passos de atualização acontecem em uma época completa?"},{"pergunta":"Mantendo o mesmo lote, quantos passos de atualização acontecem em três épocas?","tipo":"numero","resposta":1125,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":375,"diag":"Você repetiu o resultado de uma época e não multiplicou.","corrige":"Cada época repete o percurso inteiro. Três percursos completos dão quantos passos?"},{"valor":378,"diag":"Você somou três ao número de passos de uma época.","corrige":"As épocas não acrescentam três passos, elas repetem o bloco inteiro de passos."},{"valor":125,"diag":"Você dividiu por três em vez de multiplicar.","corrige":"Mais épocas significam mais passos, nunca menos. Confira a direção da operação."}],"dicas":["Se uma época dá um certo número de passos, três épocas dão quantos?","As épocas são repetições do mesmo percurso. A contagem escala de forma direta.","Monte assim: 375 multiplicado por três. Falta executar.","375 vezes três dá 1.125 passos de atualização no total das três épocas."],"leitura":"Com trezentos e setenta e cinco passos por época, quantos passos de atualização acontecem em três épocas?"},{"pergunta":"O que exatamente torna estocástica a descida estocástica do gradiente?","tipo":"escolha","resposta":2,"tol":0.0001,"opcoes":["O valor inicial dos parâmetros, que é aleatório","O passo de aprendizado, que varia ao acaso a cada atualização","O lote, que é um subconjunto sorteado do conjunto de treino"],"aceita":[],"erros":[{"valor":0,"diag":"Você apontou a inicialização, que é aleatória mas não é a origem do nome.","corrige":"A inicialização acontece uma vez só. O nome se refere a algo que se repete a cada passo."},{"valor":1,"diag":"Você atribuiu o acaso ao passo de aprendizado.","corrige":"O passo é uma decisão do otimizador, não um sorteio. Procure o que é sorteado a cada atualização."}],"dicas":["A seção dá a explicação do nome em uma frase. Que elemento ela chama de sorteado?","Calcular o gradiente sobre o conjunto inteiro seria proibitivo, então se usa uma amostra a cada passo.","Essa amostra sorteada tem um nome próprio no vocabulário do treino.","É o lote. Ele é um subconjunto aleatório e o gradiente calculado nele é uma estimativa do gradiente verdadeiro, daí o termo estocástico."],"leitura":"O que torna estocástica a descida estocástica do gradiente? A inicialização aleatória, o passo de aprendizado variável, ou o lote sorteado."},{"pergunta":"Se o lote dobrar para 64 exemplos, quantos passos de atualização passa a ter uma época?","tipo":"numero","resposta":187.5,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":750,"diag":"Você dobrou o número de passos em vez de reduzi-lo à metade.","corrige":"Lotes maiores consomem os exemplos mais rápido, então cabem menos lotes na mesma época."},{"valor":375,"diag":"Você repetiu a resposta do lote de 32, como se o tamanho do lote não afetasse a contagem.","corrige":"O divisor mudou. Refaça a divisão com o novo tamanho de lote."},{"valor":6000,"diag":"Você dividiu o conjunto por dois, em vez de dividir pelo novo tamanho de lote.","corrige":"O que se divide pelo tamanho do lote é o número de exemplos, e o novo tamanho é 64."}],"dicas":["A operação é a mesma do primeiro passo. Só o divisor mudou. Em que direção o resultado vai?","Dobrar o lote significa consumir o dobro de exemplos por passo, então o número de passos cai pela metade.","Monte assim: 12.000 dividido por 64. Falta executar, e o resultado não é inteiro.","12.000 dividido por 64 dá 187,5. Na prática, isso significa 187 lotes cheios e um lote final pela metade."],"leitura":"Se o lote dobra para sessenta e quatro exemplos, quantos passos de atualização passa a ter uma época? O resultado não é inteiro."},{"pergunta":"Quantas épocas modelos de linguagem grandes costumam treinar sobre os seus corpora?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Muitas dezenas de épocas sobre um corpus relativamente pequeno","Frequentemente menos de uma época sobre corpora gigantescos","Exatamente uma época, sempre, por definição do método"],"aceita":[],"erros":[{"valor":0,"diag":"Você transportou a intuição do aprendizado de máquina clássico, em que se repetem muitas épocas.","corrige":"A seção avisa justamente que essa intuição herdada muda de figura aqui. Repare no tamanho dos corpora."},{"valor":2,"diag":"Você tomou uma época como regra fixa do método.","corrige":"Nada no método obriga um número específico de épocas. O que decide é o tamanho do corpus diante do orçamento de cálculo."}],"dicas":["A seção termina com uma observação sobre quantas épocas esses modelos de fato fazem. O que ela diz?","Quando o corpus é gigantesco, terminar uma passagem já consome todo o orçamento de cálculo disponível.","Isso significa que muitas vezes o modelo nem chega a ver o mesmo exemplo duas vezes.","A resposta é: frequentemente menos de uma época sobre corpora gigantescos. É por isso que a intuição clássica sobre repetir épocas não se transfere diretamente."],"leitura":"Quantas épocas modelos de linguagem grandes costumam treinar? Muitas dezenas, frequentemente menos de uma, ou exatamente uma sempre."},{"pergunta":"O que o otimizador Adam mantém, além do gradiente do passo atual?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Médias móveis do gradiente e do quadrado do gradiente","Uma cópia do conjunto de treino já visitado","O valor da perda de cada época anterior"],"aceita":[],"erros":[{"valor":1,"diag":"Você imaginou que o otimizador guarda dados, e não estatísticas do gradiente.","corrige":"O otimizador só enxerga gradientes. Ele nunca vê os exemplos diretamente."},{"valor":2,"diag":"Você escolheu um histórico de perdas, que serve para monitorar e não para ajustar o passo.","corrige":"O que o Adam precisa é de informação por parâmetro. Perda é um número só para o lote inteiro."}],"dicas":["A seção diz em uma frase o que o Adam mantém. São duas médias. De quê?","Uma média capta a direção típica do gradiente, a outra capta a magnitude típica.","A segunda é a média do gradiente elevado ao quadrado, que serve para dimensionar o passo de cada parâmetro.","A resposta é: médias móveis do gradiente e do seu quadrado. Com elas, parâmetros de gradiente historicamente grande recebem passos menores, e vice-versa."],"leitura":"O que o otimizador Adam mantém além do gradiente atual? Médias móveis do gradiente e do seu quadrado, uma cópia do conjunto de treino, ou a perda de cada época anterior."}],"fecho":"Lote e época contam coisas diferentes: um mede o quanto se vê por atualização, o outro mede quantas voltas se dá nos dados. Confundir os dois desorganiza qualquer leitura de curva de treino."},{"id":"m6-t4","titulo":"O custo real do laço autorregressivo","secao":3,"enunciado":"Um prompt de 200 tokens e uma resposta de 50 tokens. O preenchimento leva 300 milissegundos e cada token seguinte leva 20 milissegundos.","passos":[{"pergunta":"Depois de gerados os 50 tokens da resposta, quantos tokens tem a sequência completa?","tipo":"numero","resposta":250,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":50,"diag":"Você contou apenas o que foi gerado e descartou o prompt.","corrige":"O token gerado é anexado à sequência, e a sequência começa com o prompt inteiro."},{"valor":200,"diag":"Você respondeu o tamanho do prompt e ignorou a geração.","corrige":"Cada iteração acrescenta um token ao que já existia. Some o que foi acrescentado."},{"valor":10000,"diag":"Você multiplicou o prompt pelo número de tokens gerados.","corrige":"O laço anexa tokens, um por iteração. Anexar é somar, não multiplicar."}],"dicas":["O que o laço faz com cada token escolhido, segundo a seção?","Ele anexa o token à sequência e roda de novo com um token a mais.","Então a sequência final é o prompt somado a tudo que foi anexado.","200 mais 50 dá 250 tokens. É esse o comprimento que a atenção enxerga na última iteração."],"leitura":"Com um prompt de duzentos tokens e cinquenta tokens gerados, quantos tokens tem a sequência completa ao final?"},{"pergunta":"Contando o preenchimento como a rodada que produz o primeiro token, quantas vezes o modelo roda ao todo para entregar os 50 tokens?","tipo":"numero","resposta":50,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":51,"diag":"Você somou o preenchimento a cinquenta rodadas de geração, contando uma rodada a mais.","corrige":"Releia o enunciado: o preenchimento já entrega o primeiro token, então ele não é uma rodada extra."},{"valor":49,"diag":"Você contou apenas as rodadas posteriores ao preenchimento.","corrige":"O preenchimento também produz um token, e ele conta na entrega dos cinquenta."},{"valor":250,"diag":"Você respondeu o comprimento da sequência em vez do número de rodadas.","corrige":"São grandezas diferentes. Uma conta tokens na sequência, a outra conta passagens pelo modelo."}],"dicas":["Se cada rodada entrega exatamente um token, quantas rodadas entregam cinquenta tokens?","A geração é sequencial por natureza: um token por iteração, sem exceção.","O preenchimento é a primeira dessas iterações, e não algo à parte da contagem.","São exatamente 50 rodadas, uma por token. É essa serialização que faz respostas longas demorarem proporcionalmente ao número de tokens."],"leitura":"Se cada rodada do modelo entrega um token, e o preenchimento entrega o primeiro, quantas rodadas são necessárias para cinquenta tokens?"},{"pergunta":"Com preenchimento de 300 milissegundos e 20 milissegundos por token seguinte, qual é o tempo total, em milissegundos, para entregar os 50 tokens?","tipo":"numero","resposta":1280,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":1300,"diag":"Você cobrou 20 milissegundos também do token que já veio no preenchimento.","corrige":"O primeiro token está pago dentro dos 300 milissegundos. Só os seguintes custam 20 cada."},{"valor":1000,"diag":"Você somou os tokens seguintes e esqueceu o preenchimento.","corrige":"O preenchimento é um custo fixo de entrada e precisa entrar na soma."},{"valor":320,"diag":"Você cobrou apenas um token além do preenchimento.","corrige":"São 49 tokens depois do primeiro, cada um com o seu custo."}],"dicas":["Quantos tokens ainda faltam depois que o preenchimento entrega o primeiro?","Faltam 49, e cada um deles custa 20 milissegundos. O preenchimento entra como parcela fixa.","Monte assim: 300 mais 49 vezes 20. Falta executar.","49 vezes 20 dá 980, e somando os 300 do preenchimento chega-se a 1.280 milissegundos, pouco menos de um segundo e trezentos."],"leitura":"Some trezentos milissegundos de preenchimento com quarenta e nove tokens de vinte milissegundos cada e diga o tempo total em milissegundos."},{"pergunta":"O que exatamente o cache de chaves e valores evita?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Recalcular as projeções de chave e valor de todas as posições anteriores a cada novo token","Guardar as ativações intermediárias para a passagem para trás","Sortear duas vezes o mesmo token dentro da mesma resposta"],"aceita":[],"erros":[{"valor":1,"diag":"Você confundiu o cache de inferência com a retenção de ativações do treino.","corrige":"Não existe passagem para trás em inferência. O cache resolve outro problema, de repetição de trabalho."},{"valor":2,"diag":"Você atribuiu ao cache um papel no sorteio.","corrige":"O cache é uma otimização de cálculo. Ele não interfere na escolha do token."}],"dicas":["A cada nova iteração, o que já foi calculado para as posições antigas continua válido?","As chaves e valores das posições anteriores não mudam quando um token novo é anexado.","Se não mudam, recalculá-los seria repetir trabalho idêntico a cada iteração.","A resposta é a primeira: o cache evita recalcular as projeções de chave e valor das posições anteriores. É por isso que o segundo token sai muito mais rápido que o primeiro."],"leitura":"O que o cache de chaves e valores evita? Recalcular as projeções das posições anteriores, guardar ativações para a passagem para trás, ou sortear o mesmo token duas vezes."},{"pergunta":"Por que dobrar o contexto mais do que dobra o trabalho da atenção?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Porque cada posição é comparada com todas as outras, e o número de comparações cresce mais rápido que o de posições","Porque o número de camadas do modelo dobra junto com o contexto","Porque o vocabulário do modelo cresce quando o contexto cresce"],"aceita":[],"erros":[{"valor":1,"diag":"Você supôs que a profundidade do modelo muda com o tamanho da entrada.","corrige":"O número de camadas é fixo pela arquitetura e não depende de quantos tokens entram."},{"valor":2,"diag":"Você ligou o vocabulário ao contexto.","corrige":"O vocabulário é definido pelo tokenizador, antes de qualquer prompt existir."}],"dicas":["A seção dá a razão em uma frase. Ela fala de comparações entre posições. Quantas comparações existem?","Cada posição olha para todas as outras, então o número de pares cresce com o quadrado do número de posições.","Dobrar as posições multiplica o número de pares por quatro, não por dois.","A resposta correta é a primeira: a atenção compara cada posição com todas as outras, e é esse crescimento quadrático que faz o contexto longo custar caro."],"leitura":"Por que dobrar o contexto mais do que dobra o trabalho da atenção? Porque cada posição é comparada com todas as outras, porque o número de camadas dobra junto, ou porque o vocabulário cresce."},{"pergunta":"Se o trabalho da atenção cresce com o quadrado do número de posições, por quanto ele é multiplicado ao passar de 1.000 para 4.000 posições?","tipo":"numero","resposta":16,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":4,"diag":"Você aplicou o crescimento linear e parou na razão entre os contextos.","corrige":"A razão entre os contextos é apenas o começo. Falta usar o expoente que o enunciado dá."},{"valor":3000,"diag":"Você subtraiu os dois contextos.","corrige":"A pergunta é por quanto o custo é multiplicado, e isso pede uma razão, não uma diferença."},{"valor":8,"diag":"Você dobrou a razão em vez de elevá-la ao quadrado.","corrige":"Elevar ao quadrado é multiplicar o número por ele mesmo, e não por dois."}],"dicas":["Qual é a razão entre 4.000 e 1.000, e o que o enunciado manda fazer com ela?","A razão é quatro, e o custo cresce com o quadrado do número de posições.","Monte assim: quatro elevado ao quadrado. Falta executar.","Quatro ao quadrado dá 16. Quadruplicar o contexto multiplica por dezesseis o trabalho da atenção, e é esse o preço concreto de janelas longas."],"leitura":"Se o custo da atenção cresce com o quadrado do número de posições, por quanto ele é multiplicado ao passar de mil para quatro mil posições?"}],"fecho":"A inferência é um laço, não um cálculo único. Tempo de resposta, custo de contexto e o efeito do cache saem todos dessa mesma estrutura sequencial."},{"id":"m6-t5","titulo":"Por que duas execuções do mesmo prompt se separam","secao":4,"enunciado":"Suponha que, com a temperatura escolhida, a chance de duas execuções sortearem o mesmo token em uma dada posição seja 0,9. Vamos ver o que acontece ao longo da resposta.","passos":[{"pergunta":"Com temperatura zero e escolha sempre do maior logit, o que se espera de duas execuções do mesmo prompt?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["A mesma saída, ressalvadas diferenças de hardware e paralelismo que alteram arredondamentos","Uma saída diferente a cada execução, sempre, porque o modelo é probabilístico por natureza","Uma saída sorteada entre as três alternativas mais prováveis"],"aceita":[],"erros":[{"valor":1,"diag":"Você tratou o modelo como aleatório mesmo sem sorteio.","corrige":"O sorteio é uma etapa opcional do final. Sem ele, a escolha é determinística."},{"valor":2,"diag":"Você descreveu um corte por top-k combinado com sorteio, e não a escolha do maior logit.","corrige":"Escolher o maior logit significa pegar sempre o primeiro colocado, sem sortear entre os demais."}],"dicas":["Se a regra é sempre pegar o maior logit, existe alguma etapa de acaso nesse caminho?","O modelo é uma função fixa. O acaso entra apenas se houver sorteio na saída.","Sem sorteio, a mesma entrada percorre exatamente o mesmo caminho de cálculo.","A resposta é a primeira: a saída tende a ser a mesma, com a ressalva honesta de que arredondamentos de hardware e paralelismo podem, em raros casos, mudar qual logit é o maior."],"leitura":"Com temperatura zero e escolha do maior logit, o que se espera de duas execuções do mesmo prompt? A mesma saída com ressalva de arredondamento, uma saída sempre diferente, ou um sorteio entre as três mais prováveis."},{"pergunta":"Com chance 0,9 de coincidência por posição e posições independentes, qual é a probabilidade de duas execuções coincidirem nos três primeiros tokens? Responda com três casas decimais.","tipo":"numero","resposta":0.729,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":2.7,"diag":"Você somou as três probabilidades.","corrige":"Probabilidade nunca passa de um. Somar chances de eventos que precisam acontecer juntos não é a operação certa."},{"valor":0.3,"diag":"Você dividiu a probabilidade pelo número de posições.","corrige":"Coincidir em mais posições é mais difícil, mas a operação que exprime isso não é a divisão."},{"valor":0.9,"diag":"Você respondeu a chance de uma única posição.","corrige":"A pergunta pede que as três coincidam ao mesmo tempo. Combine as três chances."}],"dicas":["Se três eventos independentes precisam acontecer todos, como se combinam as suas probabilidades?","Eventos independentes que precisam ocorrer juntos têm as probabilidades multiplicadas.","Monte assim: 0,9 vezes 0,9 vezes 0,9. Falta executar.","0,9 elevado a três dá 0,729. Ou seja, mais de um quarto das duplas de execução já divergiu antes do quarto token."],"leitura":"Com chance zero vírgula nove de coincidir por posição, qual a probabilidade de coincidir nos três primeiros tokens? Responda com três casas decimais."},{"pergunta":"E qual é a probabilidade de coincidirem nos dez primeiros tokens? Responda com três casas decimais.","tipo":"numero","resposta":0.349,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":9.0,"diag":"Você multiplicou 0,9 por dez em vez de elevar a 0,9 à décima potência.","corrige":"Multiplicar pela quantidade de posições faz o número crescer. Combinar chances sempre faz encolher."},{"valor":0.729,"diag":"Você repetiu o resultado de três posições.","corrige":"Atualize o expoente para o novo número de posições antes de calcular."},{"valor":0.1,"diag":"Você respondeu a chance de divergir em uma única posição.","corrige":"A pergunta é sobre coincidir, e sobre dez posições ao mesmo tempo."}],"dicas":["A regra é a mesma do passo anterior. O que muda é apenas quantas vezes ela se aplica.","É 0,9 multiplicado por si mesmo dez vezes, ou seja, 0,9 elevado a dez.","Monte assim: 0,9 elevado à décima potência. Falta executar.","0,9 elevado a dez dá aproximadamente 0,349. Em dez tokens, a chance de duas execuções seguirem idênticas já caiu para cerca de um terço."],"leitura":"Qual a probabilidade de duas execuções coincidirem nos dez primeiros tokens, com chance zero vírgula nove por posição? Responda com três casas decimais."},{"pergunta":"Então qual é a probabilidade de as duas execuções já terem divergido em algum ponto dos dez primeiros tokens? Responda com três casas decimais.","tipo":"numero","resposta":0.651,"tol":0.001,"opcoes":[],"aceita":[],"erros":[{"valor":0.349,"diag":"Você respondeu a probabilidade de coincidir, que é o evento oposto.","corrige":"A pergunta pede o complemento do que você calculou no passo anterior."},{"valor":0.1,"diag":"Você usou a chance de divergir em uma única posição.","corrige":"Basta divergir em qualquer uma das dez posições. Isso é bem mais provável do que divergir numa posição específica."},{"valor":0.9,"diag":"Você respondeu a chance de coincidir em uma posição.","corrige":"Confira qual dos dois eventos a pergunta descreve e sobre quantas posições ela fala."}],"dicas":["Coincidir nas dez e divergir em algum ponto são os dois únicos desfechos possíveis. Como eles se relacionam?","Eventos complementares somam um. Você já tem um deles calculado.","Monte assim: um menos 0,349. Falta executar.","Um menos 0,349 dá 0,651. Cerca de dois terços das duplas já se separaram nos dez primeiros tokens, e a partir daí o condicionamento diferente afasta as trajetórias de vez."],"leitura":"Qual a probabilidade de duas execuções já terem divergido em algum ponto dos dez primeiros tokens? Use o complemento do resultado anterior e responda com três casas decimais."},{"pergunta":"Diante de duas respostas bem diferentes para o mesmo prompt, qual é a leitura correta?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["O modelo mudou de opinião entre uma execução e outra","Você está vendo duas amostras da mesma distribuição que o modelo considera plausível","O modelo aprendeu alguma coisa entre as duas execuções e por isso respondeu diferente"],"aceita":[],"erros":[{"valor":0,"diag":"Você atribuiu ao modelo uma mudança de posição que ele não teve.","corrige":"Nada dentro do modelo mudou entre as duas execuções. Procure a explicação no procedimento de saída."},{"valor":2,"diag":"Você supôs aprendizado durante a inferência.","corrige":"Inferência não altera parâmetro nenhum, e a seção anterior é explícita quanto a isso."}],"dicas":["Entre a primeira e a segunda execução, alguma coisa dentro do modelo mudou?","Os pesos são idênticos nas duas execuções. O que difere é o resultado dos sorteios.","Duas saídas diferentes de sorteios diferentes sobre a mesma distribuição são amostras do mesmo objeto.","A resposta é a segunda: você está vendo duas amostras da mesma distribuição. Não há inconsistência nem mudança de opinião, há amostragem."],"leitura":"Diante de duas respostas diferentes para o mesmo prompt, qual a leitura correta? O modelo mudou de opinião, você viu duas amostras da mesma distribuição, ou o modelo aprendeu entre as execuções."}],"fecho":"A divergência entre execuções é composta: cada sorteio muda o condicionamento de tudo o que vem depois. Determinismo e variação são escolhas de procedimento, não traços de personalidade do modelo."}],"duvidas":[{"p":"A conversa que eu tenho hoje com o modelo treina ele de alguma forma?","chaves":["conversa","treina","aprende","memória","pesos","muda"],"r":"Não. Inferência não altera parâmetro nenhum: o modelo é uma função fixa enquanto responde. O que muda o comportamento dentro de uma conversa é o contexto, ou seja, o texto que já está na janela e volta a ser lido a cada iteração. Assim que a conversa termina, esse contexto some e o modelo continua exatamente como estava. Treinar é outro procedimento, feito antes, com perda, gradiente e otimizador.","secao":3},{"p":"Por que a mesma pergunta me dá respostas diferentes em execuções diferentes?","chaves":["mesma pergunta","respostas diferentes","varia","temperatura","sorteio","aleatório"],"r":"Porque com temperatura acima de zero o token de cada posição é sorteado, e não simplesmente o mais provável. Um único token diferente logo no início muda o condicionamento de tudo o que vem depois, e as duas trajetórias se afastam de forma composta. O modelo não está sendo inconsistente nem mudando de opinião: você está vendo amostras diferentes da mesma distribuição. Com temperatura zero e escolha do maior logit, a saída tende a se repetir.","secao":4},{"p":"Qual é a diferença prática entre lote e época?","chaves":["lote","época","batch","diferença","passos"],"r":"O lote é o subconjunto sorteado de exemplos usado em um único passo de atualização dos pesos. A época é uma passagem completa por todo o conjunto de dados. Dividindo o número de exemplos pelo tamanho do lote você obtém quantas atualizações acontecem em uma época. São grandezas de níveis diferentes: uma conta o que o modelo vê por passo, a outra conta quantas voltas ele deu nos dados.","secao":2},{"p":"Por que treinar exige tanta memória de GPU e rodar o modelo não exige?","chaves":["memória","GPU","treinar","inferir","ativações","custo"],"r":"Porque o backpropagation tem duas passagens. Na ida, cada camada produz um resultado intermediário que precisa ficar guardado, já que a volta vai multiplicar pelas derivadas locais e reaproveitar exatamente esses valores. Com dezenas de camadas, essas ativações se acumulam. Em inferência não existe volta, então cada camada descarta o que já usou assim que passa o resultado adiante.","secao":1},{"p":"Por que a perda usa logaritmo em vez de medir simplesmente o quanto errou?","chaves":["logaritmo","perda","por que log","cross-entropy","punição"],"r":"Porque o logaritmo pune de forma desproporcional a confiança equivocada. Dar 0,9 ao token correto custa 0,105, dar 0,25 custa 1,386 e dar 0,01 custa 4,605. Uma medida linear trataria esses três casos como quase equivalentes, e o treino não teria pressão para corrigir justamente os erros mais graves. Além disso, o logaritmo transforma produtos de probabilidades ao longo da sequência em somas, o que torna a conta estável.","secao":0},{"p":"Se a perda é uma média, uma única posição muito errada estraga o lote inteiro?","chaves":["média","posição","estraga","lote","domina","outlier"],"r":"Ela domina, e isso é intencional. Como a perda cresce sem limite quando a probabilidade do token correto se aproxima de zero, uma posição catastrófica pode responder sozinha pela maior parte da média. No exemplo do trilho, uma posição de 4,605 pesa mais que as outras duas somadas. O efeito prático é que o gradiente aponta preferencialmente para corrigir os erros confiantes, que é o comportamento desejado.","secao":0},{"p":"O que o Adam faz de diferente da descida do gradiente simples?","chaves":["Adam","otimizador","descida","gradiente","passo","diferença"],"r":"A descida simples aplica o mesmo passo a todos os parâmetros. O Adam mantém duas médias móveis por parâmetro, uma do gradiente e outra do quadrado do gradiente, e usa a segunda para dimensionar o passo individualmente. Na prática, parâmetros com gradientes historicamente grandes recebem passos menores e parâmetros com gradientes pequenos recebem passos maiores. É por isso que ele exige menos ajuste manual de taxa de aprendizado.","secao":2},{"p":"Por que o primeiro token demora bem mais que os seguintes?","chaves":["primeiro token","demora","latência","preenchimento","prefill"],"r":"Porque o primeiro token vem do preenchimento, a etapa em que o prompt inteiro atravessa o modelo de uma vez. Todos os tokens do prompt precisam ter as suas projeções calculadas nessa rodada. A partir do segundo token, as chaves e valores das posições anteriores já estão no cache e só a posição nova precisa ser processada. Daí a diferença de tempo entre a primeira e as demais iterações.","secao":3},{"p":"O que exatamente o cache de chaves e valores guarda?","chaves":["cache","chaves","valores","KV","guarda","otimização"],"r":"Guarda as projeções de chave e de valor já calculadas para cada posição anterior da sequência. Como essas projeções não mudam quando um token novo é anexado ao final, recalculá-las a cada iteração seria repetir trabalho idêntico. O cache troca memória por tempo: ocupa espaço proporcional ao comprimento do contexto e economiza a maior parte do cálculo em cada iteração seguinte.","secao":3},{"p":"Dobrar o tamanho do contexto dobra o custo de rodar o modelo?","chaves":["contexto","dobrar","custo","quadrático","janela","atenção"],"r":"Mais do que dobra, por causa da atenção. Como cada posição é comparada com todas as outras, o número de comparações cresce com o quadrado do número de posições. Dobrar o contexto multiplica por quatro o trabalho dessa parte, e quadruplicar multiplica por dezesseis. As demais partes do bloco crescem de forma linear, então o custo total fica entre o linear e o quadrático, mas a atenção é quem manda quando o contexto é longo.","secao":3},{"p":"Temperatura zero garante que eu receba exatamente a mesma saída sempre?","chaves":["temperatura zero","determinístico","mesma saída","garante","reprodutível"],"r":"Garante a mesma saída em teoria, porque a escolha do maior logit não envolve sorteio. Na prática existe uma ressalva honesta: diferenças de hardware, de ordem de paralelismo e de arredondamento em ponto flutuante podem alterar qual logit é o maior quando dois estão muito próximos. Isso é raro, mas acontece. Temperatura zero remove o acaso do sorteio, não o ruído numérico da máquina.","secao":4},{"p":"Modelos grandes treinam por quantas épocas?","chaves":["épocas","quantas","modelos grandes","corpus","repetição"],"r":"Frequentemente por menos de uma época, o que costuma surpreender quem vem do aprendizado de máquina clássico. Quando o corpus é gigantesco, uma única passagem já consome todo o orçamento de cálculo disponível, e o modelo pode nem ver o mesmo trecho duas vezes. Isso muda a intuição sobre memorização e sobre repetir dados: aqui, o risco de decorar um exemplo específico é diferente do risco em conjuntos pequenos revisitados dezenas de vezes.","secao":2},{"p":"O que são a passagem para frente e a passagem para trás, em uma frase cada?","chaves":["passagem para frente","passagem para trás","forward","backward","backpropagation"],"r":"A passagem para frente leva a entrada por todas as camadas até a saída, calculando a perda e guardando cada resultado intermediário. A passagem para trás começa na derivada da perda em relação à saída e caminha camada a camada no sentido inverso, multiplicando pelas derivadas locais até obter a sensibilidade da perda em relação a cada parâmetro. A primeira produz o resultado, a segunda produz o gradiente.","secao":1},{"p":"Se eu corrigir o modelo no meio da conversa, ele guarda essa correção para depois?","chaves":["corrigir","correção","guarda","lembra","próxima conversa","aprendizado"],"r":"Dentro da mesma conversa, sim, porque a correção passa a fazer parte do contexto e volta a ser lida a cada iteração do laço. Fora dela, não. Nenhum peso foi alterado, então uma conversa nova começa sem qualquer traço da correção anterior. Se você precisa que um ajuste persista, ele tem que ser reintroduzido no contexto, por instrução de sistema ou por outro mecanismo externo ao modelo.","secao":3},{"p":"Por que respostas longas demoram proporcionalmente ao seu tamanho?","chaves":["resposta longa","demora","tempo","sequencial","token por token"],"r":"Porque a geração é sequencial por natureza. Cada iteração do laço produz um token, esse token é anexado à sequência e só então o modelo roda de novo. Não há como produzir o décimo token sem ter produzido o nono, já que ele condiciona o cálculo. O tempo total é, portanto, o preenchimento somado ao custo por token multiplicado pelo número de tokens gerados.","secao":3}]},"M7":{"modulo":"m7","tex":{},"trilhos":[{"id":"m7-t1","titulo":"Os dois caminhos internos da soma 36 mais 59","secao":1,"enunciado":"O caso mais didático documentado pela interpretabilidade é uma soma de dois números de dois dígitos. Vamos separar o que a conta pede do que os circuitos internos de fato fizeram.","passos":[{"pergunta":"Antes de olhar para dentro do modelo, qual é o resultado exato de 36 mais 59?","tipo":"numero","resposta":95,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":85,"diag":"Você somou as dezenas sem incluir o transporte vindo das unidades.","corrige":"Refaça a coluna das unidades primeiro e veja se ela cabe em um dígito só."},{"valor":815,"diag":"Você concatenou o resultado das duas colunas em vez de somá-las com transporte.","corrige":"Quinze não é um dígito. Ele precisa transbordar para a coluna vizinha."},{"valor":23,"diag":"Você subtraiu em vez de somar.","corrige":"Confira o sinal da operação pedida no enunciado."}],"dicas":["É uma soma de dois números de dois dígitos. Comece pela coluna que fica mais à direita.","Seis mais nove passa de dez, e o que passa precisa ir para a coluna seguinte.","Monte assim: unidades dão quinze, escreve cinco e transporta um; dezenas dão três mais cinco mais o transporte. Falta executar.","Três mais cinco mais um dá nove, e a unidade é cinco. O resultado é 95. Guarde este número, porque o interessante vem agora."],"leitura":"Qual é o resultado exato de trinta e seis mais cinquenta e nove?"},{"pergunta":"Segundo o achado da interpretabilidade, um dos dois caminhos internos calcula com exatidão apenas uma coisa. Qual dígito ele produz?","tipo":"numero","resposta":5,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":15,"diag":"Você respondeu a soma das unidades antes do transporte, que não é um dígito.","corrige":"O que o caminho preciso entrega é o dígito final do resultado, e dígito vai de zero a nove."},{"valor":9,"diag":"Você respondeu o dígito das dezenas do resultado.","corrige":"O caminho preciso e estreito cuida da ponta direita do número, não da esquerda."},{"valor":6,"diag":"Você repetiu o dígito das unidades de uma das parcelas.","corrige":"A pergunta é sobre o resultado da soma, e não sobre uma das entradas."}],"dicas":["A seção descreve um caminho preciso e estreito. Preciso em relação a qual parte do número?","É a parte do resultado que pode ser determinada olhando apenas as unidades das parcelas.","O resultado é 95, e o caminho preciso entrega o dígito da ponta direita desse número.","O dígito é 5. O caminho estreito calcula exatamente o último dígito da soma, e nada além disso."],"leitura":"Qual dígito o caminho preciso e estreito calcula na soma trinta e seis mais cinquenta e nove?"},{"pergunta":"E o outro caminho, o aproximado, faz o quê?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Estima grosseiramente a magnitude do resultado, algo perto de noventa e cinco","Calcula o transporte que sai da coluna das unidades","Consulta uma tabela de somas memorizada durante o treino"],"aceita":[],"erros":[{"valor":1,"diag":"Você atribuiu ao caminho aproximado uma etapa do algoritmo escolar.","corrige":"Transporte pertence ao método de coluna, que é justamente o que o modelo não usa por dentro."},{"valor":2,"diag":"Você supôs consulta a uma tabela memorizada.","corrige":"A seção fala de estimativa de magnitude, não de recuperação de um resultado pronto."}],"dicas":["Se um caminho é preciso e estreito, o que se espera do outro, chamado de aproximado?","Ele trabalha com a ordem de grandeza do resultado, e não com dígitos exatos.","A descrição da seção é literalmente algo como perto de noventa e cinco.","A resposta é a primeira: o caminho aproximado estima a magnitude do resultado. Combinado com o dígito exato do outro caminho, ele fecha a resposta correta."],"leitura":"O que faz o caminho aproximado? Estima a magnitude do resultado, calcula o transporte das unidades, ou consulta uma tabela memorizada."},{"pergunta":"Como os dois caminhos se relacionam dentro da mesma passagem?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Rodam ao mesmo tempo e se combinam no final para produzir a resposta","Rodam em sequência, primeiro o aproximado e depois o preciso corrigindo o anterior","Apenas um deles roda por vez, escolhido conforme o tamanho dos números"],"aceita":[],"erros":[{"valor":1,"diag":"Você impôs uma ordem de correção que a pesquisa não descreve.","corrige":"A palavra usada na seção é paralelo. Os dois estão ativos, não um depois do outro."},{"valor":2,"diag":"Você imaginou um seletor que escolhe um caminho ou outro.","corrige":"O achado é justamente que os dois coexistem na mesma resposta e se somam no final."}],"dicas":["O título da seção dá a pista em uma palavra. Qual é ela?","A palavra é paralelos. Isso diz alguma coisa sobre a ordem em que os dois acontecem.","Se são paralelos, os dois estão ativos simultaneamente e precisam se encontrar em algum ponto.","A resposta é a primeira: os dois rodam ao mesmo tempo e se combinam no final. É essa combinação que produz a resposta correta."],"leitura":"Como os dois caminhos se relacionam? Rodam ao mesmo tempo e se combinam, rodam em sequência com correção, ou apenas um roda por vez."},{"pergunta":"Essa estratégia interna se parece com o algoritmo escolar de somar coluna por coluna?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Sim, é exatamente a soma por colunas com transporte, só que distribuída entre camadas","Não, o modelo montou um método próprio, adequado à maquinaria de que dispõe","Sim, mas com as colunas percorridas na ordem inversa"],"aceita":[],"erros":[{"valor":0,"diag":"Você equiparou os caminhos internos ao método que se aprende na escola.","corrige":"Compare as duas descrições: uma tem estimativa de magnitude, a outra não tem nada parecido com isso."},{"valor":2,"diag":"Você manteve o algoritmo escolar e apenas inverteu a ordem das colunas.","corrige":"A diferença não é de ordem, é de natureza. Um dos caminhos nem trabalha com dígitos."}],"dicas":["Compare item a item: o algoritmo escolar tem estimativa de magnitude em algum momento?","Não tem. Ele é integralmente exato, coluna por coluna, com transporte.","Já os caminhos internos combinam uma estimativa grosseira com um cálculo exato de um único dígito.","A resposta é a segunda: nada nessa estratégia se parece com o método escolar. O modelo inventou o próprio caminho, e ninguém o ensinou a fazer assim."],"leitura":"A estratégia interna se parece com o algoritmo escolar de somar por colunas? Sim exatamente, não porque o modelo montou método próprio, ou sim mas com colunas invertidas."}],"fecho":"O modelo chega ao resultado certo por um caminho que ninguém projetou e que não corresponde a nenhum algoritmo ensinado. Saber a arquitetura não bastava para prever isso."},{"id":"m7-t2","titulo":"Racionalização: o que o modelo diz que fez","secao":2,"enunciado":"Feita a soma, pergunta-se ao modelo como ele chegou ao resultado. A resposta que ele dá é o achado mais importante deste módulo para quem usa modelos profissionalmente.","passos":[{"pergunta":"Quando perguntado como somou, o que o modelo descreve?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Os dois caminhos internos, o aproximado e o preciso, tal como os pesquisadores os encontraram","O algoritmo escolar, com unidades, dezenas e transporte","Nada, porque ele se recusa a explicar procedimentos internos"],"aceita":[],"erros":[{"valor":0,"diag":"Você supôs que o modelo tem acesso introspectivo aos próprios circuitos.","corrige":"Se ele tivesse, este módulo perderia o assunto. Releia o que a seção diz que ele responde."},{"valor":2,"diag":"Você imaginou uma recusa que não acontece.","corrige":"Ele responde, e responde com fluência. O problema está no conteúdo da resposta, não na disposição de dar uma."}],"dicas":["A seção diz em uma frase o que ele descreve. Qual método aparece nessa descrição?","É o método que qualquer pessoa aprendeu na escola, com colunas e transporte.","Ou seja, ele descreve exatamente o método que o trilho anterior mostrou que ele não usa.","A resposta é a segunda: o modelo descreve o algoritmo escolar, um método que demonstravelmente não foi o executado por dentro."],"leitura":"Quando perguntado como somou, o que o modelo descreve? Os dois caminhos internos, o algoritmo escolar com transporte, ou nada."},{"pergunta":"Por que isso não é mentira no sentido intencional?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Porque a explicação é sorteada ao acaso entre várias possíveis, sem intenção de nenhuma delas","Porque ele aprendeu dos textos humanos como se explica uma soma, e é isso que produz quando o pedido é explicar","Porque a explicação está tecnicamente correta, apenas descrita com outras palavras"],"aceita":[],"erros":[{"valor":0,"diag":"Você atribuiu a explicação ao sorteio da amostragem.","corrige":"A explicação sairia parecida mesmo com temperatura zero. A origem dela está no que o treino ensinou, não no acaso da saída."},{"valor":2,"diag":"Você concluiu que a explicação está correta.","corrige":"Os circuitos rastreados mostram outra coisa. A explicação é plausível, mas não descreve o processo que ocorreu."}],"dicas":["De onde vem, no treino, a habilidade de explicar uma soma?","Vem de textos humanos que explicam somas, e todos eles ensinam o método escolar.","Então explicar é uma tarefa de previsão de texto como qualquer outra, atendida com o padrão aprendido.","A resposta é a segunda: ele produz a explicação que aprendeu a produzir. Não há intenção de enganar, há um circuito de explicação distinto do circuito de cálculo."],"leitura":"Por que a explicação errada não é mentira intencional? Porque foi sorteada ao acaso, porque ele aprendeu dos textos humanos como se explica uma soma, ou porque está tecnicamente correta."},{"pergunta":"Em uma palavra, como se chama produzir uma explicação plausível para um processo interno que foi diferente do descrito?","tipo":"texto","resposta":"racionalização","tol":0.0001,"opcoes":[],"aceita":["racionalizacao","racionalização","racionalizar","racionaliza","uma racionalização"],"erros":[{"valor":"alucinação","diag":"Você usou o termo que descreve inventar um fato falso sobre o mundo.","corrige":"Aqui o fato do mundo, o resultado da soma, está certo. O que não corresponde é a descrição do próprio processo."},{"valor":"mentira","diag":"Você usou um termo que carrega intenção de enganar.","corrige":"A seção é explícita ao afastar a intenção. Procure a palavra que descreve explicar depois do fato, sem intenção."},{"valor":"interpretabilidade","diag":"Você nomeou a linha de pesquisa que descobriu o fenômeno, e não o fenômeno.","corrige":"Uma coisa é quem investiga, outra é o que foi encontrado."}],"dicas":["O título da seção contém a palavra. Qual é ela?","É a explicação construída depois do fato, para dar sentido a algo que já aconteceu de outro jeito.","A palavra começa com racional e termina como qualquer substantivo derivado de um verbo terminado em izar.","A palavra é racionalização. O modelo racionaliza: produz uma justificativa plausível, aprendida de textos humanos, para um processo interno que foi outro."],"leitura":"Em uma palavra, como se chama produzir uma explicação plausível para um processo interno que foi diferente do descrito?"},{"pergunta":"Circuito que calcula e circuito que explica são a mesma coisa?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Sim, é o mesmo circuito visto de dois ângulos diferentes","Não, são circuitos distintos dentro do mesmo modelo","Sim, o segundo é uma cópia fiel do primeiro, gerada durante o treino"],"aceita":[],"erros":[{"valor":0,"diag":"Você tratou cálculo e explicação como duas faces do mesmo mecanismo.","corrige":"Se fossem o mesmo mecanismo, a explicação bateria com o cálculo. Ela não bate."},{"valor":2,"diag":"Você supôs uma cópia fiel, que preservaria o conteúdo do cálculo.","corrige":"Uma cópia fiel descreveria os dois caminhos paralelos. A explicação descreve outra coisa."}],"dicas":["Se os dois fossem o mesmo, o que se esperaria da explicação dada pelo modelo?","Esperaria-se que ela descrevesse os dois caminhos paralelos, e não o método escolar.","Como a descrição não corresponde ao processo, os dois mecanismos não podem ser o mesmo.","A resposta é a segunda: são circuitos distintos. Essa separação é o que explica a divergência entre o que o modelo faz e o que ele diz que faz."],"leitura":"Circuito que calcula e circuito que explica são a mesma coisa? Sim visto de dois ângulos, não são distintos, ou sim porque um é cópia do outro."},{"pergunta":"Qual é a consequência prática correta para o seu trabalho?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Raciocínio verbalizado é registro de execução e serve como auditoria do processo interno","Raciocínio verbalizado é evidência fraca sobre o processo interno, e conclusões devem ser verificadas pelo resultado","Nunca se deve pedir explicação a um modelo, porque a explicação atrapalha a resposta"],"aceita":[],"erros":[{"valor":0,"diag":"Você tratou a explicação como um registro de execução.","corrige":"A explicação é uma saída gerada como qualquer outra. Registro de execução é outra coisa, e o modelo não produz um."},{"valor":2,"diag":"Você foi longe demais e descartou o valor da explicação.","corrige":"A seção diz que ela pode ser fiel e frequentemente é útil. O que ela nega é o estatuto de auditoria."}],"dicas":["A seção fecha com uma recomendação. Ela manda descartar a explicação ou classificá-la de outro jeito?","Classificar de outro jeito: útil, muitas vezes fiel, mas evidência fraca sobre o mecanismo.","E se a explicação não audita o processo, o que resta para verificar uma conclusão?","A resposta é a segunda: trate raciocínio verbalizado como evidência fraca e verifique conclusões pelo resultado, não pela narrativa."],"leitura":"Qual é a consequência prática correta? Que o raciocínio verbalizado é auditoria, que é evidência fraca a ser verificada pelo resultado, ou que nunca se deve pedir explicação."}],"fecho":"O que o modelo faz e o que o modelo diz que faz são coisas diferentes, e o módulo mostra o caso em que isso foi medido. A explicação continua útil, mas mudou de categoria: deixou de ser prova."},{"id":"m7-t3","titulo":"Planejamento, idiomas e as quatro raízes do erro de conta","secao":4,"enunciado":"Dois achados que reorganizam a intuição comum e, em seguida, as razões concretas pelas quais modelos erram aritmética. Ao final, a regra operacional que decorre de tudo isso.","passos":[{"pergunta":"Ao escrever um verso com rima, o que a pesquisa encontrou?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["O modelo ativa candidatos de palavra final antes de começar a linha e constrói a frase até chegar neles","O modelo só escolhe a palavra final quando a geração efetivamente chega naquela posição","A rima aparece por acaso, sem nenhum mecanismo interno dedicado a ela"],"aceita":[],"erros":[{"valor":1,"diag":"Você aplicou a imagem do previsor míope, que decide apenas a posição corrente.","corrige":"É justamente essa imagem que o achado contraria. Procure o que se ativa antes da linha começar."},{"valor":2,"diag":"Você atribuiu a rima ao acaso.","corrige":"Se fosse acaso, não haveria candidatos identificáveis ativos antes do início da linha, e há."}],"dicas":["O título da seção anterior fala em planejamento antecipado. Antecipado em relação a quê?","Em relação à posição em que a palavra planejada será de fato escrita.","Isso significa que a palavra final já está ativa quando a linha começa a ser construída.","A resposta é a primeira: o modelo ativa candidatos de palavra final antes e constrói a frase em direção a eles. É planejamento em algum horizonte, e contraria a imagem do previsor míope."],"leitura":"Ao escrever um verso com rima, o que a pesquisa encontrou? Que o modelo ativa candidatos finais antes da linha, que ele escolhe só ao chegar na posição, ou que a rima é acaso."},{"pergunta":"O que o espaço conceitual compartilhado entre idiomas implica na prática?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Que todo conceito é traduzido internamente para o inglês antes de qualquer processamento","Que os mesmos circuitos representam o conceito antes da tradução para a língua de saída, e por isso conhecimento transfere entre idiomas","Que cada idioma possui um conjunto independente de circuitos, treinado separadamente"],"aceita":[],"erros":[{"valor":0,"diag":"Você transformou espaço compartilhado em tradução obrigatória para um idioma específico.","corrige":"A seção fala de representação comum do conceito, o que não é o mesmo que passar por uma língua intermediária."},{"valor":2,"diag":"Você supôs circuitos separados por idioma.","corrige":"Se fossem separados, o conhecimento aprendido em um idioma não apareceria no outro, e ele aparece."}],"dicas":["O achado é que os mesmos circuitos se ativam independentemente do idioma da pergunta. O que isso permite?","Permite que aquilo que foi aprendido em uma língua esteja disponível quando a pergunta vem em outra.","A tradução para a língua de saída acontece em uma etapa posterior, já perto do fim.","A resposta é a segunda: há uma representação conceitual comum anterior à escolha do idioma de saída, e é por isso que o conhecimento transfere entre línguas."],"leitura":"O que o espaço conceitual compartilhado implica? Tradução interna obrigatória para o inglês, circuitos comuns antes da tradução para a língua de saída, ou circuitos independentes por idioma."},{"pergunta":"Quantas razões concretas para o erro aritmético a seção lista?","tipo":"numero","resposta":4,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":3,"diag":"Você deixou de contar a amostragem, que é a quarta razão.","corrige":"Percorra a seção do início ao fim e conte cada razão numerada, inclusive a última."},{"valor":2,"diag":"Você contou apenas a tokenização e a ausência de laço.","corrige":"Depois dessas duas ainda vêm a natureza dos caminhos aproximados e a amostragem."},{"valor":11,"diag":"Você respondeu o número de etapas do fluxograma final, que é outro assunto.","corrige":"As onze etapas pertencem à síntese do módulo. A pergunta aqui é sobre as causas de erro aritmético."}],"dicas":["O título da seção já traz o número. Qual é ele?","As razões estão numeradas no texto, uma por parágrafo: primeira, segunda, terceira e assim por diante.","São a tokenização, a ausência de laço, a natureza dos caminhos aproximados e a amostragem.","São quatro razões. As três primeiras são estruturais e a quarta é de procedimento, o que a torna a mais fácil de eliminar."],"leitura":"Quantas razões concretas para o erro aritmético a seção lista?"},{"pergunta":"Por que escrever o raciocínio passo a passo melhora de verdade o desempenho em contas?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Porque aumenta o número de camadas disponíveis para aquela pergunta específica","Porque o texto gerado vira memória de trabalho externa, que a arquitetura de profundidade fixa não tem por dentro","Porque reduz automaticamente a temperatura da amostragem"],"aceita":[],"erros":[{"valor":0,"diag":"Você supôs que o modelo ganha profundidade conforme a tarefa.","corrige":"O número de camadas é fixo pela arquitetura e não muda com o prompt."},{"valor":2,"diag":"Você ligou o passo a passo a uma mudança de temperatura.","corrige":"Temperatura é um parâmetro de amostragem definido por fora. Escrever mais não a altera."}],"dicas":["A seção diz que uma passagem pelo modelo tem profundidade fixa e não tem laço interno. O que falta, então?","Falta um lugar para guardar resultados parciais entre iterações de um algoritmo com muitos passos.","O texto já gerado volta como contexto na iteração seguinte, e pode cumprir esse papel.","A resposta é a segunda: o texto gerado funciona como memória de trabalho externa, permitindo que cada passo condicione o seguinte, algo que a passagem única de profundidade fixa não oferece."],"leitura":"Por que escrever o raciocínio passo a passo melhora contas? Porque aumenta as camadas, porque o texto vira memória de trabalho externa, ou porque reduz a temperatura."},{"pergunta":"Qual é a decisão técnica de temperatura para tarefas aritméticas, e por quê?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Temperatura alta, para o modelo explorar mais caminhos de cálculo","Temperatura baixa, próxima de zero, porque a amostragem pode sortear um dígito diferente mesmo com o cálculo interno correto","Indiferente, porque a temperatura não afeta a escolha de dígitos"],"aceita":[],"erros":[{"valor":0,"diag":"Você aplicou a lógica da escrita criativa a uma tarefa exata.","corrige":"Explorar caminhos é bom quando há muitas saídas aceitáveis. Em uma conta, só um dígito serve."},{"valor":2,"diag":"Você supôs que dígitos escapam da amostragem.","corrige":"Dígitos são tokens como quaisquer outros e passam pelo mesmo sorteio."}],"dicas":["A quarta razão de erro é a amostragem. Qual parâmetro controla o quanto ela sorteia?","A temperatura. E o enunciado da seção diz que ela é decisão técnica, não estilística, nesse caso.","Se mesmo o cálculo correto pode ser estragado no sorteio, o que se faz com a temperatura?","A resposta é a segunda: temperatura baixa, próxima de zero, justamente porque um cálculo interno correto ainda pode ser arruinado por um dígito sorteado."],"leitura":"Qual a decisão de temperatura para aritmética? Alta para explorar caminhos, baixa próxima de zero por causa da amostragem, ou indiferente."},{"pergunta":"Qual é a regra operacional completa que a seção deriva para aritmética que importa?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Pedir o passo a passo, usar temperatura baixa e preferir que o modelo chame uma ferramenta de cálculo em vez de calcular internamente","Pedir a resposta direta e confiar na explicação que vier junto","Aumentar a temperatura e comparar várias respostas para escolher a mais frequente"],"aceita":[],"erros":[{"valor":1,"diag":"Você confiou na explicação, que o trilho anterior mostrou não ser auditoria.","corrige":"A explicação pode acompanhar uma conta errada com a mesma fluência de uma certa."},{"valor":2,"diag":"Você propôs votação por amostragem, que a seção não recomenda.","corrige":"Isso multiplica o custo e continua sujeito às três razões estruturais de erro, que não são de amostragem."}],"dicas":["A seção fecha com uma regra que combina três providências. Você já discutiu duas delas neste trilho.","Uma é sobre o formato da resposta, outra é sobre o parâmetro de amostragem, e falta a terceira, sobre quem faz a conta.","A terceira reconhece que a aritmética exata não é o ponto forte da arquitetura e delega a tarefa.","A resposta é a primeira: pedir o passo a passo, usar temperatura baixa e preferir que o modelo chame uma ferramenta de cálculo. As três atacam razões diferentes da lista."],"leitura":"Qual é a regra operacional para aritmética que importa? Passo a passo com temperatura baixa e ferramenta de cálculo, resposta direta confiando na explicação, ou temperatura alta com votação entre respostas."}],"fecho":"Planejamento e transferência entre idiomas mostram que a previsão do próximo token é a interface de treino, não a descrição da computação. E os erros de conta têm causas nomeáveis, três estruturais e uma de procedimento."},{"id":"m7-t4","titulo":"As onze etapas do fluxograma completo, do texto ao token sorteado","secao":5,"enunciado":"A prova final do projeto é narrar o caminho inteiro sem consultar nada. São onze etapas, agrupadas aqui em blocos de duas para conferência. Considere um modelo com 32 blocos.","passos":[{"pergunta":"Etapas um e dois. Como o texto entra no modelo e o que acontece logo em seguida?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["O texto é fatiado pelo tokenizador em índices inteiros, e cada índice busca uma linha na matriz de embeddings","O texto é convertido em vetores contínuos e só depois é fatiado em unidades menores","O texto vira diretamente logits de vocabulário, sem passar por representação intermediária"],"aceita":[],"erros":[{"valor":1,"diag":"Você inverteu a ordem: vetorizou antes de fatiar.","corrige":"Pense no que a matriz de embeddings recebe como entrada. Ela é indexada por quê?"},{"valor":2,"diag":"Você pulou todo o interior do modelo e foi direto ao final.","corrige":"Logits são o penúltimo produto do caminho, não o primeiro. Comece pelo tokenizador."}],"dicas":["Antes de qualquer conta com números reais, o texto precisa virar algo que uma matriz consiga indexar. O quê?","Índices inteiros, produzidos pelo tokenizador. A matriz de embeddings é consultada por linha.","Cada índice seleciona uma linha, e essa linha é o vetor de dimensão d que representa o token.","A resposta é a primeira: tokenização em índices inteiros e, em seguida, busca da linha correspondente na matriz de embeddings."],"leitura":"Etapas um e dois. Como o texto entra? Fatiado em índices que buscam linhas na matriz de embeddings, vetorizado antes de fatiado, ou convertido direto em logits."},{"pergunta":"Etapas três e quatro. O que acontece entre o vetor de embedding e o cálculo da atenção?","tipo":"escolha","resposta":2,"tol":0.0001,"opcoes":["O vetor é normalizado e imediatamente multiplicado pela matriz de saída do vocabulário","O vetor é somado ao vetor da posição seguinte e depois dividido pela raiz de d k","A codificação posicional é somada e, dentro do bloco, o vetor é normalizado e projetado em consulta, chave e valor"],"aceita":[],"erros":[{"valor":0,"diag":"Você saltou para a projeção final, que só acontece depois de todos os blocos.","corrige":"A matriz de saída do vocabulário é a última etapa da passagem, não a quarta."},{"valor":1,"diag":"Você misturou a soma posicional com a escala da atenção.","corrige":"A raiz de d k aparece mais adiante, na escala das pontuações. A soma aqui é com a codificação posicional."}],"dicas":["O que falta ao vetor de embedding sozinho, antes que ele possa distinguir a ordem das palavras?","Falta informação de posição, que é somada ao embedding. Só então ele entra no primeiro bloco.","Dentro do bloco, antes de qualquer atenção, o vetor é normalizado e projetado por três matrizes aprendidas.","A resposta é a terceira: soma da codificação posicional e, dentro do bloco, normalização seguida de projeção em consulta, chave e valor."],"leitura":"Etapas três e quatro. O que acontece entre o embedding e a atenção? Normalização e projeção final, soma com a posição seguinte, ou soma da codificação posicional com normalização e projeção em consulta chave e valor."},{"pergunta":"Etapas cinco e seis. Como as pontuações de atenção nascem e o que as transforma em pesos?","tipo":"escolha","resposta":1,"tol":0.0001,"opcoes":["Vêm da soma entre consultas e valores, e uma normalização de camada as transforma em pesos","Vêm do produto escalar entre consultas e chaves, escaladas pela raiz de d k e mascaradas para o futuro, e o softmax converte cada linha em pesos que somam um","Vêm da multiplicação entre chaves e valores, e a temperatura as transforma em pesos"],"aceita":[],"erros":[{"valor":0,"diag":"Você trocou chave por valor e softmax por normalização de camada.","corrige":"Consulta compara com chave. Valor entra depois, quando os pesos já existem."},{"valor":2,"diag":"Você juntou chave e valor no mesmo produto e trouxe a temperatura para dentro da atenção.","corrige":"A temperatura pertence à última etapa, sobre os logits do vocabulário, não à atenção."}],"dicas":["Qual par de projeções é comparado para medir relevância entre posições?","Consulta contra chave, por produto escalar. Depois vêm a escala e a máscara causal.","A escala é pela raiz de d k, a máscara bloqueia o futuro, e falta dizer o que normaliza cada linha.","A resposta é a segunda: produto escalar entre consultas e chaves, escalado pela raiz de d k, mascarado para o futuro, e softmax por linha produzindo pesos que somam um."],"leitura":"Etapas cinco e seis. Como nascem as pontuações de atenção e o que as vira pesos? Soma de consultas e valores com normalização de camada, produto escalar de consultas e chaves escalado e mascarado com softmax por linha, ou multiplicação de chaves e valores com temperatura."},{"pergunta":"Etapas sete e oito. O que os pesos produzem e o que acontece com esse resultado em seguida?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Produzem uma média ponderada dos valores, e o resultado é somado de volta à entrada pela conexão residual","Produzem um novo conjunto de chaves, que substitui o anterior no cache","Produzem diretamente os logits daquela posição, que já podem ser sorteados"],"aceita":[],"erros":[{"valor":1,"diag":"Você confundiu a saída da atenção com a manutenção do cache.","corrige":"O cache guarda chaves e valores já calculados. A saída da atenção é outra coisa, e ela combina os valores."},{"valor":2,"diag":"Você antecipou a projeção final para dentro do bloco.","corrige":"Ainda faltam o MLP e dezenas de blocos antes que os logits apareçam."}],"dicas":["Se os pesos somam um e existe um vetor de valor por posição, que operação natural eles permitem?","Uma média ponderada dos valores, com os pesos vindos do softmax.","Depois disso, o resultado não substitui a entrada do bloco: ele se junta a ela.","A resposta é a primeira: média ponderada dos valores e soma de volta à entrada pela conexão residual, que preserva o caminho original."],"leitura":"Etapas sete e oito. O que os pesos produzem e o que vem depois? Média ponderada dos valores somada de volta pela residual, um novo conjunto de chaves para o cache, ou os logits daquela posição."},{"pergunta":"Etapa nove, o MLP com a sua própria conexão residual. Em um modelo de 32 blocos, com duas somas residuais por bloco, quantas somas residuais o vetor atravessa da entrada até a projeção final?","tipo":"numero","resposta":64,"tol":0.0001,"opcoes":[],"aceita":[],"erros":[{"valor":32,"diag":"Você contou uma conexão residual por bloco.","corrige":"Releia a descrição do bloco: a atenção tem a sua residual e o MLP tem outra."},{"valor":34,"diag":"Você somou dois ao número de blocos em vez de multiplicar.","corrige":"Cada bloco contribui com duas somas, e isso se repete em todos eles."},{"valor":2,"diag":"Você respondeu quantas residuais existem em um bloco só.","corrige":"A pergunta cobre o caminho inteiro, do primeiro bloco ao último."}],"dicas":["Quantas conexões residuais existem dentro de um único bloco, segundo a descrição da síntese?","Duas: uma depois da atenção e outra depois do MLP.","Monte assim: 32 blocos vezes duas somas residuais por bloco. Falta executar.","32 vezes dois dá 64 somas residuais. É essa via contínua que permite o gradiente atravessar dezenas de blocos sem se dissolver."],"leitura":"Em um modelo de trinta e dois blocos, com duas somas residuais por bloco, quantas somas residuais o vetor atravessa até a projeção final?"},{"pergunta":"Etapa dez. Terminados todos os blocos, o que é feito com o estado da última posição?","tipo":"escolha","resposta":2,"tol":0.0001,"opcoes":["Ele é devolvido ao primeiro bloco para uma segunda volta completa","Ele é comparado com o embedding de entrada para medir o quanto mudou","Ele é multiplicado pela matriz de saída, produzindo um logit por token do vocabulário"],"aceita":[],"erros":[{"valor":0,"diag":"Você criou um laço interno que a arquitetura não tem.","corrige":"A passagem tem profundidade fixa. A repetição que existe é o laço externo do próximo token, não uma segunda volta pelos blocos."},{"valor":1,"diag":"Você inventou uma comparação com a entrada que não faz parte do caminho.","corrige":"O que se quer no final é uma pontuação para cada token possível do vocabulário."}],"dicas":["Depois de todos os blocos, o que precisa existir para que uma escolha de token seja possível?","Precisa existir uma pontuação por token do vocabulário, ou seja, um logit para cada candidato.","Isso se obtém multiplicando o estado final por uma matriz cuja saída tem o tamanho do vocabulário.","A resposta é a terceira: o estado da última posição é multiplicado pela matriz de saída, produzindo um logit por token do vocabulário."],"leitura":"Etapa dez. O que é feito com o estado da última posição depois de todos os blocos? Devolvido ao primeiro bloco, comparado com o embedding de entrada, ou multiplicado pela matriz de saída gerando um logit por token."},{"pergunta":"Etapa onze, a última. Qual é a sequência correta que fecha o caminho e recomeça o laço?","tipo":"escolha","resposta":0,"tol":0.0001,"opcoes":["Softmax com temperatura, corte por top-k ou top-p, sorteio do token, anexação à sequência e recomeço","Sorteio do token, softmax com temperatura, corte da cauda e recomeço","Corte por top-p, anexação à sequência, softmax com temperatura e sorteio"],"aceita":[],"erros":[{"valor":1,"diag":"Você sorteou antes de existir uma distribuição de probabilidade.","corrige":"Não há como sortear a partir de logits crus. Alguma etapa precisa transformá-los em probabilidades primeiro."},{"valor":2,"diag":"Você anexou o token à sequência antes de ele ter sido escolhido.","corrige":"Anexar é sempre a última coisa, depois que o token existe."}],"dicas":["Você tem logits em mãos. Em que ordem lógica as operações finais precisam acontecer?","Primeiro logits viram probabilidades, depois a cauda é cortada, depois se sorteia, e só então o token existe.","A temperatura age junto com o softmax, achatando ou concentrando a distribuição antes do corte.","A resposta é a primeira: softmax com temperatura, corte por top-k ou top-p, sorteio, anexação à sequência e recomeço do laço com um token a mais."],"leitura":"Etapa onze. Qual a sequência correta que fecha o caminho? Softmax com temperatura, corte da cauda, sorteio, anexação e recomeço. Ou sorteio antes do softmax. Ou anexação antes do sorteio."}],"fecho":"Do texto de entrada ao token sorteado, são onze etapas e nenhuma delas é misteriosa. Quando você conseguir narrar isso em voz alta, com suas palavras, o Projeto Axioma cumpriu o que prometeu."}],"duvidas":[{"p":"Se eu já conheço a arquitetura do Transformer, para que serve a interpretabilidade?","chaves":["interpretabilidade","arquitetura","para que serve","necessária","por que"],"r":"Porque a arquitetura define apenas o formato do cálculo, e não as estratégias que o treino colocou dentro dos parâmetros. Saber que existem matrizes de consulta, chave e valor não diz qual método o modelo usa para somar dois números. Essas estratégias emergem do treino, ninguém as projetou, e só aparecem quando alguém vai investigar os circuitos internos de um modelo em funcionamento. A interpretabilidade substitui suposição sobre comportamento por evidência sobre mecanismo.","secao":0},{"p":"Posso confiar na explicação passo a passo que o modelo dá do próprio raciocínio?","chaves":["confiar","explicação","passo a passo","raciocínio","cadeia de pensamento"],"r":"Como texto útil, muitas vezes sim. Como registro do que aconteceu por dentro, não. A explicação é uma saída gerada pelos mesmos mecanismos de previsão que produzem qualquer outro texto, aprendida de como humanos explicam esse tipo de coisa. Ela pode ser fiel, e frequentemente ajuda a organizar a resposta, mas não é auditoria. Verifique conclusões pelo resultado, não pela narrativa que as acompanha.","secao":2},{"p":"Quando o modelo explica errado como fez a conta, ele está mentindo?","chaves":["mentindo","mentira","explica errado","racionalização","intenção"],"r":"Não no sentido intencional. Ele aprendeu, dos textos humanos, como se explica uma soma, e é exatamente isso que produz quando o pedido é explicar. O circuito que calcula e o circuito que explica são distintos, então a descrição pode não corresponder ao processo sem que exista qualquer intenção de enganar. O nome adequado para o fenômeno é racionalização: uma justificativa plausível construída depois do fato.","secao":2},{"p":"Quais são os dois caminhos que a pesquisa encontrou na soma 36 mais 59?","chaves":["dois caminhos","36 mais 59","soma","aritmética","paralelos"],"r":"Um caminho aproximado, que estima grosseiramente a magnitude do resultado, algo perto de noventa e cinco, e um caminho preciso e estreito, que calcula com exatidão o último dígito da soma. Os dois rodam ao mesmo tempo e se combinam no final para produzir a resposta correta. Nada nisso lembra o algoritmo escolar de somar coluna por coluna com transporte: o modelo montou um método próprio, adequado à maquinaria de que dispõe.","secao":1},{"p":"Se o modelo só prevê o próximo token, como ele pode planejar alguma coisa?","chaves":["prevê próximo token","planejar","planejamento","rima","míope"],"r":"A previsão do próximo token é o objetivo de treino, não a descrição completa da computação interna. Ao escrever versos com rima, o modelo ativa candidatos de palavra final antes de começar a linha e constrói a frase em direção a eles. Isso é planejamento em algum horizonte, ainda que a saída seja emitida um token por vez. Objetivo de treino e mecanismo interno são coisas diferentes, e confundir os dois é a origem de boa parte das intuições erradas sobre esses modelos.","secao":3},{"p":"Perguntar em português dá uma resposta pior do que perguntar em inglês?","chaves":["português","inglês","idioma","língua","traduz","multilíngue"],"r":"Não pela razão que costumam supor. A pesquisa encontrou indício de um espaço conceitual compartilhado entre línguas: os mesmos circuitos internos se ativam para um conceito independentemente do idioma da pergunta, e a tradução para a língua de saída acontece em uma etapa posterior. É por isso que conhecimento adquirido em um idioma transfere para outro. Diferenças de qualidade, quando existem, vêm da quantidade de material de cada língua no treino, não de o modelo pensar em uma língua específica.","secao":3},{"p":"Por que modelos tão capazes erram contas que uma calculadora de bolso acerta?","chaves":["erram contas","aritmética","erro","calculadora","razões"],"r":"Por quatro razões concretas. A tokenização fatia números em pedaços arbitrários, então o modelo nunca vê quantidade, vê símbolos. A passagem tem profundidade fixa e não tem laço interno, o que impede algoritmos exatos de muitos passos dentro de uma única passagem. As estratégias internas são aproximadas e degradam fora da faixa de números frequente no treino. E a amostragem pode sortear um dígito diferente mesmo com o cálculo interno correto. As três primeiras são estruturais, a quarta é de procedimento.","secao":4},{"p":"Por que pedir o passo a passo melhora tanto o resultado em contas?","chaves":["passo a passo","melhora","cadeia","memória de trabalho","por que funciona"],"r":"Porque a arquitetura não tem laço interno nem memória de trabalho dentro de uma passagem: a profundidade é fixa. Ao escrever o raciocínio, o modelo transforma o próprio texto gerado em memória de trabalho externa, já que ele volta como contexto na iteração seguinte. Cada passo escrito condiciona o próximo, e o algoritmo de muitos passos que não cabia em uma passagem passa a caber ao longo de várias. É por isso que a melhora é real, e não estilística.","secao":4},{"p":"Qual temperatura devo usar quando peço cálculo ao modelo?","chaves":["temperatura","cálculo","aritmética","qual usar","baixa","zero"],"r":"Baixa, próxima de zero. Dígitos são tokens como quaisquer outros e passam pelo mesmo sorteio da amostragem, de modo que um cálculo interno correto ainda pode ser arruinado na saída. Em tarefas exatas, temperatura baixa é decisão técnica e não escolha de estilo. Em tarefas em que várias saídas são igualmente aceitáveis, como escrita criativa, a lógica se inverte.","secao":4},{"p":"Devo deixar o modelo calcular ou pedir que ele use uma ferramenta?","chaves":["ferramenta","calculadora","chamar","delegar","cálculo","recomendação"],"r":"Para aritmética que importa, prefira a ferramenta. A regra operacional que decorre do módulo tem três partes: peça o passo a passo, use temperatura baixa e prefira que o modelo chame uma ferramenta de cálculo em vez de calcular internamente. Cada parte ataca uma razão diferente da lista de erros. A terceira é a mais eficaz, porque simplesmente retira a conta de um mecanismo que não foi construído para fazer aritmética exata.","secao":4},{"p":"O que quer dizer que o modelo é cultivado e não construído?","chaves":["cultivado","construído","biologia","analogia","microscopia"],"r":"É a analogia usada pela própria linha de pesquisa. A arquitetura é projetada, mas os bilhões de parâmetros são preenchidos pelo treino, com estratégias que ninguém escreveu e que precisam ser descobertas depois. Estudar os mecanismos internos se parece mais com microscopia do que com leitura de código-fonte: você observa um sistema que cresceu, e não um sistema cujas regras alguém redigiu linha a linha.","secao":0},{"p":"Cadeia de pensamento serve como auditoria do que o modelo fez por dentro?","chaves":["cadeia de pensamento","auditoria","registro","verificar","prova"],"r":"Não. Auditoria pressupõe um registro de execução, e o modelo não produz registro nenhum: ele produz texto. A cadeia de pensamento é gerada pelo mesmo mecanismo de previsão que gera a resposta final, e o caso da soma mostra que ela pode descrever com fluência um método que não foi usado. Trate-a como evidência fraca sobre o processo interno, útil para organizar o trabalho e para você encontrar erros de premissa, mas não como prova.","secao":2},{"p":"Quais são as onze etapas do fluxograma completo, na ordem?","chaves":["onze etapas","fluxograma","ordem","síntese","caminho completo"],"r":"Tokenização em índices inteiros, busca da linha na matriz de embeddings, soma da codificação posicional, normalização e projeção em consulta, chave e valor, pontuações de atenção por produto escalar escaladas pela raiz de d k e mascaradas, softmax por linha gerando pesos que somam um, média ponderada dos valores, conexão residual, MLP com nova residual, repetição do bloco por dezenas de vezes seguida da projeção final para logits, e por fim softmax com temperatura, corte por top-k ou top-p, sorteio, anexação e recomeço. Conseguir narrar isso sem consultar é a prova final da trilha.","secao":5},{"p":"Qual a diferença entre o softmax da atenção e o softmax do final?","chaves":["softmax","diferença","atenção","final","temperatura","logits"],"r":"São a mesma operação matemática aplicada a coisas diferentes. Na atenção, ele age sobre cada linha da matriz de pontuações e produz pesos que somam um, usados para promediar os vetores de valor das posições. No final, ele age sobre os logits do vocabulário e produz a distribuição de probabilidade da qual o próximo token será sorteado. Só o segundo recebe temperatura, e só o segundo é seguido de corte da cauda e sorteio.","secao":5},{"p":"O que é um circuito interno, nesse contexto de interpretabilidade?","chaves":["circuito","interno","o que é","características","rastrear"],"r":"É um conjunto identificável de componentes internos que trabalham juntos para cumprir uma função específica durante uma resposta, como estimar a magnitude de uma soma ou representar um conceito antes da escolha do idioma de saída. As ferramentas de interpretabilidade rastreiam quais desses conjuntos se ativam em cada caso concreto. É por isso que se pode afirmar que o circuito que calcula e o circuito que explica são distintos: eles foram observados separadamente.","secao":0}]}}}