TL;DR
Большинство инструментов для обнаружения галлюцинаций смотрят на финальный ответ, а не на рассуждение. Стоит подменить ответ правильным — и детектор теряется. Это значит, что модель могла галлюцинировать в процессе рассуждения, но никто этого не замечал.
Главная находка: неправильное рассуждение имеет характерный «почерк» ещё до финального ответа. Модель задаёт себе лишние вопросы, нагоняет слова компенсируя пустоту, уровень уклончивости нарастает от начала к концу, а три независимых ответа на один вопрос расходятся в промежуточных шагах. Правильное рассуждение, напротив, оседает: словарь стабилизируется, шаги становятся более направленными, разные попытки сходятся к похожим промежуточным концепциям.
TRACT — скорер (инструмент оценки), который анализирует несколько независимых цепочек рассуждений и выявляет эти сигналы. Он не смотрит на ответ — только на траекторию. Три блока признаков: связность (как звучит каждая цепочка в среднем), структура (как меняется цепочка по ходу), сходимость (насколько разные попытки идут к одному).
Схема метода
ШАГ 1: Задай один вопрос модели K раз (в исследовании K=10)
→ Получи K независимых цепочек рассуждений
ШАГ 2: Проверка связности (по каждой цепочке)
→ Часто ли модель задаёт себе вопросы? (QUESTIONRATE)
→ Не раздуваются ли шаги без смысла? (WORDSPERSTEP)
→ Топчется ли цепочка на месте? (PLATEAUFRAC)
ШАГ 3: Проверка структуры (динамика внутри цепочки)
→ Растёт ли уклончивость к концу? (HEDGESLOPE)
→ Одна цепочка сильно длиннее других? (SCMAX)
→ Длина шагов становится всё более хаотичной? (WCVARSLOPE)
ШАГ 4: Проверка сходимости (между цепочками)
→ Используют ли разные попытки похожие концепции в середине? (MIDUNIGRAMDIV)
→ Сходятся ли в конце? (FINALUNIGRAMDIV)
→ Одна цепочка ходит по кругу к одним сущностям? (ENTITYREPEAT)
ШАГ 5: Итог — скор TRACT
→ Взвешенная сумма блоков
→ Высокий скор = вероятная галлюцинация
Все шаги требуют нескольких запросов и подсчёта признаков. Полная автоматизация — код. Ручная версия — в примере ниже.
Пример применения
⚠️ Где метод силён: Сложные многошаговые задачи — расчёты, логические выводы, анализ с промежуточными шагами. Где у модели реально есть «рассуждение» в ответе.
Где слабее: Простые фактические вопросы с коротким ответом — там траектории нет.
Задача: Ты готовишь питч-дек для инвестора Сбербанк-венчур. Просишь Claude обосновать оценку стартапа в 200 млн рублей. Ответ звучит убедительно — но как понять, что он не выдуман?
Промпт:
Я попрошу тебя три раза подряд ответить на один вопрос.
Каждый раз — независимо, заново, с нуля. Не смотри на предыдущие ответы.
Вопрос: Как обосновать оценку EdTech-стартапа в 200 млн рублей
при выручке 8 млн рублей в год и 4000 активных пользователей?
Отвечай с подробным рассуждением шаг за шагом.
---
РАУНД 1: [рассуждай от начала до конца, шаг за шагом]
РАУНД 2: [ещё раз, независимо, с нуля]
РАУНД 3: [ещё раз, независимо, с нуля]
---
После трёх ответов — проверь их по этим критериям:
1. СХОДИМОСТЬ: Используют ли все три ответа похожие промежуточные концепции
(мультипликаторы, сравнимые сделки, темп роста)? Или расходятся?
2. УКЛОНЧИВОСТЬ: Растёт ли к концу каждого рассуждения количество оговорок
("зависит от", "может быть", "если предположить")?
3. БЛУЖДАНИЕ: Есть ли шаги, которые задают вопрос вместо утверждения,
или повторяют одно и то же разными словами?
4. Вынеси вердикт: насколько надёжно это рассуждение?
Результат:
Модель выдаст три версии рассуждения, а затем проведёт самодиагностику. Если рассуждение надёжное — три версии сойдутся на схожих концепциях (Revenue Multiple 20–25x, сравнение с публичными сделками, логика CAC/LTV). Если блуждает — раунды разойдутся: один будет про мультипликаторы, другой про DCF, третий уйдёт в "всё зависит от инвестора". Уклончивость, которая нарастает к концу — сигнал, что модель сама не уверена в обосновании.
Почему это работает
Слабость LLM: Модель генерирует токены один за другим и не имеет отдельного «контроля истинности». Когда у неё нет уверенного ответа — она компенсирует: добавляет слова, оговаривается, задаёт риторические вопросы, уходит в детали. Финальный ответ при этом может звучать уверенно — ошибка уже «зашита» внутрь рассуждения.
Сильная сторона LLM: Правильное рассуждение стабилизируется. Если модель знает ответ — три независимые попытки придут к похожим промежуточным шагам. Словарь в конце сойдётся. Это статистически устойчивый паттерн. Три независимые попытки — это своего рода «голосование» не за ответ, а за путь.
Как метод использует это: TRACT не проверяет финальный ответ — он смотрит на сигналы в теле рассуждения. Рост уклончивости, самовопрошание, шаги которые топчутся на месте, расхождение между независимыми попытками — всё это диагностируется до того, как смотришь на ответ.
Рычаги управления: - Количество раундов (K): Авторы использовали 10. Для ручной проверки достаточно 3 — это баланс между надёжностью и стоимостью - Зона внимания: Смотри особенно на середину рассуждения — именно там расхождения появляются раньше, чем в финале - Тип сигнала: Для коротких задач смотри на сходимость ответов. Для длинных — на динамику уклончивости внутри одного ответа
Шаблон промпта
Ответь на вопрос ниже три раза подряд — каждый раз независимо, заново, с нуля.
Не опирайся на предыдущие раунды.
Вопрос: {вопрос}
Требования к каждому ответу:
- Рассуждай шаг за шагом
- Каждый шаг — отдельная строка
- Не пропускай промежуточные выводы
---
РАУНД 1:
[полное рассуждение]
РАУНД 2:
[полное рассуждение, независимо]
РАУНД 3:
[полное рассуждение, независимо]
---
После трёх ответов — проанализируй их:
A) СХОДИМОСТЬ: Используют ли все три рассуждения похожие промежуточные
концепции и термины? Или расходятся в разные стороны?
B) ДИНАМИКА УКЛОНЧИВОСТИ: В каждом ответе — растёт или падает количество
оговорок и неопределённых формулировок от начала к концу?
C) БЛУЖДАНИЕ: Есть ли шаги, которые повторяют предыдущее, задают вопросы
вместо утверждений, или добавляют слова без новой информации?
D) ИТОГОВЫЙ ВЕРДИКТ: На основе A-C — насколько надёжно это рассуждение
(высокая / средняя / низкая уверенность)? Что именно вызывает сомнения?
Плейсхолдеры:
- {вопрос} — любой нетривиальный вопрос, где есть цепочка рассуждений: расчёт, анализ, оценка, аргументация
🚀 Быстрый старт — вставь в чат:
Вот шаблон для проверки достоверности рассуждений модели.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про тип задачи и желаемую глубину анализа — потому что от этого зависит насколько подробными делать промежуточные шаги в рассуждении.
Ограничения
⚠️ Не для коротких ответов: Метод работает на развёрнутых цепочках рассуждений. Если ответ — одно предложение, траектории просто нет.
⚠️ Ложные тревоги на сложных субъективных вопросах: Если вопрос допускает несколько правильных подходов (например, «как выстроить стратегию»), три ответа могут законно расходиться — это не галлюцинация, а реальная множественность решений.
⚠️ Много токенов: Три полных рассуждения плюс анализ — это дорого. Для быстрых задач не оправдано.
⚠️ Самодиагностика неидеальна: Когда просишь модель оценить собственные ответы, она может систематически занижать тревожные сигналы. Часть проверки лучше делать вручную.
⚠️ TRACT как система требует код: Полная автоматизация с K=10 и подсчётом всех признаков — это Python-скрипт, не чат. Ручная версия с 3 раундами даёт направление, не точный скор.
Ресурсы
Zollicoffer G., Vu M., Zhan H., Li R., Bhattarai M. Sanity Checks for Long-Form Hallucination Detection (2025, Preprint)
Los Alamos National Laboratory / The University of Texas at Austin / University of British Columbia
