3,583 papers
arXiv:2602.02639 73 2 фев. 2026 г. FREE

Контрфактуальное тестирование: как проверить честность объяснений LLM

КЛЮЧЕВАЯ СУТЬ
Когда просишь LLM объяснить решение, она может плести красивую логику постфактум, не раскрывая реальных критериев. Метод контрфактуального тестирования позволяет проверить честность объяснений и понять по каким факторам модель реально принимает решения. Фишка: подсунуть два почти одинаковых примера с одним различием (два резюме отличаются только возрастом). Если модель дает разные ответы, честное объяснение обязано упомянуть это различие. Если молчит — врёт. Самообъяснения улучшают предсказание поведения модели на 11-37% по сравнению с внешними интерпретациями.
Адаптировать под запрос

TL;DR

Когда просишь LLM объяснить решение, объяснение реально раскрывает критерии, по которым модель принимает решения. Исследователи проверили это через контрфактуальные пары — почти одинаковые примеры, различающиеся одной деталью. Если модель дает разные ответы, честное объяснение должно упоминать эту деталь. Например: два профиля пациентов отличаются только возрастом, модель дает разные диагнозы — объяснение должно упомянуть возраст как фактор.

Оказалось, самообъяснения LLM улучшают предсказание поведения модели на 11-37%. Если прочитал объяснение модели на одном примере, ты лучше предскажешь её ответ на похожем. Это значит объяснения содержат реальную информацию о логике модели. Но 5-15% объяснений вводят в заблуждение — модель может рационализировать решение постфактум, не раскрывая истинную причину.

Самообъяснения точнее внешних — даже если попросить более сильную модель объяснить решение слабой, самообъяснение слабой модели окажется более предсказательным. Модель знает о своей логике больше, чем внешний наблюдатель.

🔬

Схема метода

ШАГ 1: Создай контрфактуальную пару
→ Два примера, отличающиеся одним фактором

ШАГ 2: Получи решения модели
→ Ответ на каждый пример

ШАГ 3: Запроси объяснения
→ Почему модель приняла каждое решение

ШАГ 4: Проверь упоминание различающего фактора
→ Честное объяснение назовет ключевое различие

Все шаги можно выполнить в одном чате вручную.

🚀

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

Задача: Понять по каким критериям Claude оценивает бизнес-идеи для раннего инвестирования.

Промпт:

Оцени две идеи для раннего инвестирования по 10-балльной шкале:

ИДЕЯ А:
Сервис доставки готовой еды для офисов в Москве. 
Основатель — бывший менеджер Яндекс.Еды, 28 лет.
Запрашивает 5 млн рублей на запуск.

ИДЕЯ Б:
Сервис доставки готовой еды для офисов в Москве.
Основатель — бывший менеджер Яндекс.Еды, 42 года.
Запрашивает 5 млн рублей на запуск.

Дай оценку каждой идее, затем объясни детально почему поставил именно такую оценку.

Результат:

Модель выдаст две оценки (например, 7/10 и 8/10) и два объяснения. Если в объяснениях упоминается возраст как фактор — это честное объяснение критериев. Если объяснения игнорируют единственное различие и говорят об общих факторах — объяснение вероятно рационализация.

Теперь ты понимаешь как модель взвешивает опыт vs молодость основателя. Можешь предсказать оценку для 35-летнего основателя или проверить другой фактор (сумма инвестиций, город).

🧠

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

LLM не имеет прямого доступа к своим "внутренним весам", но в процессе генерации текста она активирует паттерны, которые привели к решению. Когда модель объясняет — она реконструирует логику по следам этой активации.

Контрфактуальное тестирование (пары примеров с одним различием) — хирургический инструмент для выявления критериев. Если модель переключает ответ между парой — значит различающий фактор критичен. Честное объяснение назовет его явно.

Самообъяснения точнее внешних потому что модель "чувствует" какие паттерны активировались при генерации. Внешняя модель видит только финальный ответ и реконструирует логику по косвенным признакам — как психолог анализирует чужое поведение vs самонаблюдение.

Рычаги управления: - Размер различия — меняй один фактор (возраст) или несколько; одно различие = четче сигнал - Домен факторов — тестируй численные (возраст, цена), категориальные (город, пол), текстовые (формулировка) - Число пар — одна пара = гипотеза, 3-5 пар = паттерн - Формат объяснения — явно попроси "назови какой фактор повлиял на разницу в оценках"

📋

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

Оцени/Проанализируй два варианта:

ВАРИАНТ А:
{описание_с_фактором_X}

ВАРИАНТ Б:
{описание_с_фактором_Y}

Дай ответ для каждого варианта, затем объясни:
1. Почему ты принял такое решение в каждом случае?
2. Какой фактор повлиял на разницу между вариантами (если она есть)?

Что подставлять: - {описание} — два максимально похожих описания, различающихся только тестируемым фактором - фактор_X/Y — конкретные значения: возраст 28/42, город Москва/Казань, опыт 2 года/10 лет

