Skip to content
← Voltar para o Skalablog

Artigo publicado

Como 3 vetores explicam self-attention em LLMs

Basta trocar "banco" de frase: em "O banco aprovou o crédito" e em "A menina sentou no banco", o mesmo token muda de sentido. O self-attention resolve exatamente esse problema. Ele compara cada token com todos os outros, gera um score de importância e produz um novo vetor que combina significado e contexto antes da predição do próximo token.

O que é self-attention em LLMs e por que ela mudou tudo

Self-attention em LLMs é o mecanismo que calcula, para cada token, o quanto todos os outros tokens da sequência importam para definir o seu significado. Ele foi descrito no artigo Attention Is All You Need, publicado em 2017 por Vaswani e coautores, e virou a base da arquitetura Transformer.

Antes desse mecanismo, embeddings davam a cada token um vetor fixo de significado. O token "banco" carregava traços de instituição financeira e de assento ao mesmo tempo, sem saber qual valia naquela frase. A atenção resolve isso produzindo um novo vetor por token, já ajustado pelos vizinhos da sequência.

O ganho aparece na predição. Com representações contextuais, o modelo estima o próximo token com informação de toda a janela de entrada, e não apenas da posição anterior. É esse passo que explica a diferença de qualidade que você percebe ao conversar com o ChatGPT ou com o Claude, assistentes de IA da OpenAI e da Anthropic.

Tokens e embeddings: a base que precede a atenção

Tokens são os pedaços em que o texto de entrada é quebrado antes de virar número. Um token não equivale a uma palavra: pode ser a palavra inteira, uma sílaba ou até um caractere. Cada token recebe um ID que aponta para a sua posição no vocabulário daquele modelo.

O ID sozinho não carrega significado. Ele é só um índice. Para virar representação utilizável, o modelo consulta uma matriz de embeddings treinada e troca cada ID por um vetor de números. Esses números descrevem o token dentro de um mapa multidimensional de padrões linguísticos aprendido no treinamento.

Uma ressalva importante: o comprimento desse vetor não é uma constante universal. Cada equipe escolhe o valor que funciona melhor para a arquitetura. Um modelo pequeno como o GPT-2, da OpenAI, usa vetores de 768 posições, mas nada impede um projeto de usar 50 ou 1.000.

Como o embedding vira um mapa de significado

Durante o treinamento, cada token começa com um vetor aleatório e vai sendo ajustado até que tokens usados em contextos parecidos fiquem próximos no espaço vetorial. O resultado é um mapa em que vizinhança indica relação semântica, e distância indica ausência de relação.

Você não precisa confiar só na explicação: dá para inspecionar esse mapa. O guia de embeddings do Hugging Face e o Embedding Projector do TensorFlow, ferramenta de visualização mantida pelo Google, mostram palavras vizinhas em um plano reduzido para duas ou três dimensões. Buscar "apple" traz termos como Macintosh, Microsoft e IBM; buscar "tree" aproxima forest, leaf e plants.

Essas visualizações são educacionais. O espaço real tem centenas ou milhares de dimensões, e a projeção em duas dimensões distorce as distâncias. Ainda assim, ela mostra o comportamento central: proximidade vetorial acompanha proximidade de uso.

Por que o embedding sozinho não resolve ambiguidade

O embedding de um token é o mesmo em qualquer frase, porque a matriz é fixa depois do treinamento. Isso cria o problema da polissemia. Na frase "O banco aprovou o crédito", banco é instituição financeira. Em "A menina sentou no banco", banco é assento.

O vetor de banco guarda traços das duas acepções ao mesmo tempo, e nenhuma informação interna ao token diz qual delas vale naquele contexto. Falta um passo que use os outros tokens como evidência.

Esse passo é o self-attention. Ele pega a representação genérica e a reescreve com base na frase concreta. Sem ele, o modelo teria apenas um dicionário numérico, não uma leitura da frase.

Positional embedding: por que a ordem dos tokens importa

O Transformer processa todos os tokens em paralelo, e essa eficiência tem um custo: sem informação extra, a ordem da sequência desaparece. O positional embedding resolve isso somando ao vetor de cada token um vetor que codifica a sua posição na entrada.

A ordem muda o sentido. "A mãe matou a filha" e "a filha matou a mãe" usam os mesmos tokens em ordens diferentes e descrevem eventos diferentes. Sem sinal de posição, o modelo trataria as duas frases como equivalentes.

Vale separar positional embedding de positional encoding. Muitos textos usam os dois nomes para o mesmo papel, mas implementações diferentes fazem isso de formas distintas: vetores aprendidos, funções senoidais fixas ou variantes rotativas usadas em modelos recentes.

Query, key e value: como o cálculo do score de atenção funciona

A atenção gera três projeções para cada token: query (o que este token procura), key (o que este token oferece) e value (a informação que ele entrega). O score nasce da comparação entre a query de um token e a key de cada outro token da sequência.

