Episodic Memory
La memoria episodica nell'IA conserva le esperienze specifiche passate di un agente insieme al loro contesto e le recupera in seguito, dal replay RL alla memoria degli agenti LLM.
La memoria episodica nell'intelligenza artificiale è un archivio delle esperienze passate specifiche di un agente, ognuna conservata con il contesto di cosa è accaduto, dove e quando; in seguito, l'agente cerca queste esperienze per orientare una decisione attuale. Il termine deriva dalla psicologia, dove nel 1972 Endel Tulving distinse la memoria episodica, il ricordo di eventi personali, dalla memoria semantica, la conoscenza generale dei fatti. Nell'AI, la memoria episodica è un archivio esterno a cui un agente scrive mentre è in esecuzione: gli agenti di apprendimento per rinforzo conservano transizioni e ricompense passate, gli agenti AI basati su modelli linguistici registrano le conversazioni e le azioni precedenti, mentre i robot e gli assistenti indossabili tengono traccia di ciò che hanno visto le loro videocamere.
Memoria episodica, semantica e procedurale#
Una rete neurale addestrata conserva la conoscenza generale nei pesi del modello, che cambiano solo durante l'addestramento; per ricordare un evento specifico di ieri serve quindi un archivio separato, scrivibile durante l'esecuzione. Il framework Cognitive Architectures for Language Agents (CoALA), proposto da Theodore Sumers, Shunyu Yao, Karthik Narasimhan e Thomas Griffiths nel 2023, applica le categorie psicologiche agli agenti basati su modelli linguistici di grandi dimensioni (LLM). La memoria di lavoro è il prompt corrente, la memoria episodica contiene le esperienze passate dell'agente, la memoria semantica contiene i fatti sul mondo e quella procedurale contiene le competenze sotto forma di pesi del modello e codice dell'agente.
Un agente dotato di memoria episodica legge da essa e vi scrive a ogni passaggio:
Memoria episodica nell'apprendimento per rinforzo#
L'experience replay, introdotto da Long-Ji Lin nel 1992, è l'archivio episodico più semplice: l'agente salva le proprie transizioni e si addestra su campioni casuali di esse; l'agente DQN che imparò a giocare ai videogiochi Atari nel 2015 conservava le 1 milione di transizioni più recenti. Il controllo episodico usa l'archivio per agire direttamente. Il Model-Free Episodic Control, sviluppato da Charles Blundell e colleghi di DeepMind nel 2016, registrava il miglior ritorno mai ottenuto dopo ogni stato e azione e stimava il valore dei nuovi stati a partire dai loro vicini più prossimi in memoria, imparando così più rapidamente di DQN nelle prime fasi dell'addestramento. L'agente Never Give Up di DeepMind (2020) si ricompensa quando raggiunge stati lontani da tutto ciò che è archiviato nella memoria dell'episodio corrente: un bonus di esplorazione che ha aiutato il suo successore, Agent57, a diventare il primo agente di apprendimento profondo per rinforzo a superare il benchmark umano in tutti e 57 i giochi Atari.
Memoria episodica negli agenti LLM#
Un modello linguistico ricorda solo ciò che rientra nella propria finestra di contesto, perciò gli agenti di lunga durata scrivono le proprie esperienze in un archivio esterno e recuperano nel prompt quelle pertinenti. In Generative Agents, presentato a UIST 2023, Joon Sung Park e colleghi di Stanford e Google hanno fornito a 25 personaggi simulati un flusso di memoria composto da osservazioni in linguaggio naturale. Ogni ricordo riceve un punteggio in base alla recenza, calcolata con un decadimento esponenziale pari a 0,995 per ogni ora di gioco dall'ultimo recupero; all'importanza, un intero da 1 a 10 assegnato dal modello linguistico; e alla rilevanza, la similarità coseno tra l'embedding del ricordo e quello della query. I tre punteggi vengono normalizzati con min-max e sommati con pesi uguali.
Questo esempio applica il punteggio ai ricordi di un robot domestico, usando il modello di embedding per frasi all-MiniLM-L6-v2:
import numpy as np
from sentence_transformers import SentenceTransformer
# Episodic memories of a home robot: what happened, hours since last recalled, importance from 1 to 10
memories = [
("Saw the car keys on the kitchen counter", 30, 5),
("Charged the battery at the docking station", 2, 2),
("Watered the plants in the living room", 5, 3),
("Saw the car keys in the coat pocket in the hallway", 4, 5),
("The user said the back door sticks when it rains", 50, 8),
]
texts, hours, importance = zip(*memories)
model = SentenceTransformer("all-MiniLM-L6-v2")
query = model.encode("Where are my car keys?", normalize_embeddings=True)
relevance = model.encode(list(texts), normalize_embeddings=True) @ query # cosine similarity to the query
recency = 0.995 ** np.array(hours) # exponential decay per hour
# Generative Agents retrieval: min-max normalize each signal to 0-1, then add them with equal weights
signals = [recency, np.array(importance, dtype=float), relevance]
score = sum((s - s.min()) / (s.max() - s.min()) for s in signals)
for i in np.argsort(-score)[:3]:
print(f"score {score[i]:.2f}, relevance {relevance[i]:.2f}: {texts[i]}")L'avvistamento nel corridoio si classifica al primo posto con un punteggio di 2,44, davanti a quello del piano di lavoro della cucina, che ottiene 1,89, benché il ricordo più vecchio sia leggermente più simile alla domanda (0,71 contro 0,70). La recenza distingue i due risultati, quindi il robot indica dove ha visto le chiavi più di recente. Reflexion, realizzato da Noah Shinn e colleghi nel 2023, archivia in un buffer episodico le riflessioni scritte dall'agente sui tentativi falliti e ha raggiunto il 91% di pass@1 nel benchmark di programmazione HumanEval, contro l'80% di GPT-4.
Memoria episodica negli agenti video e incarnati#
Nell'AI incarnata e nelle videocamere indossabili, la memoria episodica consente di rispondere a domande su ciò che una videocamera ha visto in precedenza. Il dataset Ego4D, pubblicato da Meta e da università partner nel 2021, contiene 3.670 ore di video in prima persona registrate da 931 persone con videocamera in 74 località di 9 paesi e include un benchmark di memoria episodica basato su domande come «Dove ho messo le chiavi?». Le attività consistono nell'individuare il momento del video che risponde a una domanda in linguaggio naturale, trovare l'ultima apparizione di un oggetto mostrato in un'immagine di riferimento e trovare ogni occorrenza di un'attività. Nel pacchetto Ultralytics, VisualAISearch calcola l'embedding di ogni immagine in una cartella con CLIP e le classifica rispetto a una query testuale in base alla similarità coseno: è il passaggio di rilevanza per una memoria di questo tipo, applicato ai fotogrammi salvati dalla videocamera di un robot.
Memoria episodica e termini correlati#
- Banca di memoria: conserva vettori destinati al calcolo del modello stesso, come esempi negativi per l'apprendimento contrastivo, fotogrammi video passati o patch di immagini normali. La memoria episodica conserva le esperienze di un agente per guidarne le decisioni.
- Generazione aumentata dal recupero (RAG): recupera passaggi da documenti esterni per contestualizzare le risposte di un modello. La memoria episodica applica gli stessi meccanismi di recupero alla cronologia dell'agente.
- Database vettoriale: livello di archiviazione e ricerca per similarità che spesso contiene i ricordi episodici degli agenti di produzione.
- Apprendimento continuo: apprende nuovi compiti senza dimenticare in modo catastrofico quelli precedenti, spesso riproponendo esempi archiviati. Gradient Episodic Memory (GEM), sviluppato da David Lopez-Paz e Marc'Aurelio Ranzato nel 2017, conserva un piccolo insieme di esempi per ciascun compito precedente e vincola ogni aggiornamento in modo da non aumentare la loss su tali esempi.