Важно: Варианты должны быть идентичны кроме одного фактора. Тогда различие в ответах укажет на вес этого фактора в логике модели.

⚠️

Ограничения

⚠️ 5-15% объяснений вводят в заблуждение: Модель может рационализировать решение постфактум, создавая правдоподобное но ложное объяснение. Проверяй на нескольких парах примеров.

⚠️ Работает только для решений, где есть варианты: Если задача имеет объективно правильный ответ (математика, факты), объяснения покажут методику решения, не критерии выбора.

⚠️ Не заменяет проверку результата: Объяснение может быть честным, но критерии модели могут быть некорректными. "Я отклонил идею потому что основателю 42" — честное объяснение эйджистского критерия.

🔍

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

Команда из Oxford и Berkeley взяла 7000 контрфактуальных пар из популярных датасетов (медицина, бизнес, этика) и протестировала 18 современных моделей — Gemini 3, GPT-5.2, Claude 4.5 и другие.

Логика эксперимента элегантная: дай модели пару одинаковых кейсов с одним различием. Получи ответы и объяснения. Теперь дай второй модели (предиктору) только объяснение первой и попроси угадать ответ на втором примере из пары.

Если объяснение честное — предиктор должен угадать точнее, чем без объяснения. Это и есть Normalized Simulatability Gain (NSG) — насколько объяснение помогает симулировать поведение модели.

Удивительный результат: самообъяснения оказались точнее объяснений от более сильных моделей. То есть если попросить GPT-5.2 объяснить решение Gemma 3 4B, самообъяснение Gemma будет более предсказательным. Это говорит о преимуществе самопознания — модель знает о своей логике больше, чем внешний наблюдатель может вывести из поведения.

Но картина не идеальна: 5-15% объяснений были грубо обманчивыми — предиктор с объяснением ошибался чаще, чем без него. Модели иногда создают убедительные рационализации вместо честных объяснений.

Практический инсайт: самообъяснения LLM — ценный но несовершенный инструмент. Как показания свидетеля: часто правдивы, но требуют перекрестной проверки.

💡

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

📌

🔧 Техника: Множественные контрфактуалы → карта критериев

Вместо одной пары, создай матрицу вариантов с разными факторами:

Оцени 4 бизнес-идеи по 10-балльной шкале:

А: Доставка еды | Москва | Основатель 28 лет | 5 млн руб
Б: Доставка еды | Москва | Основатель 28 лет | 15 млн руб  
В: Доставка еды | Казань | Основатель 28 лет | 5 млн руб
Г: Доставка еды | Москва | Основатель 42 года | 5 млн руб

Оцени каждую, затем объясни:
- Как сумма инвестиций влияет на оценку? (А vs Б)
- Как город влияет на оценку? (А vs В)  
- Как возраст основателя влияет на оценку? (А vs Г)

Получаешь декомпозицию критериев — видишь вес каждого фактора отдельно.


📌

🔧 Техника: Предсказание + проверка → калибровка доверия

ШАГ 1 (в новом чате):
Вот объяснение модели почему она одобрила заявку А и отклонила Б:
[вставить объяснение]

Как ты думаешь, она одобрит или отклонит заявку В: {описание}?

ШАГ 2 (в исходном чате):
[попросить модель оценить заявку В]

ШАГ 3: Сравни предсказание с реальностью
→ Если совпало — объяснение было честным
→ Если нет — объяснение рационализация

Повтори на 3-5 примерах. Увидишь процент надежности объяснений конкретной модели на твоих задачах.


📌

🔧 Техника: Обратный контрфактуал → проверка последовательности

Ты оценил идею А на 7/10, а идею Б на 4/10.
Объяснил что причина — возраст основателя.

Теперь задача: я изменю ТОЛЬКО возраст в идее Б с 42 на 28 лет.
Всё остальное идентично.

Какой будет новая оценка идеи Б?

Если модель не поднимет оценку до ~7/10 — её объяснение было неполным или ложным. Если поднимет — объяснение последовательное.

🔗

Ресурсы

A Positive Case for Faithfulness: LLM Self-Explanations Help Predict Model Behavior

Harry Mayne, Justin Singh Kang, Dewi Gould, Kannan Ramchandran, Adam Mahdi, Noah Y. Siegel

University of Oxford, UC Berkeley, Google DeepMind, UCL

Код на GitHub


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

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

Когда просишь LLM объяснить решение, она может плести красивую логику постфактум, не раскрывая реальных критериев. Метод контрфактуального тестирования позволяет проверить честность объяснений и понять по каким факторам модель реально принимает решения. Фишка: подсунуть два почти одинаковых примера с одним различием (два резюме отличаются только возрастом). Если модель дает разные ответы, честное объяснение обязано упомянуть это различие. Если молчит — врёт. Самообъяснения улучшают предсказание поведения модели на 11-37% по сравнению с внешними интерпретациями.

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

