FlexGen è un motore per l'esecuzione di bot AI simili a ChatGPT su sistemi a GPU singola

Un team di ricercatori dell'Università di Stanford, dell'Università della California a Berkeley, dell'ETH di Zurigo, della Graduate School of Economics, della Carnegie Mellon University, nonché di Yandex e Meta, hanno pubblicato il codice sorgente di un motore per l'esecuzione di grandi modelli linguistici su risorse -sistemi vincolati. Ad esempio, il motore offre la possibilità di creare funzionalità che ricordano ChatGPT e Copilot eseguendo un modello OPT-175B pre-addestrato, che copre 175 miliardi di parametri, su un normale computer con una scheda grafica da gioco NVIDIA RTX3090 dotata di 24 GB di memoria video. Il codice è scritto in Python, utilizza il framework PyTorch ed è distribuito sotto la licenza Apache 2.0.

Include uno script di esempio per la creazione di bot che ti consente di scaricare uno dei modelli linguistici disponibili pubblicamente e iniziare immediatamente a comunicare (ad esempio, eseguendo il comando “python apps/chatbot.py —model facebook/opt-30b — -percent 0 100 100 0 100 0” ). Come base, si propone di utilizzare un ampio modello linguistico pubblicato da Facebook, addestrato sulle raccolte di BookCorpus (10mila libri), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews, ecc.), Pushshift. io (basato sui dati Reddit) e CCNewsV2 (archivio notizie). Il modello copre circa 180 miliardi di token (800 GB di dati). Per addestrare il modello sono stati spesi 33 giorni di funzionamento del cluster con 992 GPU NVIDIA A100 da 80 GB.

Eseguendo il modello OPT-175B su un sistema con una singola GPU NVIDIA T4 (16 GB), il motore FlexGen ha dimostrato prestazioni fino a 100 volte più veloci rispetto alle soluzioni offerte in precedenza, rendendo più conveniente l'uso di modelli linguistici di grandi dimensioni e consentendone l'esecuzione su sistemi senza acceleratori dedicati. Allo stesso tempo, FlexGen può scalare per parallelizzare i calcoli con più GPU. Per ridurre le dimensioni del modello, vengono inoltre utilizzati uno schema proprietario di compressione dei parametri e un meccanismo di memorizzazione nella cache del modello.

Attualmente FlexGen supporta solo modelli linguistici OPT, ma in futuro gli sviluppatori promettono anche di aggiungere il supporto per BLOOM (176 miliardi di parametri, supporta 46 lingue e 13 linguaggi di programmazione), CodeGen (può generare codice in 22 linguaggi di programmazione) e Modelli GLM. Un esempio di dialogo con un bot basato su FlexGen e sul modello OPT-30B:

Umano: come si chiama la montagna più alta del mondo?

Assistente: Everest.

Umano: Sto programmando un viaggio per il nostro anniversario. Quali cose possiamo fare?

Assistente: Beh, ci sono molte cose che puoi fare per il tuo anniversario. Per prima cosa puoi giocare a carte. Secondo, puoi fare un'escursione. Terzo, puoi andare in un museo.

Fonte: opennet.ru

Aggiungi un commento