3,583 papers
arXiv:2510.23730 87 27 окт. 2025 г. FREE

Эпизодическая память через рефлексии: как LLM учится на своих ошибках

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM не знает границы своих знаний. Додумывает факты там где их нет. Путает даты. Соединяет несвязанное. Особенно в длинных диалогах — галлюцинирует вместо честного "нет информации". Метод EpMem позволяет научить модель отличать "знаю" от "не знаю" через анализ прошлых ошибок. Фишка: модель отвечает на первую порцию вопросов, видит где ошиблась, пишет рефлексию "почему сбой", сохраняет эти кейсы. При новом вопросе достаёт 3 похожих примера с рефлексиями — использует как шпаргалку. Результат: -90% токенов (с 23k до 1k), модель говорит "нет информации" вместо галлюцинаций.
Адаптировать под запрос

TL;DR

Эпизодическая память (EpMem) — техника, которая учит LLM на прошлых ответах через рефлексии. Модель отвечает на вопросы, сравнивает свои ответы с правильными, генерирует рефлексию "что пошло не так", сохраняет эти примеры и использует их как контекст для будущих похожих вопросов.

LLM плохо понимает границы своего знания — она не знает что она не знает. Особенно это видно в длинных диалогах: модель путает временные рамки (забывает даты разговоров), додумывает информацию там где её нет, неточно соединяет факты из разных частей беседы. При этом простое накопление всего контекста в промпте тратит 20,000+ токенов на запрос и всё равно даёт сбои.

EpMem решает через цикл: ответ → оценка → рефлексия → запоминание. Модель отвечает на первую порцию вопросов, видит где ошиблась, пишет на естественном языке "почему ошибка" и "как правильно", сохраняет эти кейсы. Когда приходит новый вопрос — достаёт 3 самых похожих примера с рефлексиями и использует как few-shot. Снижает использование токенов на 90% (с 23,000 до 1,000), повышает точность и учит модель говорить "нет информации" вместо галлюцинаций.

🔬

Схема метода

ЦИКЛ ОБУЧЕНИЯ (на первой порции вопросов):
ШАГ 1: Ответ → получи топ-10 релевантных фрагментов диалога, ответь на вопрос
ШАГ 2: Оценка → сравни ответ с правильным, посчитай F1-score
ШАГ 3: Рефлексия → проанализируй ошибку, опиши причину и как избежать
ШАГ 4: Сохранение → запиши {вопрос, контекст, ответ, правильный ответ, рефлексия}

ПРИМЕНЕНИЕ (на новых вопросах):
ШАГ 1: Поиск → найди топ-3 похожих кейса из памяти
ШАГ 2: Контекст → добавь их как примеры в промпт
ШАГ 3: Ответ → используй примеры и рефлексии для ответа

Цикл обучения и применение — это отдельные запросы к модели.

🚀

Пример применения

Задача: Ты ведёшь переписку с клиентом в CRM месяцами — обсуждаете проект, правки, оплаты, дедлайны. 300+ сообщений за полгода. Клиент спрашивает: "А мы обсуждали вариант с видео-отзывами?" Нужен точный ответ из истории, не галлюцинация.

Промпт для создания эпизодической памяти (первая итерация):

Ты помогаешь мне отвечать на вопросы клиента по нашей переписке. 

Вот 5 вопросов и фрагменты переписки:

[Вопрос 1]: Когда клиент впервые упомянул бюджет?
[Контекст]: {топ-10 релевантных сообщений}
[Твой ответ]: "В начале марта"
[Правильный ответ]: "12 марта, в сообщении про согласование ТЗ"

[Вопрос 2]: Обсуждали ли мы скидку за предоплату?
[Контекст]: {топ-10 релевантных сообщений}
[Твой ответ]: "Да, 10%"
[Правильный ответ]: "Нет информации"

...ещё 3 вопроса...

Для каждого вопроса проанализируй:
- Правильно ли ты ответил и почему?
- Если вопрос про дату — правильно ли понял временную привязку?
- Если информации не было — правильно ли сказал "нет информации"?
- Какую ошибку допустил и как избежать в будущем?

Напиши короткую рефлексию (2-3 предложения) для каждого.

Промпт для применения памяти:

Ответь на вопрос клиента, используя фрагменты переписки и прошлые примеры.

ПРИМЕРЫ ИЗ ПРОШЛОГО:

[Пример 1]
Вопрос: Когда клиент впервые упомянул бюджет?
Контекст: {сообщения}
Правильный ответ: "12 марта, в сообщении про согласование ТЗ"
Мой ответ: "В начале марта"
Рефлексия: "Я дал приблизительный ответ вместо точной даты. Нужно использовать конкретную дату из сообщения, если она есть."

[Пример 2]
Вопрос: Обсуждали ли мы скидку за предоплату?
Правильный ответ: "Нет информации"
Мой ответ: "Да, 10%"
Рефлексия: "Я додумал информацию которой не было в переписке. Если тема не упоминалась — честно сказать 'нет информации', не додумывать."

[Пример 3]
Вопрос: Какие правки клиент просил во втором этапе?
Правильный ответ: "Изменить цвета кнопок и убрать лишние блоки"
Мой ответ: "Изменить дизайн"
Рефлексия: "Ответ слишком общий. Нужно называть конкретные правки из сообщений."

ТЕКУЩИЙ ВОПРОС:
Вопрос: {вопрос клиента}
Фрагменты переписки: {топ-10 релевантных сообщений}

Используй прошлые рефлексии. Если информации нет — скажи "нет информации". Если есть дата — укажи точную. Ответ должен быть точным цитированием из переписки.

Ответ:

Результат: Модель увидит паттерны из прошлых ошибок: не додумывать, использовать точные даты, цитировать конкретику. В ответе будет либо точная фраза из переписки, либо честное "нет информации" — без галлюцинаций.

🧠

Почему это работает

LLM генерирует текст по паттернам, не "вспоминает факты". Длинный контекст = больше паттернов, больше шума, больше путаницы. Особенно в диалогах с временной структурой ("когда обсуждали X") или там где нужно сказать "не знаю" вместо догадки.

Сильная сторона LLM — обучение через примеры (few-shot learning). Если показать модели "вот как выглядит правильный ответ" и "вот типичная ошибка", она подстроится под паттерн. Рефлексия добавляет мета-уровень: модель видит не просто "правильно/неправильно", а почему неправильно.

EpMem использует это так: вместо 20,000 токенов всей истории даём 3 кейса с рефлексиями (~1,000 токенов). Модель видит контекст ошибки ("додумал факт"), рефлексию ("не додумывай"), правильный ответ ("нет информации"). Это обучает паттерн: когда семантически похожий вопрос, применить похожую стратегию ответа.

Особенность adversarial questions (вопросы без ответа в контексте): они семантически похожи на реальные темы диалога. Например, "Обсуждали ли мы скидку за предоплату?" может быть похожа на "Обсуждали ли мы условия оплаты?" — но первого не было. Простой RAG вытащит "условия оплаты" как релевантное → модель скажет "да". Рефлексия учит: "если точной темы нет — скажи нет, не экстраполируй".

Рычаги управления:

  • Количество примеров (сейчас 3) → увеличь до 5 для более сложных задач, уменьши до 1 для экономии токенов
  • Первая порция вопросов → выбери самые типичные ошибки, чтобы рефлексии покрывали разные типы сбоев
  • Структура рефлексии → укажи конкретный фокус: "анализируй только временные ошибки" или "фокус на галлюцинации"
  • Метрика похожести → используй семантический поиск или категориальный (тип вопроса: дата/факт/нет ответа)
📋

Шаблон промпта

Создание эпизодической памяти (цикл обучения):

Ты отвечаешь на вопросы по {тип контекста: диалогу/документу/истории}. 

Вот {количество} примеров твоих ответов:

{вопрос}: {вопрос}
{контекст}: {релевантные фрагменты}
{твой_ответ}: {твой ответ}
{правильный_ответ}: {эталонный ответ}

...ещё примеры...

Для каждого проанализируй:
- Правильно ли ответил? Почему?
- Если вопрос требовал {специфика: точной даты/фактов/отсутствия инфо} — как справился?
- Какую ошибку допустил?
- Как избежать в будущем?

