← Últimos artículos
🤖 machine learning

A JoLT for the KV Cache: Near-Lossless KV Cache Compression via Joint Tucker and JL-Residual Allocation for LLMs

JoLT logra una compresión de 2-3x casi sin pérdida del caché KV en modelos de lenguaje extensos mediante la aplicación de una descomposición de Tucker parcial en los ejes de tokens y características y la restauración de la información descartada a través de un residuo de bajo bit rotado por Johnson-Lindenstrauss, todo optimizado bajo un presupuesto de bytes unificado para mantener el rendimiento base en perplejidad y tareas de seguimiento.

Autores originales: Rahul Krishnan, Volker Schulz

Publicado 2026-07-15
📖 6 min de lectura🧠 Análisis profundo

Autores originales: Rahul Krishnan, Volker Schulz

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que estás dirigiendo un cerebro robótico masivo y superinteligente (un Modelo de Lenguaje Extenso) que intenta contar una historia. Para mantener la historia en marcha, el robot tiene que recordar cada palabra que ha dicho en la conversación actual. Mantiene este recuerdo en un "cuaderno" especial llamado KV Cache.

El problema es que, a medida que la historia se alarga, este cuaderno se vuelve enorme. Se vuelve tan grande que empieza a devorar toda la memoria del robot, ralentizando todo. Es como intentar cargar una biblioteca en tu mochila mientras corres un maratón; eventualmente, te detienes.

Científicos han intentado encoger este cuaderno antes. Algunos intentaron aplastarlo todo en una caja diminuta (cuantización), mientras que otros intentaron resumir las páginas encontrando patrones en filas o columnas (métodos de bajo rango). Pero los autores de este artículo, Rahul Krishnan y Volker Schulz, notaron algo que estos otros métodos pasaron por alto: el cuaderno no es solo una pila plana de papel. Es un bloque 3D con tres lados diferentes: Cabezas (diferentes formas de pensar), Tokens (las palabras) y Características (los detalles).

Descubrieron que dos de estos lados están llenos de cosas aburridas y repetitivas que se pueden aplastar fácilmente, pero los otros lados son únicos y no se pueden aplastar sin perder la capacidad cerebral del robot.

El Gran Descubrimiento: El Método "JoLT"

El equipo inventó un nuevo truco llamado JoLT (Asignación Conjunta de Tucker y Residuos JL). Piensa en esto como un servicio de embalaje superinteligente para tu mochila.

  1. El Exprimido Inteligente (Tucker Parcial): En lugar de intentar aplastar todo el bloque 3D, JoLT observa los datos y dice: "Está bien, las 'Cabezas' y las 'Capas' son únicas y preciosas; dejémoslas tranquilas. Pero los 'Tokens' y las 'Características' están llenos de relleno". Así que solo aplasta esos dos lados específicos. Es como tomar una almohada gigante y esponjosa y solo extraer el aire del medio, dejando los bordes robustos intactos.
  2. La Red de Seguridad (Residuo JL): Cuando exprimes una almohada, algo de aire se escapa. Si simplemente lo dejas así, la almohada queda plana e inútil. JoLT atrapa ese "aire escapado" (la información perdida) y lo almacena en una red de seguridad diminuta y supereficiente llamada residuo JL. Esta red es tan buena empaquetando que puede contener los detalles faltantes en solo unos pocos bits.
  3. El Equilibrio Perfecto (Dual Lagrangiano): Aquí está la magia. El robot tiene un presupuesto estricto de cuánto espacio puede usar (por ejemplo, 1 byte). JoL T utiliza un "asignador inteligente" matemático para decidir exactamente cuánto aplastar la almohada frente a cuánto espacio darle a la red de seguridad. Se da cuenta de que algunas partes de la memoria (las "Keys" o Claves) son fáciles de aplastar, mientras que otras (las "Values" o Valores) son tercas y necesitan más espacio de red de seguridad. Mueve el presupuesto dinámicamente para obtener el mejor resultado.

