FlexGen es un motor creado con el propósito de reducir los requisitos de recursos de inferencia de modelos de lenguaje grandes a una sola GPU
Se dio a conocer hace poco la noticia de queĀ un grupo de investigadores de la Universidad de Stanford, la Universidad de California en Berkeley, ETH Zurich, la Escuela Superior de EconomĆa, la Universidad Carnegie Mellon, asĆ como Yandex y Meta, han publicado el código fuente de un motor para ejecutar grandes modelos de lenguaje en sistemas con recursos limitados.
Con nombre clave «FlexGen», es un proyecto que tiene como objetivo reducir significativamente los requisitos de recursos para las operaciones de inferencia LLM. Publicado en GitHub , FlexGen solo requiere Python y PyTorch pero sobre todo se puede usar con una sola GPU como NVIDIA Tesla T4 o GeForce RTX 3090.
Por ejemplo, el motor brinda la capacidad de crear una funcionalidad que recuerda a ChatGPT y Copilot al ejecutar un modelo OPT-175B preentrenado que cubre 175 mil millones de parƔmetros en una computadora normal con una tarjeta grƔfica para juegos NVIDIA RTX3090 equipada con 24 GB de memoria de video.
Se menciona que los modelos de (LLM) respaldan el funcionamiento de herramientas como ChatGPT y Copilot. Estos son modelos extensos que usan miles de millones de parƔmetros y estƔn entrenados en grandes cantidades de datos.
Los altos requisitos computacionales y de memoria para las tareas de inferencia de LLM generalmente requieren el uso de aceleradores de alta gama.
Estamos contentos de que el pĆŗblico estĆ© realmente entusiasmado con FlexGen. Sin embargo, nuestro trabajo aĆŗn estĆ” en preparación y aĆŗn no estĆ” listo para su lanzamiento/anuncio pĆŗblico. Gracias a los primeros comentarios sobre este proyecto, nos dimos cuenta de que las primeras versiones de este LĆAME y nuestro documento no tenĆan claro el propósito de FlexGen. Este es un esfuerzo preliminar para reducir los requisitos de recursos de los LLM, pero tambiĆ©n tiene muchas limitaciones y no pretende reemplazar los casos de uso cuando hay suficientes recursos disponibles.
La inferencia LLM es un proceso en el que se utiliza un modelo de lenguaje para generar predicciones sobre el texto de entrada: implica el uso de un modelo de lenguaje, como un modelo generativo como un GPT ( Transformador preentrenado generativo ), para hacer predicciones sobre lo que es mĆ”s probable que ocurra. proporcionarse como respuesta despuĆ©s de un texto capturado de entrada especĆfico.
Sobre FlexGen
El paquete incluye un script de ejemplo para crear bots que le permite al usuario descargar uno de los modelos de lenguaje disponibles pĆŗblicamente y comenzar a chatear de inmediato.
Como base, se propone utilizar un gran modelo de lenguaje publicado por Facebook, entrenado en las colecciones BookCorpus (10 mil libros), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews, etc.), Pushshift.io (basado en datos de Reddit)) y CCNewsV2 (archivo de noticias).
El modelo cubre alrededor de 180 mil millones de tokens (800 GB de datos). Se necesitaron 33 dĆas de funcionamiento del clĆŗster con 992 GPU NVIDIA A100 de 80 GB para entrenar el modelo.
Al ejecutar OPT-175B en un sistema con una sola GPU NVIDIA T4 (16 GB), el motor FlexGen demostró un rendimiento hasta 100 veces mÔs rÔpido que las soluciones ofrecidas anteriormente, lo que hace que el uso de modelos de lenguaje grande sea mÔs asequible y les permite ejecutarse en sistemas sin aceleradores especializados.
Al mismo tiempo, FlexGen puede escalar para paralelizar los cÔlculos en presencia de varias GPU. Para reducir el tamaño del modelo, se utilizan un esquema de compresión de parÔmetros adicional y un mecanismo de almacenamiento en caché del modelo.
Actualmente, FlexGen solo admite modelos de lenguaje OPT, pero en el futuro, los desarrolladores también prometen agregar soporte para BLOOM (176 mil millones de parÔmetros, admite 46 idiomas y 13 lenguajes de programación), CodeGen (puede generar código en 22 lenguajes de programación) y GLM.
Finalmente cabe mencionar que el código estÔ escrito en Python, utiliza el marco PyTorch y se distribuye bajo la licencia Apache 2.0.
Para los interesados en poder conocer mƔs al respecto, pueden consultar los detalles en el siguiente enlace.