Conozca FlexGen: un motor de generación de alto rendimiento para ejecutar modelos de lenguaje grande (LLM) con memoria de GPU limitada

Estás leyendo la publicación: Conozca FlexGen: un motor de generación de alto rendimiento para ejecutar modelos de lenguaje grande (LLM) con memoria de GPU limitada

Los modelos de lenguaje grande (LLM) han mostrado recientemente un rendimiento impresionante en varias tareas. La inferencia LLM generativa tiene poderes nunca antes vistos, pero también enfrenta dificultades particulares. Estos modelos pueden incluir miles de millones o trillones de parámetros, lo que significa que ejecutarlos requiere una memoria y una potencia informática tremendas. GPT-175B, por ejemplo, solo necesita 325 GB de GPU RAM para cargar los pesos de su modelo. Se necesitarían al menos cinco GPU A100 (80 GB) y técnicas de paralelismo sofisticadas para adaptar este modelo a las GPU. Por lo tanto, la reducción de los recursos necesarios para la inferencia LLM ha generado recientemente mucho interés.

Los LLM se utilizan para varias operaciones internas, que incluyen evaluación comparativa, extracción de información, disputas de datos, procesamiento de formularios y casos de uso interactivo como chatbots. En este estudio, se concentran en una situación a la que se refieren como inferencia generativa orientada al rendimiento. El hecho de que estas tareas requieran con frecuencia la realización de inferencias de LLM en lotes a través de una gran cantidad de tokens, como todos los documentos en el corpus de una empresa, y que sean menos susceptibles a la demora 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 latencia por un mejor rendimiento.

Se han utilizado tres enfoques para reducir los recursos necesarios para la inferencia LLM: compresión de modelos para reducir el espacio total de memoria, inferencia colaborativa para distribuir el costo de la inferencia a través de la descentralización y descarga para hacer un mejor uso de la memoria en la CPU y el disco. Aunque existen límites claros, estas estrategias han reducido considerablemente las necesidades de recursos para emplear LLM. La investigación en los dos primeros métodos a menudo necesita ayuda para ejecutar modelos a escala 175B en una sola GPU básica porque se supone que el modelo cabe en la memoria de la GPU. Por otro lado, debido a la ineficacia de la programación de E/S y la ubicación del tensor, los sistemas de última generación basados ​​en descargas de la tercera categoría no pueden alcanzar un rendimiento aceptable en una sola GPU.

🔥 Recomendado:  Los 17 mejores servicios de mensajes de texto masivos para mensajería masiva en 2023 (gratis y baratos)

Con una sola GPU básica, su objetivo principal es construir mecanismos de descarga efectivos para la inferencia generativa de alto rendimiento. Pueden cargar parcialmente un LLM y ejecutar el cálculo poco a poco descargándolo en un almacenamiento secundario para operar un LLM con memoria de GPU restringida. La jerarquía de la memoria se divide en tres niveles en un sistema típico. Los niveles más bajos son más lentos pero más abundantes, mientras que los niveles más altos 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 mediante el uso de un tamaño de lote alto y la distribución de las costosas operaciones de E/S en varias jerarquías de memoria a lo largo de un gran lote de entradas superpuestas con el procesamiento.

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

Hay varias formas de calcular debido a la estructura del algoritmo lote por lote, token por token y capa por capa. Estas opciones se unen para crear un espacio de diseño complicado. Los sistemas de inferencia basados ​​en la descarga que se utilizan actualmente heredan metodologías basadas en el entrenamiento que realizan una E/S excesiva y logran un rendimiento muy por debajo de las limitaciones teóricas del hardware, lo que los convierte en áreas pobres para la inferencia. La creación de algoritmos de compresión eficientes presenta el segundo problema. Los pesos y activaciones de LLM han mostrado resultados de compresión prometedores en publicaciones anteriores. No obstante, cuando la compresión y la descarga se combinan para la inferencia generativa de alto rendimiento, las estrategias de compresión adicionales se ven impulsadas por los costos de E/S y la reducción de memoria de los pesos y la caché de KV.

🔥 Recomendado:  Cómo agregar un elemento de menú personalizado en la interfaz de Magento 2

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

  • Describen explícitamente un espacio de búsqueda de posibles opciones de descarga al considerar el cronograma de cómputo, la ubicación del tensor y la delegación de cómputo. Demuestran que su espacio de búsqueda captura un orden informático con una complejidad de E/S dentro de 2 de lo óptimo. Luego, crean un algoritmo de búsqueda basado en programación lineal para maximizar el rendimiento dentro del espacio de búsqueda.
  • Muestran que, sin volver a entrenar ni calibrar, es posible reducir los pesos y la memoria caché KV para LLM como el OPT-175B a 4 bits con poca o ninguna pérdida de precisión. La cuantificación por grupos de granularidad fina, adecuada para reducir los costos de E/S y el uso de memoria durante la descarga, logra esto.
  • Demuestran la eficiencia de FlexGen ejecutando OPT-175B en GPU NVIDIA T4 (16 GB). FlexGen a menudo permite un tamaño de lote mayor que los dos algoritmos de inferencia basados ​​en descarga de vanguardia, DeepSpeed ​​Zero-Inference y Hugging Face Accelerate. Como resultado, FlexGen puede lograr rendimientos sustancialmente mayores.

Revisar la Papel y Github. Todo el crédito de esta investigación es para los investigadores de este proyecto. Además, no olvides unirte nuestro SubReddit de 16k+ ML, Canal de discordiay Boletín electrónicodonde compartimos las últimas noticias de investigación de IA, interesantes proyectos de IA y más.

🔥 Recomendado:  Cómo abordar la enorme brecha de habilidades en los sectores de IA/ML

Echa un vistazo a https://aitoolsclub.com para encontrar 100 de Cool AI Tools