23 pontos por GN⁺ 2025-12-23 | 1 comentários | Compartilhar no WhatsApp
  • Explica visualmente a estrutura e o princípio de funcionamento do modelo Transformer, mostrando como o mecanismo de atenção melhora o aprendizado em paralelo e o desempenho em tradução
  • O modelo é composto por uma pilha de codificadores e decodificadores, e cada codificador é formado por duas camadas: self-attention e rede neural feedforward
  • Explica passo a passo o processo de cálculo da self-attention no nível de vetores e matrizes, e o expande com multi-head attention para aprender diferentes espaços de representação
  • Visualiza de forma concreta componentes centrais como codificação posicional, conexões residuais, normalização de camada e a atenção com mascaramento no decodificador
  • Este texto é um material de referência que ajuda a entender com facilidade os conceitos básicos do Transformer e também é usado em aulas e materiais didáticos de universidades importantes como MIT e Stanford

Visão geral do Transformer

  • O Transformer é um modelo de tradução automática neural baseado em atenção e apresenta desempenho superior ao do Google Neural Machine Translation em certas tarefas
    • Sua principal vantagem é a facilidade de paralelização, e ele é recomendado como modelo de referência para o Google Cloud TPU
  • O modelo é composto por uma pilha de codificadores e decodificadores, e cada codificador tem a mesma estrutura, mas não compartilha pesos
  • A entrada do codificador passa por uma camada de self-attention para integrar informações de contexto e depois por uma rede neural feedforward
  • Além da estrutura do codificador, o decodificador inclui uma camada de atenção codificador-decodificador para focar nas partes relevantes da frase de entrada

Fluxo de tensores e embeddings

  • A frase de entrada é convertida em vetores de 512 dimensões para cada palavra por meio de um algoritmo de word embedding
  • Cada camada do codificador recebe e processa uma lista de vetores do mesmo tamanho, e o comprimento da frase é definido como um hiperparâmetro
  • Como a camada feedforward processa independentemente o vetor de cada posição, operações paralelas são possíveis

Conceito de self-attention

  • A self-attention permite que cada palavra consulte outras palavras da frase para aprender uma representação melhor
    • Exemplo: em “The animal didn’t cross the street because it was too tired”, “it” está relacionado a “animal”
  • Diferentemente da manutenção de estados ocultos em RNNs, o Transformer integra informações de contexto com self-attention

Etapas de cálculo da self-attention

  • A partir de cada embedding de palavra, são gerados vetores Query, Key e Value (dimensão 64)
  • O produto escalar (dot product) entre Query e Key calcula a pontuação de relevância entre as palavras
  • As pontuações são divididas por √64 e depois passam por softmax para serem normalizadas como uma distribuição de probabilidade
  • Cada vetor Value é ponderado pelas pontuações do softmax e somado para gerar a saída final da atenção
  • Na implementação real, esse processo é feito com operações matriciais para aumentar a eficiência

Multi-head attention

  • Usa várias cabeças de atenção (8 por padrão) para aprender diferentes espaços de representação
    • Cada cabeça tem matrizes de pesos Q/K/V independentes
  • As saídas de várias cabeças são concatenadas (concat) e depois combinadas com uma matriz de pesos adicional, WO
  • Com isso, o modelo consegue captar simultaneamente vários aspectos do contexto

Codificação posicional

  • Como o Transformer não processa diretamente a ordem, ele soma um vetor de posição ao embedding de cada palavra
  • O vetor de posição é gerado usando funções seno (sin) e cosseno (cos), fornecendo informações sobre a distância relativa entre palavras
  • Esse método também pode ser expandido para frases maiores do que as do conjunto de treinamento
  • A atualização de 2020 também apresentou uma forma de intercalar (interleave) os dois sinais

Conexões residuais e normalização

  • Cada subcamada (self-attention, feedforward) recebe conexão residual (residual connection) e normalização de camada (layer normalization)
  • Essa estrutura ajuda a evitar o desaparecimento do gradiente e a melhorar a estabilidade do treinamento

Estrutura do decodificador

  • O decodificador recebe vetores Key/Value da saída do codificador para realizar atenção codificador-decodificador
  • Com masking, ele é impedido de consultar palavras futuras
  • No final, uma camada Linear e uma camada Softmax geram a distribuição de probabilidade das palavras
    • Exemplo: se o vocabulário tiver 10.000 termos, cada vetor de saída será convertido em uma distribuição de probabilidade de 10.000 dimensões

