I Large Language Models (LLM) sono modelli di linguaggio estremamente avanzati e articolati. Formati su enormi quantità di dati linguistici, apprendono la struttura e le caratteristiche del linguaggio umano. L’uso di LLM ha portato a progressi significativi in molte aree dell’elaborazione del linguaggio naturale. I moderni modelli generativi evidenziano infatti prestazioni eccezionali nella comprensione del contesto e nella generazione dei testi. Ci sono però alcune importanti zone d’ombra: negli attuali LLM, infatti, le informazioni gestite inizialmente vengono perse man mano che l’input si allunga. Non sono quindi adatti per compiti impegnativi come la creazione di riassunti di libri o documenti composti da un gran numero di informazioni.
StreamingLLM è la risposta a queste esigenze: si tratta di un nuovo approccio che permette l’elaborazione di input infiniti, mantenendo costi abbordabili e prestazioni in linea con quelle attese, ad esempio, da un chatbot evoluto.
L’idea alla base di StreamingLLM
Il progetto pubblicato su GitHub propone un nuovo approccio per i moderni LLM: chiamato appunto StreamingLLM, mira a gestire input di lunghezza potenzialmente infinita senza sacrificare efficienza e prestazioni. Lo schema descritto dai ricercatori affronta le sfide rappresentate dagli input di grandi dimensioni e dai dialoghi multi-round, che richiedono interazioni prolungate.
Uno dei principali problemi, che di solito fa crollare gli LLM conosciuti, ha a che fare con la gestione della memoria. Per non parlare della difficoltà manifestata dai modelli più popolari nell’elaborazione (generalizzazione) di input più lunghi rispetto alla lunghezza dei testi su cui sono stati addestrati. La generalizzazione è la capacità di un modello nell’applicare le “conoscenze” acquisite durante l’addestramento a situazioni nuove o a dati non visti in precedenza.
La cosiddetta Training Sequence Length indica la lunghezza dei testi utilizzati durante la fase di addestramento del modello. Questa lunghezza è un parametro critico e determina la dimensione del contesto che il modello può considerare quando genera dei testi o cerca di comprenderli.
Con l’introduzione di StreamingLLM, si può fare affidamento su di un framework efficiente che consente ai LLM di generalizzare su sequenze di lunghezza infinita senza necessitare di ulteriori fasi di addestramento.
Come funziona StreamingLLM
In un modello di linguaggio, un token è l’unità di base che rappresenta una parola, una sottostringa o un simbolo all’interno di una sequenza di testo. I modelli basati su attenzione si riferiscono alla classe di modelli di apprendimento automatico che utilizzano un meccanismo specifico per assegnare pesi differenti alle varie parti dell’input fornito dall’utente durante il processo di elaborazione.
Un gruppo di ricercatori Google presentò nel 2017 il meccanismo di attenzione e l’idea dei Transformer in uno storico e illuminante documento dal titolo Attention Is All You Need. Esso si ispira alla capacità umana di concentrarsi su determinati elementi all’interno di un insieme di informazioni. Nell’ambito dei modelli di linguaggio, l’attenzione consente al modello di dare maggiore peso a certi token o alle parti di una sequenza. L’utilizzo dell’attenzione contribuisce notevolmente all’abilità dei modelli di catturare relazioni a lungo termine all’interno di una sequenza di dati.
Gli attuali modelli di linguaggio calcolano per ciascun token due insiemi di parametri noti come chiavi (Key) e valori (Value). Questi parametri sono utilizzati per pesare l’importanza relativa dei token durante la generazione di testo o la comprensione del contesto. Le informazioni relative ai token precedenti sono conservate in memoria (caching) per facilitare l’elaborazione di nuovi token.
Cosa sono attention window ed attention sink
L’attention window si riferisce a una “finestra di token” all’interno di una sequenza di testo alla quale il modello presta particolare attenzione durante l’elaborazione. Rappresenta il numero di token precedenti su cui il modello di linguaggio basato su attenzione si focalizza durante la fase di generazione di un nuovo token. La dimensione della finestra può variare a seconda dell’architettura del modello e dei parametri specifici utilizzati durante l’addestramento.
Con StreamingLLM, i ricercatori introducono il concetto di attention sink che consiste nel mantenere chiavi e valori dei token iniziali per massimizzare le prestazioni dell’attention window. Così, anche gli LLM addestrati con una finestra di attenzione di lunghezza finita, possono generalizzare su sequenze di lunghezza infinita senza richiedere ulteriori adattamenti (fine-tuning).
I vantaggi derivanti dall’uso di StreamingLLM
Il team di ricerca che si è concentrato sullo sviluppo di StreamingLLM, ha dimostrato che modelli come Llama-2, MPT, Falcon e Pythia possono svolgere efficacemente attività di modellazione del linguaggio in modo stabile ed efficiente spingendosi addirittura oltre i 4 milioni di token. Utilizzando alcune accortezze in fase di pre-addestramento è possibile migliorare ancora le prestazioni nell’elaborazione di input lunghi e complessi.
Rispetto alle soluzioni fino ad oggi adoperate, StreamingLLM può quindi garantire un miglioramento delle performance pari a oltre 22 volte. Questo video mette a confronto il comportamento di un LLM utilizzato senza e con StreamingLLM, nella fase di elaborazione di input virtualmente infiniti. In un caso, dopo un certo numero di interazioni, le prestazioni del modello decadono verticalmente e poi si manifestano problemi di memoria. Nel secondo caso, invece, il flusso prosegue senza sosta, senza problemi di performance e senza alcuna interruzione.
Credit immagine in apertura: iStock.com/Vertigo3d