8 3090, modelo grande de parámetros de billón de compresión de 1 día! 3,2 TB se desploma a 160 GB, con una relación de compresión de hasta 20 veces

Fuente del artículo: New Zhiyuan

Recientemente, los investigadores de ISTA propusieron un nuevo método de cuantificación de modelos, QMoE, que puede comprimir un SwitchTransformer de 1,6 billones de parámetros a menos de 160 GB (0,8 bits por parámetro) con poca pérdida de precisión.

Fuente de la imagen: Generado por Unbounded AI

Dado que la arquitectura de GPT-4 es de "código abierto" por parte de conocidos líderes de la industria, la Arquitectura Experta Híbrida (MoE) se ha convertido una vez más en el foco de la investigación.

GPT-4 cuenta con 16 modelos expertos con un total de 1,8 billones de parámetros. Cada generación de tokens requiere alrededor de 280 mil millones de parámetros y 560 TFLOPs

Sin embargo, el costo de un modelo más rápido y preciso es la gran cantidad de parámetros y el alto costo que conlleva.

Por ejemplo, el modelo SwitchTransformer-c2048 de 1,6 billones de parámetros requiere 3,2 TB de memoria de GPU para funcionar correctamente.

Para resolver este problema, investigadores del Instituto Austriaco de Tecnología (ISTA) han propuesto un marco de compresión y ejecución completamente nuevo: QMoE.

Dirección:

Al emplear un núcleo de decodificación de GPU especialmente diseñado, QMoE tiene una inferencia de compresión de extremo a extremo eficiente, que puede lograr una compresión de hasta 20 veces con solo una ligera pérdida de precisión.

En concreto, QMoE puede comprimir el modelo SwitchTransformer-c2048 de 1,6 billones de parámetros a menos de 160 GB en un solo servidor GPU en un solo día, lo que equivale a solo 0,8 bits por parámetro.

Esto le permite ejecutarse en 4 GPU NVIDIA RTX A6000 u 8 GPU NVIDIA RTX 3090 con menos del 5 % del costo de inferencia para un modelo sin comprimir.

Cuantificación del modelo MoE

La idea central del modelo híbrido (MoE) es aumentar el número de parámetros del modelo para mejorar las capacidades de modelado de la red, manteniendo el costo computacional casi igual en comparación con la arquitectura feedforward estándar.

Dado que solo es necesario llamar a una pequeña fracción de la red para procesar cada token de entrada, este diseño puede aprovechar 100 o incluso 1.000 "expertos" para crear modelos de hiperescala para un entrenamiento e inferencia eficientes.

Se ha demostrado que MoE puede mejorar en gran medida la precisión y la velocidad de entrenamiento cuando la velocidad de inferencia es comparable. Pero un volumen tan grande significa que se requiere una gran cantidad de memoria de video para que el modelo funcione.

Un reto importante a la hora de comprimir el MoE es la necesidad de mantener un gran conjunto de activaciones.

En este sentido, los datos intermedios que deben calcularse se pueden controlar en una pequeña parte organizando cuidadosamente la ejecución del modelo. Esto descarga el almacenamiento principal de la GPU a una memoria de CPU más barata y cara.

Específicamente, mantenga un búfer B grande y actualice la parte densa del bloque Transformer de la siguiente manera:

  1. De la CPU a la GPU, tome una X de "muestra" que contenga cientos de tokens;

  2. A través de la capa densa correspondiente, se obtiene el resultado Y;

  3. Calcule y almacene la asignación experta de tokens en Y;

  4. Envíe Y de vuelta a la CPU y sobrescriba X en B.

Para secciones dispersas:

  1. De la CPU a la GPU, tome todos los tokens en B que han sido asignados al Experto E, representado por X_E.

  2. Utilícelos para generar E de expertos comprimidos (por ejemplo, utilizando GPTQ).

  3. Pasa de X_E a E' para obtener Y_E'.

  4. Envíe Y_E' de vuelta a la CPU y sobrescriba X_E en B.

Como se muestra en la Figura 2, este proceso minimiza el consumo de memoria y los costos de transferencia: solo se requiere una copia de B y cada token se lee y escribe solo dos veces en cada bloque Transformer.

Además, los investigadores diseñaron un esquema de codificación y un núcleo CUDA para lograr una compresión de menos de 1 bit por peso y minimizar la sobrecarga de ejecución de la GPU para la inferencia.

Efecto de compresión

Precisión

En primer lugar, los investigadores cuantificaron todos los modelos de SwitchTransformer con una precisión ternaria y de 2 bits, y luego evaluaron sus pérdidas de validación.

Para 128 expertos, el tamaño de muestra de calibración predeterminado es de 10K; Para los expertos de 2048, el tamaño de muestra de calibración predeterminado es de 160K. Al mismo tiempo, los investigadores también probaron tamaños de muestra de 0,5x y 2x.

Los resultados muestran que el modelo de 2 dígitos se puede lograr con una pérdida mínima (1,7% en relación con C2048) y un pequeño aumento en la pérdida bajo precisión ternaria (6,7% en relación con C2048) utilizando la cuantificación dependiente de los datos.

