Senior
¿Cómo reducir el tamaño de la caché KV (GQA, MQA, ventana deslizante)?
sobes.tech AI
Respuesta de la IA
La caché KV (Key-Value) en el contexto de modelos con GQA (Grouped Query Attention), MQA (Multi-Query Attention) y ventana deslizante se utiliza para almacenar claves y valores de atención intermedios, con el fin de acelerar la generación de texto. Para reducir el tamaño de la caché KV, se pueden aplicar los siguientes enfoques:
- Ventana deslizante: almacenar solo los últimos N tokens en la caché, en lugar de toda la historia. Esto limita el tamaño de la caché y reduce el consumo de memoria.
- MQA en lugar de GQA: MQA usa una sola clave y valor para todas las cabezas de atención, lo que reduce significativamente el tamaño de la caché en comparación con GQA, donde se almacena una clave y un valor separados para cada cabeza.
- Cuantización de la caché KV: almacenar claves y valores en forma comprimida, por ejemplo, con menor precisión (float16, int8), para reducir el volumen de memoria.
- Eliminación de elementos no relevantes: limpiar o comprimir periódicamente la caché, eliminando elementos obsoletos o menos importantes.
Ejemplo de uso de la ventana deslizante:
window_size = 512 # número de tokens en la caché
kv_cache = kv_cache[-window_size:]
De esta forma, combinando estos métodos, se puede reducir eficazmente el tamaño de la KV-cache sin una pérdida significativa en la calidad de la generación.