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:
- Se calcula el producto escalar entre Query y Key para cada par de posiciones.
- El resultado se escala (normalmente se divide por la raíz de la dimensión de las claves) para estabilizar los gradientes.
- Se aplica softmax para obtener una distribución de probabilidad sobre los pesos.
- 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.