O produto escalar entre query e key mede compatibilidade. Esse valor passa por uma divisão pela raiz da dimensão e depois pela função softmax, que normaliza os scores em uma distribuição que soma 1. Por fim, os weights ponderam os vetores value e geram a saída daquela posição.

Na frase "O banco aprovou o crédito", a query de banco encontra em crédito uma key muito compatível, e o weight desse par fica alto. O artigo "o" contribui pouco. Explico o mecanismo conceitualmente, porque a álgebra completa exige estatística e cálculo linear.

Uma tabela ajuda a visualizar a lógica dos pesos, sem tratá-los como medida real de um modelo:

Par de tokensImportância relativa para o sentidoPapel na frase
banco → créditoAltaDefine a acepção financeira de banco
banco → aprovouMédia-altaIndica ação de instituição financeira
banco → oBaixaSó marca gênero e número

Em modelos reais, o passo seguinte é o multi-head attention, que roda várias dessas operações em paralelo com projeções distintas. Cada cabeça tende a capturar um tipo de relação, e as saídas são concatenadas.

O que o self-attention muda na predição do próximo token

A saída da atenção é um vetor por token que combina significado e contexto. Esse é o material que as camadas seguintes usam para calcular a distribuição de probabilidade sobre o próximo token do vocabulário.

Na prática, o modelo passa a distinguir os dois sentidos de banco sem precisar de regra explícita. A informação de qual acepção vale está codificada na relação com crédito ou com sentou, e essa relação sobrevive até o cálculo final.

Esse é o motivo pelo qual a atenção é descrita como a virada de chave dos LLMs. Ela transforma uma sequência de símbolos em uma sequência de representações que dependem umas das outras.

O que o mecanismo não resolve

Atenção não dá ao modelo memória de longo prazo, consciência ou compreensão humana do texto. Ela é um cálculo de pesos sobre vetores dentro de uma janela limitada. O que existe fora dessa janela simplesmente não participa da soma.

A complexidade também pesa. Como cada token compara com todos os outros, o custo cresce de forma quadrática com o tamanho da sequência. É por isso que janelas de contexto longas exigem otimizações de implementação e mais memória.

Um detalhe de nomenclatura confunde muita gente: o positional embedding é frequentemente chamado de positional encoding em textos e aulas. O nome muda, o papel é o mesmo, e não existe erro grave em usar os dois.

Perguntas frequentes sobre self-attention

  • Self-attention é o mesmo que atenção? Não exatamente. Self-attention é o caso em que queries, keys e values vêm da mesma sequência. A atenção em geral também cobre situações em que a consulta vem de uma sequência e as chaves vêm de outra, como no encoder-decoder.
  • Por que dividir pelo tamanho da dimensão antes do softmax? Porque produtos escalares entre vetores longos crescem de magnitude e empurram o softmax para regiões com gradientes pequenos. A divisão pela raiz da dimensão estabiliza o treinamento.
  • Um embedding pode ser invertido para reconstruir o texto? Não de forma geral. O vetor é uma representação distribuída, e a matriz de embeddings não guarda uma correspondência reversível entre vetor e frase original.
  • Qual é o tamanho típico de um vetor de embedding? Depende do modelo e da escolha da equipe. O GPT-2 usa 768 posições, mas projetos diferentes adotam dimensões menores ou maiores conforme o custo e a arquitetura.
  • Self-attention sozinha explica o desempenho dos LLMs? Não. Ela é um componente central do Transformer, mas o resultado final depende também do volume de dados, do número de parâmetros, do treinamento e das camadas que vêm depois da atenção.
  • O que significa dizer que a saída é contextual? Significa que o vetor de um token muda conforme os outros tokens da sequência. O mesmo ID de token produz saídas diferentes em frases diferentes, e é isso que permite distinguir sentidos de uma palavra ambígua.

Como levar esse conhecimento para os seus vídeos

Explicar tokens, embeddings e self-attention funciona bem em vídeo, com desenho no quadro e exemplos trocando de sentido. O problema aparece depois, quando alguém procura esse mesmo conteúdo por escrito e encontra só fragmentos soltos.

Se você tem uma aula, uma live ou uma entrevista em que explica um mecanismo técnico com clareza, o material escrito já existe dentro do vídeo. A parte que falta é transformá-lo em texto: no Skala Blog, você cola a URL do vídeo, gera a transcrição e recebe um artigo estruturado para revisar e publicar.

Para conteúdos de programação do dia a dia, o CrazyStack reúne material prático que complementa esse tipo de estudo. Vale acompanhar também o trabalho do Dev Doido do canal do youtube, que cobre temas de tecnologia em linguagem acessível.

Source video

YouTube thumbnail: Se você só pode assistir UM vídeo sobre LLMs, assista esse.

Source video

Se você só pode assistir UM vídeo sobre LLMs, assista esse.

Create from this video

This article was created automatically from a new video.

Automate my channel

Turn your YouTube videos into articles

Built for creators with a backlog and no editor on staff. This page started as a video — Skalablog drafts from the transcript, you review every word, then publish on a first-party /p/{slug} page. Nothing goes live until you publish it.

Turn your videos into articles

Published with Skalablog