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:
- Calcula-se o produto escalar entre Query e Key para cada par de posições.
- O resultado é escalado (normalmente dividido pela raiz da dimensão das chaves) para estabilizar os gradientes.
- Aplica-se softmax para obter uma distribuição de probabilidade sobre os pesos.
- 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.