Создай пару примеров, максимально похожих, но различающихся одним фактором (возраст 28 vs 42, город Москва vs Казань). Получи решение модели на каждый. Запроси объяснение. Если модель дала разные ответы, но объяснение не упоминает единственное различие — это рационализация, не честный разбор. Честное объяснение назовёт критический фактор явно: "возраст повлиял потому что..."

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

LLM не видит свои внутренние веса, но в процессе генерации активирует паттерны, которые привели к решению. Когда объясняет — реконструирует логику по следам этой активации. Контрфактуальная пара работает как детектор лжи: единственное различие между примерами = единственная причина разных ответов. Если объяснение игнорирует её — модель или не осознаёт свою логику, или прикрывает её социально приемлемым объяснением. Самообъяснения точнее внешних (когда сильную модель просишь объяснить слабую) — модель "чувствует" какие паттерны активировались, внешняя модель только гадает по финальному ответу.

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

Аудит моделей → когда нужно понять реальные критерии принятия решений (скоринг заявок, оценка резюме, медицинская диагностика), особенно если подозреваешь bias или скрытые факторы. Проверка интерпретируемости → перед тем как доверить модели высокорисковые решения. Отладка промптов → чтобы понять какие детали инструкции модель игнорирует, а какие переоценивает. НЕ подходит для задач с объективно правильным ответом (математика, факты) — там объяснение покажет методику решения, не критерии выбора.

Мини-рецепт

1. Создай контрфактуальную пару: возьми пример, клонируй его, измени один фактор (возраст 28→42, опыт 2 года→10 лет, город Москва→Казань). Остальное идентично.
2. Получи решения модели: скорми оба примера, получи ответ на каждый (оценка, диагноз, рекомендация).
3. Запроси объяснение с прямым вопросом: "Объясни почему ты принял такое решение в каждом случае. Какой фактор повлиял на разницу между вариантами?"
4. Проверь упоминание различающего фактора: если модель дала разные ответы, но объяснение не называет единственное различие между примерами — это рационализация, не честное раскрытие логики.
5. Повтори на 3-5 парах: одна пара = гипотеза, несколько пар = паттерн. Если фактор упоминается в 4 из 5 — реально влияет.

Примеры

[ПЛОХО] : Оцени бизнес-идею: сервис доставки еды для офисов, основатель 28 лет, бывший менеджер Яндекс.Еды, запрашивает 5 млн. Объясни оценку. — получишь объяснение, но не поймёшь какие факторы критичны, а какие декоративны.
[ХОРОШО] : Оцени две идеи по 10-балльной шкале: ИДЕЯ А: Сервис доставки еды для офисов Москвы. Основатель 28 лет, экс-менеджер Яндекс.Еды. Запрашивает 5 млн. ИДЕЯ Б: Сервис доставки еды для офисов Москвы. Основатель 42 года, экс-менеджер Яндекс.Еды. Запрашивает 5 млн. Дай оценку каждой, затем объясни: 1) Почему такая оценка в каждом случае? 2) Какой фактор повлиял на разницу (если есть)? — если модель оценила по-разному, но не упомянула возраст — поймал на рационализации. Если упомянула — узнал реальный критерий (опыт vs энергия молодости).
Источник: A Positive Case for Faithfulness: LLM Self-Explanations Help Predict Model Behavior
ArXiv ID: 2602.02639 | Сгенерировано: 2026-02-04 05:29

Концепты не выделены.

📖 Простыми словами

A Positive Case for Faithfulness:LLMSelf-Explanations Help PredictModelBehavior

arXiv: 2602.02639

Раньше считалось, что когда нейронка объясняет свои действия, она просто красиво врет, подгоняя ответ под результат. Но это исследование доказывает обратное: самообъяснения LLM — это не просто галлюцинации, а вполне реальное окно в «мозги» модели. Суть в том, что когда ты просишь ИИ обосновать решение, он не выдумывает сказку с нуля, а подсвечивает те самые критерии и паттерны, которые сработали в его нейронных связях в момент выбора. Это работает как цифровая улика: модель буквально выдает себя, показывая, на какие детали она опиралась на самом деле.

Это как если бы ты спросил у судьи, почему он вынес приговор, и он честно признался, что его смутил цвет галстука подсудимого. Формально это звучит дико, но для понимания логики процесса — бесценно. Исследователи проверили это через контрфактуальные пары: брали два почти идентичных примера, меняли в них одну мелкую деталь и смотрели, изменится ли решение. Если модель меняла вердикт и при этом в объяснении указывала именно на эту измененную деталь, значит, она не врет о своих мотивах.

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

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

Короче: хватит относиться к объяснениям нейронок как к бесполезному гарниру. Это мощнейший инструмент для аудита и предсказания поведения моделей. Если хочешь понять, по каким критериям ИИ оценивает твой проект или код, просто попроси его объяснить решение — с вероятностью выше случайной он выдаст тебе свои истинные триггеры. Кто научится читать эти «признания», сможет хакнуть логику модели и подстроиться под неё, пока остальные жалуются на непредсказуемость алгоритмов.

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

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

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