TL;DR
SAKE (Self-Anchored Knowledge Encoding) — техника размещения найденной информации одновременно в начале и после текущего шага рассуждений. Когда LLM долго рассуждает, потом получает внешние данные (через поиск/документы) и продолжает работу — новая информация "вставляется" дважды: сначала изолированно в начало контекста, потом после рассуждения для применения.
Исследователи выявили Knowledge Integration Decay (KID) — фундаментальную проблему LLM: чем дольше модель рассуждает перед поиском информации, тем хуже она использует найденное. Даже когда документы содержат точный ответ, модель игнорирует их после длинного рассуждения. Анализ показал: внимание модели смещается к предыдущим рассуждениям во время обработки новых данных — информация "читается" через призму уже накопленных мыслей, теряет объективность и искажается.
SAKE решает проблему дублированием: стек знаний в начале кодирует информацию без искажений (semantic anchor), повтор после рассуждения даёт контекст для применения. Модель сначала "понимает факты как есть", затем применяет их к задаче — внимание автоматически цепляется за чистое представление из начала, игнорируя давление промежуточных рассуждений.
Схема метода
SAKE меняет только структуру подачи информации — всё в одном промпте:
БЛОК 1: Стек знаний (reverse chronological)
[Последний найденный документ]
[Предпоследний документ]
...
[Первый документ]
БЛОК 2: Вопрос
[Исходный запрос пользователя]
БЛОК 3: Рассуждение + документы по шагам
[Шаг 1 рассуждения] → [документ 1]
[Шаг 2 рассуждения] → [документ 2]
...
[Текущий шаг рассуждения] → [последний документ]
Финальный ответ генерируется после всей структуры.
Пример применения
Задача: Сравниваешь бизнес-модели двух российских сервисов для питча инвестору — нужен точный анализ, опирающийся на публичные данные.
Промпт:
НАЙДЕННАЯ ИНФОРМАЦИЯ (читай объективно):
ДОКУМЕНТ 2 (последний поиск):
Яндекс.Маркет в 2024: GMV 500 млрд руб, комиссия 8-12%,
монетизация через рекламу продавцов. Модель — marketplace.
ДОКУМЕНТ 1 (первый поиск):
Ozon в 2024: GMV 1 трлн руб, собственный фулфилмент,
комиссия 5-7% + логистика. Модель — гибридный ритейл.
---
ВОПРОС:
Какая бизнес-модель устойчивее к кризису спроса:
Ozon или Яндекс.Маркет?
---
РАССУЖДЕНИЕ:
ШАГ 1: Для оценки устойчивости важно понять структуру
доходов и операционные риски каждой модели. Мне нужны
данные по монетизации и издержкам.
→ [ДОКУМЕНТ 1: Ozon в 2024...]
ШАГ 2: Ozon зарабатывает на комиссии + логистике,
вложился в инфраструктуру. При падении спроса —
риск недозагрузки складов. Теперь сравню с конкурентом.
→ [ДОКУМЕНТ 2: Яндекс.Маркет в 2024...]
ФИНАЛЬНЫЙ ВЫВОД:
Результат: Модель выдаст сравнительный анализ с опорой на числа из документов. Благодаря дублированию в начале, данные про GMV и комиссии не искажаются гипотезами из Шага 1 — модель сначала "прочитала факты чисто", затем применила их к рассуждению. Без SAKE модель могла бы "подогнать" цифры под логику "риск складов", игнорируя преимущества рекламной монетизации Маркета.
Почему это работает
Слабость LLM: Когда модель обрабатывает новую информацию после длинного рассуждения, механизм внимания (attention) сильно фокусируется на предыдущих токенах — на том, что модель уже "думала". Новые данные кодируются через призму накопленного контекста, теряют объективность. Исследование показало: чем длиннее рассуждение до поиска, тем сильнее "interference strength" — документ читается не как факт, а как продолжение мыслей модели.
Сильная сторона LLM: Модель отлично работает с дублированной информацией в разных позициях. Если один и тот же текст появляется дважды, attention во втором случае может "заякориться" (anchor) на первом вхождении — использовать чистое представление без искажений.
Как SAKE использует это: Размещая документы сначала в начале (без контекста рассуждений), модель кодирует их "как есть" — semantic integrity сохраняется. Затем тот же документ после шага рассуждения даёт контекст для применения — модель понимает "зачем искали", "как связано с задачей". Но внимание автоматически цепляется за первое, чистое представление — факты не переписываются под гипотезы.
Рычаги управления в SAKE:
Порядок в стеке знаний (reverse chronological): самый свежий документ — первым, чтобы минимизировать влияние даже других документов. Можешь поменять порядок по важности вместо хронологии.
Дублирование всех документов vs только ключевых: если токенов мало — дублируй только критичную информацию (цифры, факты), остальное оставь только после шагов.
Явное разделение блоков (
---, заголовки): усиливает структуру, помогает модели "переключаться" между режимами чтения (объективно → контекстуально).Инструкция в начале стека: добавь "читай объективно, без интерпретаций" перед документами — усилит semantic anchor.
Шаблон промпта
СПРАВОЧНАЯ ИНФОРМАЦИЯ (факты без интерпретаций):
{документ_N — последний найденный}
{документ_N-1}
...
{документ_1 — первый найденный}
---
ЗАДАЧА:
{вопрос или цель}
---
РАССУЖДЕНИЕ И ПРИМЕНЕНИЕ:
ШАГ 1: {твои размышления, логика, гипотеза}
Источник для проверки: {документ_1}
ШАГ 2: {развитие мысли с учётом документа_1}
Источник для проверки: {документ_2}
...
ШАГ N: {финальная логика}
Источник для проверки: {документ_N}
---
ВЫВОД:
{финальный ответ с опорой на факты}
Как заполнять:
- {документ_1...N} — любые внешние данные: статьи, числа, цитаты, результаты поиска
- Порядок документов в начале: обратный (последний найденный — первым)
- После каждого шага рассуждения вставляй документ в прямом порядке (как использовал)
🚀 Быстрый старт — вставь в чат:
Вот шаблон SAKE для защиты от искажения информации рассуждениями.
Адаптируй под мою задачу: [опиши задачу — анализ, сравнение, проверка гипотезы].
Спроси какие документы/данные у меня есть и в каком порядке их расставить.
[вставить шаблон выше]
LLM спросит: "Какие документы или данные ты хочешь проанализировать? В какой последовательности ты их получал?" — потому что SAKE строится на двух размещениях одной и той же информации: чистое чтение в начале + контекстное применение по шагам. Она возьмёт паттерн дублирования и структурирует твой контент.
Ограничения
⚠️ Расход токенов: Дублирование документов удваивает объём контекста — длинные тексты могут упереться в лимит окна. Эффект SAKE окупается на сложных задачах с длинным рассуждением, но для короткого запроса overhead не оправдан.
⚠️ Эффект проявляется в multi-step reasoning: Если задача решается за один шаг без итеративного поиска — SAKE не даст преимущества. Ценность максимальна там, где несколько циклов "рассуждение → поиск → рассуждение".
⚠️ Специфика для поисковых сценариев: Техника заточена под работу с найденной информацией (документы, веб-поиск, базы знаний). Для творческих задач без внешних фактов (генерация идей, сторителлинг) не применима.
Как исследовали
Команда взяла три reasoning-модели (Qwen3-4B-Thinking, Qwen3-30B-A3B-Thinking, QwQ-32B) и проверила на бенчмарках multi-hop QA: HotpotQA, 2WikiMultiHopQA, MuSiQue, FRAMES, GAIA. Идея эксперимента простая: варьировали длину рассуждения до поиска (pre-search reasoning) и смотрели, насколько хорошо модель использует найденные документы.
Ключевая находка: при oracle search (когда документы гарантированно содержат ответ) перформанс падал с ростом pre-search reasoning. На 2WikiMultiHopQA F1-score проваливался на 10-20 пунктов при длинных рассуждениях — притом что правильный ответ лежал в документах! Это доказало KID: модель не может интегрировать знание, если до этого долго рассуждала.
Затем провели механистический анализ: измерили attention interference strength — какую долю внимания токены документа отдают предыдущим рассуждениям вместо самого документа. График показал резкий рост interference с увеличением pre-search reasoning: модель "читает" новую информацию через старые мысли, искажает её.
SAKE протестировали на тех же бенчмарках — улучшение до +37.6% F1 на сложных bridge-comparison вопросах. Анализ attention показал: interference strength снижается — дублирование в начале работает как якорь, модель цепляется за чистое представление.
Что удивило: baseline Search-o1 (state-of-the-art подход "рассуждай → ищи → рассуждай") иногда проигрывал даже обычному RAG именно из-за KID — длинные рассуждения вредили вместо помощи. SAKE не просто улучшил Search-o1, но и показал: само по себе "больше рассуждений" без защиты от KID может навредить.
Оригинал из исследования
Input sequence at reasoning step t+1:
X_{t+1} = [I; [d_t; ...; d_1]; q_0; r_1; d_1; ...; r_t; d_t]
└──────┬──────┘ └────────┬────────┘
Knowledge Stack St Reasoning-aligned traces
Where:
- I: task instruction
- St = [d_t, d_{t-1}, ..., d_1]: cumulative knowledge stack (reverse chronological)
- q_0: original query
- r_i: reasoning at step i
- d_i: search result at step i
Контекст: Исследователи формализовали SAKE через явную структуру входной последовательности. Стек знаний St помещается сразу после инструкции, содержит все найденные документы в обратном порядке (самый свежий — первым). Затем идёт оригинальный вопрос, далее — пары "рассуждение → документ" в прямом порядке. Эта dual positioning позволяет модели кодировать знание дважды: unbiased (в стеке) и contextualized (после шагов).
Адаптации и экстраполяции
💡 Адаптация для проверки фактов в тексте:
Когда пишешь текст с фактами (статья, отчёт, питч) и хочешь, чтобы LLM проверила точность — используй SAKE наоборот: сначала чистый черновик текста как semantic anchor, потом источники для проверки, затем итеративная правка.
ИСХОДНЫЙ ТЕКСТ (объективная версия без правок):
{твой черновик полностью}
---
ИСТОЧНИКИ ДЛЯ ПРОВЕРКИ:
{статистика, ссылки, данные}
---
ПРОВЕРКА ПО ШАГАМ:
Утверждение 1 из текста: "{цитата}"
Проверяю по источнику: {релевантный источник}
Вердикт: [верно/неточно/исправить]
Утверждение 2 из текста: "{цитата}"
Проверяю по источнику: {релевантный источник}
Вердикт: [верно/неточно/исправить]
---
ИТОГОВЫЙ ТЕКСТ:
{исправленная версия с сохранением стиля}
Логика та же: исходный текст кодируется "чисто", не искажается процессом проверки. Когда модель делает вердикты, она цепляется за оригинальные формулировки, не переписывает смысл под источники.
🔧 Техника: явная инструкция для каждого блока → контроль режима чтения
[РЕЖИМ: OBJECTIVE ENCODING — читай факты без связи с задачей]
ДОКУМЕНТ 1: {данные}
ДОКУМЕНТ 2: {данные}
---
[РЕЖИМ: TASK-ORIENTED REASONING — применяй к задаче]
ЗАДАЧА: {вопрос}
ШАГ 1: {рассуждение}
→ Связываю с: [ДОКУМЕНТ 1]
ШАГ 2: {рассуждение}
→ Связываю с: [ДОКУМЕНТ 2]
Эффект: модель явно переключается между "чтение как есть" и "применение к контексту". Усиливает разделение semantic anchor и reasoning contextualization.
🔧 Техника: убрать дублирование документов → проверить вклад SAKE
Если сомневаешься, даёт ли SAKE эффект на твоей задаче — сделай A/B: - Версия A: полный SAKE (дублирование) - Версия B: только reasoning-aligned (документы после шагов, без стека в начале)
Сравни результаты. Если разницы нет — твоя задача либо слишком короткая (нет длинного рассуждения), либо не требует точности фактов (креатив, мнения).
💡 Экстраполяция: SAKE + Chain-of-Thought для отладки рассуждений
Комбинируй SAKE с явными метками CoT, чтобы видеть где модель "потеряла" факт:
ФАКТЫ (якорь):
{документ_1}
{документ_2}
---
ЗАДАЧА: {вопрос}
---
ШАГ 1: {гипотеза}
Проверяю по: {документ_1}
Extraction: {что взял из документа}
Confidence: {высокая/средняя/низкая}
ШАГ 2: {развитие}
Проверяю по: {документ_2}
Extraction: {что взял}
Confidence: {оценка}
{финальный ответ}
Теги показывают промежуточные шаги, Extraction — явно что модель взяла из документа. Если в финале факт искажён — видно на каком шаге "съехало".
Ресурсы
Knowledge Integration Decay in Search-Augmented Reasoning of Large Language Models
Sangwon Yu, Ik-hwan Kim, Donghun Kang, Bongkyu Hwang, Junhwa Choi, Suk-hoon Jung, Seungki Hong, Taehee Lee, Sungroh Yoon
Seoul National University, Samsung SDS
Preprint, February 2026
