TL;DR
Early Knowledge Alignment (EKA) — техника для сложных многоступенчатых вопросов, когда модель сначала получает релевантную информацию, а потом планирует цепочку рассуждений. Вместо того чтобы модель начинала думать "в вакууме" и сама решала в каком направлении копать, ей дают стартовый контекст из внешних источников, и уже на его основе она строит план поиска и анализа.
Модели часто проваливают первый шаг планирования, когда начинают рассуждать без знания о том, какая информация вообще доступна. Например, получив вопрос "Какой фильм снят позже — тот, который режиссировал Лесли Гудвинс, или тот, который снял Гил Портес?", модель может начать искать биографии режиссёров, хотя в базе знаний есть только данные о фильмах. Неправильный первый шаг запускает каскад ошибок: модель ищет не то, находит нерелевантное, запутывается в собственных рассуждениях и выдаёт неверный ответ. Причина — модель строит план на основе своих внутренних знаний, не понимая границ внешней базы данных.
EKA решает это через выравнивание с доступными знаниями перед стартом рассуждений. Модель делает первоначальный поиск по вопросу, получает релевантные фрагменты и только потом начинает думать. Теперь её план основан на реальных данных, а не на предположениях. Это сокращает количество итераций поиска (в среднем на 1 шаг), повышает точность извлечения нужной информации и улучшает итоговый ответ.
Схема метода
В одном цикле взаимодействия с моделью:
ШАГ 0: Первоначальный поиск по вопросу → получить топ-k релевантных фрагментов
ШАГ 1: Дать модели вопрос + найденные фрагменты → модель рассуждает ()
ШАГ 2 (если нужно): Модель формулирует уточняющий запрос () → новый поиск → новые фрагменты
ШАГ 3 (повтор): Модель рассуждает с учётом всей информации → либо ещё запрос, либо финальный ответ ()
Ключевое отличие от стандартного подхода: информация даётся ДО первого шага рассуждений, а не после него.
Пример применения
Задача: Сравнить две стратегии выхода российского SaaS-стартапа на рынок — через партнёрскую сеть (как Битрикс24) или через прямые продажи (как amoCRM на старте). Нужен анализ с учётом текущей ситуации, опыта других компаний и прогноза на 2 года.
Промпт:
Вот материалы по теме стратегий выхода на рынок:
[Загружаешь или вставляешь: кейсы Битрикс24 и amoCRM, статьи про партнёрские сети в B2B SaaS, данные о текущем состоянии рынка CRM в России]
Вопрос: Какая стратегия выхода будет эффективнее для нового SaaS-продукта в нише управления проектами — партнёрская сеть или прямые продажи? Учитывай:
- Специфику российского рынка в 2025
- Опыт существующих игроков
- Ресурсы стартапа (команда 5 человек, бюджет на маркетинг 500к₽/мес)
Рассуждай пошагово:
1. Проанализируй предоставленные материалы
2. Если нужна дополнительная информация — сформулируй конкретные вопросы
3. Сравни стратегии по критериям: скорость выхода, стоимость привлечения клиента, масштабируемость
4. Дай рекомендацию с обоснованием
Результат:
Модель начнёт с анализа загруженных материалов, выделит ключевые паттерны из опыта Битрикс24 и amoCRM, может запросить дополнительную информацию (например, "Какова средняя маржинальность в партнёрских продажах B2B SaaS в России?"). На основе контекста построит сравнительный анализ и выдаст конкретную рекомендацию с обоснованием. Без первоначального контекста модель могла бы начать с общих рассуждений про партнёрские сети вообще, не привязанных к российским реалиям и конкретным кейсам.
Почему это работает
Слабость LLM: Модели плохо предсказывают что именно есть во внешней базе знаний. Когда модель начинает планировать "в голове", она опирается на свои внутренние знания (которые могут быть устаревшими или не совпадать с вашими данными). Это приводит к мисматчу между планом модели и реальностью: она ищет информацию, которой нет, формулирует запросы не по структуре ваших данных, строит предположения на пустом месте.
Сильная сторона LLM: Модели отлично рассуждают на основе предоставленного контекста. Если дать релевантную информацию, модель точно следует логике данных, замечает паттерны, делает выводы именно из этих материалов. Chain-of-Thought на конкретном контексте работает гораздо лучше, чем абстрактные рассуждения.
Как EKA это использует: Даёт модели "карту местности" перед началом пути. Первоначальный поиск показывает: вот что у нас есть по этой теме. Модель видит структуру информации, понимает какие данные доступны, и строит план на основе реальности. Это снижает энтропию (неопределённость) на старте — модель не блуждает в пространстве возможных направлений, а фокусируется на продуктивных путях.
Каскадный эффект: Правильный первый шаг → правильный второй запрос → релевантная информация → точный вывод. Неправильный первый шаг → нерелевантный запрос → шумная информация → модель пытается исправить, делает ещё запросы → растёт количество шагов и ошибок → итоговый ответ ухудшается. EKA обрывает этот негативный каскад в начале.
Шаблон промпта
Вот информация по теме твоего вопроса:
{начальный_контекст}
Теперь ответь на вопрос: {вопрос}
Рассуждай пошагово:
1. Сначала проанализируй предоставленную информацию
2. Если чего-то не хватает — сформулируй конкретные уточняющие вопросы
3. [Опционально: укажи конкретные шаги анализа под твою задачу]
4. Дай финальный ответ с обоснованием
Если нужна дополнительная информация — явно укажи что именно ты ищешь и почему.
Что подставлять:
- {начальный_контекст} — релевантные материалы: документы, статьи, данные, кейсы. Можешь загрузить файлы или вставить текст. Главное — это должно быть связано с вопросом.
- {вопрос} — твой сложный вопрос, требующий нескольких шагов рассуждений и сопоставления информации.
Как подготовить начальный контекст: 1. Простой путь: попроси модель сделать первоначальный поиск — "Найди основную информацию по теме X для анализа вопроса Y" 2. Если работаешь с документами: загрузи релевантные файлы 3. Если используешь веб-поиск: скопируй ключевые статьи/данные 4. Если у тебя база знаний: выдерни релевантные фрагменты (можно попросить модель "выбери из этих 10 документов 3 самых релевантных для вопроса про X")
Ограничения
⚠️ Качество начального контекста критично: Если первоначальный поиск выдаст нерелевантную информацию или слишком много шума, эффект снижается. Модель всё равно будет лучше, чем вообще без контекста, но не настолько хорошо, как с точной информацией. Мусор на входе → хуже на выходе.
⚠️ Не для простых вопросов: Если вопрос решается в один шаг ("Столица Франции?"), начальный контекст избыточен. EKA полезен для многоступенчатых задач, где нужно сопоставить информацию из разных источников или провести цепочку рассуждений.
⚠️ Требует доступа к информации: Метод работает, когда у тебя есть внешние материалы (документы, база знаний, результаты поиска). Если вся информация в голове модели — EKA не даст преимущества перед обычным Chain-of-Thought.
⚠️ Токены: Загрузка начального контекста увеличивает объём промпта. Для очень больших баз знаний нужно фильтровать и давать только самое релевантное, иначе упрёшься в лимит контекста или переплатишь за токены.
Как исследовали
Исследователи из Университета Фудань взяли две разные архитектуры обучения моделей через reinforcement learning — Search-R1 (с алгоритмом PPO) и Graph-R1 (с алгоритмом GRPO) — и проверили работает ли EKA на обоих. Идея была показать универсальность принципа независимо от метода обучения.
Тестировали на 6 датасетах для вопросно-ответных задач: 2WikiHop, HotpotQA, Musique, NQ, PopQA, TriviaQA. Все датасеты содержат многоступенчатые вопросы — те, где для ответа нужно сопоставить информацию из нескольких источников. Например, "Какой фильм снят позже — тот, у которого режиссёр родился в 1899, или тот, у которого режиссёр родился в 1945?" — сначала нужно найти обоих режиссёров, потом их годы рождения, потом фильмы, потом даты выхода.
Два режима тестирования: 1. Graph-R1 режим: модель обучалась на каждом датасете отдельно, база знаний — структурированная (граф связей между сущностями) и маленькая (только для этого датасета) 2. Search-R1 режим: модель обучалась на двух датасетах (in-domain), тестировалась на остальных (out-of-domain), база знаний — вся Википедия (огромная, неструктурированная)
Сравнивали три метрики: - EM (Exact Match) — процент идеально совпавших ответов - F1 — мягкая метрика (учитывает частичное совпадение) - R-S (Retrieval Score) — насколько точно модель находила нужную информацию
Ключевые находки: - EKA улучшил F1 на 3-11 пунктов в зависимости от базовой модели - R-S вырос на 4.5 пункта в среднем — модель стала точнее находить нужную информацию - Энтропия (мера неопределённости) токенов в ответах, рассуждениях и запросах снизилась с EKA — модель стала увереннее и целенаправленнее - Количество итераций поиска сократилось в среднем с 3.26 до 2.22 — модель быстрее находила ответ - Генерализация не пострадала: модель, обученная с EKA на одном датасете, показывала лучшие результаты на других датасетах, чем базовая модель
Почему это важно: Принцип работает независимо от архитектуры обучения, размера базы знаний и типа вопросов. Это не случайный трюк для конкретной задачи, а фундаментальный инсайт про работу LLM: контекст перед планированием снижает ошибки и повышает эффективность.
Особенно интересно, что даже шумный начальный контекст (когда модель искала по всей Википедии вместо маленькой специализированной базы) всё равно давал преимущество над полным отсутствием контекста. Это показывает робастность метода — хоть что-то релевантное лучше, чем ничего.
Адаптации и экстраполяции
🔧 Техника: Явное разделение "ознакомление → анализ"
Усиль эффект EKA, явно разбив процесс на два сообщения:
Сообщение 1:
Ознакомься с этими материалами и дай краткое резюме — что здесь есть по теме {тема}:
{начальный_контекст}
Не отвечай на вопрос, просто скажи какая информация доступна и как она организована.
Сообщение 2:
Теперь ответь на вопрос: {вопрос}
Используй информацию из материалов выше. Рассуждай пошагово.
Эффект: Модель явно фиксирует что есть в контексте, строит "карту знаний" и держит её в фокусе при ответе. Это особенно полезно для больших объёмов данных (10+ документов) — модель не потеряет важные детали.
🔧 Техника: Итеративное расширение контекста
Для очень сложных вопросов, где заранее непонятно какая информация нужна:
Вопрос: {сложный_многослойный_вопрос}
Шаг 1: Какая информация нужна для ответа? Разбей на конкретные подвопросы.
Шаг 2: Вот материалы по первому подвопросу:
{контекст_1}
Ответь на первый подвопрос. Если для следующих нужна дополнительная информация — скажи что именно.
[Повторяешь для каждого подвопроса]
Эффект: Вместо одного большого EKA делаешь последовательность маленьких EKA для каждого шага. Это экономит токены и повышает точность — модель получает контекст ровно когда он нужен.
🔧 Комбинация: EKA + Self-Consistency
Для критически важных решений объедини EKA с техникой Self-Consistency (несколько независимых рассуждений):
Вот информация по теме: {начальный_контекст}
Вопрос: {вопрос}
Дай 3 независимых анализа этой ситуации:
**Анализ 1: Оптимистичный сценарий**
[Рассуждение на основе контекста]
**Анализ 2: Пессимистичный сценарий**
[Рассуждение на основе контекста]
**Анализ 3: Реалистичный сценарий**
[Рассуждение на основе контекста]
Финальный вывод: Что общего во всех трёх сценариях? Какой вывод наиболее обоснован материалами?
Эффект: Начальный контекст даёт общую основу (EKA), а множественные рассуждения снижают риск одностороннего взгляда (Self-Consistency). Модель приходит к более взвешенному выводу.
Ресурсы
Multi-hop Reasoning via Early Knowledge Alignment
Yuxin Wang, Shicheng Fang, Bo Wang, Qi Luo, Xuanjing Huang, Yining Zheng, Xipeng Qiu
Университет Фудань (Fudan University), Китай
Код на GitHub
Ключевые ссылки из исследования: - Search-R1 (Jin et al., 2025) — baseline метод для сравнения - Graph-R1 (Luo et al., 2025) — альтернативный baseline с графовым представлением знаний - GRPO (Group Relative Policy Optimization, Shao et al., 2024) — алгоритм обучения через RL - Датасеты: HotpotQA, 2WikiHop, Musique, NQ, PopQA, TriviaQA
