KVSharer: un método de aprendizaje automático plug-and-play que comparte la caché KV entre capas para lograr una compresión por capas

En los últimos tiempos, los modelos de lenguajes grandes (LLM) construidos sobre la arquitectura Transformer han demostrado capacidades notables en una amplia gama de tareas. Sin embargo, estas impresionantes capacidades suelen venir acompañadas de un aumento significativo en el tamaño del modelo, lo que genera costos sustanciales de memoria de GPU durante la inferencia. La caché KV es un método popular utilizado en la inferencia LLM. Guarda las claves y los valores calculados previamente en el proceso de atención, que luego pueden reutilizarse para acelerar pasos futuros, haciendo que el proceso de inferencia sea más rápido en general. La mayoría de los métodos de compresión de caché KV existentes se centran en la compresión intracapa dentro de una única capa de Transformer, pero pocos trabajos consideran la compresión por capas. La memoria utilizada por la caché KV (clave-valor) se ocupa principalmente almacenando los componentes clave y valor del mapa de atención, que representan más del 80% del uso total de la memoria. Esto hace que los recursos del sistema sean ineficientes y crea una demanda de más potencia computacional.

Los investigadores han desarrollado muchos métodos para comprimir cachés KV para reducir el consumo de memoria. Sin embargo, la mayoría de estas investigaciones se concentran principalmente en comprimir la caché KV dentro de cada capa de LLM Transformer. Sin embargo, las estrategias de compresión de caché KV por capas permanecen en gran medida inexploradas, que calculan el caché KV solo para un subconjunto de capas para minimizar el uso de memoria. El trabajo limitado existente sobre la compresión de caché KV por capas generalmente requiere capacitación adicional para mantener un rendimiento satisfactorio. La mayor parte del trabajo de compresión de caché KV existente, como H2O, SnapKV y PyramidInfer, se llevan a cabo dentro de una única capa de transformador, es decir, la compresión intracapa, pero no abordan la compresión de caché KV por capas. Algunos trabajos como CLA, LCKV, Ayer, etc. se han centrado en estrategias de compresión por capas para la caché KV. Sin embargo, todos ellos requieren una mayor capacitación del modelo en lugar de ser plug-and-play en LLM bien capacitados.

Un grupo de investigadores de Universidad Jiao Tong de Shanghai, Universidad Central Sur, Instituto de Tecnología de Harbin, y ByteDanza propuesto KVCompartirun método plug-and-play para comprimir la caché KV de LLM bien capacitados. Los investigadores descubrieron el método, donde los cachés KV difieren mucho entre dos capas, compartir el caché KV de una capa con la otra durante la inferencia no reduce significativamente el rendimiento. Aprovechando las observaciones, KVSharer emplea una estrategia de búsqueda para identificar la estrategia de intercambio de caché de KV en diferentes capas durante la inferencia. KVSharer reduce significativamente el consumo de memoria de la GPU mientras mantiene la mayor parte del rendimiento del modelo. Como técnica de compresión de caché KV por capas, KVSharer funciona bien con métodos existentes que comprimen cachés KV dentro de cada capa, lo que proporciona una forma adicional de optimizar la memoria en LLM.

Los principales pasos de KVCompartir se dividen en dos partes. En primer lugar, un LLM determinado busca una estrategia de uso compartido, una lista que especifica qué cachés KV de capas deben reemplazarse por los de otras capas específicas. Luego, durante los siguientes pasos de precarga y generación de todas las tareas, se utilizan las cachés KV.

Una estrategia eficaz de intercambio de caché de KV para LLM comienza midiendo las diferencias entre los cachés de KV de cada capa en un conjunto de datos de prueba, centrándose en compartir los pares más diferentes. Los cachés KV se comparten de una capa a otra, con prioridad para las capas cercanas a la salida para evitar cualquier degradación en el rendimiento. Cada par compartido solo se conserva si el resultado sigue siendo lo suficientemente similar al original. Este proceso continúa hasta que se alcanza el número objetivo de capas compartidas, lo que da como resultado una estrategia que acelera las tareas futuras al reutilizar los cachés KV de manera eficiente.

Los investigadores probaron el modelo KVSharer en varios modelos bilingües e ingleses, incluidos llama2 y PasanteLM2y descubrió que puede comprimir datos de manera efectiva con solo pequeñas pérdidas de rendimiento. Utilizando el punto de referencia OpenCompass, el grupo de investigadores evaluó la capacidad del modelo para razonar, lenguaje, conocimiento y comprensión de tareas con conjuntos de datos como CMNLI, HellaSwagy Control de calidad de sentido común. En niveles de compresión inferiores 25%KVSharer retuvo aproximadamente 90-95% del rendimiento del modelo original y funcionó bien con otras técnicas de compresión como H2O y PirámideInferirmejorando la eficiencia de la memoria y la velocidad de procesamiento. Pruebas en modelos más grandes, como Llama2-70Bconfirmó la capacidad de KVSharer para comprimir el caché de manera efectiva con un impacto mínimo en el rendimiento.


En conclusión, El método KVSharer propuesto ofrece una solución eficiente para reducir el consumo de memoria y mejorar la velocidad de inferencia en LLM al aprovechar un enfoque contrario a la intuición de compartir cachés KV diferentes. Los experimentos muestran que KVSharer mantiene más del 90% del rendimiento original de los LLM convencionales al tiempo que reduce el cálculo de la caché de KV en un 30%. También puede proporcionar al menos 1,3 veces una aceleración en generación. Además, KVSharer se puede integrar con los métodos de compresión de caché KV intracapa existentes para lograr un ahorro de memoria aún mayor y una inferencia más rápida. Por lo tanto, este método funciona bien con las técnicas de compresión actuales, puede usarse para diferentes tareas sin necesidad de capacitación adicional y puede usarse como base para futuros desarrollos en el dominio.


Mira el Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y únete a nuestro Canal de telegramas y LinkedIn Grarriba. Si te gusta nuestro trabajo, te encantará nuestro hoja informativa.. No olvides unirte a nuestro SubReddit de más de 55.000 ml.

[Trending] LLMWare presenta Model Depot: una amplia colección de modelos de lenguaje pequeño (SLM) para PC Intel


Divyesh es pasante de consultoría en Marktechpost. Está cursando un BTech en Ingeniería Agrícola y Alimentaria en el Instituto Indio de Tecnología de Kharagpur. Es un entusiasta de la ciencia de datos y el aprendizaje automático que quiere integrar estas tecnologías líderes en el ámbito agrícola y resolver desafíos.