Em uma das aulas me perguntaram como um LLM gera um token. A resposta é interessante porque mostra que, por trás de uma conversa aparentemente natural, existe um processo inteiramente matemático.
Para entender o que acontece “embaixo do capô” de um modelo de linguagem, precisamos esquecer, por um momento, as palavras e pensar em geometria. Um LLM não manipula linguagem da forma como nós fazemos. Durante a inferência, ele opera sobre representações vetoriais aprendidas durante o treinamento, realizando sucessivas transformações matemáticas que preservam relações estatísticas entre os tokens.
O nascimento de um único token, que pode ser uma palavra inteira, parte dela ou até um sinal de pontuação, pode ser entendido como uma sequência de seis etapas.
A primeira é o embedding, ou tradução para o espaço vetorial. O texto digitado é inicialmente dividido em tokens. Cada token é convertido em uma longa lista de números reais, formando um vetor que representa sua posição em um espaço de milhares de dimensões. Durante o treinamento, o modelo aprende uma representação na qual tokens que costumam aparecer em contextos semelhantes tendem a ocupar regiões próximas desse espaço vetorial. Não existe uma dimensão chamada “economia”, outra chamada “gato” ou “Python”. O significado fica distribuído simultaneamente por milhares de dimensões. Esse vetor inicial serve apenas como ponto de partida. À medida que atravessa as camadas do Transformer, ele é continuamente transformado e enriquecido pelo contexto.
A segunda etapa é o mecanismo de atenção. Agora o modelo precisa entender o contexto da sequência. Para isso, cada token gera três representações internas conhecidas como Query, Key e Value. As Queries são comparadas com as Keys dos demais tokens por meio de produtos escalares, produzindo pesos que indicam quanto cada palavra deve influenciar as outras. Quanto maior esse alinhamento, maior tende a ser sua influência.
O resultado é que cada representação passa a incorporar, em diferentes proporções, informações provenientes dos demais tokens da frase. Assim, a palavra “banco” aproxima-se do contexto financeiro quando aparece próxima de “dinheiro” ou do contexto de um assento quando surge ao lado de “praça”. É justamente essa capacidade de reinterpretar continuamente o significado de um token conforme o contexto que tornou a arquitetura Transformer tão revolucionária.
Depois vem a terceira etapa: a rede feed-forward. Após incorporar o contexto, essas representações atravessam diversas camadas de processamento. Em cada uma delas, os vetores são transformados por grandes matrizes de pesos aprendidos durante o treinamento e por funções matemáticas não lineares. Além disso, entram em ação as conexões residuais, que preservam parte da informação já construída e facilitam o treinamento de redes extremamente profundas. Cada camada produz uma representação interna progressivamente mais rica e mais adequada para prever o próximo token.
Todo esse processamento gera um novo vetor que chega à quarta etapa: os logits. Nesse momento, o modelo precisa voltar do espaço vetorial para o seu vocabulário. Para isso, projeta essa representação final sobre todos os tokens que conhece. O resultado é uma lista de escores, chamados logits. Cada token recebe uma pontuação indicando o quanto é compatível com o contexto processado até aquele instante. Esses valores ainda não representam probabilidades; são apenas medidas relativas de preferência.
Na quinta etapa entra a Softmax. Antes dela, os logits podem ser ajustados por parâmetros como a temperatura. Temperaturas mais baixas tornam a distribuição mais concentrada nos tokens mais prováveis, produzindo respostas mais previsíveis. Temperaturas mais altas distribuem melhor as probabilidades, aumentando a diversidade das respostas.
Em seguida, a função Softmax transforma os logits em uma distribuição de probabilidades. Ela aplica uma exponenciação aos escores e depois os normaliza, fazendo com que pequenas diferenças entre logits se convertam em diferenças maiores nas probabilidades finais. O resultado é uma distribuição cuja soma das probabilidades é exatamente 100%.
Também podem ser aplicados filtros como Top-K e Top-P, que restringem a escolha aos candidatos considerados mais plausíveis, reduzindo a probabilidade de selecionar tokens pouco compatíveis com o contexto.
Finalmente chegamos à sexta etapa: a amostragem. Dependendo da configuração escolhida, o modelo pode simplesmente selecionar o token mais provável ou realizar uma amostragem baseada na distribuição de probabilidades calculada. O token escolhido é então acrescentado ao final do texto e todo o processo recomeça. O novo token passa a fazer parte do contexto, influenciando a geração do próximo. Esse ciclo se repete dezenas ou centenas de vezes até formar uma resposta completa.
O aspecto mais curioso é que, em nenhum momento, o modelo consulta regras explícitas de gramática, lógica ou conhecimento de mundo. Isso não significa que essas propriedades estejam ausentes. Elas emergem das representações estatísticas aprendidas durante o treinamento. Ao aprender repetidamente a prever o próximo token em enormes volumes de texto, o modelo constrói representações internas extremamente ricas da linguagem, dos conceitos e dos padrões presentes nos dados.
No fim das contas, toda conversa com um LLM é resultado de uma quantidade gigantesca de operações matemáticas executadas em frações de segundo. Para produzir um único token, um modelo de fronteira realiza um número extremamente elevado de operações aritméticas, frequentemente da ordem de dezenas ou centenas de bilhões de FLOPs, dependendo da arquitetura, do número de parâmetros efetivamente utilizados e das otimizações de inferência. Em uma resposta com algumas centenas de tokens, o volume total pode facilmente atingir dezenas ou centenas de trilhões de cálculos. Tudo isso acontece em poucos segundos graças ao processamento paralelo de milhares de GPUs.
O resultado é tão convincente que frequentemente temos a impressão de estar diante de um sistema que raciocina. Esse talvez seja o aspecto mais fascinante dos LLMs. A partir de operações relativamente simples da álgebra linear, multiplicações de matrizes, produtos escalares, projeções em espaços vetoriais e funções de ativação, repetidas bilhões de vezes sobre enormes volumes de dados, emerge um comportamento que percebemos como linguagem, conhecimento e até raciocínio. Não existe um módulo interno responsável por “entender” o texto. O que existe é uma sequência gigantesca de transformações matemáticas que preservam e refinam relações estatísticas aprendidas durante o treinamento. É justamente dessa combinação entre escala, otimização e representação distribuída que surge a capacidade surpreendente desses modelos de produzir respostas que, para nós, parecem inteligentes.



