Un team di ricercatori del MIT ha sviluppato una soluzione per ottimizzare l’uso della memoria nei chatbot, come ChatGPT o Gemini, permettendo loro di chattare ininterrottamente senza che le loro prestazioni ne risentano. Il sistema, denominato StreamingLLM, apporta una modifica alla cache chiave-valore (KV) del modello sottostante, che funge da memoria delle conversazioni.
StreamingLLM, come funziona
I chatbot generano risposte basate sugli input degli utenti e li memorizzano nella cache KV. Il sistema crea una mappa di attenzione che traccia ogni token e la sua relazione con gli altri. Tuttavia, le cache KV possono contenere solo una quantità finita di informazioni e tendono a scartare le informazioni più vecchie quando si avvicinano alla capacità massima. Per ovviare a questo problema, i ricercatori del MIT propongono una cache scorrevole – un sistema che rimuove le informazioni meno essenziali garantendo al contempo la conservazione dei punti dati chiave.
Questo processo consente ai chatbot di continuare a conversare con l’utente senza subire cali di prestazione. Secondo quanto riportato nel documento su StreamingLLM, questa soluzione ha permesso a modelli come Llama 2, Falcon, Pythia, di mantenere stabili le prestazioni anche quando una conversazione superava i 4 milioni di token. Il metodo ha persino permesso ai modelli di restituire risposte più velocemente fino a 22 volte. “Creando un chatbot con cui possiamo sempre chattare, e che può sempre rispondere a noi in base alle nostre conversazioni recenti, potremmo utilizzare questi chatbot in nuove applicazioni”, ha dichiarato Guangxuan Xiao, autore principale del documento su StreamingLLM.
Il fenomeno “attention sink”
I ricercatori hanno scoperto che i primi input di una query sono i più importanti. Se questi vengono eliminati quando si raggiunge la capacità massima, i modelli falliscono nelle conversazioni più lunghe. Ma se questi input vengono mantenuti, le prestazioni rimangono elevate. Questo fenomeno è stato denominato “attention sink”. Hanno inoltre scoperto che l’aggiunta di un token segnaposto come “attention sink” dedicato durante il pre-training può ulteriormente migliorare le prestazioni.
Song Han, membro del MIT-IBM Watson AI Lab e scienziato di Nvidia, ha dichiarato: “Abbiamo bisogno di un ‘attention sink’, e il modello decide di utilizzare il primo token come ‘attention sink’ perché è visibile globalmente – ogni altro token può vederlo.” StreamingLLM è accessibile tramite la libreria di ottimizzazione dei grandi modelli linguistici di Nvidia, TensorRT-LLM.
Codici e dataset sono raggiungibili a questa URL.