Lo Que Demostraron (y Lo Que No)

Los autores probaron esto en dos cerebros robóticos famosos: Mistral-7B (que usa un estilo de "Consulta Agrupada") y LLaMA-2-13B (que usa un estilo de "Cabezas Múltiples").

  • La "Zona Libre": Encontraron un punto ideal donde podían reducir la memoria de 2 a 3 veces (2–3×) y el rendimiento del robot no disminuyó en absoluto. Fue "casi sin pérdida".

    • En pruebas como GSM8K (problemas matemáticos) y RULER (encontrar una aguja en un pajar de texto), el robot comprimido obtuvo exactamente el mismo puntaje que el no comprimido, dentro del margen de ruido estadístico.
    • El error al reconstruir la memoria fue minúsculo: aproximadamente 0.009 para las claves y 0.006 para los valores. Esto es aproximadamente 10 veces mejor (un orden de magnitud) que los métodos anteriores como la cuantización de 4 bits o el SVD entre capas.
  • El "Acantilado": También encontraron un límite. Si intentas exprimir la memoria demasiado fuerte (más de 3×), las cosas se vuelven complicadas.

    • El robot Mistral se degradó de forma gradual, perdiendo un poco de rendimiento a medida que exprimías más.
    • El robot LLaMA, sin embargo, golpeó un "acantilado" entre 4× y 5× de compresión. Su rendimiento colapsó drásticamente, cayendo de un puntaje de 5.39 a 9.07 (un gran salto en la perplejidad, lo que significa que se volvió mucho peor prediciendo palabras).

La Versión Rápida: FlashJoLT

Calcular el exprimido perfecto toma tiempo. Para solucionar esto, crearon FlashJoLT. En lugar de hacer la matemática pesada perfectamente cada vez, utiliza un atajo "aleatorizado" que adivina los patrones principales rápidamente.

  • El Resultado: Es de 5 a 13 veces más rápido al comprimir la memoria, pero la calidad se mantiene exactamente igual que la versión lenta y perfecta.

Lo Que Descartaron

El artículo es muy claro sobre lo que no funciona bien para este problema específico:

  • Aplastar todo: Intentar comprimir los tres lados (Cabezas, Tokens y Características) es una mala idea. Las "Cabezas" y las "Capas" son demasiado únicas; aplastarlas daña el cerebro del robot.
  • Cuantización de bits fijos: Simplemente bajar el número de bits para cada número (como forzar todo a 4 bits) no puede alcanzar el "punto ideal" de compresión de 2–3×. O no comprime lo suficiente o pierde demasiada calidad.
  • Talla única: No puedes tratar las "Keys" y las "Values" de la misma manera. Los "Values" son mucho más difíciles de comprimir (2–3× más difíciles), por lo que necesitan un presupuesto de espacio diferente.

La Conclusión

Los autores midieron esto en hardware real (una GPU A100) y encontraron que JoLT crea una forma casi sin pérdida de reducir la memoria de 2–3 veces sin dañar la inteligencia del robot.

Sin embargo, son cuidadosos en decir que esto no es una solución mágica para todo.

  • Funciona genial para la "zona libre" (2–3×), pero presionar más en ciertos tipos de robots (como LLaMA) causa una caída brusca en la calidad.
  • Aunque la almacenación de la memoria es más pequeña, el robot todavía tiene que hacer algo de matemáticas para "des-exprimir" la memoria cada vez que habla. Sugieren que para que esto sea verdaderamente práctico para el uso en el mundo real, los ingenieros deben construir chips especiales (kernels fusionados) que puedan leer la memoria comprimida directamente sin tener que desempaquetarla primero.

En resumen, JoXT es un truco de empaquetado brillante y con mucha matemática que ahorra un montón de espacio para conversaciones largas, pero tiene un límite y necesita un poco de ayuda del hardware futuro para funcionar a su máxima velocidad.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →