3,583 papers
arXiv:2604.11502 71 13 апр. 2026 г. FREE

METER: три уровня причинно-следственного мышления — где и почему LLM ломается

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM на трёх типах вопросов о причинах ломается по-разному — и каждый слом имеет свою конкретную причину. Метод METER позволяет точно диагностировать, на каком уровне причинно-следственного мышления модель даёт сбой, и прицельно его устранить. Фишка: LLM не «понимает» причинность — она ищет паттерн, похожий на причину по форме. При простом «почему» — цепляется за нерелевантный, но фактически верный факт из текста. При «что если изменить X» — уходит в свои знания. При «что если бы X не случилось» — начинает придумывать противоречия. Два простых рычага закрывают все три уровня: явная привязка к контексту и один-два примера рассуждений перед вопросом.
Адаптировать под запрос

TL;DR

LLM уверенно находит причины ("почему произошло X?"), теряет точность при вопросах о вмешательстве ("что случится если сделать Y?") и сильнее всего ошибается при контрфактуальных вопросах ("а что если бы X не произошло?"). Это не случайность — у каждого уровня своя специфическая точка отказа. METER — бенчмарк, который впервые измерил все три уровня на одном и том же контексте, убрав случайные факторы оценки.

Первая точка отказа — отвлечение на нерелевантные факты. Дай модели текст про аварию и спроси "почему произошла авария?" — она часто выберет "водитель ехал по ул. Ленина" вместо "отказали тормоза". Обе фразы — правда из контекста. Но только одна является причиной. Модель плохо отфильтровывает каузально нерелевантные детали (те, что не связаны с причиной) от реальных причин.

Вторая точка отказа — отрыв от контекста. Чем сложнее вопрос, тем чаще модель уходит в свои знания вместо данного текста. При вопросах "а что если" модель начинает придумывать ответы, которых нет в исходном материале. Хорошая новость: это лечится двумя вещами — явной инструкцией "опирайся только на предоставленный текст" и примерами рассуждений (few-shot — когда перед вопросом даёшь 1-2 готовых примера как рассуждать).


🔬

Схема метода

Три уровня — три разные задачи, три разные точки отказа:

УРОВЕНЬ 1: Найди причину
Вопрос-тип: "Почему произошло X?"
→ Слабость: выбирает нерелевантный, но фактически верный контекстный факт
→ Фикс: явно попроси игнорировать фоновые детали, фокусироваться на причинной цепочке

УРОВЕНЬ 2: Предскажи последствие вмешательства
Вопрос-тип: "Что случится если сделать Y?"
→ Слабость: уходит от контекста, добавляет внешние знания, галлюцинирует
→ Фикс: few-shot примеры рассуждений + строгое "только на основе предоставленного текста"

УРОВЕНЬ 3: Контрфактуал
Вопрос-тип: "Что было бы, если бы X не произошло / произошло иначе?"
→ Слабость: генерирует логически противоречивые ответы, теряет нить гипотетического сценария
→ Фикс: few-shot + строгая привязка к контексту + пошаговая цепочка ("сначала установи, что изменилось...")

Все три уровня работают в одном чате. Никакого кода, никакой инфраструктуры.


🚀

Пример применения

Задача: Ты — основатель небольшого сервиса доставки еды в Казани. Написал аналитическую записку по итогам месяца. Хочешь попросить Claude проанализировать причины, спрогнозировать результат изменения и разобрать контрфактуальный сценарий.

Промпт:

Вот аналитическая записка по работе нашего сервиса за июнь:

[Вставь текст: выручка упала на 23%, количество заказов снизилось в три раза по 
выходным, курьеры жаловались на задержки со стороны ресторанов-партнёров, 
параллельно мы запустили новый дизайн приложения]

---

Я задам тебе три типа вопросов. Для каждого — опирайся СТРОГО на текст выше. 
Не добавляй внешние знания. Рассуждай по шагам.

УРОВЕНЬ 1 (причина):
Почему упала выручка? Назови только то, что прямо вызвало падение по данным из 
записки. Проигнорируй факты, которые просто сопутствовали событию, но не вызвали его.

УРОВЕНЬ 2 (вмешательство):
Что произойдёт с выручкой, если мы уберём нового партнёра-ресторан, давшего 
наибольший процент задержек? Строй прогноз только на логике, описанной в тексте.

УРОВЕНЬ 3 (контрфактуал):
Что было бы с падением по выходным, если бы мы НЕ запускали новый дизайн 
приложения в этот же период? Сначала установи, что именно изменилось бы, 
а потом выведи логический результат — строго в рамках контекста.

Результат:

Модель даст три отдельных блока — по одному на каждый уровень. На первом уровне нужно смотреть, не притягивает ли она нерелевантные детали (например, не цепляется ли за запуск нового дизайна как причину, если в тексте нет явной связи с выручкой). На втором и третьем — насколько строго рассуждения привязаны к твоему тексту, не появляются ли ответы "из головы" про рынок доставки в целом.


🧠

Почему это работает

LLM не "понимает" причинность — она подбирает паттерн. Когда в тексте много деталей, модель ищет что-то "похожее на причину" по форме: упоминания до события, описательные фразы, явные глаголы ("вызвал", "привёл к"). Нерелевантный факт рядом с причиной — сильный конкурент за внимание, потому что он тоже "выглядит" как часть ответа.

Контрфактуальные и интервенциональные вопросы ломают "режим цитирования". Простые вопросы о причинах модель решает, воспроизводя то, что есть в тексте. Но "что было бы если..." требует симулировать альтернативную реальность. Здесь модель переключается в режим генерации по своим знаниям — и начинает уходить от контекста, добавляя то, чего в тексте нет.

Два рычага, которые это исправляют: - Явная привязка к контексту ("опирайся только на предоставленный текст") — это инструкция, которая сигнализирует: "режим цитирования, не фантазируй". Работает особенно на уровнях 2 и 3. - Few-shot ("вот пример как рассуждать") — даёт модели структуру рассуждения до того как она начнёт отвечать. Пример показывает правильный паттерн: шаг → следствие → вывод строго из контекста.

Рычаги управления:

  • Усиление привязки → добавь "процитируй конкретное место из текста, которое привело тебя к этому выводу". Форсирует проверку.
  • Few-shot → перед сложным вопросом дай один пример: "Вот похожая ситуация из другого кейса: [пример вопроса + пример рассуждения]". Для контрфактуалов эффект максимальный.
  • Пошаговое рассуждение → добавь "сначала определи, что гипотетически изменилось, потом выведи следствие по шагам". Chain-of-Thought (пошаговое рассуждение) помогает не всем моделям одинаково, поэтому тестируй.

📋

Шаблон промпта

Вот контекст для анализа:
[{текст — отчёт, статья, переписка, описание ситуации}]

---

Правило: опирайся СТРОГО на текст выше. Не добавляй внешние знания. 
При каждом выводе укажи, какое место из текста его обосновывает.

{Выбери нужный уровень:}

УРОВЕНЬ 1 — Причина:
Почему произошло {событие-следствие}? 
Назови только прямую причину из текста. Проигнорируй фоновые детали, 
которые просто упоминаются рядом, но не вызвали событие.

УРОВЕНЬ 2 — Вмешательство:
Что произойдёт с {результат}, если {описание нового действия или изменения}?
Строй прогноз строго по логике, описанной в тексте. Рассуждай по шагам.

УРОВЕНЬ 3 — Контрфактуал:
Что было бы с {результат}, если бы {гипотетическое отличие от реальности}?
Сначала определи, что именно изменилось бы. 
Потом выведи следствие строго в рамках контекста, по шагам.

Что подставлять: - {текст} — любой документ, который хочешь анализировать причинно-следственно - {событие-следствие} — то, что уже произошло и причину чего ищешь - {описание нового действия} — изменение, которое рассматриваешь - {гипотетическое отличие} — альтернативное прошлое, которое хочешь "отмотать"

Три уровня можно использовать по отдельности — берёшь только нужный блок.


🚀 Быстрый старт — вставь в чат:

Вот шаблон для анализа причинно-следственных связей в тексте. 
Адаптируй под мою задачу: {твоя задача и текст для анализа}. 
Задавай вопросы, чтобы заполнить нужные поля.

[вставить шаблон выше]

LLM спросит какой уровень нужен и какое событие анализировать — потому что именно это определяет, как формулировать вопрос и насколько строго привязываться к контексту.


⚠️

Ограничения

⚠️ Для простых вопросов оверкилл: Если задача очевидная и контекст маленький — детализированная привязка к тексту не нужна и только замедляет.

⚠️ CoT не универсален: Пошаговое рассуждение помогает моделям с менее развитой логикой, но у мощных моделей (GPT-4o+) может добавлять "шум" и снижать качество. Тестируй оба варианта.

⚠️ Маленькие модели плохи на уровне 2 и 3: Для вмешательств и контрфактуалов нужны большие модели. Если работаешь через слабую модель — жди заметно худших результатов на сложных "а что если" вопросах.

⚠️ Исследование — диагностическое, не инструментальное: Оно объясняет почему LLM ошибается, но готового "волшебного промпта" нет. Принципы нужно применять с пониманием.


🔍

Как исследовали

Задача была сложная: как честно сравнить LLM на разных уровнях причинно-следственного мышления, если в существующих тестах каждый уровень проверялся на разных текстах? Это всё равно что проверять умение бегать, прыгать и плавать у разных людей и называть это сравнением одного спортсмена. Исследователи из Сычуаньского университета и Национального университета Сингапура решили проблему элегантно: каждая запись в датасете — один текст и три вопроса к нему, по одному на каждый уровень. Так убрали "шум" от разных контекстов.

Датасет из 4 145 записей собрали полуавтоматически: за основу взяли четыре существующих датасета с аннотированными парами "причина → следствие", потом Gemini 2.5-Pro генерировал вопросы всех трёх уровней, а люди-аннотаторы проверяли и правили. Интересная деталь дизайна: специально отфильтровали случаи, где модели уже знают ответ без контекста — чтобы тест проверял именно контекстное мышление, а не запомненные факты.

Тестировали 11 моделей — от Qwen3-0.6B до GPT-5 и Gemini3-Pro — под четырьмя схемами промптинга. Самая неожиданная находка: CoT (пошаговое рассуждение) ухудшило результат GPT-4o на уровне 1 — с 77.96% до 75.14%. Гипотеза авторов: модели, уже умеющие рассуждать эффективно, получают от явного CoT "шум" вместо помощи. Зато Llama-3.3-70B выиграла от CoT значительно (+5%). Это важный сигнал: не всегда "больше шагов = лучше".


💡

Адаптации и экстраполяции

📌

🔧 Техника: усиленная проверка источника → защита от галлюцинаций

Добавь в конце вопроса: "Для каждого вывода процитируй дословно место из текста, которое его обосновывает. Если цитаты нет — не делай вывод." Этот фикс форсирует модель оставаться в режиме "я воспроизвожу текст", а не "я знаю про это". Лучше всего работает для уровней 2 и 3.


📌

🔧 Техника: few-shot для контрфактуала

Перед сложным "а что если" вопросом дай маленький пример рассуждения на похожей структуре (не обязательно из той же темы):

Пример рассуждения для контрфактуала:

Контекст: "Проект задержался потому что дизайнер заболел, из-за этого 
разработчики ждали макеты три недели."

Вопрос: Что было бы, если бы дизайнер не заболел?
Рассуждение: Если дизайнер не болел → макеты готовы вовремя → разработчики 
не ждали → задержки не было.

---

Теперь применяй такой же паттерн к моему вопросу:
[твой текст и вопрос]

Модель берёт структуру рассуждения из примера и применяет её к новому случаю. Особенно полезно для менее мощных моделей.


🔗

Ресурсы

Работа: METER: Evaluating Multi-Level Contextual Causal Reasoning in Large Language Models

Датасет и код: https://github.com/SCUNLP/METER

Авторы: Pengfeng Li, Chen Huang, Chaoqun Hao, Hongyao Chen, Xiao-Yong Wei, Wenqiang Lei, See-Kiong Ng

Организации: College of Computer Science, Sichuan University; Institute of Data Science, National University of Singapore

Теоретическая основа: Pearl and Mackenzie (2018) — The Book of Why (Лестница причинности: ассоциация → вмешательство → контрфактуал)


📋 Дайджест исследования

Ключевая суть

Обнаружено: LLM на трёх типах вопросов о причинах ломается по-разному — и каждый слом имеет свою конкретную причину. Метод METER позволяет точно диагностировать, на каком уровне причинно-следственного мышления модель даёт сбой, и прицельно его устранить. Фишка: LLM не «понимает» причинность — она ищет паттерн, похожий на причину по форме. При простом «почему» — цепляется за нерелевантный, но фактически верный факт из текста. При «что если изменить X» — уходит в свои знания. При «что если бы X не случилось» — начинает придумывать противоречия. Два простых рычага закрывают все три уровня: явная привязка к контексту и один-два примера рассуждений перед вопросом.

Принцип работы

Три уровня — три разных режима работы модели. Простой вопрос о причине модель решает как задачу «найди в тексте». Сложный контрфактуал — уже как «придумай альтернативную реальность». В первом случае есть якорь (текст). Во втором якоря нет — и модель начинает генерировать то, чего в тексте не существует. Различие принципиальное. Режим цитирования — безопасен. Режим генерации без ограничений — опасен. Поэтому чем сложнее вопрос о причинно-следственных связях, тем важнее явно задать: «твой якорь — только этот текст» — и показать пример правильного рассуждения до того, как модель начала фантазировать.

Почему работает

LLM не хранит понятие «причина» — она распознаёт форму. Глаголы «привёл к», «вызвал», упоминания перед событием — это сигналы, по которым модель угадывает причину. Нерелевантный факт рядом с причиной тоже имеет эти сигналы. Отсюда первая ошибка: берёт не то, что причинило — берёт то, что выглядит как причина. Контрфактуальные вопросы ломают режим поиска: ответа в тексте нет, его там быть не может. Модель переключается на генерацию — и начинает добавлять то, чего в исходнике не существует. Именно поэтому работают два конкретных инструмента. Явная привязка к тексту блокирует переключение в режим фантазии. Пример рассуждения (один-два примера перед вопросом) задаёт правильный паттерн — шаг, следствие, вывод строго из контекста — до того, как модель успела уйти не туда.

Когда применять

Любой анализ документов, где важна точная причинно-следственная цепочка → особенно для разборов бизнес-ситуаций, постмортемов провалов, анализа отчётов, медицинских кейсов, юридических документов, аналитических записок. Особенно ценно когда: текст плотный (много деталей, не все имеют отношение к делу), вопрос сложный (интервенция или контрфактуал), и нельзя позволить модели «додумывать» из общих знаний. НЕ подходит: для коротких очевидных текстов с одной явной причиной — лишние инструкции только замедлят и не дадут заметного прироста.

Мини-рецепт

1. Определи уровень: причина («почему произошло X?»), вмешательство («что если сделать Y?»), или контрфактуал («что было бы если бы X не случилось?»). От уровня зависит как именно формулировать.
2. Добавь якорь: буквально вставь в промпт — «опирайся строго на предоставленный текст, не добавляй внешние знания».
3. Добавь проверку для уровней 2 и 3: «при каждом выводе укажи конкретное место из текста, которое его обосновывает». Это форсирует модель не уходить в фантазию.
4. Для контрфактуала — дай структуру: «сначала определи что именно изменилось бы, потом выведи следствие по шагам, строго в рамках контекста».
5. Если всё равно уходит от текста: добавь один пример рассуждения перед вопросом — небольшую демонстрацию как рассуждать: шаг, следствие, ссылка на текст. Это резко снижает вероятность ухода в придуманные ответы.

Примеры

[ПЛОХО] : Почему у нас упала выручка в июне? Что было бы, если бы мы не запускали новый дизайн приложения? И что нам теперь делать? (Три вопроса в одном, нет привязки к документу, нет структуры — модель частично уйдёт в общие советы)
[ХОРОШО] : Вот аналитическая записка по итогам июня: [текст записки] --- Правило: опирайся строго на текст выше. Не добавляй внешние знания. При каждом выводе укажи конкретное место из текста, которое его обосновывает. УРОВЕНЬ 1 (причина): Почему упала выручка? Назови только прямую причину из текста. Проигнори детали, которые просто упоминаются рядом, но не вызвали падение. УРОВЕНЬ 3 (контрфактуал): Что было бы с выручкой по выходным, если бы мы НЕ запускали новый дизайн в этот же период? Сначала определи что именно изменилось бы в этом сценарии. Потом выведи следствие по шагам — строго в рамках текста.
Источник: METER: Evaluating Multi-Level Contextual Causal Reasoning in Large Language Models
ArXiv ID: 2604.11502 | Сгенерировано: 2026-04-14 05:30

Проблемы LLM

ПроблемаСутьКак обойти
Модель путает причину с сопутствующим фактомДаёшь текст с несколькими деталями. Спрашиваешь "почему случилось X?". Модель выбирает не реальную причину, а деталь которая просто выглядит как причина — упоминается рядом с событием, имеет нужную форму слова. Обе детали — правда из текста. Но только одна реально вызвала событие. Модель не различаетДобавь в промпт: "Назови только прямую причину. Проигнорируй факты, которые просто упоминаются рядом с событием, но не вызвали его"
Вопросы "а что если" уводят модель от контекстаПросишь проанализировать текст. Задаёшь вопрос про гипотетический сценарий ("что было бы если бы..."). Модель переключается: перестаёт цитировать твой текст, начинает генерировать ответ из своих знаний. Появляется то, чего в тексте нет. Ошибка незаметна — ответ выглядит логичноДва приёма: 1) добавь "опирайся строго на текст выше, не добавляй внешние знания"; 2) дай пример рассуждения до вопроса — покажи как идти по тексту шаг за шагом

