TurboQuant: Algoritmo de compresión de caché KV para optimizar modelos de IA
El TurboQuant de Google aborda cuellos de botella en las cachés KV de los transformers mediante cuantización vectorial para reducir el consumo de memoria sin sacrificar precisión. El algoritmo combina PolarQuant y QJL, ofreciendo compresión hasta 3 bits por elemento mientras preserva el rendimiento en tareas de contexto largo. Esto permite ejecutar grandes LLMs en hardware con recursos limitados.
El método se centra en los pares clave-valor en los mecanismos de atención, donde la cuantización tradicional genera sobrecarga al almacenar constantes para bloques de datos. TurboQuant elimina estos costos mediante coordenadas polares y cuantización de errores residuales.
PolarQuant: Compresión sin sobrecarga
PolarQuant convierte las coordenadas cartesianas de los vectores de memoria en coordenadas polares, eliminando constantes redundantes. En lugar de almacenar distancias a lo largo de los ejes X, Y, Z, el método usa radio y ángulos para minimizar la memoria del codebook.
Ventajas del enfoque:
- Cero sobrecarga para almacenar metadatos.
- Preservación de la geometría del espacio vectorial.
- Compatibilidad con pipelines existentes de búsqueda vectorial.
Esto es especialmente útil para acelerar la indexación en sistemas de búsqueda semántica, donde TurboQuant logra un recall de 1@k en el dataset GloVe (d=200).
QJL: Corrección de errores con Johnson-Lindenstrauss
Tras PolarQuant, se aplica QJL al residual de 1 bit. El algoritmo aprovecha la Transformación Johnson-Lindenstrauss (JLT) para proyectar datos de alta dimensión en un espacio de menor dimensión preservando distancias.
QJL incluye:
- Proyección de errores sobre una matriz JLT aleatoria.
- Un estimador especializado para equilibrar precisión en consultas y datos comprimidos.
- Sin sobrecarga adicional de memoria para decodificación.
El resultado es una recuperación de similitud de alta precisión sin necesidad de ajustar finamente el modelo.
Benchmarks y rendimiento
TurboQuant se probó en LLMs abiertos (Gemma, Mistral) en benchmarks como LongBench, Needle In A Haystack, ZeroSCROLLS, RULER y L-Eval. En Llama-3.1-8B-Instruct, supera a las baselines en distorsión de producto escalar y recall, minimizando el tamaño de la caché KV.
En la tarea Needle In A Haystack (encontrar un fragmento en un contexto largo), la compresión KV a 3 bits mantiene la precisión del modelo original y acelera la inferencia. TurboQuant ofrece aceleración en logits de atención comparado con una baseline optimizada de JAX en niveles de 3 a 8 bits.
Métricas clave:
- Al menos 6x de reducción en memoria de caché KV.
- Búsqueda vectorial más rápida gracias a índices más pequeños.
- Rendimiento estable sin reentrenamiento.
Lo más importante
- TurboQuant combina PolarQuant y QJL para compresión extrema de caché KV sin pérdida de calidad.
- Soporta contextos largos en LLMs, aumentando la velocidad de inferencia en un 20-30%.
- Ideal para búsqueda vectorial e índices semánticos con uso mínimo de memoria.
- Funciona en modelos Gemma, Mistral y Llama sin reentrenamiento.
- Limitado a inferencia; no resuelve desafíos de entrenamiento.
Perspectivas de implementación
El algoritmo encaja en escenarios de producción con grandes bases de datos vectoriales, reduciendo la latencia de construcción de índices. Para LLMs, optimiza la caché KV para secuencias largas, permitiendo ejecutar modelos en hardware de consumo. Una presentación en ICLR 2026 validará su escalabilidad.
— Editorial Team
Aún no hay comentarios.