Напиши короткую рефлексию для каждого (2-3 предложения).

Сохрани каждый набор {вопрос, контекст, твой_ответ, правильный_ответ, рефлексия} в память.

Применение памяти:

Ответь на вопрос, используя {тип контекста} и прошлые примеры.

ПРИМЕРЫ ИЗ ПРОШЛОГО:
{топ-3 похожих кейса с рефлексиями в формате:
Вопрос: ...
Контекст: ...
Правильный ответ: ...
Мой ответ: ...
Рефлексия: ...}

ТЕКУЩИЙ ВОПРОС:
Вопрос: {новый вопрос}
Контекст: {релевантные фрагменты}

Используй рефлексии из примеров. {Правила ответа: точные цитаты/даты/нет информации}.

Ответ:

Плейсхолдеры:

  • {тип контекста} — диалог, документ, история переписки
  • {количество} — 5-10 примеров для первого цикла
  • {специфика} — что важно для задачи (даты, факты, отсутствие информации)
  • {правила ответа} — как должен выглядеть ответ (цитаты, своими словами, формат)
  • {релевантные фрагменты} — контекст из RAG или ручного отбора

🚀 Быстрый старт — вставь в чат:

Вот шаблон эпизодической памяти для LLM. Адаптируй под мою задачу: [опиши свою задачу — например: "отвечать на вопросы клиента по истории проекта" или "анализировать встречи команды за полгода"]. 

Задавай вопросы, чтобы заполнить поля: какой контекст, какие типичные вопросы, какие специфические требования к ответам.

[вставить шаблон выше]

LLM спросит про источник контекста (диалог/документы), типы вопросов (факты/даты/мнения), формат ответов (цитаты/краткость/детали) — потому что EpMem работает лучше когда рефлексии настроены под специфику задачи. Она возьмёт структуру "вопрос → ответ → рефлексия" и адаптирует под твой кейс.

⚠️

Ограничения

⚠️ Синтетический датасет: Исследование на синтетических диалогах, не на реальных. Реальные диалоги с шумом, опечатками, неоднозначностью могут показать другие результаты.

⚠️ Workflow из нескольких запросов: Нужно сначала создать память (цикл обучения), потом применять. Это несколько запросов к модели, не одноходовка.

⚠️ Требует эталонных ответов для обучения: Чтобы создать рефлексии, нужны правильные ответы. Если их нет — метод не работает. Подходит для задач где можно проверить первые N ответов вручную.

⚠️ Лучше для сильных моделей: На маленьких базовых моделях (Llama 3B base, Mistral 7B base) EpMem не даёт улучшений. Работает на инструкт-моделях (GPT-4o mini, Llama/Qwen Instruct) которые понимают structured output и рефлексию.

⚠️ Не для простых задач: Если вопросы simple one-hop ("столица Франции"), накладные расходы на рефлексии не оправданы. Метод для сложных multi-hop, temporal и adversarial вопросов.

⚠️ Может переобучиться на "нет информации": Если в первой порции много adversarial вопросов, модель может начать чаще говорить "нет информации" даже там где ответ есть (пример: Qwen с PromptOpt + EpMem).

🔍

Как исследовали

Исследователи взяли бенчмарк LoCoMo — 10 синтетических диалогов по 300+ turns каждый (~9,000 токенов, 35 сессий, охватывают месяцы). Вопросы размечены на 5 категорий: single-hop (простые факты), multi-hop (соединить информацию из разных частей), temporal (про даты и время), open-domain (общие знания), adversarial (ответа нет в диалоге).

Протестировали на маленьких open-weight моделях (Llama 3.2-3B, Mistral 7B, Qwen 2.5-7B) + их instruct-версиях + GPT-4o mini. Сравнили 6 подходов:

  1. Full Context — весь диалог в промпт (baseline, 23,000 токенов)
  2. RAG — топ-10 фрагментов через семантический поиск (650 токенов)
  3. A-Mem — агентная память с тегами и связями (3,300 токенов)
  4. RAG + PromptOpt — RAG + оптимизация промпта через фидбек
  5. RAG + EpMem — RAG + эпизодическая память с рефлексиями
  6. RAG + PromptOpt + EpMem — всё вместе

Первый диалог (199 вопросов) использовали для создания памяти (генерация рефлексий, оптимизация промптов), остальные 9 диалогов (1,787 вопросов) — для оценки. Метрика — F1-score (точность ответа), плюс среднее количество токенов на запрос.

Что удивило:

  • Full Context не лучший — казалось бы, весь контекст = максимум информации, но модели путаются в 20k+ токенов, особенно в multi-hop и temporal вопросах ("lost in the middle" эффект).
  • RAG + EpMem обходит Full Context на сильных моделях при 90% экономии токенов — значит дело не в объёме контекста, а в качестве и структуре.
  • Adversarial вопросы (нет ответа в диалоге) — Full Context галлюцинирует (26-52% F1), RAG + EpMem говорит "нет информации" (68-95% F1). Это показывает: эпизодическая память учит модель метапознанию — знать что она не знает.

Инсайт для практики: Если твоя задача требует честности ("не знаю" вместо догадок), adversarial примеры в первой порции обучения критичны. Модель увидит паттерн "похоже на тему, но точного факта нет → скажи нет информации" и перенесёт его на новые кейсы.

Почему пришли к таким выводам: Рефлексия даёт модели мета-контекст — не просто "что правильно", а "почему я ошибся". Это мощнее чем просто few-shot примеры. Модель генерирует рефлексии в духе: "Я дал приблизительный ответ вместо точной даты — нужно использовать конкретную дату из текста" или "Я додумал информацию которой не было — если тема не упоминалась, честно сказать 'нет информации'". Когда эти рефлексии попадают в контекст нового вопроса — модель подстраивается под паттерн.

📄

Оригинал из исследования

Контекст: Промпт для создания рефлексии (Reflection Step) из статьи.

Reflect on your performance in the following QA example. Focus specifically on:
- Whether your answer was correct or not, and why.
- If the question required temporal reasoning, how well you handled it.
- If the question had no answer in the context, whether you correctly identified that.
- What reasoning errors (if any) occurred, and how to avoid them in future similar cases.

Provide a short reflection in a few sentences.

Question: {question}
Context: {top-10 retrieved utterances}
Correct Answer: {label}
Predicted Answer: {prediction}

Reflection:

Контекст: Промпт для применения эпизодической памяти (QA Step).

You are an AI assistant that answers questions based on a given conversation. Use the current context and optionally refer to past examples and reflections to help you reason, but focus on the current question.

Based on the given conversation snippets, write a short answer for the following question in a few words. Do not write complete and lengthy sentences. Answer with exact words from the conversations whenever possible. Use the following examples to answer correctly.

Examples: {top-3 most similar episodic memories with reflections}

Below are retrieved snippets from a conversation between two people.
{top-10 retrieved utterances}

Question: {query}

Now, answer the current question using the conversation context above. Refer to the past examples and reflections only if they help clarify your reasoning. If the answer to the question requires you to do temporal reasoning, use DATE of CONVERSATION to answer with an approximate date. If the question cannot be answered, write 'No information available'.

Answer:
💡

Адаптации и экстраполяции

💡 Адаптация для анализа customer success переписки:

Если ты customer success менеджер и ведёшь клиента месяцами — обсуждаете интеграцию, баги, фичи, апсейлы. Нужно быстро найти: "Когда клиент жаловался на медленную загрузку?" или "Обсуждали ли мы API для экспорта данных?"

Создай эпизодическую память для переписки с клиентом {название компании}.

Первые 10 вопросов с правильными ответами (проверь сам):
1. Когда клиент впервые упомянул интеграцию с Salesforce?
 Правильный ответ: {дата, сообщение}
2. Обсуждали ли скидку за годовой план?
 Правильный ответ: {да/нет, детали}
...

Для каждого:
- Дай контекст из переписки (топ-10 релевантных сообщений)
- Ответь
- Сравни с правильным
- Напиши рефлексию: где ошибка, почему, как избежать

Сохрани рефлексии. При новых вопросах клиента — используй 3 самых похожих примера как контекст.

Эффект: Честные ответы "нет информации" вместо додумывания, точные даты вместо "где-то в марте", конкретика вместо общих фраз.

🔧 Техника: Убрать структуру рефлексии → видеть свободное мышление модели

Оригинальный промпт задаёт чёткую структуру рефлексии ("Focus specifically on: ..."). Если убрать структуру:

Reflect on your performance in this QA example. Why did you answer this way? What went wrong or right?

Question: {question}
Context: {context}
Correct Answer: {label}
Predicted Answer: {prediction}

Reflection:

Эффект: Модель пишет рефлексии своими словами, может заметить паттерны которые не вписываются в заданную структуру. Полезно для исследования типов ошибок на старте.

🔧 Техника: Разные типы рефлексий для разных категорий вопросов

Вместо одной рефлексии для всех, создай специализированные наборы памяти:

НАБОР 1: Temporal Questions (вопросы про даты)
Рефлексии фокусируются на: точность дат, разница между "примерно" и "точно", использование DATE of CONVERSATION.

НАБОР 2: Adversarial Questions (вопросов без ответа)
Рефлексии фокусируются на: когда сказать "нет информации", как отличить "похожая тема" от "точный факт", не додумывать.

НАБОР 3: Multi-hop Questions (соединение фактов)
Рефлексии фокусируются на: как связывать информацию из разных частей, не терять промежуточные шаги.

При новом вопросе — определи категорию (можно попросить LLM) → достань примеры из соответствующего набора.

Эффект: Более точные рефлексии для каждого типа задачи, меньше generic советов "будь точнее".

💡 Экстраполяция: EpMem + Self-Consistency для снижения галлюцинаций

Комбинируй эпизодическую память с self-consistency (генерация нескольких ответов, выбор консенсуса):

Ты отвечаешь на вопрос используя {контекст} и прошлые рефлексии.

ПРИМЕРЫ: {топ-3 рефлексии}
КОНТЕКСТ: {релевантные фрагменты}
ВОПРОС: {вопрос}

Сгенерируй 3 разных ответа:

Ответ 1:
Ответ 2:
Ответ 3:

Теперь проанализируй:
- Какие ответы согласуются?
- Какие противоречат?
- Если все 3 говорят "нет информации" → скорее всего правда нет
- Если 2 из 3 одинаковы → вероятно правильный
- Если все 3 разные → не уверен, скажи "нет информации"

Финальный ответ:

Эффект: Снижение галлюцинаций через внутреннюю проверку. Если модель в 3 вариантах додумывает разное — признак галлюцинации. Если 3 раза говорит одно — больше уверенности.

🔗

Ресурсы

Evaluating Long-Term Memory for Long-Context Question Answering (arXiv:2504.XXXXX) — Alessandra Terranova, Björn Ross, Alexandra Birch, School of Informatics, University of Edinburgh

LoCoMo benchmark — Maharana et al., 2024. Benchmark длинных диалогов для QA.

Reflexion (Shinn et al., 2023) — Language agents with verbal reinforcement learning. Базовая идея рефлексий для LLM.

ExpeL (Zhao et al., 2024) — Experiential Learning framework. LLM agents learn from experience without gradient updates.

A-Mem (Xu et al., 2025) — Agentic semantic memory system with contextual tags and dynamic links.


📋 Дайджест исследования

Ключевая суть

Обнаружено: LLM не знает границы своих знаний. Додумывает факты там где их нет. Путает даты. Соединяет несвязанное. Особенно в длинных диалогах — галлюцинирует вместо честного "нет информации". Метод EpMem позволяет научить модель отличать "знаю" от "не знаю" через анализ прошлых ошибок. Фишка: модель отвечает на первую порцию вопросов, видит где ошиблась, пишет рефлексию "почему сбой", сохраняет эти кейсы. При новом вопросе достаёт 3 похожих примера с рефлексиями — использует как шпаргалку. Результат: -90% токенов (с 23k до 1k), модель говорит "нет информации" вместо галлюцинаций.

Принцип работы

Цикл из четырёх шагов. Первая итерация — обучение: модель отвечает на 5-10 вопросов → сравнивает с правильными ответами → генерирует рефлексию на естественном языке ("додумал факт которого не было — нужно говорить 'нет информации'") → сохраняет весь набор {вопрос, контекст, ответ, рефлексия}. Применение: при новом вопросе достаёт топ-3 семантически похожих кейса. Добавляет их в промпт как few-shot примеры (обучение на примерах). Модель видит не просто "правильно/неправильно", а почему ошибка и как избежать.

