TL;DR
CTR — пятиступенчатый конвейер для вопросов о будущем. Модель восстанавливает историю факта по годам, находит в ней моменты смены значения, определяет, как быстро факт меняется (быстро, медленно или никогда), и только после этого решает: отвечать или честно сказать «предсказать нельзя». Идея в том, что решение «отвечать или нет» принимается до самого ответа, а не вместе с ним.
Проблема в том, что модель отвечает на вопрос о будущем с одинаковой уверенностью и про «столицу Франции», и про «где пройдёт конференция через три года». Пока факт держался стабильно, она права. Как только срок выходит за границу, где известные данные что-то гарантируют, она повторяет устаревший ответ или выдумывает новый, и уверенность при этом не падает. Просто дать модели историю или свежие документы не спасает: такой подход помогает нестабильно. Не хватает не знаний, а умения отличить предсказуемый факт от непредсказуемого.
CTR вставляет между вопросом и ответом промежуточную диагностику. Шаги: (1) вспомнить значения факта по годам, (2) собрать таймлайн, (3) найти точки смены, (4) определить режим изменчивости и вынести вердикт «предсказуемо / непредсказуемо», (5) ответить, только если вердикт позволяет, иначе воздержаться. В итоге галлюцинаций заметно меньше, а точность не падает, в том числе на быстро меняющихся фактах.
Схема метода
ШАГ 1: Историческое воспоминание → значение факта за каждый год окна + уверенность
ШАГ 2: Таймлайн → таблица (год, значение, надёжность); сомнительные записи с низким весом
ШАГ 3: Поиск точек смены → годы, когда значение реально поменялось (одиночные выбросы отсекаем)
ШАГ 4: Режим и вердикт → FAST / SLOW / NEVER + PREDICTABLE / UNPREDICTABLE
ШАГ 5: Ответ под контролем → отвечаем только при PREDICTABLE, иначе воздерживаемся
В оригинале это программа: ~50 отдельных запросов по годам, токен-энтропия как мера уверенности. В чате шаги можно уложить в один промпт (см. шаблон).
Пример применения
Задача: Аналитик готовит презентацию для инвесторов «Планы на 2027». Ему нужно вставить три факта: ключевая ставка ЦБ на 1 июля 2027, город проведения ПМЭФ в 2027, генеральный директор Сбера на конец 2027. Он боится, что модель уверенно впишет красивые, но выдуманные значения.
Промпт:
Ты — аналитик, который не имеет права гадать. Для каждого факта ниже пройди 5 шагов и только потом отвечай.
Факты:
1. Ключевая ставка Банка России на 1 июля 2027 года
2. Город проведения ПМЭФ в 2027 году
3. Генеральный директор Сбера на конец 2027 года
Для КАЖДОГО факта:
ШАГ 1. Историческое воспоминание. Вспомни значение факта за каждый год последних 15 лет (2010–2024). Рядом с каждым значением поставь уверенность: высокая / средняя / низкая.
ШАГ 2. Таймлайн. Собери таблицу: год | значение | надёжность. Записи с низкой уверенностью пометь как сомнительные и не опирайся на них.
ШАГ 3. Точки смены. Укажи годы, когда значение реально поменялось. Одиночный скачок, не подтверждённый соседними годами, считай шумом.
ШАГ 4. Режим и вердикт.
- Режим: FAST (меняется часто), SLOW (меняется редко и по понятной причине), NEVER (не меняется).
- Вердикт: PREDICTABLE, если таймлайн даёт основание назвать одно конкретное значение на целевую дату; UNPREDICTABLE, если значение зависит от будущих решений или событий, которых в таймлайне нет.
ШАГ 5. Ответ. Если PREDICTABLE — назови значение и укажи, на каком основании. Если UNPREDICTABLE — не называй конкретное значение. Вместо этого напиши, от чего оно зависит и что нужно проверить перед публикацией. Выдумывать и экстраполировать без опоры на таймлайн запрещено.
В конце — итоговая таблица: факт | режим | вердикт | ответ или «воздерживаюсь».
Результат: Модель выдаст для каждого из трёх фактов таймлайн по годам, список точек смены, режим и вердикт. Скорее всего, факты разойдутся по вердиктам. У факта, который сильно зависит от будущих решений, вместо цифры появится «воздерживаюсь» с перечнем того, что надо проверить. Для факта с долгой стабильной историей вы получите конкретный ответ с обоснованием. В конце будет сводная таблица, которую удобно проверять руками.
Почему это работает
Слабость. Модель обучена продолжать текст правдоподобно. Вопрос «кто будет главой в 2028» она воспринимает как «заполни пропуск» и заполняет. Эксперименты показали: когда ответ перестаёт быть обоснованным, неопределённость модели почти не растёт. Она не чувствует границу. Поэтому просьба «скажи, если не уверен» срабатывает плохо, сигнала изнутри нет.
Сильная сторона. Модель хорошо вспоминает отдельные факты по конкретным годам и умеет сравнивать соседние значения. Вопрос «что было в 2015?» для неё проще и надёжнее, чем «что будет в 2028?». А по готовой таблице она неплохо классифицирует: «значение менялось четыре раза за десять лет — это быстрый режим».
Как метод связывает одно с другим. Он превращает невозможный вопрос («угадай будущее») в серию возможных (вспомни прошлое, найди смены, классифицируй), а решение отвечать принимается на основе явных данных, а не ощущения уверенности.
Рычаги управления: - Окно в годах (в оригинале 50) → для быстрых фактов хватит 5–10 лет, для медленных нужно больше. - Фильтр шума («одиночный скачок = шум») → ослабь, если ждёшь резких разовых смен. - Условие воздержания → замени «не называй значение» на «назови диапазон и вероятности», если нужен сценарный прогноз. - Шкала уверенности → в чате заменяет токен-энтропию из оригинала. Чем строже критерии «высокая/низкая», тем жёстче фильтр.
Шаблон промпта
Ты — аналитик, который отвечает о будущем только при наличии опоры в истории. Гадать нельзя.
Вопрос: {вопрос_о_будущем}
Целевая дата: {дата}
Окно истории: {число_лет} лет до целевой даты
Пройди по шагам и покажи каждый.
ШАГ 1. Историческое воспоминание.
Для каждого года окна вспомни значение факта. Рядом — уверенность: высокая / средняя / низкая.
ШАГ 2. Таймлайн.
Таблица: год | значение | надёжность. Записи с низкой уверенностью, противоречивые или странные помечай «сомнительно» и не используй как опору.
ШАГ 3. Точки смены.
Перечисли годы, когда значение реально поменялось. Одиночный скачок без подтверждения соседними годами считай шумом и не включай.
ШАГ 4. Режим и вердикт.
Режим: FAST / SLOW / NEVER.
Вердикт: PREDICTABLE — если таймлайн и режим обосновывают одно конкретное значение на {дата}; UNPREDICTABLE — если значение зависит от внешних событий, которых нет в таймлайне.
Кратко объясни решение (2–3 предложения).
ШАГ 5. Ответ.
— PREDICTABLE: назови значение и ключевое основание из таймлайна.
— UNPREDICTABLE: не называй конкретное значение. Напиши, от чего оно зависит и что проверить в актуальных источниках.
Запрещена экстраполяция, не следующая из таймлайна.
Формат вывода: <режим>, <вердикт>, <ответ или «воздерживаюсь»>.
Подставьте:
- {вопрос_о_будущем} — конкретный факт («Кто возглавляет X», «Где пройдёт Y»);
- {дата} — когда он должен быть истинным;
- {число_лет} — глубина истории (10–50).
🚀 Быстрый старт — вставь в чат:
Вот шаблон CTR (пятишаговая проверка предсказуемости факта). Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие именно факты о будущем вам нужны, на какую дату и какая глубина истории разумна. Это нужно, чтобы окно шага 1 и критерии «предсказуемо» подходили под скорость изменения ваших фактов. Затем она соберёт готовый промпт или пакетную версию на несколько фактов.
Ограничения
⚠️ Оригинал — код, не чат: CTR в исследовании — программа: десятки отдельных запросов по годам и мера уверенности по токен-энтропии (нужен доступ к вероятностям токенов). В обычном чате энтропии нет, её заменяет словесная оценка уверенности. Эффект такой замены авторы не измеряли.
⚠️ Память модели ограничена: весь метод строится на том, что модель верно вспомнит прошлое. Если она путает годы или значения, таймлайн получится ложным, а вердикт — уверенно неверным. Свежие факты после даты обучения она не знает вообще.
⚠️ Абсолютная точность остаётся низкой: на быстро меняющихся фактах правильные ответы редки у всех моделей, с CTR и без него. Метод в основном учит воздерживаться, а не угадывать.
⚠️ Цена воздержания: строгие правила отказа снижают охват. Альтернатива на основе одной только энтропии давала меньше всего галлюцинаций, но отвечала примерно на половину вопросов. CTR держит баланс, но не бесплатно.
⚠️ Малая проверка: тестировали на небольшом наборе фактов (337 вопросов) и на моделях, которые сейчас уже не самые сильные. Метки «предсказуемо / нет» авторы расставили сами по состоянию на сентябрь 2025.
Как исследовали
Сначала авторы проверили, почему модели ошибаются в вопросах о будущем. Они взяли факт с известной датой смены (например, «где проходят Олимпийские игры») и спрашивали модель про моменты каждые полгода в окне в три года вокруг этой даты, не раскрывая границу. Результат неприятный. Лучшие модели до границы отвечали верно в большинстве случаев, а после неё точность падала в разы. Одна из моделей в 92% случаев после смены продолжала повторять устаревший ответ. Неопределённость модели на границе почти не росла. Вывод: модели не чувствуют границу предсказуемости.
Затем они собрали набор из 337 фактов трёх типов (быстро-, медленно- и вообще не меняющиеся), обновили эталонные ответы под сентябрь 2025 и прогнали четыре модели (LLaMA-3.1-8B, Qwen3-4B, Mistral-7B и GPT-4o) по пять раз. Сравнивали три варианта: обычный вопрос, цепочка рассуждений с той же историей и CTR.
Неожиданный результат: просто дать модели ту же историю не помогало стабильно, в ряде случаев точность даже падала. Выигрывала версия, где история превращалась в диагноз «режим + предсказуемость». В среднем точность выросла на 6,7 пункта, а галлюцинации упали на 18,4 пункта. У GPT-4o доля галлюцинаций упала с 17,8% до 11,3%. Также сравнили три конкурирующих подхода (фильтр по энтропии, голосование разных моделей, самосогласованность из пяти ответов). Ни один не дал такого сочетания точности и низких галлюцинаций. Практический инсайт: для надёжности важно не «спросить несколько раз» и не «дать больше данных», а явно проверить, есть ли основание для ответа.
Адаптации и экстраполяции
Это мои переносы идеи, в статье их нет.
🔧 Техника: убрать шаги 1–3 → быстрая проверка перед ответом
Для повседневных вопросов хватит короткого правила в начале промпта:
Прежде чем отвечать на вопрос о будущем, определи: это FAST, SLOW или NEVER-факт? Если значение зависит от будущих решений или событий, а в истории нет устойчивой закономерности, не называй конкретное значение. Назови, от чего оно зависит и что проверить.
Так теряется проверка по таймлайну, но остаётся главное: решение о воздержании принимается до ответа.
Экстраполяция: правило в инструкции агента. В файл инструкций (CLAUDE.md, системный промпт) можно добавить блок:
Для любых утверждений о будущем или о «текущем» значении быстро меняющихся фактов (должности, ставки, курсы, версии, цены):
1. Сначала классифицируй: FAST / SLOW / NEVER.
2. Для FAST: не отвечай по памяти. Проверь через поиск или попроси источник. Если нет доступа — напиши «не уверен, нужна проверка».
3. Только для SLOW и NEVER отвечай по памяти и указывай, на чём основан ответ.
Ресурсы
- Is the Future Predictable? Modeling Future Predictability for Reliable Temporal Reasoning — Yongyi Huang, Huaping Zhang, Wenyao Cui, Qiuchi Li, Lei Li, Baohua Zhang. Beijing Institute of Technology, Zhongguancun Academy.
- Задача ChronoRegime и фреймворк CTR. Данные собраны на базе FreshQA (github.com/freshllms/freshqa) и TempLAMA (github.com/google-research/language, templama).
