Episodic Memory
Эпизодическая память в ИИ хранит конкретные прошлые события из опыта агента вместе с контекстом и позволяет обращаться к ним позже — от буфера воспроизведения в RL до памяти LLM-агента.
Эпизодическая память в искусственном интеллекте — это хранилище конкретного прошлого опыта агента, где каждый эпизод сохраняется вместе с контекстом: что, где и когда произошло. Позже агент ищет в этом хранилище сведения, чтобы принять текущее решение. Термин пришёл из психологии: в 1972 году Эндель Тульвинг провёл различие между эпизодической памятью — воспоминаниями о личных событиях — и семантической памятью, то есть общими фактами. В ИИ эпизодическая память представляет собой внешнее хранилище, куда агент записывает данные во время работы: агенты обучения с подкреплением сохраняют прошлые переходы и награды, ИИ-агенты на базе языковых моделей — записи предыдущих разговоров и действий, а роботы и носимые ассистенты — журналы того, что видели их камеры.
Эпизодическая, семантическая и процедурная память#
Обученная нейронная сеть хранит общие знания в весах модели, которые меняются только во время обучения. Поэтому для воспоминания о конкретном событии, произошедшем вчера, требуется отдельное хранилище, в которое можно записывать данные во время работы. В предложенной Теодором Самерсом, Шунью Яо, Картиком Нарасимханом и Томасом Гриффитсом в 2023 году структуре Cognitive Architectures for Language Agents (CoALA) психологические категории соотносятся с агентами на базе больших языковых моделей (LLM). Рабочая память — это текущий промпт; эпизодическая память содержит прошлый опыт агента; семантическая память — сведения об окружающем мире; процедурная память — навыки, представленные весами модели и кодом агента.
Агент с эпизодической памятью читает из неё и записывает в неё на каждом шаге:
Эпизодическая память в обучении с подкреплением#
Воспроизведение опыта, введённое Лонг-Джи Лином в 1992 году, — простейший вариант эпизодического хранилища: агент сохраняет переходы и обучается на случайных выборках из них. Агент DQN, научившийся играть в игры Atari в 2015 году, хранил последний миллион переходов. Эпизодическое управление использует хранилище, чтобы напрямую выбирать действия. В 2016 году Чарльз Бланделл и коллеги из DeepMind разработали Model-Free Episodic Control: метод записывал наилучшую полученную награду для каждого состояния и действия и оценивал ценность новых состояний по их ближайшим соседям в памяти, благодаря чему на ранних этапах обучения он учился быстрее DQN. Агент DeepMind Never Give Up (2020) вознаграждает себя за достижение состояний, далёких от всего, что сохранено в памяти текущего эпизода. Этот бонус за исследование помог его преемнику Agent57 стать первым агентом глубокого обучения с подкреплением, превзошедшим человеческий результат во всех 57 играх Atari.
Эпизодическая память в LLM-агентах#
Языковая модель помнит только то, что помещается в её контекстное окно, поэтому долгоживущие агенты записывают свой опыт во внешнее хранилище и извлекают оттуда нужные сведения в промпт. В работе Generative Agents, представленной на UIST 2023, Джун Сон Парк и коллеги из Стэнфорда и Google снабдили 25 симулированных персонажей потоком памяти из наблюдений на естественном языке. Каждая запись оценивается по давности — экспоненциальному затуханию с коэффициентом 0,995 за каждый игровой час после последнего извлечения; важности — целому числу от 1 до 10, присвоенному языковой моделью; и релевантности — косинусному сходству между эмбеддингом записи и запроса. Три оценки нормализуются методом min-max и складываются с одинаковыми весами.
В этом примере такая оценка применяется к воспоминаниям домашнего робота с использованием модели эмбеддингов предложений 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]}")Наблюдение в коридоре занимает первое место с оценкой 2,44, опережая наблюдение у кухонной стойки с оценкой 1,89, хотя старая запись немного сильнее похожа на вопрос (0,71 против 0,70). Разницу определяет давность, поэтому робот сообщает, где в последний раз видел ключи. Reflexion, разработанная Ноа Шинном и коллегами в 2023 году, сохраняет собственные письменные размышления агента о неудачных попытках в эпизодическом буфере и достигла 91% pass@1 на бенчмарке программирования HumanEval против 80% у GPT-4.
Эпизодическая память в видео и воплощённых агентах#
В воплощённом ИИ и носимых камерах эпизодическая память позволяет отвечать на вопросы о том, что камера видела раньше. Датасет Ego4D, выпущенный Meta и университетскими партнёрами в 2021 году, содержит 3 670 часов видео от первого лица, снятого 931 пользователем камер в 74 локациях 9 стран, и включает бенчмарк эпизодической памяти с вопросами вроде «Куда я положил ключи?». Задачи требуют найти в видео момент, отвечающий на вопрос на естественном языке, определить последнее появление объекта с эталонного изображения и найти все случаи выполнения действия. В пакете Ultralytics VisualAISearch создаёт эмбеддинг каждого изображения в папке с помощью CLIP и ранжирует изображения по косинусному сходству с текстовым запросом. Это этап оценки релевантности для такой памяти кадров, сохранённых камерой робота.
Эпизодическая память и смежные термины#
- Банк памяти: Хранит векторы для собственных вычислений модели, например негативные примеры для контрастивного обучения, прошлые кадры видео или нормальные участки изображений. Эпизодическая память хранит опыт агента, чтобы помогать ему принимать решения.
- Генерация с дополненной извлечением (RAG): Извлекает фрагменты из внешних документов, чтобы обосновать ответы модели. Эпизодическая память применяет тот же механизм извлечения к собственной истории агента.
- Векторная база данных: Слой хранения и поиска по сходству, в котором часто размещают эпизодические воспоминания производственных агентов.
- Непрерывное обучение: Осваивает новые задачи без катастрофического забывания старых, часто повторно используя сохранённые примеры. Gradient Episodic Memory (GEM), предложенная Дэвидом Лопес-Пасом и Марком Аурелио Ранцато в 2017 году, хранит небольшую выборку примеров из каждой предыдущей задачи и ограничивает каждое обновление так, чтобы функция потерь на этих примерах не росла.