Почему работает

LLM генерирует текст по паттернам, не "вспоминает факты". Длинный контекст = больше шума, больше ложных паттернов. Сильная сторона модели — обучение через примеры (few-shot). Если показать "вот типичная ошибка" + "вот рефлексия почему" + "вот правильный ответ" — модель подстроится под паттерн. 3 кейса с рефлексиями (~1k токенов) работают лучше чем весь контекст (20k+ токенов). Модель видит паттерн: "когда семантически похожий вопрос без прямого ответа в контексте — скажи 'нет информации', не экстраполируй". Особенно для вопросов-ловушек (adversarial): они семантически похожи на реальные темы. Пример: "Обсуждали ли скидку?" похоже на "Обсуждали ли оплату?". Простой RAG вытащит "оплату" → модель скажет "да". Рефлексия учит: точной темы нет = честно сказать нет.

Когда применять

Длинные диалоги и истории → когда нужна точность в фактах, датах, или честное "нет информации" вместо галлюцинаций. Особенно когда есть вопросы про отсутствующую информацию. Примеры: CRM-переписка с клиентом за месяцы, анализ встреч команды, база знаний с временными зависимостями, саппорт-чаты где важно не додумывать. НЕ подходит для: простых вопросов ("столица Франции"), задач без эталонных ответов для обучения, маленьких базовых моделей (Llama 3B base).

Мини-рецепт

1. Создай обучающую выборку: Возьми 5-10 типичных вопросов. Получи ответы модели и правильные ответы.

2. Запроси рефлексию: Для каждого вопроса попроси модель проанализировать: "Правильно ли ответил? Какую ошибку допустил? Как избежать?" Сохрани формат: {вопрос, контекст, твой_ответ, правильный_ответ, рефлексия}.

3. Сохрани в память: Каждый набор как отдельный кейс.

4. Применяй на новых вопросах: При новом вопросе найди топ-3 семантически похожих кейса (через embedding или категорию вопроса). Добавь их в промпт как примеры перед текущим вопросом.

5. Укажи правила: В промпте скажи: "Используй рефлексии из примеров. Если информации нет — говори 'нет информации'. Если есть дата — укажи точную."

Примеры

[ПЛОХО] : Ответь на вопрос клиента по переписке за полгода: "Обсуждали ли мы вариант с видео-отзывами?" (модель додумает "да" если видела тему "отзывы" в контексте)
[ХОРОШО] : Вот 3 примера моих прошлых ошибок с рефлексиями: Пример 1: Вопрос: "Обсуждали ли скидку за предоплату?" Контекст: {сообщения про оплату} Мой ответ: "Да, 10%" Правильный ответ: "Нет информации" Рефлексия: "Додумал факт которого не было в переписке. Если тема не упоминалась — честно сказать 'нет информации', не додумывать." Пример 2: Вопрос: "Когда клиент впервые упомянул бюджет?" Мой ответ: "В начале марта" Правильный ответ: "12 марта, в сообщении про согласование ТЗ" Рефлексия: "Дал приблизительный ответ вместо точной даты. Нужно использовать конкретную дату из сообщения." Пример 3: Вопрос: "Какие правки клиент просил?" Мой ответ: "Изменить дизайн" Правильный ответ: "Изменить цвета кнопок и убрать лишние блоки" Рефлексия: "Ответ слишком общий. Нужно называть конкретные правки из сообщений." Текущий вопрос: "Обсуждали ли мы вариант с видео-отзывами?" Контекст: {топ-10 релевантных сообщений} Используй рефлексии. Если информации нет — скажи "нет информации". (модель видит паттерн ошибки → не додумывает)
Источник: Evaluating Long-Term Memory for Long-Context Question Answering
ArXiv ID: 2510.23730 | Сгенерировано: 2026-01-11 23:29

Методы

