Zubnet AIAprenderWiki › GQA
Fundamentos

GQA

También conocido como: Grouped Query Attention, Atención de consulta agrupada
Una variante de atención donde múltiples cabezas de query comparten una sola cabeza key-value, reduciendo el tamaño del KV cache sin reducir significativamente la calidad. En lugar de que cada cabeza de query tenga sus propias proyecciones K y V (MHA estándar), grupos de cabezas de query comparten proyecciones K y V. Llama 2 70B, Mistral, Gemma y la mayoría de los LLMs modernos usan GQA.

Por qué importa

GQA es la solución práctica al problema de memoria del KV cache. La atención multi-cabeza estándar con 64 cabezas necesita 64 conjuntos de tensores K y V por capa en el cache. GQA con 8 cabezas KV reduce esto a 8 conjuntos — una reducción de memoria de 8x. Esto se traduce directamente en servir más usuarios concurrentes o manejar contextos más largos en el mismo hardware.

En profundidad

El espectro: Multi-Head Attention (MHA) tiene igual número de cabezas Q, K, V — máxima calidad, máxima memoria. Multi-Query Attention (MQA) tiene muchas cabezas Q pero solo una cabeza K y una V — mínima memoria, algo de pérdida de calidad. GQA es el término medio: divide las cabezas Q en grupos, cada grupo compartiendo una cabeza K y una V. Un modelo con 32 cabezas Q y 8 grupos KV tiene cada cabeza KV sirviendo a 4 cabezas Q.

Calidad vs. memoria

La investigación muestra que GQA con 8 cabezas KV iguala la calidad de MHA para la mayoría de las tareas mientras usa 4–8x menos memoria de KV cache. La preservación de calidad es algo sorprendente: sugiere que muchas cabezas de atención están aprendiendo patrones key-value similares, así que compartirlas es eficiente en lugar de limitante. Convertir un modelo MHA existente a GQA mediante "uptraining" (una fase corta de fine-tuning) también es efectivo, evitando la necesidad de reentrenar desde cero.

Impacto en la inferencia

Los ahorros de memoria del KV cache de GQA se traducen directamente en: ventanas de contexto más largas en la misma GPU, más solicitudes concurrentes (mayor rendimiento), y cálculo de atención más rápido (menos tensores K y V para leer). Para un modelo de 70B en contexto de 128K, la diferencia entre MHA y GQA puede ser de cientos de gigabytes de KV cache — la diferencia entre necesitar 8 GPUs y necesitar 4.

Conceptos relacionados

← Todos los términos