TL;DR
Trace Inversion — техника проверки, не соврала ли модель. Суть: попросить модель восстановить по своим рассуждениям, на какой вопрос она на самом деле ответила — и сравнить с вопросом, который задал ты.
Модели галлюцинируют не потому что «не уверены» — а потому что незаметно подменяют вопрос. Ты спрашиваешь «Кто не умел пользоваться телефоном?» — модель в рассуждениях незаметно переформулирует в «Кто скорее всего не умел?» и уверенно отвечает на уже другой вопрос. Классические методы проверки смотрят на уверенность ответа — но модель может быть максимально уверенной в ответе на неправильный вопрос.
Метод перехватывает подмену за три шага: модель отвечает с рассуждением → по рассуждению восстанавливается «вопрос, который модель услышала» → два вопроса сравниваются. Если они расходятся — ответ ненадёжен.
Схема метода
(3 последовательных запроса в одном чате)
ШАГ 1: Задай вопрос + "думай пошагово"
→ получи ответ + рассуждение
ШАГ 2: Только по рассуждению → попроси восстановить
вопрос, на который модель реально ответила
→ получи реконструированный вопрос
ШАГ 3: Сравни оригинальный вопрос с реконструированным
→ большое расхождение = ответ ненадёжен,
лучше перепроверить
Пример применения
Задача: Основатель стартапа готовится к встрече с инвестором. Спрашивает ChatGPT о юридических требованиях к договору конвертируемого займа в России перед питчем в фонд, который инвестирует по этой схеме.
Промпт — Шаг 1:
Какие обязательные условия должны быть в договоре
конвертируемого займа между стартапом и венчурным фондом
по российскому праву? Думай пошагово, показывай каждый шаг.
Промпт — Шаг 2:
Посмотри только на свои рассуждения выше — не на вопрос,
который я задал. Основываясь исключительно на ходе своих
рассуждений, сформулируй: на какой вопрос ты фактически
отвечал? Запиши его точно.
Промпт — Шаг 3:
Сравни два вопроса:
МОЙ ВОПРОС: "Какие обязательные условия должны быть
в договоре конвертируемого займа между стартапом
и венчурным фондом по российскому праву?"
ВОПРОС, НА КОТОРЫЙ ТЫ ОТВЕТИЛ: [вставь из шага 2]
Совпадают ли они по смыслу, намерению и контексту?
Если есть расхождения — укажи конкретно, какие,
и насколько это влияет на достоверность ответа.
Результат: На шаге 3 модель покажет: либо «вопросы совпадают, ответ надёжен» — либо конкретно опишет подмену. Например: «Я отвечал о типовых требованиях к займам вообще, а не специфике конвертации по 223-ФЗ» — и сам покажет, где ответ ненадёжен. Без этой проверки такая подмена незаметна.
Почему это работает
Модель не «врёт» — она достраивает пробелы. Когда в вопросе есть неопределённость, неизвестные факты или ложная предпосылка, модель тихо заполняет пробел и отвечает на чуть другой, «починенный» вопрос. Ответ звучит уверенно — потому что на свой вопрос модель действительно ответила правильно.
Рассуждение (Chain-of-Thought, цепочка шагов) — это след того, как модель интерпретировала запрос. По этому следу можно восстановить, что модель «услышала». Подмена вопроса оставляет отпечаток в рассуждении — и именно там её можно поймать.
Метод использует то, что модель хорошо умеет: перефразировать и сравнивать смыслы. Задача сравнения «одинаково ли звучат два вопроса по смыслу» — это сильная зона LLM. Слабость (незаметная подмена) обходится через сильную сторону (анализ смысловых расхождений).
Рычаги управления: - Детализация шага 3 — добавь «оцени расхождение по шкале 1-10» чтобы получить числовой сигнал - Фокус сравнения — укажи конкретные оси: «сравни по: намерение / факты / контекст» для точнее диагностики - Упрощение — если нет времени на 3 шага, можно объединить шаги 2-3 в один запрос (незначительная потеря точности)
Шаблон промпта
Шаг 1 — Ответ с рассуждением:
{вопрос}
Думай пошагово. Показывай каждый шаг рассуждения.
Шаг 2 — Реконструкция вопроса:
Посмотри только на свои рассуждения выше — не на вопрос,
который я задал. Основываясь исключительно на ходе своих
рассуждений, сформулируй: на какой именно вопрос ты
фактически отвечал? Запиши его точно, одним предложением.
Шаг 3 — Сравнение:
Сравни два вопроса:
МОЙ ВОПРОС: {вставь оригинальный вопрос}
ВОПРОС, НА КОТОРЫЙ ТЫ ОТВЕТИЛ: {вставь из шага 2}
Совпадают ли они по: намерению, фактическому содержанию
и контексту? Если есть расхождения — укажи конкретно.
Вывод: насколько можно доверять первому ответу?
Плейсхолдеры:
- {вопрос} — любой вопрос, где важна точность (юридическое, медицинское, финансовое, историческое)
- Шаги 2 и 3 — универсальные, не меняются
🚀 Быстрый старт — вставь в чат:
Вот трёхшаговый метод проверки галлюцинаций Trace Inversion.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы правильно заполнить шаги.
[вставить шаблон выше]
LLM спросит о твоём конкретном вопросе и контексте — потому что шаг 3 требует точно восстановить оригинальный вопрос для сравнения. Она возьмёт структуру из шаблона и адаптирует под твой запрос.
Ограничения
⚠️ Overhead: Три запроса вместо одного — метод для ситуаций, когда цена ошибки высока. Для проверки рецепта ужина избыточно.
⚠️ Тонкие расхождения: Если подмена очень незначительная («кто не умел» vs «кто скорее всего не умел»), языковое сравнение может не поймать разницу. Числовая оценка сходства помогает, но не гарантирует.
⚠️ Модели без развёрнутого рассуждения: Метод работает только если модель выдаёт развёрнутые рассуждения. С короткими ответами «без объяснений» — след слишком короткий для реконструкции.
⚠️ Сильные задачи — сильный результат: Лучше всего работает на вопросах с чёткими фактами (юридическое, математическое, историческое). Хуже — на субъективных и оценочных вопросах, где «подмена» труднее определима.
Ресурсы
Answering the Wrong Question: Reasoning Trace Inversion for Abstention in LLMs Abinitha Gourabathina (MIT), Inkit Padhi (IBM Research), Manish Nagireddy (MIT-IBM Watson AI Lab), Subhajit Chaudhury (IBM Research), Prasanna Sattigeri (MIT-IBM Watson AI Lab) github.com/abinithago/trace-inversion
