O Mecanismo de Atenção (especificamente o Self-Attention ou Autoatenção) é a inovação matemática que tornou as LLMs viáveis. Antes dele, as redes neurais processavam texto de forma sequencial, esquecendo o início da frase ao chegar no final. O mecanismo de atenção resolveu isso permitindo que o modelo foque dinamicamente nas partes mais relevantes de todo o texto, não importa a distância entre as palavras.
Para realizar esse cálculo, os criadores do Transformer usaram uma metáfora inspirada em sistemas de busca em bancos de dados. Cada token (palavra/subpalavra) projetado no modelo é transformado em três vetores diferentes através de matrizes de pesos que o modelo aprende durante o treino:
- Query (Consulta – Q): Representa “o que eu estou procurando”.
- Key (Chave – K): Representa “o que eu tenho a oferecer” (o rótulo/indexação de cada palavra no texto).
- Value (Valor – V): Representa “o conteúdo real” da palavra, que será extraído se houver uma correspondência entre a Query e a Key.
A Equação da Atenção
Toda essa intuição é resumida na famosa equação do Scaled Dot-Product Attention (Atenção por Produto Escalar Escalonado):
Vamos destrinchar o passo a passo dessa fórmula:
- (Multiplicação de Matrizes): Multiplicamos a matriz de consultas (Q) pela transposta da matriz de chaves (K). Isso calcula um produto escalar entre cada palavra e todas as outras, gerando uma matriz de similaridade (pontuação bruta de atenção).
- Dividido por (Escalonamento): Dividimos o resultado pela raiz quadrada da dimensão dos vetores de chave (). Isso evita que os valores fiquem gigantescos em dimensões altas, o que faria o gradiente sumir durante o treinamento.
- (Normalização): Aplicamos a função Softmax para transformar essas pontuações brutas em probabilidades (números entre 0 e 1). Isso define matematicamente quanto de atenção a palavra A deve dar para a palavra B.
- Multiplicado por V (Ponderação): Por fim, multiplicamos essas probabilidades pelos valores reais (V). Palavras com alta atenção mantêm seus valores intactos, enquanto palavras irrelevantes são silenciadas (multiplicadas por valores próximos de zero).
Explicação detalhada para Equação de Atenção
Para entender a Equação da Atenção na prática, vamos criar um cenário do dia a dia.
Imagine que você está desenvolvendo um sistema de IA para uma biblioteca universitária e um aluno faz a seguinte pergunta (o nosso texto de entrada):
“Onde encontro o artigo sobre LLM?”
Vamos focar em como o modelo calcula a atenção para a palavra “artigo”.
Queries, Keys e Values
Para cada palavra da frase, o modelo gera três vetores (Q, K, V) de tamanho reduzido (vamos simplificar para apenas 2 dimensões para facilitar a matemática visual). Também para simplificar, algumas palavras da frase foram removidas, sendo essas as stopwords: onde; o; sobre.
Imagine que as nossas dimensões sejam:
- Dimensão 1 (Formato): Focado em mídias físicas vs. digitais/documentos.
- Dimensão 2 (Assunto): Focado em tecnologia vs. outros temas.
Nossos vetores (simplificados) seriam:
- Query (Q) da palavra “artigo”:
[0.9, 0.8](está buscando algo que seja um documento escrito e que provavelmente envolva tecnologia). - Keys (K) de todas as palavras da frase (os “rótulos”):
- =
[0.9, 0.7](Rótulo: Sou um documento focado em ciência/tecnologia). - =
[0.2, 0.9](Rótulo: Sou um conceito puramente tecnológico). - =
[-0.8, -0.1](Rótulo: Sou um verbo de busca física/localização).
- =
- Values (V) de todas as palavras (o “conteúdo semântico”):
- Cada palavra tem seu vetor de conteúdo V, que carrega a informação bruta que será passada adiante na rede.
Aplicando a Equação Passo a Passo
A fórmula que vamos resolver é:
Passo A: O Produto Escalar ()
Primeiro, a Query de “artigo” (Q) faz uma multiplicação de matrizes com as Keys (K) de todas as palavras para ver quem tem mais afinidade. O produto escalar mede essa direção comum.
- Afinidade de “artigo” com “artigo”:
- Afinidade de “artigo” com “LLM”:
- Afinidade de “artigo” com “encontro”:
Resultado temporário (Score Bruto):
[1.37, 0.90, -0.80](Note que “artigo” se correlacionou muito com ele mesmo e fortemente com “LLM”, mas rejeitou “encontro”).
Passo B: O Escalonamento ()
Como nossos vetores originais têm dimensão , dividimos os valores por . Isso impede que os números fiquem extremos em modelos reais de alta dimensão (onde costuma ser 64 ou mais).
1.37 / 1.41 ≈ 0.970.90 / 1.41 ≈ 0.64-0.80 / 1.41 ≈ -0.57
Resultado Escalonado:
[0.97, 0.64, -0.57]
Passo C: O Softmax
Agora, aplicamos a função matemática Softmax. Ela converte esses valores arbitrários em probabilidades (que somam exatamente 1.0 ou 100%), esmagando valores negativos e destacando os maiores.
Após aplicar a matemática do Softmax aos nossos valores escalonados, obtemos a Matriz de Atenção final para a palavra “artigo”:
- Peso para “artigo”: 52%
- Peso para “LLM”: 37%
- Peso para “encontro”: 11%
Isso diz ao modelo: Quando estiver processando o significado de ‘artigo’, dê 53% de importância a ele mesmo, 37% à palavra ‘LLM’ que está adiante, e ignore quase por completo a palavra ‘encontro’.
Eu pulei uma série de etapas para cálculo do Passo C para ficar mais fácil de entender a Equação da Atenção, mas no final deste artigo tem uma explicação detalhada sobre os cálculos associados com o Passo C.
Passo D: A Ponderação Final ()
Por fim, multiplicamos essas porcentagens pelos vetores de valor (V) correspondentes:
Este novo vetor resultante não representa mais apenas a palavra “artigo” isolada. Ele é uma representação matemática rica que significa: “um artigo que está intimamente associado a LLM (tecnologia)”.
Essa informação contextualizada é o que é enviado para as próximas camadas da LLM, permitindo que ela gere uma resposta extremamente precisa para o usuário.
Explicação detalhada sobre o Passo C: O Softmax
Para entender como chegamos àquelas porcentagens mostradas no Passo C, precisamos aplicar a fórmula matemática da função Softmax.
A função Softmax transforma qualquer vetor de números reais (que podem ser positivos, negativos, grandes ou pequenos) em uma distribuição de probabilidade, onde todos os valores resultantes ficam entre 0 e 1. A fórmula matemática para cada elemento i do vetor é:
Onde:
- é o valor individual que queremos converter.
- e é a constante de Euler (aproximadamente 2,71828).
- O denominador é a soma de todos os e elevados aos valores do vetor (usado para normalizar os resultados).
O Cálculo Passo a Passo
No Passo B do cálculo da Atenção, obtivemos os seguintes valores escalonados para a palavra “artigo”:
- (relação de “artigo” com “artigo”)
- (relação de “artigo” com “LLM”)
- (relação de “artigo” com “encontro”)
Passo 1: Exponenciação ()
Primeiro, elevamos a base e a cada um dos nossos valores. Esse passo é crucial por dois motivos:
- Elimina números negativos: Qualquer número (mesmo negativo) elevado na base e resulta em um valor positivo ().
- Amplifica diferenças: Aumenta a distância entre o maior valor e os demais.
Fazendo as contas:
Passo 2: A Soma dos Exponenciais ()
Agora, somamos todos esses resultados intermediários para obter o nosso denominador comum (o totalizador):
Passo 3: Divisão (Normalização)
Por fim, dividimos cada valor individual do Passo 1 pela Soma total encontrada no Passo 2. Isso nos dá a probabilidade exata (peso de atenção) de cada palavra:
- Peso para “artigo”:
- Peso para “LLM”:
- Peso para “encontro”:
Por que o comportamento matemático da softmax é perfeito para a atenção?
Repare no que aconteceu com a palavra “encontro”: o seu score original no produto escalar era negativo (-0,57), indicando baixa afinidade.
Após passar pelo Softmax, ele não apenas se tornou um número positivo válido para probabilidade, como também foi severamente “sufocado” para apenas 11%, enquanto a pequena diferença original entre “artigo” (0,97) e “LLM” (0,64) foi expandida, dando amplo destaque à palavra de maior relevância.

Só para ficar mas clara a diferença, antes a diferença entre os valores era de 0,33 (097 – 0,33) e passa a ser de 0,145 (51,7% – 37,2% = 14,5% que é equivalente aos 0,145).
1 comentário em “Explicando o mecanismo de Autoatenção das LLMs”