ZipNN: un nuevo método de compresión sin pérdidas adaptado a las redes neuronales

El rápido avance de los modelos de lenguajes grandes (LLM) ha expuesto desafíos de infraestructura críticos en la implementación y comunicación de modelos. A medida que los modelos aumentan en tamaño y complejidad, encuentran importantes cuellos de botella en el almacenamiento, la memoria y el ancho de banda de la red. El crecimiento exponencial del tamaño de los modelos crea tensiones computacionales y de infraestructura, particularmente en los mecanismos de almacenamiento y transferencia de datos. Los modelos actuales como Mistral demuestran la magnitud de estos desafíos, generando más de 40 PB de información transferida mensualmente y requiriendo amplios recursos de red. Los requisitos de almacenamiento para los puntos de control del modelo y las actualizaciones distribuidas pueden acumular cientos o miles de veces el tamaño del modelo original.

Las investigaciones existentes sobre compresión de modelos han desarrollado múltiples enfoques para reducir el tamaño de los modelos y al mismo tiempo intentar mantener el rendimiento. Han surgido cuatro métodos principales de compresión de modelos: poda, modificación de la arquitectura de red, destilación de conocimientos y cuantificación. Entre estas técnicas, la cuantificación sigue siendo la más popular, cambiando deliberadamente la precisión por la eficiencia del almacenamiento y la velocidad computacional. Estos métodos comparten el objetivo de reducir la complejidad del modelo, pero cada enfoque introduce limitaciones inherentes. La poda puede eliminar potencialmente información crítica del modelo, la destilación puede no capturar perfectamente los matices del modelo original y la cuantificación introduce variaciones de entropía. Los investigadores también han comenzado a explorar enfoques híbridos que combinan múltiples técnicas de compresión.

Investigadores de IBM Research, la Universidad de Tel Aviv, la Universidad de Boston, el MIT y el Dartmouth College han propuesto ZipNN, una técnica de compresión sin pérdidas diseñada específicamente para redes neuronales. Este método muestra un gran potencial en la reducción del tamaño del modelo, logrando importantes ahorros de espacio en los modelos populares de aprendizaje automático. ZipNN puede comprimir modelos de redes neuronales hasta en un 33 %, y en algunos casos se muestran reducciones que superan el 50 % del tamaño del modelo original. Cuando se aplica a modelos como Llama 3, ZipNN supera las técnicas de compresión básicas en más del 17 %, mejorando las velocidades de compresión y descompresión en un 62 %. El método tiene el potencial de ahorrar un ExaByte de tráfico de red mensualmente desde grandes plataformas de distribución de modelos como Hugging Face.

La arquitectura de ZipNN está diseñada para permitir una compresión de modelos de redes neuronales paralela y eficiente. La implementación está escrita principalmente en C (2000 líneas) con contenedores de Python (4000 líneas), utilizando la biblioteca Zstd v1.5.6 y su implementación Huffman. La metodología central gira en torno a un enfoque de fragmentación que permite el procesamiento independiente de segmentos de modelo, lo que la hace particularmente adecuada para arquitecturas de GPU con múltiples núcleos de procesamiento simultáneos. La estrategia de compresión opera en dos niveles de granularidad: nivel de fragmento y nivel de grupo de bytes. Para mejorar la experiencia del usuario, los investigadores implementaron una integración perfecta de la biblioteca Hugging Face Transformers, lo que permitió la descompresión automática del modelo, actualizaciones de metadatos y administración de caché local con controles de compresión manual opcionales.

Las evaluaciones experimentales de ZipNN se realizaron en una máquina Apple M1 Max con 10 núcleos y 64 GB de RAM, con macOS Sonoma 14.3. La compresibilidad del modelo influyó significativamente en las variaciones de rendimiento, ya que el modelo regular FP32 tenía aproximadamente 3/4 de contenido no comprimible, en comparación con 1/2 en el modelo BF16 e incluso menos en el modelo limpio. Las pruebas comparativas con LZ4 y Snappy revelaron que, si bien estas alternativas eran más rápidas, no proporcionaban ningún ahorro de compresión. Las mediciones de la velocidad de descarga mostraron patrones interesantes: las descargas iniciales oscilaron entre 10 y 40 MBps, mientras que las descargas en caché mostraron velocidades significativamente más altas, de 40 a 130 MBps, dependiendo de la máquina y la infraestructura de red.

La investigación sobre ZipNN destaca una visión crítica del panorama contemporáneo de los modelos de aprendizaje automático: a pesar del crecimiento exponencial y la parametrización excesiva, persisten ineficiencias significativas en el almacenamiento y la comunicación de los modelos. El estudio revela redundancias sustanciales en las arquitecturas de modelos que pueden abordarse sistemáticamente mediante técnicas de compresión específicas. Si bien las tendencias actuales favorecen los modelos grandes, los hallazgos sugieren que se puede ahorrar una cantidad considerable de espacio y ancho de banda sin comprometer la integridad del modelo. Al adaptar la compresión a las arquitecturas de redes neuronales, se pueden lograr mejoras con una sobrecarga computacional mínima, ofreciendo una solución a los crecientes desafíos de la escalabilidad del modelo y la eficiencia de la infraestructura.


Verificar 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 60.000 ml.

🚨 [Must Attend Webinar]: ‘Transformar pruebas de concepto en aplicaciones y agentes de IA listos para producción’ (Promovido)


Sajjad Ansari es un estudiante de último año de IIT Kharagpur. Como entusiasta de la tecnología, profundiza en las aplicaciones prácticas de la IA centrándose en comprender el impacto de las tecnologías de IA y sus implicaciones en el mundo real. Su objetivo es articular conceptos complejos de IA de una manera clara y accesible.