Sobes.tech
Middle — Senior

Cuéntame en detalle sobre la atención multi-cabeza: qué son Q/K/V, cómo se calculan los pesos de atención, por qué varias cabezas.

sobes.tech AI

Respuesta de la IA

La atención multi-cabeza — es un mecanismo clave en los transformadores, que permite al modelo centrarse simultáneamente en diferentes partes de la secuencia de entrada.

  • Q (Consulta), K (Clave), V (Valor) — son tres matrices obtenidas a partir de los datos de entrada mediante transformaciones lineales entrenables. Cada posición en la secuencia se transforma en tres vectores:

    • Consulta — la consulta que busca información relevante.
    • Clave — la clave con la que se compara la consulta.
    • Valor — el valor que se devuelve en respuesta a la consulta.
  • Cálculo de los pesos de atención:

    1. Se calcula el producto escalar entre Query y Key para cada par de posiciones.
    2. El resultado se escala (normalmente se divide por la raíz de la dimensión de las claves) para estabilizar los gradientes.
    3. Se aplica softmax para obtener una distribución de probabilidad sobre los pesos.
    4. Los pesos se multiplican por los Valores correspondientes, y los resultados se suman — esto es la salida de la atención.
  • ¿Por qué múltiples cabezas (multi-head)? Varias cabezas permiten que el modelo vea la información desde diferentes "ángulos de vista", es decir, cada cabeza aprende a destacar diferentes dependencias y patrones en los datos. Esto aumenta la expresividad y la calidad del modelo.

Ejemplo simplificado:

# Para cada cabeza:
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

# Combinamos las salidas de todas las cabezas
output = concat(output_1, ..., output_h) * W_O

Donde W_Q_i, W_K_i, W_V_i, W_O son matrices entrenables, d_k es la dimensión de las claves, y h es el número de cabezas.