TL;DR
Модели хуже вспоминают факты, когда вопрос завернут в контекст, а не задан напрямую. Исследование на 9 моделях и 5 языках показало: прямой запрос "Какая столица Германии?" работает точнее, чем "Алекс прилетел в Германию и едет в политическую столицу страны. Куда?" — хотя факт тот же. Точность падает на 5-20% в зависимости от типа вопроса.
Обёртка вопроса в историю создаёт шум. Модель должна сначала понять, кто такой Алекс, что означает "эта страна", потом связать это с вопросом, и только потом вспомнить факт. На каждом шаге — риск сбиться. Эффект сильнее всего бьёт по вопросам про родной язык, столицы и штаб-квартиры — там, где много вариантов ответа. Вопросы про континент страдают меньше — вариантов всего семь, сложно ошибиться.
Большие модели (8B+ параметров) справляются с контекстным шумом лучше маленьких, но даже у них точность падает. Имена персонажей (реальные русские, английские, японские или выдуманные) на результат почти не влияют — важна сама структура контекста вокруг вопроса. Чем прямее путь от вопроса к факту, тем точнее ответ.
Главная находка
Проблема: Косвенное упоминание сущности = лишние шаги для модели = ошибки.
Механика:
Прямой запрос:
"Какая столица Германии?" → модель извлекает факт → Берлин ✓
Контекстуальный запрос:
"Алекс в Германии едет в столицу"
→ кто Алекс? (распознать роль)
→ где Алекс? (извлечь страну)
→ что такое столица? (понять вопрос)
→ вспомнить факт
→ ошибка на любом этапе ✗
Числа: - Для вопросов про столицы: точность падает на 15-20% - Для вопросов про континент: падение 2-5% (мало вариантов) - Для вопросов про производителя: иногда растёт — контекст помогает уточнить о чём речь
Практическое применение
Принцип 1: Минимизируй контекст для фактических вопросов
Когда нужен точный факт — спрашивай в лоб, без историй.
❌ Плохо (контекст размывает вопрос):
Анализирую российский рынок доставки еды.
Одна крупная компания с фиолетовым логотипом работает в этой сфере.
Мне нужно найти контакты их главного офиса.
Где располагается штаб-квартира этой компании?
✅ Хорошо (прямой вопрос):
Где штаб-квартира Яндекс Еды?
Результат: Точность растёт, ответ приходит быстрее, меньше риск галлюцинаций.
Принцип 2: Структурируй сложные промпты
Если большой промпт требует несколько фактов — вытащи их в отдельные прямые вопросы.
❌ Плохо (факты размазаны по тексту):
Напиши кейс для презентации.
Компания Яндекс, которая находится в {какой-то город},
запустила сервис доставки в {когда-то год}.
Сейчас у них {сколько-то} курьеров.
Сделай историю успеха на основе этих данных.
✅ Хорошо (сначала факты, потом генерация):
Дай точные данные:
1. Где штаб-квартира Яндекса?
2. Когда запустили Яндекс Еду?
3. Сколько курьеров работает сейчас?
Теперь напиши кейс на основе этих фактов: [вставить ответы]
Результат: Факты проверены отдельно, генерация опирается на точные данные, а не на "примерные" из контекста.
Принцип 3: Диагностика неточностей
Если модель даёт неточные факты — проверь структуру вопроса.
Симптом: "GPT сказал что штаб-квартира Вконтакте в Москве, а на сайте написано Санкт-Петербург"
Диагностика:
Твой промпт был:
"Расскажи про VK — крупную соцсеть, где офис компании и сколько пользователей"
Проблема:
- "где офис" — двусмысленно (главный? региональный?)
- "компании" — какой именно? (VK это группа компаний)
- контекст про соцсеть отвлекает от организационной структуры
Решение:
"Где юридический адрес VK Group?"
→ Санкт-Петербург ✓
Принцип 4: Имена не важны
Не трать время на подбор "правильных" имён в примерах — модели всё равно.
Миф: "Если я использую русское имя в промпте на русском, модель будет точнее"
Реальность: Исследование проверило реальные имена (русские, арабские, японские, корейские, китайские) vs выдуманные — разница <1%.
Практика:
Можно:
"Пользователь Иван..."
"Пользователь Джон..."
"Пользователь User_42..."
Все варианты дают одинаковую точность для фактов.
Исключение: Когда имя само является фактом или влияет на контекст задачи (например, "напиши текст от лица Илона Маска" — тут персонаж важен).
Почему это работает
Слабость LLM: Модель работает как цепочка ассоциаций. Каждое слово в промпте влияет на следующее. Когда между вопросом и фактом много промежуточных слов — модель может "соскользнуть" на неправильную ассоциацию.
Пример:
"Алекс в Германии едет в столицу"
Модель видит:
- "Алекс" → активирует паттерн "история про человека"
- "в Германии" → географический контекст
- "едет" → движение, транспорт
- "столицу" → наконец понимает что нужен факт
Уже три шага до факта. На каждом могла отвлечься.
Сильная сторона LLM: Прямая ассоциация "вопрос → факт" работает надёжно. Модели натренированы на миллиардах примеров формата "Q: What is X? A: Y". Этот паттерн записан глубоко.
Как метод использует сильную сторону: Убирая промежуточные шаги, мы попадаем прямо в зону уверенных ассоциаций модели. Путь короче — меньше мест для ошибки.
Рычаги управления:
Длина контекста: Одно предложение vs история на абзац. Чем короче — тем точнее факт.
Позиция вопроса: Вопрос в конце длинного контекста vs вопрос сразу. Сразу — лучше (эффект "lost in the middle").
Размер модели: Маленькие модели (1-3B) сильнее страдают от контекста. Если используешь малую модель — будь особенно прям в вопросах.
Тип факта:
- Чувствительные к контексту: родной язык, столицы, штаб-квартиры, национальности
- Устойчивые: континент, валюта (мало вариантов)
Для чувствительных — обязательно прямой вопрос.
Контрпримеры: когда контекст ПОМОГАЕТ
Исследование показало: для некоторых фактов контекст улучшает точность.
Пример: "Производитель продукта"
Прямо: "Кто производит iPhone?" → модель может выдать Foxconn (сборщик)
С контекстом: "Компания из Купертино разработала iPhone. Кто производитель?"
→ "из Купертино" уточняет что речь про Apple, не про Foxconn ✓
Правило: Если факт многозначный или нужно уточнение — минимальный контекст полезен. Но это 1-2 уточняющих слова, не абзац истории.
Ограничения
⚠️ Сложные факты: Если факт требует рассуждений или анализа контекста (например, "неявная мотивация персонажа" или "косвенная причина события") — прямой вопрос может быть невозможен. Принцип работает для атомарных фактов (столица, дата, имя, число).
⚠️ Творческие задачи: Когда цель не точный факт, а генерация идей или текста — контекст и истории наоборот полезны. Не применяй "минимизацию контекста" к промптам для креатива.
⚠️ Малые модели: На моделях <3B параметров даже прямые вопросы могут давать ошибки. Принцип помогает, но не компенсирует недостаток знаний.
Как исследовали
Команда из Мюнхенского университета взяла 1742 факта из 9 категорий (столица, родной язык, континент, валюта и другие) и проверила их на 9 моделях трёх семейств (LLaMA, Qwen, Gemma) в 5 языках (английский, арабский, японский, корейский, китайский).
Дизайн: Для каждого факта создали два промпта: 1. Прямой: "Какая столица Германии?" 2. Контекстуальный: "Алекс в Германии едет в столицу. Куда?"
Один и тот же факт, но разная путевая длина до ответа.
Хитрость с именами: Чтобы отделить эффект контекста от эффекта "узнаваемого имени", сначала тестировали на выдуманных именах, которых точно не было в обучающих данных. Проверяли через Infini-gram — поиск по триллионам токенов из интернета. Только имена с нулевыми упоминаниями попали в тест.
Потом повторили эксперимент с реальными именами из каждого языка (русские, арабские, японские имена) — и результат почти не изменился. Вывод: имена не играют роли, играет структура контекста.
Что удивило: Для некоторых типов вопросов (континент) контекст почти не вредит — падение точности 2-3%. Исследователи объяснили это размером пространства ответов: континентов всего семь, сложно ошибиться даже с шумом. А вот столиц и штаб-квартир — тысячи, там каждый лишний шаг рассуждений увеличивает шанс промахнуться.
Инсайт для практики: Если твой вопрос про факт с большим пространством вариантов (названия компаний, города, имена, даты) — убирай контекст жёстко. Если вариантов мало (да/нет, континент, тип из 5 категорий) — можно позволить немного истории.
Масштабный эффект: Проверили модели от 1B до 12B параметров. У больших моделей (8B+) разница между прямым и контекстуальным вопросом меньше — они научились справляться с шумом лучше. Но даже у самых больших точность падает на 5-10% в сложных категориях. То есть "большая модель терпит контекст" — правда, но терпит не полностью.
Ресурсы
Evaluating Contextually Mediated Factual Recall in Multilingual Large Language Models
Yihong Liu, Bingyu Xiong, Hinrich Schütze
Center for Information and Language Processing, LMU Munich
Исследование использовало датасет KLAR (Wang et al., 2025) для мультиязычного тестирования фактических знаний.
Модели: LLaMA 3 (Meta), Qwen 3 (Alibaba), Gemma 3 (Google)
