TL;DR
Когда модель несколько раз отвечает на один и тот же вопрос и постоянно даёт один и тот же ответ — это надёжный сигнал, что ответ верный. Когда ответы рассыпаются — модель не уверена, и нужно копать глубже. TrACE — это алгоритм, который использует именно этот принцип: вместо фиксированного числа попыток он адаптивно добавляет вызовы модели только там, где ответы расходятся, и останавливается早, как только они сошлись.
Главная находка: словесная уверенность врёт, поведенческая согласованность — нет. Если спросить модель "насколько ты уверена?", она может бодро ответить "очень уверена" и ошибиться. Но если задать вопрос трижды независимо и посмотреть — совпадают ли ответы — это гораздо более честный сигнал. Модели плохо калибруют собственную уверенность, но хорошо "голосуют ногами": когда один ответ явно сильнее, он доминирует в большинстве попыток.
Метод работает в два момента: сначала генерируешь несколько ответов, смотришь на согласованность. Высокая — готово. Низкая — добавляешь ещё попытки до нужного порога. Финальный ответ — тот, который встречается чаще всего (большинство голосов).
Схема метода
(все шаги можно сделать в одном запросе вручную)
ШАГ 1: Генерация нескольких вариантов
→ Попроси модель дать 2-3 независимых ответа на один вопрос
ШАГ 2: Проверка согласованности
→ Все ответы указывают на одно и то же?
ДА → Сигнал надёжности высокий → берём большинство
НЕТ → Сигнал низкий → переходим к шагу 3
ШАГ 3: Расширение (только при расхождении)
→ Попроси ещё 1-2 варианта
→ Снова проверяй согласованность
→ Повторяй до сходимости или до лимита попыток
ШАГ 4: Финальный ответ
→ Ответ, который встречается у большинства → правильный
→ Если не сошлись → признай неопределённость, копай глубже
Пример применения
Задача: Ты консультант, помогаешь основателю небольшого сервиса доставки еды в Екатеринбурге решить — открывать второй город (Тюмень) или нет. Нужно надёжное решение, цена ошибки высокая.
Промпт:
Я хочу понять, насколько решение надёжно, поэтому сделай следующее:
**Шаг 1. Три независимых анализа.**
Проанализируй вопрос три раза с нуля — как три разных аналитика.
Каждый раз дай итоговый вывод: "Открывать Тюмень сейчас" или "Не открывать".
Контекст: сервис доставки еды в Екатеринбурге, 2 года работы,
прибыльный, 8 курьеров, MRR 900 000 руб., запас кэша 1.2 млн.
Аналитик 1: [рассуждение + вывод]
Аналитик 2: [рассуждение + другой угол зрения + вывод]
Аналитик 3: [рассуждение + третий угол + вывод]
**Шаг 2. Оценка согласованности.**
Все три пришли к одному выводу?
— Если ДА: напиши "Высокая согласованность — рекомендую доверять ответу"
и дай финальный вывод с главными аргументами.
— Если НЕТ: напиши "Низкая согласованность — вопрос спорный"
и укажи, в чём именно расходятся оценки, что нужно прояснить дополнительно.
Результат: Модель покажет три независимых рассуждения, каждое через свою логику. Затем оценит их сходимость. Если все три скажут "не открывать" — это сильный сигнал, которому стоит доверять. Если один скажет "открывать" — модель сама укажет на спорные точки: возможно, не хватает данных о конкурентах в Тюмени, или оценка кэша неоднозначна. Это не просто ответ — это карта уверенности по вопросу.
Почему это работает
Слабость LLM: Модели плохо знают, когда они правы. Спроси "уверена ли ты?" — скажет "да". Но это не настоящая уверенность — это шаблонный ответ. Модель генерирует текст по паттерну уверенности, не проверяя реальную надёжность вывода.
Сильная сторона LLM: Модели стохастичны — каждый раз при генерации с температурой выше нуля они вносят немного случайности. Если ответ действительно "очевиден" с точки зрения модели, случайный шум не меняет вывод — все попытки сходятся. Если ответ спорный, разные "броски кубика" дают разные результаты. Это поведение честнее, чем слова.
Как метод использует это: Вместо того чтобы опираться на то, что модель говорит о своей уверенности, TrACE смотрит на то, как ведёт себя её вывод при повторении. Согласованность — это объективный, измеримый сигнал. Именно поэтому метод работает лучше, чем просто спросить "насколько ты уверена?".
Рычаги управления: - Число попыток — больше попыток (3→5) повышает надёжность сигнала, но дороже по токенам - Порог сходимости — "все три должны совпасть" строже, чем "двое из трёх": жёсткий порог для высокоставочных решений, мягкий для рутинных - Реакция на расхождение — вместо "добавь попытки" можно попросить: "почему аналитики не сходятся — что за фактор разделяет их?"
Шаблон промпта
Проанализируй следующий вопрос {число} раза независимо,
как {число} разных экспертов с разными подходами.
Вопрос / задача: {задача}
{Эксперт 1}: [рассуждение → итоговый вывод: {формат вывода}]
{Эксперт 2}: [рассуждение → итоговый вывод: {формат вывода}]
{Эксперт 3}: [рассуждение → итоговый вывод: {формат вывода}]
Оценка согласованности:
— Если все {число} пришли к одному выводу:
напиши "Высокая согласованность" + финальный вывод + главные аргументы.
— Если мнения разошлись:
напиши "Низкая согласованность" + в чём именно расхождение
+ что нужно уточнить или исследовать дополнительно.
Что подставлять:
- {число} — сколько независимых анализов (3 — хороший старт, 5 — для важных решений)
- {задача} — вопрос, решение, оценка — любая задача с однозначным выводом
- {формат вывода} — "ДА/НЕТ", "рекомендую/не рекомендую", числовая оценка 1-10
- {Эксперт 1/2/3} — можно оставить безликими или дать роли: "оптимист", "скептик", "финансист"
🚀 Быстрый старт — вставь в чат:
Вот шаблон метода TrACE (проверка надёжности через согласованность).
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про формат вывода и число экспертов — потому что от этого зависит, как она будет измерять согласованность. Она возьмёт структуру из шаблона и подстроит под твой контекст.
Ограничения
⚠️ Открытые ответы: Метод работает хуже, когда ответ — развёрнутый текст. Согласованность легко мерить для "ДА/НЕТ" или числа, сложнее — для двух разных эссе, которые говорят одно и то же разными словами.
⚠️ Субъективные критерии: Если задача — "напиши лучший слоган", разные попытки дадут разные тексты по определению. Этот метод не для оценки творческого качества.
⚠️ Простые вопросы: На вопрос "столица России?" модель всегда ответит одинаково — высокая согласованность ничего не добавляет. Метод ценен для действительно спорных или неоднозначных задач.
⚠️ Только для одной модели: Метод измеряет внутреннюю согласованность одной модели. Если сама модель системно ошибается по теме — все 5 попыток дадут одинаково неправильный ответ. Согласованность ≠ истинность.
⚠️ Проверено на маленькой модели: Исследование использовало модель 3B параметров на CPU. Насколько эффект масштабируется на большие модели — остаётся вопросом.
Как исследовали
Исследователь из Stanford взял небольшую открытую модель (Qwen 2.5, 3B параметров) и запустил её на двух типах задач: одношаговые математические задачи (GSM8K) и многошаговая навигация в виртуальном доме (MiniHouse). Идея была простой: сравнить три стратегии — один вызов модели, фиксированные 4 или 8 вызовов каждый раз, и адаптивные вызовы по согласованности (TrACE).
Результат получился неожиданно чистым. На математике TrACE-4 давал ту же точность, что и фиксированные SC-4, но при этом делал 33% меньше вызовов — потому что на лёгких задачах модель быстро сходилась и TrACE останавливался рано. На навигации разрыв ещё больше: 65% экономии при той же точности. По времени это 14 минут против 40 минут для SC-8.
Отдельно проверили гипотезу: правда ли, что шаги с высокой согласованностью коррелируют с успехом задачи? Оказалось — да. Шаги, где модель быстро сходилась (αt ≥ 0.8), принадлежали успешным эпизодам значительно чаще, чем шаги с расхождением (αt < 0.4). Это подтвердило центральную идею: согласованность — не просто сигнал о потраченных вызовах, а сигнал о реальной сложности шага.
Адаптации и экстраполяции
🔧 Адаптация 1: Именованные роли вместо безликих экспертов → острее критика
Вместо "Эксперт 1 / 2 / 3" дай конкретные архетипы мышления — разные углы станут более непримиримыми:
Минцберг (системный стратег): [рассуждение → вывод]
Нассим Талеб (антихрупкость, хвостовые риски): [рассуждение → вывод]
Антрепренёр Фёдора Овчинникова (скорость, итерации): [рассуждение → вывод]
Согласованность между Талебом и Минцбергом — гораздо более сильный сигнал, чем согласованность "Эксперта 1" и "Эксперта 2".
🔧 Адаптация 2: Согласованность как фильтр для многошаговых задач
Если ты ведёшь модель через цепочку шагов (план проекта, анализ ситуации, стратегия), применяй проверку согласованности только на ключевых развилках, а не на каждом шаге:
Шаг 1-3: [обычные инструкции]
На Шаге 4 — ключевое решение о {X}.
Сначала дай три независимые оценки этого решения,
затем проверь согласованность и только потом продолжай.
Шаг 5-7: [обычные инструкции]
Это ручная версия TrACE: тратишь "дополнительные токены" только там, где ставки высоки.
🔧 Адаптация 3: Замена "уверен ли ты?" на замер согласованности
Распространённая ошибка — спрашивать модель после ответа: "Насколько ты уверена в этом?" Исследование показывает, что это ненадёжный сигнал. Лучше:
❌ Плохо:
[Answer]
Насколько ты уверена в этом ответе?
✅ Хорошо:
Ответь на этот вопрос тремя независимыми способами,
потом скажи — сходятся ли они.
Поведение честнее слов.
Ресурсы
Don't Overthink It: Inter-Rollout Action Agreement as a Free Adaptive-Compute Signal for LLM Agents
Khushal Sethi, Stanford University — khushal@stanford.edu
Связанные работы: Self-Consistency (Wang et al., 2023), Tree of Thoughts (Yao et al., 2024), Reflexion (Shinn et al., 2023)
