TL;DR
Модели хуже всего справляются не с длинными текстами, а с задачами где нужно одновременно держать в голове несколько конкурирующих кусков информации. LLM видит весь контекст — но это не помогает. Проблема не в том, что информации нет, а в том, что нужный элемент тонет в помехах от соседних.
Главная находка: у LLM есть рабочая память — и она работает почти как человеческая, со всеми теми же ограничениями. Чем больше элементов нужно отслеживать одновременно — тем хуже точность. Причём модель чаще ошибается в сторону самого свежего, а не самого нужного. Если вы просите вспомнить факт из начала разговора, а в конце накидали похожих — модель «притягивается» к последним. Это не баг конкретной модели, это системное свойство всех протестированных LLM.
Суть: проблема не в доступе к информации, а в интерференции (interference) — конкурирующие элементы мешают извлечь нужный. Чем больше похожих «кандидатов» в контексте — тем сложнее модели изолировать цель. Значит, грамотный промпт должен уменьшать помехи, а не просто повторять нужный факт ещё раз.
Схема механизма
СОСТОЯНИЕ ВХОДА: несколько похожих элементов в контексте
↓
ПОМЕХА 1: недавние элементы «перетягивают» внимание (recency bias)
ПОМЕХА 2: похожий контент конкурирует с целевым (lure effect)
ПОМЕХА 3: чем больше элементов → тем сильнее наложение
↓
РЕЗУЛЬТАТ: модель выдаёт неверный элемент или теряет нить
---
КАК СНИЗИТЬ ПОМЕХИ (практические принципы):
ПРИНЦИП 1: Уменьши нагрузку → меньше конкурирующих элементов в контексте
ПРИНЦИП 2: Используй рецентность → ключевое — ближе к вопросу
ПРИНЦИП 3: Разделяй элементы явно → модель лучше изолирует нужный
ПРИНЦИП 4: Убирай нерелевантное → похожий шум создаёт лишние помехи
Все четыре принципа работают в обычном чате, ничего не нужно программировать.
Пример применения
Задача: Ты готовишь коммерческое предложение. Дал модели длинный бриф: описание клиента, его боли, бюджет, дедлайны, требования к формату, примеры конкурентов, пожелания по тону. Спрашиваешь: «Напиши оффер, учитывая ограничение по бюджету». Модель пишет оффер — но про бюджет молчит или называет цифру из раздела про конкурентов.
Почему так: бюджет упомянут в начале, а «похожие числа» (цены конкурентов) — ближе к концу. Рецентность + лур-эффект сработали против тебя.
Промпт с учётом интерференции:
Сейчас я дам тебе контекст по частям. После каждой части — просто подтверди "понял".
[ЧАСТЬ 1 — Клиент и боли]:
Клиент: [имя/описание]. Боль: [что болит].
[ЧАСТЬ 2 — Требования]:
Формат: [формат]. Тон: [тон].
[ЧАСТЬ 3 — Ключевое ограничение]:
БЮДЖЕТ: строго до [сумма]. Это главное условие. Повтори его.
Теперь напиши оффер. Главный фокус — ограничение бюджета из Части 3.
Результат: Модель подтвердит каждую часть отдельно — это снижает интерференцию между блоками. Явное повторение ключевого ограничения в конце использует рецентность в твою пользу. Оффер будет точнее учитывать именно то, что нужно.
Почему это работает
Слабость LLM — не в том, что она не видит контекст. Она видит всё. Проблема в том, что при генерации ответа похожие элементы конкурируют за влияние на результат. Это как пытаться вспомнить конкретный телефонный разговор, когда их было пять в один день — все похожи, и мозг «смешивает».
Рецентность работает потому что недавние токены имеют более сильное влияние на финальный вывод. Это не метафора — это буквально то, что показало исследование: ошибки LLM систематически смещены в сторону самых последних нецелевых элементов, а не случайных.
Разделение снижает помехи потому что явные разделители («ЧАСТЬ 1», ---, теги) помогают модели формировать разные представления для разных блоков контента. Чем меньше наложение между блоками — тем легче изолировать нужный при ответе.
Рычаги управления: - Количество элементов → чем меньше «конкурирующих фактов» одновременно, тем точнее модель. Дроби на шаги. - Позиция ключевого факта → кладёшь главное в самый конец перед вопросом — используешь рецентность. - Явное повторение → «повтори X» — заставляет модель активно изолировать нужный элемент. - Удаление похожего шума → убираешь примеры конкурентов с похожими числами → меньше лур-эффекта.
Шаблон промпта
Принцип «снижения интерференции»
Буду давать контекст по блокам. После каждого — просто напиши "ОК".
[БЛОК 1 — {категория_1}]:
{содержание_1}
[БЛОК 2 — {категория_2}]:
{содержание_2}
[КЛЮЧЕВОЕ УСЛОВИЕ / ГЛАВНЫЙ ФАКТ]:
{самое важное — то, что должно попасть в ответ точно}
Повтори это своими словами, чтобы я убедился что понял правильно.
Теперь {задача}. Главный приоритет — условие из последнего блока.
Что подставлять:
- {категория_N} — тип информации: «Клиент», «Требования», «Ограничения»
- {содержание_N} — сам контент
- {самое важное} — то что ДОЛЖНО попасть в финальный ответ
- {задача} — что нужно сделать: «напиши письмо», «составь план», «сформулируй оффер»
🚀 Быстрый старт — вставь в чат:
Вот шаблон для снижения интерференции в промпте.
Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить все поля.
[вставить шаблон выше]
LLM уточнит сколько блоков нужно и что является «ключевым условием» — потому что именно позиция и явность главного элемента определяют точность ответа.
Ограничения
⚠️ Не серебряная пуля: Разделение блоков снижает интерференцию, но не устраняет её полностью. При очень высокой нагрузке (много похожих элементов) точность всё равно падает — просто медленнее.
⚠️ Рецентность — палка о двух концах: То, что ты кладёшь в конец, усиливается. Но если в конце несколько похожих элементов — они сами начинают мешать друг другу. Изолируй одно главное, не несколько.
⚠️ Болтает про похожее → это лур-эффект: Если модель упорно тянет не тот факт — скорее всего рядом с нужным есть похожий. Убери конкурирующий контент из контекста перед повторным запросом.
⚠️ Не работает для задач без «рабочей памяти»: Для простых генеративных задач (напиши стих, переведи текст) — интерференция рабочей памяти почти не влияет. Эффект нагляден когда нужно отслеживать, помнить и применять конкретное из большого контекста.
Как исследовали
Исследователи взяли N-back — классический психологический тест на рабочую память. В нём нужно ответить не на текущий стимул, а на тот, что был N шагов назад: при 2-back на A,B,C,D отвечаешь -,-,A,B. Простая идея, жёсткий контроль. Для LLM сделали мультитёрный диалог: каждый ход — одна буква, задача — вспомнить нужную.
Протестировали 10 разных моделей: Gemma 3 (1B до 27B), Qwen 3.5 (2B до 27B), Llama-3.1-8B, Ministral 14B. Проверяли два режима: обычная генерация и «teacher forcing» (где правильные ответы подставляются принудительно). Оба режима показали одно и то же.
Что удивило: маленький двухслойный трансформер, натренированный прямо на N-back, решает задачу идеально. А огромные LLM с доступом ко всему контексту — нет. Это значит дело не в архитектуре и не в «не видит предыдущее». Дело в том, как информация закодирована после предобучения на общих данных.
Самая сильна находка — рабочая память предсказывает общий интеллект модели. Точность на N-back коррелировала с MMLU Pro, GPQA Diamond и IFEval сильнее, чем количество параметров. Размер модели сам по себе не предсказывал ни один бенчмарк — а тест на рабочую память предсказывал все три. Как у людей: IQ и рабочая память связаны.
Механистически: команда смотрела как представления меняются слой за слоем. Нашли одинаковый паттерн у всех моделей — сначала подавление нерелевантного контента, потом разведение представлений разных элементов, потом выравнивание нужного к выходному слою только в самом конце. И провели каузальный эксперимент: насильно убрали информацию об идентичности букв из активаций — точность улучшилась. Значит, именно этот «шум» мешает, а не что-то другое.
Адаптации и экстраполяции
🔧 Техника: явная «зачистка контекста» перед ключевым вопросом
Если ты работаешь с длинным документом и нужен конкретный факт — попроси модель сначала изолировать только релевантное:
Из текста выше выдели ТОЛЬКО информацию о {нужный_аспект}.
Остальное — не включай.
Потом на основе только этого ответь: {вопрос}.
Это ручная симуляция того, что модель должна делать внутри — подавление иррелевантного перед ответом.
🔧 Техника: явное «якорение» через повторение
Если в долгом диалоге важный факт был давно — не надейся что модель его «помнит» через 30 сообщений:
Напомню ключевой контекст: {Имя клиента} — {главная боль} — бюджет {сумма}.
С учётом этого: {вопрос}.
Это использует рецентность намеренно — ты перемещаешь нужный факт поближе к вопросу.
🔧 Экстраполяция: N-back как стресс-тест для выбора модели
Хочешь понять какая модель лучше держит контекст для твоей задачи? Дай обеим задачу с явным отслеживанием нескольких конкурирующих фактов. Та, у которой лучше рабочая память — лучше справится и с анализом сложного брифа, и с многошаговыми инструкциями. Число параметров не показательно — тест на «рабочую память» показательнее.
Ресурсы
Human-like Working Memory Interference in Large Language Models (препринт, на рецензии)
Авторы: Hua-Dong Xiong, Li Ji-An, Jiaqi Huang, Robert C. Wilson, Kwonjoon Lee, Xue-Xin Wei
Аффилиации: Georgia Tech (School of Psychological and Brain Sciences, Center of Excellence for Computational Cognition), New York University (Psychology), Indiana University Bloomington (Cognitive Science), Honda Research Institute, University of Texas at Austin (Neuroscience and Psychology)
Задача N-back: классический инструмент когнитивной психологии, Baddeley & Hitch (1993) Трансформерные архитектуры: базируется на rotary positional embeddings (Su et al., 2024) Бенчмарки: MMLU Pro (Wang et al., 2024), GPQA Diamond (Rein et al., 2024), IFEval (Zhou et al., 2023)
