Create il vostro ChatGPT con una singola GPU e FlexGen

ChatGPT fai-da-te: creare un sistema di conversazione con una singola GPU.

I Large Language Models (LLM) sono alla base del funzionamento di strumenti come ChatGPT e Copilot. Si tratta di modelli estesi che usano miliardi di parametri e sono addestrati su immense moli di dati.

Gli elevati requisiti computazionali e di memoria per le attività di inferenza LLM rendono tipicamente necessario l’utilizzo di acceleratori di fascia alta.
L’inferenza LLM è un processo in cui un modello di linguaggio viene utilizzato per generare predizioni sul testo in input: si tratta di utilizzare un modello di linguaggio, come ad esempio un modello generativo come GPT (Generative Pretrained Transformer), per fare previsioni su ciò che è più probabile fornire come risposta a seguito di uno specifico testo acquisito in ingresso.

In pratica, un modello di inferenza LLM è stato addestrato su grandi quantità di testo in modo da riuscire a capire le regolarità linguistiche e le co-occorrenze delle parole all’interno di una stessa lingua. Quando viene presentato un testo di input, il modello utilizza le “conoscenze linguistiche” già raccolte per ingenerare predizioni su ciò che, usando un metodo probabilistico, è verosimile aggiungere al testo in input. In questo modo viene composta una risposta più o meno articolata, più o meno creativa.

FlexGen è un progetto che mira a ridurre significativamente i requisiti in termini di risorse da destinare alle operazioni di inferenza LLM. Pubblicato su GitHub, FlexGen necessita soltanto di Python e PyTorch ma soprattutto può essere utilizzato con appena una singola GPU come una NVIDIA Tesla T4 oppure una GeForce RTX 3090. È comunque possibile godere di massima flessibilità nell’impostazione della configurazione hardware ed eventualmente combinare più GPU per migliorare le prestazioni. A runtime, infatti, FlexGen supporta il parallelismo della pipeline distribuito in modo da puntare sulla massima scalabilità quando al sistema dovessero essere collegate contemporaneamente più GPU.

FlexGen può utilizzare vari modelli OPT (Open Pre-trained Transformer) rilasciati da Meta AI Research. Sono un insieme di modelli di apprendimento automatico pre-addestrati per l’elaborazione del linguaggio naturale utilizzando tecniche di deep learning.

I modelli OPT di Meta AI Research sono stati rilasciati con licenze aperte: in questo modo la comunità di ricerca può utilizzarli e modificarli liberamente contribuendo così a sviluppare ulteriormente l’elaborazione del linguaggio naturale e le applicazioni di intelligenza artificiale in generale. È quindi possibile utilizzarli come base per lo sviluppo di applicazioni avanzate di elaborazione del linguaggio naturale, per la generazione automatica di testo, il dialogo basato su chatbot, la traduzione automatica e altro ancora.

FlexGen può essere configurato in modo flessibile in base a vari vincoli legati alle risorse hardware disponibili aggregando memoria e computing tramite GPU, CPU e disco. Attraverso un ottimizzatore di programmazione lineare, FlexGen cerca la soluzione migliore per archiviare e accedere ai tensori, inclusi pesi, attivazioni e cache chiave/valore.

Digitando python3 chatbot.py --model e specificando il modello da usare, ci si troverà immediatamente impegnati a “chattare” con l’intelligenza artificiale di FlexGen, interamente in esecuzione in locale senza fare affidamento ad alcuna risorsa esterna.

Per approfondire, in un altro articolo abbiamo visto come creare un modello generativo in appena 60 righe di codice.

Ti consigliamo anche

Link copiato negli appunti