FlexGen est un moteur permettant d'exécuter des robots IA de type ChatGPT sur des systèmes à GPU unique

Une équipe de chercheurs de l'Université de Stanford, de l'Université de Californie à Berkeley, de l'ETH Zurich, de la Graduate School of Economics, de l'Université Carnegie Mellon, ainsi que de Yandex et Meta, ont publié le code source d'un moteur permettant d'exécuter de grands modèles de langage sur des ressources. -les systèmes contraints. Par exemple, le moteur offre la possibilité de créer des fonctionnalités rappelant ChatGPT et Copilot en exécutant un modèle OPT-175B pré-entraîné, couvrant 175 milliards de paramètres, sur un ordinateur ordinaire équipé d'une carte graphique de jeu NVIDIA RTX3090 équipée de 24 Go de mémoire vidéo. Le code est écrit en Python, utilise le framework PyTorch et est distribué sous licence Apache 2.0.

Il comprend un exemple de script pour créer des robots qui vous permet de télécharger l'un des modèles de langage accessibles au public et de commencer immédiatement à communiquer (par exemple, en exécutant la commande « python apps/chatbot.py —model facebook/opt-30b — -percent 0 100 100 0 100 0” ). Comme base, il est proposé d'utiliser un grand modèle de langage publié par Facebook, formé sur les collections de BookCorpus (10 2 livres), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews, etc.), Pushshift. io (basé sur les données Reddit) et CCNewsV180 (archives d'actualités). Le modèle couvre environ 800 milliards de jetons (33 Go de données). 992 jours de fonctionnement en cluster avec 100 GPU NVIDIA A80 de XNUMX Go ont été consacrés à la formation du modèle.

Lors de l'exécution du modèle OPT-175B sur un système doté d'un seul GPU NVIDIA T4 (16 Go), le moteur FlexGen a démontré des performances jusqu'à 100 fois plus rapides que les solutions proposées précédemment, rendant l'utilisation de grands modèles de langage plus abordables et leur permettant de fonctionner sur systèmes sans accélérateurs dédiés. Dans le même temps, FlexGen peut évoluer pour paralléliser les calculs avec plusieurs GPU. Pour réduire la taille du modèle, un schéma propriétaire de compression des paramètres et un mécanisme de mise en cache du modèle sont également utilisés.

Actuellement, FlexGen ne prend en charge que les modèles de langage OPT, mais à l'avenir, les développeurs promettent également d'ajouter la prise en charge de BLOOM (176 milliards de paramètres, prend en charge 46 langages et 13 langages de programmation), CodeGen (peut générer du code dans 22 langages de programmation) et Modèles GLM. Un exemple de dialogue avec un bot basé sur FlexGen et le modèle OPT-30B :

Humain : Quel est le nom de la plus haute montagne du monde ?

Assistant : Everest.

Humain : Je prévois un voyage pour notre anniversaire. Quelles choses pouvons-nous faire ?

Assistant : Eh bien, il y a un certain nombre de choses que vous pouvez faire pour votre anniversaire. Tout d’abord, vous pouvez jouer aux cartes. Deuxièmement, vous pouvez faire une randonnée. Troisièmement, vous pouvez aller dans un musée.

Source: opennet.ru

Ajouter un commentaire