FlexGen es un motor para ejecutar bots de IA tipo ChatGPT en sistemas con una sola GPU

Un equipo de investigadores de la Universidad de Stanford, la Universidad de California en Berkeley, ETH Zurich, la Escuela de Graduados en 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 recursos. -sistemas restringidos. Por ejemplo, el motor brinda la capacidad de crear funciones que recuerdan a ChatGPT y Copilot ejecutando un modelo OPT-175B previamente entrenado, 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. El código está escrito en Python, utiliza el marco PyTorch y se distribuye bajo la licencia Apache 2.0.

Incluye un script de ejemplo para crear bots que le permite descargar uno de los modelos de lenguaje disponibles públicamente y comenzar a comunicarse inmediatamente (por ejemplo, ejecutando el comando “python apps/chatbot.py —model facebook/opt-30b — -percent 0 100 100 0 100 0”). Como base, se propone utilizar un modelo de lenguaje grande publicado por Facebook, entrenado en las colecciones de 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 aproximadamente 180 mil millones de tokens (800 GB de datos). Se dedicaron 33 días de operación de clúster con 992 GPU NVIDIA A100 de 80 GB a entrenar el modelo.

Al ejecutar el modelo OPT-175B en un sistema con una única 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 grandes sea más asequible y les permite ejecutarse en sistemas sin aceleradores dedicados. Al mismo tiempo, FlexGen puede escalar para paralelizar cálculos con múltiples GPU. Para reducir el tamaño del modelo, se utiliza adicionalmente un esquema de compresión de parámetros propietario 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 Modelos GLM. Un ejemplo de diálogo con un bot basado en FlexGen y el modelo OPT-30B:

Humano: ¿Cómo se llama la montaña más alta del mundo?

Asistente: Everest.

Humano: Estoy planeando un viaje para nuestro aniversario. ¿Qué cosas podemos hacer?

Asistente: Bueno, hay varias cosas que puedes hacer para tu aniversario. Primero, puedes jugar a las cartas. En segundo lugar, puedes hacer una caminata. En tercer lugar, puedes ir a un museo.

Fuente: opennet.ru

Añadir un comentario