Nel panorama in rapida evoluzione dell'intelligenza artificiale, un tema centrale che sta guadagnando sempre più attenzione è la necessità di dotare i modelli linguistici di grandi dimensioni (LLM) di una capacità di memoria più robusta e duratura. Come suggerisce una riflessione di "Machines Heart", è imperativo dare a questi "grandi modelli" una "vita completa", il che implica superare le loro attuali limitazioni nel mantenere la coerenza e ricordare le informazioni nel tempo. Nonostante le finestre di contesto sempre più estese, è stato osservato che anche i modelli più avanzati possono "dimenticare" frequentemente, rendendo la gestione della memoria una risorsa critica.
È risaputo che le finestre di contesto dei moderni LLM sono intrinsecamente limitate. La maggior parte dei modelli può elaborare solo migliaia o decine di migliaia di token alla volta. Ad esempio, le prime versioni di GPT-3 gestivano circa 2.048 token. Tuttavia, la ricerca e lo sviluppo hanno portato a progressi significativi; recentemente, alcuni modelli hanno esteso la loro finestra di contesto a milioni o addirittura a decine di milioni di token. Un esempio notevole è Llama 4 Scout di Meta, che si vanta di poter elaborare fino a 10 milioni di token. Questa evoluzione delle dimensioni delle finestre di contesto degli LLM è un indicatore chiave del progresso nel campo, come illustrato in varie rappresentazioni grafiche del settore. È importante notare che il numero di token indicato rappresenta un valore massimo approssimativo. La versione di GPT-4 aggiornata ad aprile 2025 è denominata "GPT-4.1", mentre "Scout" è una variante di Llama 4 con 17 miliardi di parametri, specificamente ottimizzata per contesti lunghi.
Nonostante questi miglioramenti, gli LLM presentano un "deficit di memoria" intrinseco dovuto alla limitata estensione delle loro finestre di contesto. Questa limitazione ostacola gravemente la loro capacità di mantenere la coerenza in interazioni multiple e a lungo termine. Di conseguenza, gli LLM moderni spesso faticano a conservare ricordi a lungo termine, il che si rivela problematico per numerose applicazioni. La memoria, infatti, è un componente fondamentale per la riflessione, la pianificazione e rappresenta un elemento indispensabile per i sistemi basati su agenti autonomi, come evidenziato in panoramiche sull'architettura di tali sistemi (ad esempio, le illustrazioni della fonte Lil'Log).
MemOS: un nuovo approccio alla gestione della memoria
In risposta a questa sfida, la ricerca sulla memoria dei grandi modelli è in forte crescita. Un esempio recente che ha attirato notevole attenzione è MemOS. A differenza degli approcci tradizionali come la generazione aumentata dal recupero (RAG) o le memorie puramente parametriche, MemOS concepisce la "memoria" come una risorsa di sistema tanto essenziale quanto la potenza di calcolo. Questo framework gestisce continuamente la memoria a lungo termine dei grandi modelli, coordinando, fondendo, archiviando e gestendo le autorizzazioni di testo in chiaro, stati di attivazione e memorie parametriche all'interno di un unico sistema. Questo approccio innovativo consente ai grandi modelli di acquisire la capacità di evoluzione continua e di auto-aggiornamento, superando le limitazioni dei sistemi di memoria frammentati.
Memoria dei grandi modelli e capacità di elaborazione di contesti lunghi
La capacità di elaborare contesti lunghi è strettamente correlata alla memoria dei grandi modelli. I modelli in grado di gestire un vasto numero di token, anche nell'ordine di decine di milioni, rientrano nella categoria degli LLM con una forte capacità di elaborazione di contesti lunghi. L'esperienza pratica con gli LLM ha dimostrato che i modelli con una maggiore capacità di elaborazione di contesti lunghi tendono anche ad avere una memoria più robusta. Per comprendere meglio questa relazione, è utile definire i due concetti:
Contesto lungo (long context)
Il contesto lungo si riferisce alla lunghezza del testo storico che il modello può "vedere" durante il processo di inferenza corrente. In sostanza, è la lunghezza della sequenza di input fornita al modello in una singola operazione. Questa capacità è cruciale per risolvere compiti come domande-risposte su documenti, dialoghi a più turni e analisi del codice, che richiedono il mantenimento del contesto.
La "capacità di elaborazione di contesti lunghi" comprende diversi aspetti fondamentali:
- Capacità di generalizzazione della lunghezza: la capacità del modello di estrapolare a sequenze più lunghe di quelle viste durante l'addestramento. Se la sequenza supera la lunghezza di addestramento, alcuni modelli possono incorrere in fallimenti catastrofici.
- Capacità di attenzione efficiente: meccanismi, spesso basati su algoritmi sub-quadratici, volti a ridurre il consumo computazionale e di memoria con sequenze lunghe. Questo può includere attenzione approssimativa, schemi sparsi o architetture completamente alternative.
- Capacità di conservazione delle informazioni: la capacità del modello di utilizzare effettivamente le informazioni provenienti da parti più distanti del contesto. Se il modello ignora il contenuto del contesto oltre una certa posizione, una finestra di contesto ampia diventa inefficace. Un addestramento scadente può portare a un calo dei pesi di attenzione o alla perdita di contesto dopo una certa lunghezza.
- Capacità di progettazione e utilizzo del prompt: lo studio di come i prompt possono essere progettati per sfruttare al meglio i vantaggi di un contesto lungo.
Memoria (memory)
La memoria si riferisce alle informazioni che il modello conserva attraverso più dialoghi o utilizzi. È un meccanismo di persistenza che registra informazioni su utenti, dialoghi, preferenze e altri dati rilevanti. Aurimas Griciūnas, fondatore e CEO di SwirlAI, ha categorizzato la memoria degli LLM in diversi tipi, fornendo una struttura chiara per comprenderne le diverse funzionalità:
- Memoria degli eventi: questo tipo di memoria contiene le interazioni passate e le azioni eseguite dall'agente. Una volta completata un'azione, il sistema di controllo scrive le informazioni su tale azione in una memoria persistente, permettendone il richiamo o la tracciabilità successiva.
- Memoria semantica: la memoria semantica include le informazioni di conoscenza esterna accessibili e la comprensione dell'agente del proprio stato e delle proprie capacità. Questa memoria può consistere sia in conoscenze di base visibili solo internamente all'agente, sia in un "contesto di messa a terra" utilizzato per limitare il campo di informazioni e migliorare la precisione delle risposte, selezionando i dati rilevanti per il compito corrente da una vasta quantità di dati internet.
- Memoria procedurale: la memoria procedurale si riferisce alle informazioni strutturali associate al sistema operativo del sistema, come il formato del prompt di sistema, gli strumenti richiamabili e i limiti di comportamento preimpostati (guardrails).
In specifici scenari di compito, il sistema agente recupera le informazioni rilevanti dalla memoria a lungo termine quando necessario e le memorizza temporaneamente nella cache locale, consentendo un accesso rapido e un'esecuzione efficiente del compito. Le informazioni recuperate dalla memoria a lungo termine e quelle presenti nella cache locale corrente costituiscono insieme la memoria di lavoro (anche nota come memoria a breve termine) dell'agente. Queste informazioni vengono aggregate in un prompt che viene passato al modello linguistico di grandi dimensioni (LLM) per guidare le sue successive istruzioni di azione o risposte ai compiti. Generalmente, come mostrato in schemi esplicativi, i tipi di memoria 1, 2 e 3 sono considerati memoria a lungo termine, mentre il tipo 5 è classificato come memoria a breve termine.
Collaborazione tra contesti lunghi e memoria
La capacità di elaborazione di contesti lunghi e la memoria possono collaborare efficacemente per migliorare le prestazioni degli LLM. Le informazioni provenienti dal sistema di memoria, come le preferenze dell'utente, possono essere inserite nel contesto e diventare parte integrante del prompt, fornendo al modello dettagli cruciali per personalizzare le risposte. Al contempo, una finestra di contesto estesa può aiutare il modello a mantenere la "memoria" a breve termine all'interno del dialogo corrente, riducendo la dipendenza da un sistema di memoria esterno per informazioni immediate e pertinenti.
Metodi per implementare la memoria degli LLM
Metodi per contesti lunghi
Come accennato, un LLM può "dimenticare" le preferenze dell'utente, ripetere le stesse domande o addirittura contraddire fatti precedentemente confermati se il dialogo supera la sua finestra di contesto. Il metodo più diretto per migliorare la capacità di memoria di un LLM è potenziare la sua capacità di elaborazione di contesti lunghi. Attualmente, esistono diverse metodologie per migliorare questa capacità negli LLM, tra cui:
- RAG (Retrieval-augmented Generation): il RAG è un metodo ampiamente applicabile per costruire un indice di conoscenza e guidare l'LLM. Convertendo dati strutturati o non strutturati in una rappresentazione semantica ricercabile, il RAG implementa il principio di... (il testo originale si interrompe qui, indicando che la spiegazione completa del RAG sarebbe seguita in un contesto più ampio).