МетодСуть
Цикл рефлексии — обучение на своих ошибкахМодель отвечает на первую порцию вопросов. Ты показываешь правильные ответы. Модель пишет для каждой ошибки: "что пошло не так" и "как избежать". Сохраняешь эти кейсы {вопрос + контекст + ответ + правильный ответ + рефлексия}. Когда новый вопрос — находишь 3 самых похожих примера, вставляешь как few-shot контекст. Почему работает: Рефлексия = мета-уровень. Модель видит не просто "верно/неверно", а паттерн ошибки ("додумал факт скажи 'нет информации'"). Few-shot с объяснением ошибок учит лучше чем просто правильные примеры. Когда применять: Задачи где можно проверить первые 5-10 ответов вручную. Есть типичные ошибки (додумывание, неточные даты, путаница фактов). Много похожих вопросов дальше. Когда не работает: Нет эталонных ответов для первой порции. Каждый вопрос уникален (нет похожих в будущем). Простые one-hop вопросы ("столица Франции") — накладные расходы не оправданы. Слабые базовые модели (Llama 3B, Mistral 7B) — не понимают структурированную рефлексию

Тезисы

ТезисКомментарий
Рефлексия "почему ошибка" работает сильнее чем просто "правильно/неправильно"Когда показываешь модели ошибку + объяснение ("я додумал цифру которой не было нужно говорить 'нет информации'"), она учится на паттерне, а не на факте. Простой feedback ("это неверно") не показывает ЧТО именно сломалось. Рефлексия добавляет причинно-следственную связь: модель видит логику ошибки и применяет к похожим случаям. Применяй: В few-shot примерах добавляй не только правильный ответ, но и типичную ошибку + короткое объяснение (2-3 предложения) "почему ошиблась" и "как правильно"
📖 Простыми словами

Эпизодическая память через рефлексии: как LLM учится на своих ошибках

arXiv: 2510.23730

Суть в том, что даже самые навороченные нейронки с огромным «окном контекста» на самом деле обладают памятью золотой рыбки. Когда ты скармливаешь модели историю переписки за полгода, она не вникает в суть, а просто пытается угадать следующее слово по статистическим паттернам. В итоге в огромном массиве данных она тупо теряется: важные детали тонут в цифровом шуме, и на конкретный вопрос модель начинает уверенно нести чушь. Метод Episodic Memory (EpMem) решает это через принудительную работу над ошибками, превращая модель из зубрилы в опытного спеца.

Это как если бы ты каждый раз после неудачного свидания садился и записывал в блокнот: «Так, шутка про бывшую была лишней, а вот цветы в начале — это база». В следующий раз перед встречей ты перечитываешь этот «дневник косяков» и ведешь себя умнее. Без такой рефлексии ты бы раз за разом наступал на те же грабли, надеясь, что в этот раз пронесет. EpMem заставляет нейронку буквально учиться на своих факапах, сохраняя их в отдельную базу знаний.

Работает это по жесткому алгоритму: модель отвечает на вопрос, сравнивает результат с правильным ответом и сама себе пишет объяснение, почему она облажалась. Эти «заметки на полях» сохраняются как эпизодическая память. Когда прилетает похожий запрос, система сначала лезет в этот архив, находит релевантный опыт и говорит модели: «Смотри, в прошлый раз ты тут нагаллюцинировала, вот как надо было на самом деле». В итоге вместо того, чтобы перерывать 300 сообщений в CRM, модель опирается на сжатый опыт прошлых ответов.

Хотя метод гоняли на длинных текстах и вопросах-ответах, принцип универсален для любой долгой работы с данными. Это маст-хэв для юридических архивов, медицинских карт или бесконечных цепочек писем, где цена ошибки — галлюцинация, которая может стоить денег или репутации. Если нужно, чтобы AI не просто «читал» историю, а реально понимал контекст и не врал, когда чего-то не помнит, без структурированной рефлексии не обойтись.

Короче, эпоха, когда мы просто надеялись на «длинный контекст», уходит — он слишком дырявый. Будущее за моделями, которые умеют в самоанализ и хранят свои прошлые ошибки как шпаргалку. Либо ты внедряешь EpMem и получаешь точные ответы, либо продолжаешь играть в рулетку с галлюцинациями, надеясь, что нейронка случайно попадет в цель. В серьезных задачах надеяться на авось — это путь в никуда.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с