Conoce FlexGen un motor de generación de alto rendimiento para ejecutar grandes modelos de lenguaje (LLM) con memoria limitada de GPU.

Conoce FlexGen, un motor de generación de alto rendimiento para LLM con GPU de memoria limitada.

Recientemente, los modelos de lenguaje grandes (LLMs, por sus siglas en inglés) han mostrado un rendimiento impresionante en diversas tareas. La inferencia generativa de LLMs tiene poderes nunca antes vistos, pero también enfrenta dificultades particulares. Estos modelos pueden incluir miles de millones o billones de parámetros, lo que significa que su ejecución requiere una enorme memoria y potencia de cálculo. Por ejemplo, GPT-175B solo necesita 325GB de memoria de GPU para cargar sus pesos de modelo. Se necesitarían al menos cinco GPUs A100 (80GB) y técnicas de paralelismo sofisticadas para poder ajustar este modelo en las GPUs. Por lo tanto, reducir los recursos necesarios para la inferencia de LLMs ha generado recientemente mucho interés.

Los LLMs se utilizan para diversas operaciones “internas”, como pruebas de referencia, extracción de información, manipulación de datos, procesamiento de formularios y casos de uso interactivos como chatbots. En este estudio, se centran en una situación que denominan inferencia generativa orientada al rendimiento. El hecho de que estas tareas a menudo requieran realizar inferencia de LLM en lotes a través de un gran número de tokens, como todos los documentos en el corpus de una empresa, y sean menos susceptibles al retraso en la generación de tokens, es una característica importante de estos trabajos. Debido a esto, existen posibilidades de reducir las necesidades de recursos en ciertas cargas de trabajo mediante el intercambio de la latencia por un mejor rendimiento.

Se han utilizado tres enfoques para reducir los recursos necesarios para la inferencia de LLMs: compresión del modelo para reducir la huella de memoria general, inferencia colaborativa para distribuir el costo de la inferencia mediante la descentralización y descarga para aprovechar mejor la memoria de la CPU y el disco. Aunque existen límites claros, estas estrategias han reducido considerablemente las necesidades de recursos para el uso de LLMs. La investigación en los dos primeros métodos a menudo necesita ayuda para ejecutar modelos a escala de 175B en una única GPU de uso general, ya que asume que el modelo cabe en la memoria de la GPU. Por otro lado, debido a la programación de E/S ineficiente y la ubicación de tensores, los sistemas de descarga de última generación en la tercera categoría no pueden alcanzar un rendimiento aceptable en una única GPU.

Con una única GPU de uso general, su principal objetivo es construir mecanismos de descarga efectivos para una inferencia generativa de alto rendimiento. Pueden cargar parcialmente un LLM y ejecutar la computación de manera fragmentada mediante su descarga en almacenamiento secundario para operar un LLM con memoria GPU limitada. La jerarquía de memoria se divide en tres niveles en un sistema típico. Los niveles inferiores son más lentos pero más abundantes, mientras que los niveles superiores son más rápidos pero más escasos. Los tamaños de lote pequeños pueden causar cuellos de botella en estos sistemas. Pueden comprometer la latencia en escenarios orientados al rendimiento utilizando un tamaño de lote grande y distribuyendo las operaciones de E/S costosas en varias jerarquías de memoria a lo largo de un gran lote de entradas superpuesto con el procesamiento.

Aunque pueden comprometer el retraso, lograr una inferencia generativa de alto rendimiento con memoria GPU limitada es difícil. La primera dificultad es idear un plan de descarga exitoso. El plan debe indicar qué tensores se deben descargar, dónde deben descargarse en la estructura de memoria de tres niveles y cuándo durante la inferencia. Se utilizan tres tipos de tensores en la inferencia generativa: pesos, activaciones y almacenamiento en caché de clave-valor (KV).

