FlexGen — un motore per l'esecuzione di bot AI simili a ChatGPT su sistemi con una sola GPU

Un gruppo di ricercatori della Stanford University, dell'University of California, Berkeley, del Swiss Federal Institute of Technology di Zurigo, della Higher School of Economics, della Carnegie Mellon University e delle aziende Yandex e Meta, ha pubblicato il codice sorgente del motore per l'esecuzione di grandi modelli linguistici su sistemi con risorse limitate. Ad esempio, il motore consente di creare funzionalità simili a ChatGPT e Copilot, eseguendo un modello pre-addestrato OPT-175B, che comprende 175 miliardi di parametri, su un comune 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 con licenza Apache 2.0.

Il pacchetto include un esempio di script per la creazione di chatbot, che consente di caricare uno dei modelli linguistici disponibili pubblicamente e iniziare immediatamente la conversazione (ad esempio, eseguendo il comando «python apps/chatbot.py --model facebook/opt-30b --percent 0 100 100 0 100 0»). Si consiglia di utilizzare come base il grande modello linguistico pubblicato da Facebook, addestrato su collezioni come BookCorpus (10.000 libri), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews, ecc.), Pushshift.io (basato su dati di Reddit) e CCNewsV2 (archivio di notizie). Il modello copre circa 180 miliardi di token (800 GB di dati). Sono stati impiegati 33 giorni di lavoro del cluster con 992 GPU NVIDIA A100 da 80 GB per l'addestramento del modello.

Eseguendo il modello OPT-175B su un sistema con una GPU NVIDIA T4 (16 GB), il motore FlexGen ha dimostrato prestazioni fino a 100 volte superiori rispetto alle soluzioni precedentemente disponibili, rendendo l'uso di grandi modelli linguistici più accessibile e consentendo di eseguirli su sistemi privi di acceleratori specializzati. Inoltre, FlexGen può scalare per parallelizzare i calcoli in presenza di più GPU. Per ridurre la dimensione del modello, viene applicato anche un proprio schema di compressione dei parametri e un meccanismo di caching dei modelli.

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

Human: Qual è il nome della montagna più alta del mondo?

Assistant: Everest.

Human: Sto pianificando un viaggio per il nostro anniversario. Cosa possiamo fare?

Assistant: Beh, ci sono molte cose che puoi fare per il tuo anniversario. Prima di tutto, puoi giocare a carte. In secondo luogo, puoi fare un'escursione. In terzo luogo, puoi andare a un museo.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster