TL;DR
Лестница Перла разделяет причинно-следственные рассуждения на три уровня: ассоциация ("почему это случилось?"), интервенция ("что будет, если сделать X?") и контрфакт ("что было бы, если бы?"). Исследование показывает, что модели справляются с этими уровнями по-разному — и интервенционные вопросы оказались самыми чувствительными к ошибкам.
Когда спрашиваешь модель "что будет, если повысить цену", она должна изолировать это действие от других факторов — отделить причину от следствия. Это сложнее, чем объяснить "почему продажи упали" (ассоциация) или представить "что было бы, если бы не повышали" (контрфакт). Модель может спутать корреляцию с причинностью или учесть лишние факторы.
Явная подача структуры причин-следствий в промпт улучшает точность интервенционных рассуждений. Вместо абстрактного вопроса дай модели граф связей: "X влияет на Y, Y влияет на Z, но W — внешний фактор". Структура заменяет догадки фактами, модель следует по готовым связям вместо реконструкции из памяти.
Схема метода
ШАГ 1: Построй граф причин-следствий
→ "X → Y → Z, W не зависит от X"
ШАГ 2: Задай интервенционный вопрос с опорой на граф
→ "Если изменить X, как изменится Z?"
Выполняется в одном промпте или двух запросах
Пример применения
Задача: Решаешь, стоит ли поднять цену на подписку SaaS-сервиса. Нужно понять эффект на выручку с учётом оттока клиентов.
Промпт:
Построй граф причинно-следственных связей:
Цена подписки → Отток клиентов
Отток клиентов → Число активных пользователей
Число активных пользователей → Выручка
Цена подписки → Выручка от одного клиента
Выручка от одного клиента + Число активных пользователей → Общая выручка
Внешние факторы (не зависят от цены):
- Качество продукта
- Конкуренты на рынке
Теперь интервенционный вопрос:
Если повысить цену подписки с 990₽ до 1490₽ (+50%), как изменится общая выручка через 6 месяцев? Учитывай только прямые причинно-следственные связи из графа.
Результат:
Модель пройдёт по графу связей: сначала оценит влияние цены на отток (через исторические данные или допущения), затем рассчитает эффект на активную базу, и наконец — на выручку. Ты увидишь пошаговый анализ по каждой связи и итоговый прогноз с обоснованием. Структура графа не даст модели учесть нерелевантные факторы ("качество продукта") в расчёте эффекта цены.
Почему это работает
Модели путают корреляцию с причинностью при интервенционных вопросах. Когда спрашиваешь "что будет, если", модель должна мысленно "отрезать" все связи кроме прямого воздействия. Но без явной структуры она опирается на статистические паттерны из обучения — а там причины смешаны со случайными корреляциями.
Явный граф причин действует как внешний каркас рассуждений. Модель не реконструирует связи из памяти — она следует по готовым стрелкам. Это снижает нагрузку на внутренние представления и уменьшает риск включить лишние факторы.
Интервенционные запросы чувствительнее других к шуму в представлениях модели. Ассоциация ("почему") требует найти корреляцию — это модели делают хорошо. Контрфакты ("что было бы") опираются на нарративную логику — тоже сильная сторона. Но интервенция ("что будет если сделать") требует изоляции переменных и композиционного рассуждения — именно здесь структура помогает сильнее всего.
Рычаги управления: - Детализация графа — больше узлов и связей → точнее, но медленнее; для простых задач достаточно 3-5 узлов - Внешние факторы — явно укажи что НЕ зависит от интервенции, чтобы модель не учитывала лишнее - Числовые оценки связей — добавь веса ("цена → отток: сильная связь") для количественных прогнозов - Последовательность вопросов — сначала построй граф, потом задай интервенционный вопрос отдельным сообщением — даёт чище фокус
Шаблон промпта
Построй граф причинно-следственных связей для {ситуация}:
{переменная_1} → {переменная_2}
{переменная_2} → {переменная_3}
{переменная_1} → {переменная_4}
...
Внешние факторы (не зависят от {переменная_интервенции}):
- {внешний_фактор_1}
- {внешний_фактор_2}
Теперь интервенционный вопрос:
Если изменить {переменная_интервенции} с {текущее_значение} на {новое_значение}, как изменится {переменная_результата}? Учитывай только прямые причинно-следственные связи из графа.
Заполнение:
- {ситуация} — контекст твоей задачи
- {переменная_N} — факторы, которые влияют друг на друга
- {переменная_интервенции} — что ты меняешь
- {переменная_результата} — что хочешь предсказать
- {внешние_факторы} — что НЕ меняется от твоего действия
Стрелки → показывают направление влияния. Если A влияет на B, пиши A → B.
Лестница Перла: как формулировать вопросы
Три уровня причинно-следственных рассуждений:
Rung 1 — Ассоциация ("видеть") - Вопросы: Почему? Как связано? Что коррелирует? - Пример: "Почему выросла выручка в Q2?" - Что делает модель: Находит корреляции в данных
Rung 2 — Интервенция ("делать") - Вопросы: Что будет если? Какой эффект от действия? - Пример: "Что будет с выручкой, если добавить функцию X?" - Что делает модель: Изолирует причину от других факторов - ⚠️ Самый сложный уровень для LLM — требует разделения причин
Rung 3 — Контрфакт ("воображать") - Вопросы: Что было бы если? Как изменилось бы прошлое? - Пример: "Что было бы с выручкой, если бы не добавляли функцию X?" - Что делает модель: Строит альтернативную историю
Когда использовать граф причин: - ✅ Интервенционные вопросы (Rung 2) — наибольший эффект - ✅ Сложные контрфакты с несколькими факторами - ⏸️ Простые ассоциации — модель справится без структуры
Ограничения
⚠️ Граф требует знания связей: Ты должен знать или угадать структуру причин. Если связи неизвестны — метод не поможет, модель не "откроет" настоящие причины.
⚠️ Не для субъективных критериев: Метод работает для объективных переменных (цена, отток, трафик). Для оценок вроде "насколько креативно" структура причин не применима.
⚠️ Модель не проверяет граф: Если подашь неправильные связи ("реклама → погода"), модель будет рассуждать по ним. Garbage in, garbage out.
Как исследовали
Тестировали Llama-3-8B на CLadder — бенчмарке с 3000 задач, равномерно распределённых по трём уровням лестницы Перла. Задачи включают бэкдор-коррекцию, коллайдер-смещение, естественные эффекты и другие типы причинно-следственных операций.
Сравнивали три режима: - BF16 (полная точность) - INT8 (8-бит сжатие) - NF4 (4-бит сжатие)
Вывод: точность рассуждений почти не падает даже при сжатии до 4 бит (NF4: −0.1% от базовой). Но интервенционные запросы показали наибольшую вариативность (дисперсия в 5 раз выше, чем у ассоциации).
GraphRAG эксперимент: Подавали в промпт топ-3 релевантных причинно-следственных факта из базы знаний перед вопросом. Результат: +1.7% точность для интервенций в NF4, статистически значимо (p < 0.01).
CRASS бенчмарк (здравомысленные контрфакты, multiple choice) не показал чувствительности к сжатию — точность 26.7% во всех режимах, почти уровень случайного выбора. Это значит, что "бытовые" контрфакты типа "что если бы я не взял зонт" слишком просты для диагностики тонких эффектов.
Основной инсайт исследования: сжатие моделей не вредит причинно-следственным рассуждениям, но структурированная подача контекста улучшает интервенционную точность даже в сжатых моделях.
Ресурсы
Compressed Causal Reasoning: Quantization and GraphRAG Effects on Interventional and Counterfactual Accuracy — Steve Nwaiwu, Nipat Jongsawat, Anucha Tungkasthan (Rajamangala University of Technology, Thailand)
Бенчмарк CLadder — github.com/causalNLP/cladder (структурированная оценка причинно-следственных рассуждений по лестнице Перла)