Existen varias formas de calcular debido a la estructura del algoritmo por lotes, token por token y capa por capa. Estas opciones se combinan para crear un espacio de diseño complicado. Los sistemas de inferencia basados en la descarga actualmente en uso heredan metodologías basadas en el entrenamiento que realizan E/S excesivas y logran un rendimiento muy por debajo de las restricciones teóricas del hardware, lo que los convierte en áreas deficientes para la inferencia. La creación de algoritmos de compresión eficientes presenta el segundo problema. Los pesos y las activaciones de los LLMs han mostrado resultados prometedores en compresión en publicaciones anteriores. Sin embargo, cuando se combinan la compresión y la descarga para la inferencia generativa de alto rendimiento, se requieren estrategias adicionales de compresión impulsadas por los costos de E/S y la reducción de memoria de los pesos y el almacenamiento en caché KV.

Investigadores de UCB, Stanford, CMU, Meta, Yandex, ETH y HSE presentan conjuntamente FlexGen, un marco de descarga para la inferencia de alto rendimiento de LLMs, para superar estos problemas. FlexGen programa eficazmente las actividades de E/S, las técnicas de compresión potenciales y el paralelismo de canalización distribuida al combinar la memoria de la GPU, la CPU y el disco. Estas son las contribuciones que realizaron:

  • Describen explícitamente un espacio de búsqueda de opciones potenciales de descarga al considerar la programación de cálculo, la ubicación de tensores y la delegación de cálculo. Demuestran que su espacio de búsqueda captura un orden de cálculo con una complejidad de E/S dentro de un rango de 2 de optimalidad. A continuación, crean un algoritmo de búsqueda basado en programación lineal para maximizar el rendimiento dentro del espacio de búsqueda.
  • Demuestran que, sin necesidad de volver a entrenar ni calibrar, es posible reducir los pesos y el almacenamiento en caché KV de LLMs como el OPT-175B a 4 bits con una pérdida de precisión mínima o nula. Esto se logra mediante una cuantificación detallada por grupos, adecuada para reducir los costos de E/S y el uso de memoria durante la descarga.
  • Demuestran la eficiencia de FlexGen ejecutando OPT-175B en GPUs NVIDIA T4 (16GB). FlexGen a menudo permite un tamaño de lote mayor que los dos algoritmos de inferencia basados en descarga de última generación, DeepSpeed Zero-Inference y Hugging Face Accelerate. Como resultado, FlexGen puede lograr rendimientos sustancialmente mayores.

Visita el Paper y Github. Todo el crédito de esta investigación va para los investigadores de este proyecto. Además, no olvides unirte a nuestro SubReddit de ML de más de 16k seguidores, nuestro Canal de Discord y nuestro Boletín de Noticias por Correo Electrónico, donde compartimos las últimas noticias de investigación en IA, proyectos interesantes de IA y más.

Desbloqueando los secretos del aprendizaje profundo con la plataforma de explicabilidad Tensorleap

La publicación Meet FlexGen: Un motor de generación de alto rendimiento para ejecutar modelos de lenguaje grandes (LLMs) con memoria limitada de GPU apareció primero en MarkTechPost.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Conoce SMPLitex un modelo de IA generativo y un conjunto de datos para la estimación de textura humana en 3D a partir de una única imagen.

En el campo en constante evolución de la visión por computadora y los gráficos, un desafío significativo ha sido la c...

Inteligencia Artificial

Investigadores de IA de Salesforce presentan la evolución de los agentes autónomos mejorados con LLM y la innovadora estrategia BOLAA

I had trouble accessing your link so I’m going to try to continue without it. Los recientes logros de los model...

Inteligencia Artificial

Equilibrando la innovación y la sostenibilidad Desentrañando el impacto ambiental de la IA generativa

La asociación francesa Data for Good publicó un documento blanco que explora los problemas sociales y ambientales que...

Aprendizaje Automático

Anunciando mejoras en la extracción de tablas con Amazon Textract

Amazon Textract es un servicio de aprendizaje automático (ML) que extrae automáticamente texto, escritura a mano y da...

Inteligencia Artificial

Meta AI anuncia Purple Llama para ayudar a la comunidad a construir de manera ética con modelos de IA abiertos y generativos.

Gracias al éxito en el aumento de los datos, el tamaño del modelo y la capacidad computacional para la modelización d...