Esto no solo demuestra la eficacia del método de cuantificación avanzado propuesto, sino que también demuestra que la compresión de ancho de bits extremadamente baja es realmente adecuada para MoE a gran escala.

Además, los investigadores evaluaron datos de arXiv, GitHub, StackExchange y Wikipedia de RedPajama.

Aunque solo el <0,01% de los datos de calibración provienen de estos sitios, el modelo comprimido aún mantiene casi el mismo rendimiento que la distribución del núcleo.

En el caso de los datos de calibración, el aumento del tamaño de la muestra suele mejorar ligeramente el rendimiento, y es más notable en la cuantificación ternaria. Pero también hay algo de ruido en el proceso, especialmente a 2 bits.

### Compresión

En la prueba, los investigadores consideraron tanto la compresión del módulo MoE por sí solo, como la compresión relativa a todo el modelo y todos sus metadatos.

Solo para MoE, se logra una compresión de >16x en todas las escalas, lo que equivale a 1 bit de espacio < almacenamiento para cada parámetro.

En el c2048, la relación de compresión general es de 19,81 veces, lo que equivale a 0,807 bits por parámetro, incluso incluyendo todas las capas densas sin comprimir, lo que reduce el tamaño del punto de control de 3142 GB a 158,6 GB.

Además, se puede observar que la relación de compresión aumenta con el tamaño del modelo por dos motivos:

(a) aumenta la dispersión natural, y los investigadores optimizaron el diccionario de codificación para C2048;

b) Cuanto más grande es la capa, más se acerca la distribución del peso a la independencia.

### Tiempo de ejecución

Por último, los investigadores evaluaron el tiempo que se tardaría en generar un modelo comprimido en una sola GPU A6000 para diferentes cantidades de datos de calibración.

Los resultados muestran que los modelos más pequeños se pueden comprimir en menos de una hora, e incluso c2048 se puede completar en menos de un día, lo que confirma la alta eficiencia de QMoE.

De large128 a c2048, el aumento en el tiempo de ejecución es básicamente proporcional a la diferencia de tamaño, aunque este último utiliza 16 veces más muestras. Esto se debe a que el tamaño de la muestra por experto sigue siendo el mismo, mientras que el tamaño del experto aumenta solo ligeramente.

### Resultado de la carrera

En primer lugar, una comparación directa (aislada) del kernel del producto de matriz vectorial comprimido con el kernel bfloat16 cuBLAS (sin comprimir) del estándar PyTorch.

La Figura 5 (izquierda) muestra el tiempo que tarda el MoE en descubrir formas de matriz en dos GPU diferentes en comparación con los núcleos bfloat16.

Aunque los investigadores utilizaron un rendimiento de almacenamiento deficiente, aún se tardó menos tiempo en ejecutar el kernel de compresión que la línea de base bfloat16 casi ideal. Hasta un 35 % más rápido en una forma de matriz determinada.

La latencia de estas operaciones también es muy baja, ya que la matriz más pequeña tarda < 0,02 ms y la más grande < 0,05 ms.

Posteriormente, los investigadores llevaron a cabo una prueba comparativa de extremo a extremo del kernel en HuggingFace utilizando los pesos reales del modelo MoE comprimido.

Como se muestra en la figura 5 (derecha), la ejecución de extremo a extremo del modelo comprimido es solo un <5 % más lenta que la del modelo estándar (sin comprimir).

Aunque la sincronización de cada capa es más rápida, todavía hay una ligera disminución en la velocidad porque el codificador a veces enruta varios tokens al mismo experto.

La implementación actual consiste en realizar un producto vectorial de matriz independiente para cada token, mientras que la línea de base realiza una multiplicación de matrices conjuntas más eficiente.

En algunas aplicaciones, esto es un gran cuello de botella. Esto se puede hacer introduciendo un bucle en el token en el kernel o, en el caso de un gran número de tokens, realizando una descompresión completa antes de realizar la multiplicación de matrices estándar.

Discusión y limitaciones

En resumen, QMoE es un marco de compresión e inferencia de extremo a extremo de código abierto para resolver el problema de la sobrecarga excesiva de memoria en el proceso de inferencia de MoE.

Por primera vez, los investigadores han demostrado que un modelo de un billón de parámetros como el SwitchTransformer c2048 se puede comprimir con precisión a menos de 1 bit por parámetro, con una tasa de compresión de casi 20 veces. Y, por primera vez, se logra una ejecución eficiente de extremo a extremo de dichos modelos en un único servidor GPU de nivel de consumidor.

Sin embargo, dado que solo un pequeño número de MoE a gran escala y precisos están disponibles públicamente, el conjunto de modelos estudiados es limitado.

Además, debido a su gran tamaño, la mayoría de los MoE se entrenan e implementan en diferentes marcos personalizados, lo que requiere una compleja integración manual para una mayor investigación.

Aun así, los investigadores cubrieron algunos de los MoE más grandes y precisos, en particular el SwitchTransformer.

Recursos:

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)