TL;DR
LLM систематически лучше работает с гипотезами, когда ей дают список вариантов на оценку — точнее подбирает, что реально описывает ситуацию. Когда просят генерировать свободно — модель уходит в «бритву Оккама»: выдаёт простые, узкие объяснения, которые красиво смотрятся, но часто неточны.
Это происходит потому что при свободной генерации LLM «слипается» с увиденными примерами: если вы описали 3 случая — она строит гипотезу вокруг них, игнорируя более широкую картину. Результат — объяснение выглядит аккуратным, но покрывает меньше реальности, чем должно.
Исследователи нашли три рычага, которые меняют это поведение: как сформулированы примеры (репрезентативные они или случайные), режим рассуждения (обычный vs. думающий — thinking mode) и формат запроса (выбор из списка vs. генерация с нуля). Понимая эти рычаги, можно осознанно управлять тем, как глубоко и широко LLM будет выдвигать объяснения.
Схема метода
Стандартный подход (слабый):
ЗАПРОС: "Что могло вызвать X?" → LLM генерирует простые, узкие гипотезы
─────────────────────────────────────────────────────
Улучшенный подход (два варианта):
ВАРИАНТ А — Оценка вместо генерации:
ШАГ 1: Вы набрасываете 5–7 возможных объяснений X
ШАГ 2: Просите LLM оценить каждое и проранжировать → точнее и полнее
ВАРИАНТ Б — Сначала широко, потом фильтр:
ШАГ 1: Явно скажите "примеры не обязательно репрезентативны" →
LLM выдаёт более широкий спектр гипотез
ШАГ 2: Попросите оценить и выбрать лучшие →
фильтрация через более точный канал оценки
Оба варианта — в одном или нескольких чатах, без кода.
Пример применения
Задача: Вы запустили рекламу во ВКонтакте на три аудитории — все три не зашли. Нужно понять почему. Спрашиваете LLM «что пошло не так?» — она выдаёт: «плохой таргетинг». Всё. Просто, узко, почти бесполезно.
Промпт (Вариант А — оценка):
Я запустил рекламную кампанию во ВКонтакте. Вот что произошло:
- CTR: 0.3% (норма для ниши — 1.2%)
- Три аудитории: мамы 25–35, студенты, предприниматели 30–45
- Все три показали похожий результат — низкий отклик
- Бюджет 50 000 рублей, потрачен полностью
Вот возможные объяснения, почему кампания провалилась.
Оцени каждое по шкале 1–10 (насколько вероятно для этой ситуации)
и объясни рассуждение:
1. Креатив не попадает в боль аудитории
2. Офер слабый — нет конкретной выгоды
3. Неправильная посадочная страница после клика
4. Аудитории пересекаются и конкурируют между собой
5. Алгоритм не успел обучиться — слишком малый бюджет на аудиторию
6. Сезонный спад спроса в нише
7. Техническая проблема — пиксель не работал
После оценки — назови топ-3 приоритета для проверки.
Результат: Модель пройдёт по каждой гипотезе, оценит с аргументами, а не просто скажет «всё плохо». Топ-3 будут конкретными — с объяснением почему именно эти версии вероятнее для описанной ситуации. Это принципиально точнее, чем ответ на открытый вопрос «что пошло не так?».
Промпт (Вариант Б — широкая генерация через переформулировку):
Я покажу тебе несколько случаев из практики.
Важно: это НЕ репрезентативная выборка — просто три случайных примера
из того, что я заметил. Реальная картина может быть шире.
Случаи:
- Реклама на мам 25–35 — CTR 0.2%
- Реклама на студентов — CTR 0.4%
- Реклама на предпринимателей — CTR 0.3%
Сгенерируй максимально широкий список гипотез — не только очевидных.
Включи системные причины (платформа, алгоритм), причины на стороне продукта,
психологические причины восприятия рекламы, и нестандартные версии.
Потом выбери из списка топ-3 самых вероятных для проверки.
Результат: Первый блок — более широкий и разнообразный список гипотез, включая менее очевидные. Второй блок — оценочная фильтрация с точным выбором. Разница с вариантом «что пошло не так?» — ощутимая.
Почему это работает
LLM при свободной генерации «прилипает» к примерам. Когда модель видит три кейса с похожим результатом, она строит объяснение максимально близко к ним — простое, узкое, которое буквально описывает увиденное. Это встроенный принцип: чем меньше гипотеза, тем «точнее» она объясняет конкретные данные. Выглядит логично — работает плохо.
При оценке из списка задача другая. Модель не ищет — она сравнивает. Этот режим задействует другой «канал»: LLM смотрит, насколько каждый вариант совместим с описанием ситуации. Этот канал оказывается точнее, потому что убирает часть проблемы поиска — кандидаты уже есть, нужно только рассудить.
Фраза «примеры не репрезентативны» — прямой сигнал модели ослабить «прилипание» к данным. Она буквально меняет внутреннее взвешивание: примеры становятся менее диагностичными, модель сильнее опирается на общие знания о предметной области. Итог — более широкий спектр гипотез, меньше туннельного видения.
Рычаги управления: - "Примеры не репрезентативны" → шире список гипотез, меньше узких объяснений - "Примеры — типичные случаи" → LLM сужает, ищет одно компактное объяснение - Список кандидатов на оценку → точнее выбор, но только из того что вы предложили - Thinking mode (o1, Claude Extended Thinking) → уходит от данных в более общие закономерности, может пропустить специфику конкретного случая
Шаблон промпта
Вариант А — Оценка гипотез:
Ситуация: {описание проблемы и ключевые данные}
Вот возможные объяснения. Оцени каждое по шкале 1–10
(насколько вероятно для этой ситуации) с коротким обоснованием:
1. {гипотеза_1}
2. {гипотеза_2}
3. {гипотеза_3}
4. {гипотеза_4}
5. {гипотеза_5}
После оценки — назови топ-{число} приоритетов для проверки.
Вариант Б — Широкая генерация:
Я покажу несколько случаев. Важно: это НЕ репрезентативная выборка —
случайные примеры, реальная картина может быть шире.
Случаи: {описание наблюдений}
Сгенерируй широкий список гипотез — включая неочевидные, системные,
нестандартные версии. Потом выбери топ-{число} самых вероятных.
Плейсхолдеры:
- {описание проблемы} — что происходит + ключевые цифры/факты
- {гипотеза_1..5} — ваши версии объяснений (5–7 штук, любые)
- {описание наблюдений} — конкретные случаи, которые нужно объяснить
- {число} — сколько приоритетов нужно на выходе
🚀 Быстрый старт — вставь в чат:
Вот два шаблона для диагностики проблем с LLM.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит что происходит, какие данные есть и есть ли уже версии объяснений — потому что без этого невозможно ни оценить гипотезы, ни сгенерировать релевантные.
Ограничения
⚠️ Оценка из списка — ограничена вашим воображением: Если вы не включили правильный ответ в список — LLM выберет лучшее из предложенного. Вариант Б нужен именно для того, чтобы сначала расширить пул.
⚠️ Слабая экстраполяция: LLM плохо выходит за рамку наблюдений. Если вы описываете ситуацию только в одном контексте — модель вряд ли предложит объяснения из другой области. Прямо просите: «рассмотри версии за пределами очевидного».
⚠️ Thinking mode — не всегда лучше для конкретики: Расширенное рассуждение смещает модель к общим закономерностям и уводит от специфики ваших данных. Для конкретной диагностики — обычный режим часто точнее.
⚠️ Простые объяснения выглядят убедительно: LLM при генерации тяготеет к компактным гипотезам — они звучат чисто и логично, но могут быть поверхностными. Это не баг в ответе, это паттерн поведения.
Как исследовали
Команда взяла классическую задачу из когнитивной науки — «числовую игру» Тененбаума. Суть: видишь несколько чисел (например, {16, 8, 2, 64}) и угадываешь правило — «степени двойки», «чётные числа» или «числа около 20»? Задача хороша тем, что у неё есть точный математически оптимальный ответ — Байесовская модель — так что можно измерить отклонение LLM от идеала.
Восемь моделей (GPT, Qwen, Gemma, Nemotron) тестировали тремя способами: предсказание (входит ли число X в то же правило?), оценка (выбери лучшую гипотезу из списка) и генерация (придумай гипотезы сам). По Байесовской логике три метода должны давать одинаковый результат — это же три разных способа измерить одну вещь. Оказалось, нет. Оценка из списка и свободная генерация дали систематически разные результаты: при оценке модели выбирали точнее, при генерации уходили в упрощение.
Любопытный дизайн: исследователи ещё расширили домен — модели видели примеры только в диапазоне 1–100, а потом их спрашивали про числа 101–200. Байесовская модель правильно распространяет «степени двойки» на 128, 256 — это же правило. LLM — нет. Они либо вообще не распространяли гипотезу, либо распространяли произвольно, без различия между «правилом» и «просто диапазоном». Вывод стал неожиданным даже для исследователей: «похожее на правило» поведение на обученных данных не означает, что внутри есть стабильное правило.
Адаптации и экстраполяции
🔧 Техника: Двухходовый стрипт «генерация → оценка»
Объединить слабость и силу в два шага одного диалога:
Ход 1 (широкая генерация с ослабленным прилипанием):
Примеры — не репрезентативная выборка, просто случайные наблюдения. Сгенерируй 10 разных гипотез, включая неочевидные. Пока не оценивай — только список.Ход 2 (точная оценка из полученного списка):
Теперь оцени каждую гипотезу по шкале 1–10: насколько она объясняет ВСЕ наблюдения, включая потенциальные случаи за пределами показанных? Выдели топ-3.
Второй ход буквально переключает модель в более точный канал — тот же список, но теперь задействуется режим оценки, а не генерации.
🔧 Техника: Явный «слабый сэмплинг» для диагностики сложных систем
Когда нужно объяснить системную проблему (не один инцидент, а паттерн):
Я наблюдаю симптомы, но они могут быть лишь верхушкой айсберга — не обязательно отражают всю картину. Предложи объяснения, которые работают даже если реальных случаев значительно больше и разнообразнее, чем я описал.
Фраза «не обязательно отражают всю картину» — аналог «слабого сэмплинга» из исследования. Модель перестаёт строить гипотезу строго вокруг ваших примеров.
Ресурсы
Название работы: Hypothesis generation and updating in large language models (2025, препринт)
Автор: Huadong Xiong, School of Psychological and Brain Sciences, Georgia Tech
Отсылки из исследования: - Классическая «числовая игра»: Tenenbaum (1999) — оригинальная модель Байесовского обучения понятий - Bigelow & Piantadosi (2016) — датасет из человеческих экспериментов - Battleday & Gershman (2024); Novikov et al. (2025) — AI для науки