Treinamento e função de perda

  • Durante o treinamento, a distribuição de probabilidade produzida pelo modelo é comparada com a distribuição correta (codificação one-hot)
  • Usa-se cross-entropy ou divergência KL para calcular o erro e ajustar os pesos com retropropagação
  • O beam search mantém várias traduções candidatas para aumentar a precisão

Pesquisas posteriores e materiais de referência

  • Artigos relacionados: Attention Is All You Need, Training Tips for the Transformer Model, Self-Attention with Relative Position Representations etc.
  • Materiais de implementação: pacote Tensor2Tensor, guia Harvard NLP em PyTorch, Colab Notebook
  • O Transformer depois evoluiu para uma versão expandida em LLM-book.com (Chapter 3), cobrindo modelos mais recentes como Multi-Query Attention e embeddings posicionais RoPE

Conclusão

  • O Transformer, com sua arquitetura baseada em atenção e passível de paralelização, tornou-se um modelo central do deep learning moderno
  • Este texto é um material de referência representativo que explica visualmente a estrutura, a matemática e a intuição do Transformer e é usado como leitura de apoio em aulas de universidades importantes como Stanford, MIT e Harvard

1 comentários

 
GN⁺ 2025-12-23
Comentários no Hacker News
  • Li este texto quando estava aprendendo o básico de transformers. As visualizações ajudaram muito
    Mas, no trabalho real de aplicar LLMs, conhecer a arquitetura de transformers quase não teve utilidade. Ainda assim, ter uma noção vaga de como funciona por dentro trazia uma sensação de segurança psicológica
    Tentar explicar o comportamento de LLMs pela arquitetura é uma armadilha, porque os modelos mais recentes exibem fenômenos emergentes imprevisíveis por causa de reforço de aprendizado e afins
    Antigamente eu tinha certeza de que LLMs nunca seriam bons em matemática ou programação, e eu estava completamente errado. No fim, há um limite para inferir as capacidades de um modelo apenas pela arquitetura
    Nas férias, estou revisando o assunto implementando um transformer em PyTorch por conta própria. É interessante e divertido
    Para começar, recomendo o material LLMs from Scratch, do Sebastian Raschka.
    Se alguém aqui já leu o livro do Jay Alammar lançado em 2024, queria saber se ele continua recomendável sob uma perspectiva mais atual

    • Também concordo, mas penso diferente em alguns pontos. Trabalhando como engenheiro de IA, quase nunca preciso usar deep learning “clássico” diretamente, mas acredito que a capacidade de entender profundamente o interior de LLMs é o que separa os engenheiros do top 1%
      Porque isso dá uma intuição melhor para perceber as limitações do modelo. Foi um conselho que ouvi diretamente do Clem Delangue, da Hugging Face, e depois disso estudei a fundo a arquitetura de LLMs, o que me ajudou muito
      Dou o mesmo conselho para formados em bootcamp de programação — dá para trabalhar só com Python e React, mas entender arquitetura de computadores e linguagens de baixo nível faz de você um desenvolvedor muito mais forte no longo prazo
    • Acho que o problema é que a maioria dos tutoriais explica o mecanismo de attention com foco em palavras. Na prática, dentro do transformer não existem tokens que correspondam diretamente a palavras
      Tokens não são pedaços de palavras, e processamento de linguagem ou de imagem só tem significado na etapa de entrada. Acho que esse mal-entendido ajudou a subestimar o potencial dos transformers
    • Um exemplo de por que uma compreensão básica importa: no HN, muita gente reclama que LLMs geram comentários demais no código
      Mas isso na verdade melhora a qualidade do código. Graças ao positional encoding em um causal transformer, o modelo consegue deixar tokens temporários para raciocínio local e esquecê-los facilmente depois
      Ou seja, funciona como uma espécie de bloco de rascunho descartável. A solução é fazer pós-processamento da saída do LLM, e não fazer o modelo suprimir a geração de comentários
    • Há um bom vídeo do Welch Labs sobre mechanistic interpretability: link no YouTube
    • Tenho a sensação de que a visão das pessoas sobre LLMs se divide em três grupos
      1. quem acredita que LLM é um gerador simples e inútil
      2. quem acredita que a AGI já foi alcançada
      3. quem acredita que LLMs vão destruir o mundo em até 5 anos
        Desde o lançamento do ChatGPT, a proporção entre esses três grupos quase não mudou, e raramente alguém é convencido por evidências
  • As visualizações da equipe do Transformer Explainer foram realmente excelentes.
    Ver Transformer Explainer junto com o vídeo do 3blue1brown deixa o entendimento bem mais claro

    • Foi um dos melhores materiais de visualização que já vi até hoje
  • Em um comentário deixado pelo próprio autor Jay Alammar, ele apresenta outros bons materiais para aprender transformers
    Link relacionado

  • Já existem explicações demais sobre transformers, a ponto de isso parecer um tutorial de mônadas.
    Algumas pessoas acham que tiveram uma epifania, mas na prática continuam confusas e ainda assim saem compartilhando isso amplamente

    • Mesmo assim, ainda acho que este post de blog é uma das explicações mais claras sobre transformers
    • Não há motivo para existir só uma única explicação na internet. Basta encontrar a que combina com você
      Ao aprender conceitos de matemática ou engenharia eletrônica, a primeira explicação costuma ser difícil, mas ao ver várias versões a compreensão acaba se aprofundando
  • Talvez eu esteja defasado, mas fico me perguntando se transformers substituíram completamente arquiteturas de deep learning existentes como U-net

    • De forma alguma. A obsessão exagerada por transformers não é sustentada pelos dados reais de desempenho
      Por exemplo, CNNs continuam muito fortes e, especialmente em tarefas de visão especializadas como imagens médicas, podem ser mais adequadas
      Em modelos invariantes à rotação, redes neurais em grafos, modelos de point cloud e afins, transformers podem até ser inadequados
      Ou seja, ainda existem várias arquiteturas alternativas
      Artigo relacionado: CNNs can still do just as well
  • Tenho esse livro, e ele foi realmente uma tábua de salvação quando a equipe decidiu introduzir LLMs no sistema

    • Mas não acho que seja necessário entender a arquitetura de transformers para lidar com LLMs
      LLMs são, no fim das contas, sistemas sintéticos que imitam raciocínio humano, então mesmo conhecendo a estrutura interna é difícil prever padrões de erro
      É mais importante ganhar sensibilidade por meio de experiência e experimentação
  • Acho que o interior dos transformers acabará se tornando menos importante, como o interior de compiladores.
    A maioria dos desenvolvedores vai se interessar mais por “como usar” do que pela implementação interna

    • Na prática, muitos profissionais usam LLMs sem nem conhecer conceitos básicos de machine learning. É raro até encontrar quem saiba a diferença entre bias e variance
    • Mas alguém ainda precisa entender isso a fundo. Para avançar e manter o estado da arte, são necessários especialistas que conheçam a estrutura interna
      Assim como sistemas operacionais, compiladores e hardware como GPU/TPU precisam continuar evoluindo, transformers também precisam ser continuamente melhorados, então o papel de quem domina esse conhecimento se torna ainda mais importante
  • Excelente texto, e parece ter inspirado o projeto recente Illustrated Evo 2
    Link para o blog da NVIDIA Research

  • As pessoas tratam Key/Query/Value como se fossem conceitos especiais, mas no fundo o transformer é apenas uma estrutura expandida de multiplicação de matrizes
    Se uma camada de rede neural comum faz matrix * input, o transformer calcula input * MatrixA, input * MatrixB, input * MatrixC e combina os resultados
    No fim, tudo é uma repetição de operações com matrizes. Para mais detalhes, veja o blog do PyTorch

    • Eu penso em convolution como um modelo mental para o mecanismo K/Q/V.
      Attention também é aprendida independentemente da posição, transforma grandes trechos da entrada em novos valores e múltiplas heads aprendem aspectos diferentes em paralelo. É um conceito parecido com o kernel de convolution
  • Este guia é realmente enorme. Usá-lo junto com ferramentas como Claude Code para gerar pseudocódigo em PyTorch ajuda bastante a entender visualmente os conceitos
    É um ótimo material para passar algumas horas aprendendo com foco