Sobes.tech
Middle — Senior

Fale sobre atenção multi-cabeça em detalhes: o que são Q/K/V, como são calculados os pesos de atenção, por que várias cabeças.

sobes.tech IA

Resposta da IA

A atenção multi-cabeça — é um mecanismo chave nos transformadores, que permite ao modelo focar simultaneamente em diferentes partes da sequência de entrada.

  • Q (Consulta), K (Chave), V (Valor) — são três matrizes obtidas a partir dos dados de entrada através de transformações lineares treináveis. Cada posição na sequência é transformada em três vetores:

    • Consulta — a consulta para a qual se procura informação relevante.
    • Chave — a chave com a qual a consulta é comparada.
    • Valor — o valor que é retornado em resposta à consulta.
  • Cálculo dos pesos de atenção:

    1. Calcula-se o produto escalar entre Query e Key para cada par de posições.
    2. O resultado é escalado (normalmente dividido pela raiz da dimensão das chaves) para estabilizar os gradientes.
    3. Aplica-se softmax para obter uma distribuição de probabilidade sobre os pesos.
    4. Os pesos são multiplicados pelos Valores correspondentes, e os resultados somados — esta é a saída da atenção.
  • Por que múltiplas cabeças (multi-head)? Várias cabeças permitem que o modelo veja a informação de diferentes "ângulos de visão", ou seja, cada cabeça aprende a destacar diferentes dependências e padrões nos dados. Isso aumenta a expressividade e a qualidade do modelo.

Exemplo simplificado:

# Para cada cabeça:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i

attention_weights = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = attention_weights @ V_i

# Combina as saídas de todas as cabeças
output = concat(output_1, ..., output_h) * W_O

Onde W_Q_i, W_K_i, W_V_i, W_O são matrizes treináveis, d_k é a dimensão das chaves, e h é o número de cabeças.