TL;DR
CSS — техника, которая разбивает ответ модели на отдельные утверждения и выбирает для каждого правильный уровень детализации: точная цифра, если уверена; более общая формулировка, если нет; пропуск, если совсем не знает. Вместо отказа отвечать или выдумывания — точность ровно там, где она оправдана.
LLM регулярно переусердствует с конкретикой — исследователи называют это overcommitment, избыточная конкретизация. Модель может знать, что соглашение подписали в Женеве, — но не точный год. Она всё равно назовёт 1987. Технически это не "ложь": модель генерирует текст в потоке и не останавливается у каждого факта, чтобы проверить отдельно. Факт верный, деталь — выдумана.
CSS решает это в четыре шага: генерирует ответ, разбивает на утверждения, для каждого готовит более общую версию ("в середине 1980-х"), оценивает поддержку доказательствами и выбирает наиболее конкретный вариант, который реально обоснован. В оригинале всё это автоматизировано — но принцип можно вложить в промпт, и модель применит его к себе.
Схема метода
(Один промпт — все шаги внутри)
ШАГ 1: Генерация черновика → полный ответ с деталями
ШАГ 2: Разбивка → список отдельных утверждений
ШАГ 3: Для каждого → предложить более общую версию (backoff)
Точная версия: "подписан в 1987 году"
Общая версия: "подписан в 1980-х"
Пропуск: —
ШАГ 4: Оценка уверенности → насколько каждое подтверждено
ШАГ 5: Выбор уровня → самое конкретное, что реально знаю
Пример применения
Задача: Предприниматель просит Claude объяснить условия патентной защиты в России — конкретные сроки, размеры пошлин, порядок продления. Нужна точность там, где она есть, а не уверенный тон там, где её нет.
Промпт:
Объясни условия патентной защиты изобретений в России:
сроки, пошлины, порядок продления.
После ответа сделай следующее:
— Пройди по каждому конкретному утверждению (цифра, срок, размер, дата)
— Для каждого реши: ты это знаешь точно, знаешь приблизительно или не уверен?
Выведи итоговый ответ по правилу:
• Уверен → оставь точную формулировку
• Частично уверен → замени на более общую
(например: "от нескольких тысяч до десятков тысяч рублей"
вместо конкретной суммы)
• Не уверен → убери утверждение, напиши что лучше уточнить у патентного поверенного
Не отказывайся отвечать целиком. Ищи правильный уровень детали для каждого факта.
Результат: Модель сначала даст черновой ответ, затем покажет список утверждений с оценкой уверенности, а финальный текст будет содержать точные цифры там, где она уверена (базовый срок охраны изобретения — 20 лет), и общие формулировки там, где нет (размеры пошлин — "уточните на сайте Роспатента, они меняются"). Никаких уверенно сказанных неверных цифр.
Почему это работает
Слабость LLM: Модель генерирует текст последовательно — слово за словом, предложение за предложением. У неё нет встроенного "стоп-сигнала" на уровне отдельного факта. Она знает общий контекст, но степень уверенности по конкретным деталям не регулирует автоматически. Поэтому "Женева" и "1987" выходят с одинаковой уверенностью — хотя первое знает точно, второе — нет.
Сильная сторона LLM: Модель хорошо работает с инструкциями, которые задают явный критерий выбора. Если сказать "выбери наиболее конкретную формулировку, в которой уверен" — она применяет это как правило к каждому случаю. Особенно хорошо работает самопроверка в отдельном шаге, когда она "смотрит" на уже сгенерированный текст.
Как метод использует это: Разделяет генерацию и проверку на два явных шага. Сначала — полный ответ. Потом — оценка каждого утверждения с правилом выбора: точно → оставить, частично → обобщить, нет → убрать. Это не запрет на ответ и не "добавь дисклеймер" — это структурированное редактирование на уровне смысла.
Рычаги управления: - Уровней детализации можно добавить больше: точно / вероятно / приблизительный диапазон / только категория / пропуск — для задач, где нужна тонкая градация - Порог уверенности можно ужесточить: "только если полностью уверена" — для юридических и медицинских запросов, где цена ошибки высока - Формат вывода можно сделать явным: попросить показать таблицу "утверждение → уровень уверенности → итоговая формулировка" — чтобы видеть, что именно изменилось
Шаблон промпта
Ответь на вопрос: {вопрос}
После ответа выполни самопроверку по каждому конкретному утверждению:
Для каждого факта, цифры, даты, имени или специфической детали:
1. Оцени уверенность: точно знаю / частично уверен / не уверен
2. Выбери уровень детали:
→ Точно знаю: оставь как есть
→ Частично уверен: замени на более общую формулировку
(диапазон вместо точной цифры, период вместо даты,
категория вместо конкретного вида)
→ Не уверен: убери, укажи что стоит уточнить
Выведи итоговый ответ: точный там, где знаешь,
общий там, где нет — без выдуманных деталей и без отказа отвечать.
Что подставлять:
- {вопрос} — любой фактический запрос, где важна точность: условия договора, технические характеристики, исторические факты, юридические нормы, финансовые показатели
🚀 Быстрый старт — вставь в чат:
Вот шаблон CSS для точного контроля утверждений.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит о теме запроса и насколько критична точность — потому что от этого зависит, насколько строгим делать порог уверенности. Она возьмёт структуру самопроверки и адаптирует под задачу.
Ограничения
⚠️ Самодиагностика ненадёжна: Модель оценивает собственную уверенность — но не всегда точно. Она может быть уверена в неверном факте или неуверена в правильном. Метод снижает вероятность ошибки, но не устраняет её. Для критически важных данных внешняя проверка обязательна.
⚠️ Не для творческих задач: Метод заточен под фактические запросы с проверяемыми утверждениями. Для написания текстов, генерации идей, анализа мнений — не применимо.
⚠️ Качество "backoff" непредсказуемо: Модель сама решает, как обобщить конкретное утверждение. Иногда обобщение будет слишком широким и потеряет смысл. Стоит явно указывать границы: "не уходи в обобщение шире, чем {граница}".
⚠️ Работает хуже без контекста: Если в запросе нет источника знания (документ, данные, конкретный текст), модель опирается на обучение — и уверенность труднее откалибровать. Лучшие результаты, когда есть конкретный материал для проверки.
Как исследовали
Команда взяла 2280 вопросов из бенчмарка LongFact — длинные фактические запросы, на которые GPT генерирует многостраничные ответы с десятками утверждений. На такой задаче избыточная конкретизация видна особенно ярко: в одном ответе могут быть и точные факты, и выдуманные детали. Каждый ответ разбили на отдельные утверждения — в итоге 11 705 штук — и для каждого вручную проверили поддержку доказательствами.
Сравнивали пять стратегий: без постобработки, отказ от всего ответа, удаление несостоятельных утверждений, CSS с фиксированным порогом уверенности, и CSS с калиброванным порогом. Интереснее всего сравнение "отказ от всего" vs "удаление" vs CSS: отказ работал хуже всех — он сохранял точность, но выбрасывал 37% полезного контента. Удаление было лучше. Но CSS с калиброванным порогом обошёл оба: вместо удаления несостоятельных утверждений он заменял их более общими — и сохранял смысл там, где другие просто отрезали. Также проверили на HotpotQA, причём на двух разных моделях: GPT и Claude Sonnet. Паттерн одинаковый — калибровка выигрывает у фиксированного порога примерно в два раза по сохранению полезного контента.
Любопытная деталь: разрыв между "идеальным CSS" (когда знаешь правильный ответ) и реальным минимален — это значит, что дело не столько в качестве оценки уверенности, сколько в самом принципе: дай выбор между точным, общим и пропуском, и даже несовершенная оценка даёт хороший результат.
Адаптации и экстраполяции
1. Адаптация: явная градация уверенности на входе
Вместо того чтобы просить модель самостоятельно оценивать уверенность в конце, задай шкалу заранее:
🔧 Градация вместо бинарного выбора → тоньше контроль над детализацией
Отвечай по каждому факту с уровнем:
[ТОЧНО] — уверен полностью
[ВЕРОЯТНО] — 70%+, но стоит проверить
[ДИАПАЗОН] — знаю порядок, не точную цифру
[КАТЕГОРИЯ] — знаю тип, не конкретику
[УТОЧНИТЬ] — нужен источник
Это особенно полезно для юридических, медицинских, финансовых запросов, где нужно видеть не только итог, но и степень надёжности каждого факта.
2. Экстраполяция: CSS + Chain-of-Thought как предварительная верификация
Объединяй CSS с цепочкой рассуждений (Chain-of-Thought): сначала модель объясняет, откуда знает каждый факт, потом применяет CSS-правило. Откуда знаю → насколько уверена → какой уровень выбрать.
Для каждого конкретного утверждения в ответе:
1. Объясни откуда это знаешь (обучающие данные? логический вывод? стандартный факт?)
2. На основе этого реши: точная формулировка / обобщённая / пропуск
Выведи итог по правилу CSS: только то, что обосновано.
Это медленнее, зато модель "думает вслух" о надёжности источника — и реже ошибается с уровнем уверенности.
Ресурсы
Название: Answer Only as Precisely as Justified: Calibrated Claim-Level Specificity Control for Agentic Systems
Авторы: Tianyi Huang (Ryquo), Samuel Xu, Jason Tansong Dang, Samuel Yan, Kimberley Yin (App-In Club)
Препринт: апрель 2026
Контакт: tianyi@ryquo.com
Связанные работы: - FActScore — оценка фактической точности через атомарные факты - LongFact (Wei et al., 2024) — бенчмарк длинных фактических запросов - Selective Abstraction (Goren et al., 2026) — менее конкретные перефразировки как инструмент надёжности - Conformal Linguistic Calibration (Jiang et al., 2025) — калибровка фактичности и специфичности - Chain-of-Verification (Dhuliawala et al., 2023) — постепенная верификация для снижения галлюцинаций
