TL;DR
Когда просишь LLM оценить что-то по критериям — одна сессия говорит «да», другая говорит «нет», разные модели расходятся. Причина не в модели: короткое описание критерия не убирает неоднозначность, и модель заполняет пробелы из обучающих данных по-разному каждый раз. Исследователи называют такое описание «конституцией» — не в смысле прав, а в смысле свода правил с явными нормами для каждого граничного случая.
Главная находка: когда две разные LLM расходятся в оценке одного и того же текста по одной инструкции — это не вопрос «какая модель права». Это сигнал, что инструкция неполная. Точка расхождения показывает именно тот граничный случай, который нужно прописать явно. После уточнения расхождения исчезают почти полностью.
Метод строится на создании структурированного документа-критерия: не два предложения «оцени как X», а полноценная спецификация с определением, логикой решения, явными примерами «входит / не входит» и разбором граничных случаев. LLM читает весь документ на каждую задачу и следует прописанным правилам — вместо того чтобы угадывать из контекста.
Схема метода
ШАГ 1: Написать конституцию (один раз)
→ Структурированный документ: определение + логика решения
+ что входит / что НЕ входит + разобранные граничные случаи
ШАГ 2: Дать LLM конституцию + материал для оценки (каждый раз)
→ Оценка с обоснованием: какой пункт конституции сработал
[Опционально] ШАГ 3: Валидация конституции
→ Запустить две разные модели на одних и тех же примерах
→ Расхождения = пробелы в конституции → дописать правила
Шаги 1 и 3 — разовая работа по созданию конституции.
Шаг 2 — рабочий режим: вставляешь конституцию + материал в каждый запрос.
Пример применения
Задача: Ты принимаешь заявки в акселератор стартапов. Просишь LLM отфильтровать «готовые к инвестициям» проекты — но каждый раз получаешь разные оценки. Один и тот же питч одна сессия считает «перспективным», другая — «сырым».
Промпт:
Ты — эксперт по отбору стартапов. Оценивай каждую заявку строго по
следующей конституции. Не используй личные суждения — только правила
конституции.
<Конституция категории "Готов к инвестициям">
## Определение
Стартап готов к инвестициям, если у него есть доказанный спрос
и понятная бизнес-модель с реалистичным путём к прибыли.
## Обязательные критерии (все должны выполняться)
- Есть хотя бы один платящий клиент ИЛИ подписанный LOI от реального
покупателя (не друг, не родственник)
- Команда имеет опыт в индустрии ИЛИ уже запускала что-то раньше
- Описан конкретный механизм монетизации (не "будем продавать рекламу")
## Что НЕ делает стартап готовым (явные исключения)
- Большой TAM сам по себе — не критерий. "Рынок 10 трлн рублей" без
доказанного доступа к нему = не готов
- Прототип без пользователей = не готов, даже если технология крутая
- Только B2G-клиенты без подписанных контрактов = не готов
## Логика решения
Если нет ни одного платящего клиента И нет подписанного LOI → НЕТ,
независимо от остального
Если команда — первый проект, без профильного опыта → задай вес -1
к итоговой оценке
Если монетизация описана как "комиссия с транзакций" без объяснения
почему покупатель заплатит → НЕТ
## Разобранные граничные случаи
✓ Стартап с одним клиентом на 50 000 ₽/месяц → ДА (есть платящий клиент)
✗ Стартап с 5000 пользователей бесплатного сервиса → НЕТ (нет платящих)
✓ Команда из двух студентов, но уже запустили и продали предыдущий проект →
ДА по критерию команды
✗ Основатель 20 лет в корпорации, но первый стартап → сомнительно,
дополнительный вопрос
Конституция>
Оцени следующую заявку:
{текст заявки}
Ответ: ДА / НЕТ / СОМНИТЕЛЬНО
Обоснование: укажи конкретный пункт конституции, который определил ответ.
Результат:
Модель выдаст ДА/НЕТ/СОМНИТЕЛЬНО с указанием конкретного правила. Например: «НЕТ — нарушено обязательное условие: нет платящих клиентов и нет LOI. TAM 500 млрд рублей не является критерием по конституции». При повторном запросе с той же заявкой ответ будет идентичным — потому что правило явное.
Почему это работает
LLM без детальных правил — как судья без законов. Когда инструкция расплывчатая («оцени качество»), модель заполняет пробелы тем, что видела в обучении: разными статьями, форумами, мнениями. Одна и та же задача — разный контекст срабатывания → разный ответ.
LLM хорошо следует явным правилам. Если написано «нет платящего клиента = НЕТ, независимо от остального» — модель применит это правило последовательно. Не потому что «думает», а потому что явная инструкция убирает пространство для интерпретации. Конституция превращает размытые критерии в чёткий алгоритм.
Расхождение двух моделей — это диагностика, не голосование. Запусти одну заявку в Claude и ChatGPT. Если дают разные ответы — найди что именно разошлось и добавь правило для этого случая в конституцию. Несколько итераций — и конституция покрывает все граничные случаи, с которыми ты реально сталкиваешься.
Рычаги управления: - Добавить больше граничных случаев → точнее работает на специфичных примерах твоей задачи - Добавить «Логику решения» с явными if/then → убирает пространство для интерпретации на сложных случаях - Разбить на две независимые оси (например, «соответствие формату» + «качество содержания» отдельно) → видишь где именно проблема, а не общую оценку - Попросить модель указывать конкретный пункт конституции → сразу видишь какое правило срабатывает, легче отлаживать
Шаблон промпта
Ты — {роль оценщика}. Оценивай каждый {тип материала} строго по
следующей конституции. Не используй личные суждения — только правила,
прописанные в документе.
<Конституция категории "{название критерия}">
## Определение
{Что именно означает этот критерий — 2-3 предложения}
## Обязательные условия
- {Условие 1, которое ДОЛЖНО выполняться}
- {Условие 2, которое ДОЛЖНО выполняться}
## Явные исключения (не считается, даже если похоже)
- {Что НЕ входит в критерий — конкретно}
- {Что НЕ входит в критерий — конкретно}
## Логика решения
Если {условие А} → {вывод}
Если {условие Б} → {другой вывод}, даже если {условие В}
## Граничные случаи
✓ {Пример который ДА}: {в одну строку почему}
✗ {Пример который НЕТ}: {в одну строку почему}
✓ {Ещё пример ДА}
✗ {Ещё пример НЕТ}
Конституция>
Оцени: {материал для оценки}
Формат ответа:
Вывод: {ДА / НЕТ / СОМНИТЕЛЬНО}
Основание: {конкретный пункт конституции, который применился}
Что подставлять:
- {роль оценщика} — эксперт по маркетингу, HR-специалист, редактор, модератор
- {тип материала} — заявку, резюме, текст, отзыв, питч
- {название критерия} — «Готов к публикации», «Подходит для вакансии», «Токсичный контент»
- {условия} — конкретные, проверяемые, не «хорошее качество»
- {граничные случаи} — реальные примеры, которые вызвали вопросы у тебя раньше
🚀 Быстрый старт — вставь в чат:
Вот шаблон Constitutional Specification. Адаптируй под мою задачу:
{опиши что ты хочешь оценивать и для чего}.
Задавай мне вопросы, чтобы заполнить все поля конституции.
[вставить шаблон выше]
LLM спросит: какие категории оценивать, что точно входит, что точно нет, были ли спорные случаи — потому что без этих деталей конституция будет такой же расплывчатой, как обычный промпт. Она возьмёт структуру шаблона и заполнит под твою задачу.
Ограничения
⚠️ Простые задачи: Для однозначных оценок («найди опечатки», «переведи текст») конституция избыточна. Метод даёт эффект только там, где есть настоящие граничные случаи — когда разумные люди могут разойтись во мнениях.
⚠️ Слабые модели: Компактные/быстрые модели (nano-класс) применяют конституцию поверхностно — видят ключевые слова, но не применяют исключения, которые следуют за ними. Конституция работает надёжно на моделях уровня GPT-4o, Claude Sonnet, Gemini Pro и выше.
⚠️ Неоднозначные формулировки внутри конституции: Если прописать «будь консервативен в оценке», разные модели интерпретируют «консерватизм» по-разному. Расплывчатые метаправила не лечат расплывчатость — нужны конкретные if/then.
⚠️ Субъективные критерии: Когда сам критерий не поддаётся операционализации («хорошо написано», «вдохновляет»), конституция помогает слабее. Метод работает лучше для проверяемых условий, чем для эстетических суждений.
Как исследовали
Команда из Cisco взяла три категории контент-модерации — харасмент, язык ненависти, ненасильственные преступления — и сравнила шесть источников определений: четыре публичных таксономии (OpenAI, Meta Llama Guard, MLCommons, AEGIS), их собственное параграфное определение и полноценную конституцию. Каждое определение скормили шести разным LLM и смотрели, как часто пары моделей расходятся в оценке одного и того же текста.
Параллельно четыре живых аннотатора разметили те же тексты по конституции. Результат оказался неожиданным: три LLM, читающие одну конституцию, согласовались между собой лучше, чем три человека, читающие тот же документ. Сильнее всего разрыв проявился на категории «ненасильственные преступления» — она охватывает слишком широкий диапазон от нарушения авторских прав до синтеза наркотиков, и короткое параграфное определение не помогает.
Почему люди проигрывали LLM? Исследователи заметили два паттерна: аннотаторы подсознательно выбирали «главную» категорию вместо независимой оценки каждой (если похоже на мошенничество — писали «мошенничество», даже когда задача была оценить «ненасильственное преступление»). И реагировали на поверхностные сигналы — угроза есть, значит «да», даже если в конституции прописано «без конкретной жертвы — нет». LLM читает конституцию заново на каждом примере и не накапливает усталость от предыдущих решений — это проигнорированное преимущество.
Оригинал из исследования
Constitution Anatomy (per-category structure):
1. Top-level definition — what the category means
2. Required elements — what must be present for a positive label
3. Decision logic — explicit if/then rules for boundary cases
4. Boundary notes — what is and is not included, with rationale
5. Worked examples — labelled positive/negative with explanation
6. Explicit exclusions — named cases that look positive but are not
7. Adjacent category guidance — how to distinguish from siblings
8. Conservatism stance — how to handle genuine ambiguity
9. Dual-axis definitions — intent label and content label separately
10. Conversation-level scope — evaluate full conversation, not message-by-message
Cross-model validation process:
Run the same constitution on the same conversations with 2-3 models
from different vendors.
Where models disagree → trace to specific constitutional section →
draft targeted patch (before/after edit) → human reviews → merge →
re-validate against same test set.
Контекст: Это скелет одной конституции из исследования — 300+ строк для категории «харасмент». Компоненты выделены явно, чтобы видеть что именно делает документ полным. Конституция — это не просто «длинный промпт», это специфичная структура с явными правилами для каждого типа граничного случая.
Адаптации и экстраполяции
💡 Адаптация 1: Конституция для оценки текстов
Вместо классификации «вредный/безвредный» — оценка «готов к публикации / нет» для редакции или SMM-команды:
<Конституция "Готов к публикации в Telegram-канале">
## Определение
Пост готов к публикации, если он самодостаточен, точен по фактам
и соответствует тону канала.
## Обязательные условия
- Одна главная мысль, не три
- Нет голословных утверждений без источника или примера
- Длина: 800-1500 знаков
## Явные исключения
- "Интересный факт" без источника → НЕТ, даже если звучит достоверно
- Пост с вопросом в конце без содержательной части → НЕТ
- Репост чужого текста без добавленной ценности → НЕТ
## Логика решения
Если есть утверждение формата "исследования показывают" без
конкретного источника → НЕТ
Если тон резкий/осуждающий → проверить соответствие архиву канала
## Граничные случаи
✓ Личный опыт автора без ссылок — ДА (субъективная позиция,
не факт-чекинг)
✗ Статистика без года и источника — НЕТ
Конституция>
Оцени пост: {текст поста}
🔧 Адаптация 2: Двухосевая оценка
Оригинальный метод разделяет намерение и содержание как независимые оси. Принцип применим шире — разбивай любую сложную оценку на независимые измерения:
Оцени резюме по двум осям независимо:
Ось 1 — Соответствие требованиям: ДА / НЕТ / ЧАСТИЧНО
(Есть ли указанные в вакансии навыки и опыт?)
Ось 2 — Качество подачи: ВЫСОКОЕ / СРЕДНЕЕ / НИЗКОЕ
(Конкретные достижения с цифрами или общие фразы?)
Оценки независимы: кандидат может соответствовать требованиям,
но плохо презентовать себя — и наоборот.
Список обязательных требований: {из вакансии}
Резюме: {текст резюме}
Вместо итоговой оценки «подходит/не подходит» ты видишь где именно проблема.
🔧 Адаптация 3: Расхождение как диагностика
Валидация собственной инструкции без написания конституции с нуля:
Я хочу проверить насколько точна моя инструкция для оценки {задача}.
Вот моя инструкция: {инструкция}
Вот три пограничных случая, в которых я не уверен:
1. {случай 1}
2. {случай 2}
3. {случай 3}
Как ты оценишь каждый? Потом я дам тебе оценку другой модели —
сравним расхождения и найдём какие правила нужно дописать.
Запусти тот же промпт в Claude и ChatGPT. Расхождения покажут точки неоднозначности — то, что нужно прописать явно.
Ресурсы
Название: Improving Labeling Consistency with Detailed Constitutional Definitions and AI-Driven Evaluation
Авторы: Konstantin Berlin, Adam Swanda — Cisco AI Defense
Связанные работы: - Constitutional AI (Bai et al., 2022) — Anthropic, откуда взята идея конституции - Constitutional Classifiers (Sharma et al., 2025) — расширение на runtime enforcement - HarmBench (Mazeika et al., 2024) — датасет безопасности, использованный для оценки - WildChat (Zhao et al., 2024) — датасет реальных разговоров с ChatGPT