Методы

МетодСуть
Три уровня причинного анализа в одном промптеРазбей каузальный анализ на три блока. Каждый — отдельный вопрос со своей инструкцией: 1) "почему произошло X" + "игнорируй фоновые детали"; 2) "что случится если сделать Y" + "рассуждай только по логике из текста, по шагам"; 3) "что было бы если бы X не произошло" + "сначала определи что изменилось, потом выведи следствие по шагам". Структура: каждый уровень требует своей защиты от своей специфической ошибки. Бери только нужный блок — все три необязательны
Принудительное цитирование источникаДобавь в промпт: При каждом выводе укажи, какое конкретное место из текста привело тебя к этому выводу. Модель обязана найти опору в тексте перед ответом. Это работает как якорь — не даёт уйти в генерацию из своих знаний. Особенно эффективно на вопросах "что если" и "что было бы". Добавляй к любому аналитическому промпту где важна точность к источнику

Тезисы

ТезисКомментарий
Модель ищет форму причины, а не саму причинуПричинность в тексте — это не факт, а отношение между фактами. Модель этого не видит. Она ищет слова и позиции, похожие на причину: глаголы "вызвал", "привёл к", упоминания до события. Деталь с такой формой побеждает реальную причину без такой формы. Применяй: явно проси модель объяснить механизм связи, а не просто назвать факт — это ломает поверхностный паттерн-матчинг
📖 Простыми словами

METER: Evaluating Multi-Level Contextual Causal Reasoning inLargeLanguageModels

arXiv: 2604.11502

Суть в том, что современные нейронки — это не гениальные аналитики, а очень начитанные имитаторы. Когда ты спрашиваешь LLM о причинах и следствиях, она не строит логическую цепочку в голове, а просто ищет в своей базе знаний паттерны, которые «похожи» на правильный ответ. Фундаментальная проблема в том, что причинно-следственная связь для модели — это просто набор слов, которые часто стоят рядом. Она отлично справляется с простым пересказом прошлого, но как только дело доходит до моделирования реальности, которой не было, её мозг начинает плавиться.

Это как если бы ты нанял на работу стажёра, который вызубрил все учебники по бизнесу, но ни разу не выходил «в поле». Если ты спросишь его: «Почему упали продажи в прошлом квартале?», он выдаст тебе стройный отчет на основе имеющихся цифр. Но если ты спросишь: «А что будет, если мы завтра поднимем цены в два раза?» или «Что было бы, если бы мы не запускали ту рекламу?», он начнёт нести уверенную чушь. Стажёр просто подбирает красивые слова, которые звучат логично, но он не понимает физику процесса, поэтому его прогнозы — это гадание на кофейной гуще.

Исследование METER четко разложило этот провал на три уровня. Первый уровень — ассоциация (почему это случилось?), здесь модели еще держатся молодцом, выуживая факты из контекста. Второй уровень — вмешательство (что будет, если я нажму на эту кнопку?), и тут точность начинает сыпаться, потому что нужно предсказать будущее. Но настоящий ад начинается на третьем уровне — контрфактуальном мышлении (а что, если бы мы этого не делали?). Здесь модели лажают чаще всего, потому что им нужно не просто анализировать текст, а буквально пересобрать альтернативную реальность, не запутавшись в собственных галлюцинациях.

Этот принцип универсален и касается не только сухих графиков. Тестировали это на логических задачах, но ровно та же фигня происходит, когда ты просишь AI проанализировать стратегию компании, сюжет книги или юридический кейс. Чем дальше вопрос уходит от «что написано в тексте» в сторону «а что, если», тем выше шанс, что модель выдаст галлюцинацию вместо анализа. Она цепляется за любой мусорный факт в описании, принимая его за важную причину просто потому, что он стоит в предложении рядом.

Главный вывод: не надейся, что ChatGPT или Claude заменят тебе риск-менеджера или стратега. Они круто находят оправдания уже случившимся факапам, но абсолютно беспомощны в моделировании сценариев. Если тебе нужно разобрать прошлый опыт — используй их смело, но когда дело доходит до прогнозов или разбора гипотетических ошибок, проверяй каждое слово. Иначе ты рискуешь построить стратегию на основе совета «умного» стажёра, который просто красиво расставил слова в ряд.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с